From 66ad1a4266a873e01376e9cb3f3afa37e74b6a13 Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Thu, 11 Aug 2022 14:04:05 +0200
Subject: [PATCH] chore: commit save point

---
 application/source/monster.mjs      | 262 +++++++++++++++++++---------
 development/script/grep-exports.cjs |  51 ++++++
 2 files changed, 228 insertions(+), 85 deletions(-)
 create mode 100755 development/script/grep-exports.cjs

diff --git a/application/source/monster.mjs b/application/source/monster.mjs
index 61a58f0dd..f017bad12 100644
--- a/application/source/monster.mjs
+++ b/application/source/monster.mjs
@@ -8,96 +8,188 @@
 
 /**
  * Main namespace for Monster.
- * 
+ *
  * @namespace Monster
  * @author schukai GmbH
  */
 
+// development/script/grep-exports.cjs
+export {IsObject} from "./constraints/isobject.mjs"
+export {Invalid} from "./constraints/invalid.mjs"
+export {AndOperator} from "./constraints/andoperator.mjs"
+export {OrOperator} from "./constraints/oroperator.mjs"
+export {AbstractConstraint} from "./constraints/abstract.mjs"
+export {IsArray} from "./constraints/isarray.mjs"
+export {AbstractOperator} from "./constraints/abstractoperator.mjs"
+export {Valid} from "./constraints/valid.mjs"
+export {Monster} from "./monster.mjs"
+export {Logger, ALL, TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF} from "./logging/logger.mjs"
+export {LogEntry} from "./logging/logentry.mjs"
+export {ConsoleHandler} from "./logging/handler/console.mjs"
+export {Handler} from "./logging/handler.mjs"
+export {Formatter} from "./text/formatter.mjs"
+export {Stylesheet} from "./dom/resource/link/stylesheet.mjs"
+export {Data} from "./dom/resource/data.mjs"
+export {Link} from "./dom/resource/link.mjs"
+export {Script} from "./dom/resource/script.mjs"
+export {Updater} from "./dom/updater.mjs"
+export {CustomControl} from "./dom/customcontrol.mjs"
+export {getLocaleOfDocument} from "./dom/locale.mjs"
+export {Theme, getDocumentTheme} from "./dom/theme.mjs"
+export {Resource, KEY_DOCUMENT, KEY_QUERY, referenceSymbol} from "./dom/resource.mjs"
+export {ResourceManager} from "./dom/resourcemanager.mjs"
+export {getDocument, getWindow, getDocumentFragmentFromString} from "./dom/util.mjs"
+export {
+    DEFAULT_THEME,
+    ATTRIBUTE_PREFIX,
+    ATTRIBUTE_OPTIONS,
+    ATTRIBUTE_OPTIONS_SELECTOR,
+    ATTRIBUTE_THEME_PREFIX,
+    ATTRIBUTE_THEME_NAME,
+    ATTRIBUTE_UPDATER_ATTRIBUTES,
+    ATTRIBUTE_UPDATER_SELECT_THIS,
+    ATTRIBUTE_UPDATER_REPLACE,
+    ATTRIBUTE_UPDATER_INSERT,
+    ATTRIBUTE_UPDATER_INSERT_REFERENCE,
+    ATTRIBUTE_UPDATER_REMOVE,
+    ATTRIBUTE_UPDATER_BIND,
+    ATTRIBUTE_TEMPLATE_PREFIX,
+    ATTRIBUTE_ROLE,
+    ATTRIBUTE_DISABLED,
+    ATTRIBUTE_VALUE,
+    ATTRIBUTE_OBJECTLINK,
+    ATTRIBUTE_ERRORMESSAGE,
+    TAG_SCRIPT,
+    TAG_STYLE,
+    TAG_LINK,
+    ATTRIBUTE_ID,
+    ATTRIBUTE_CLASS,
+    ATTRIBUTE_TITLE,
+    ATTRIBUTE_SRC,
+    ATTRIBUTE_HREF,
+    ATTRIBUTE_TYPE,
+    ATTRIBUTE_NONCE,
+    ATTRIBUTE_TRANSLATE,
+    ATTRIBUTE_TABINDEX,
+    ATTRIBUTE_SPELLCHECK,
+    ATTRIBUTE_SLOT,
+    ATTRIBUTE_PART,
+    ATTRIBUTE_LANG,
+    ATTRIBUTE_ITEMTYPE,
+    ATTRIBUTE_ITEMSCOPE,
+    ATTRIBUTE_ITEMREF,
+    ATTRIBUTE_ITEMID,
+    ATTRIBUTE_ITEMPROP,
+    ATTRIBUTE_IS,
+    ATTRIBUTE_INPUTMODE,
+    ATTRIBUTE_ACCESSKEY,
+    ATTRIBUTE_AUTOCAPITALIZE,
+    ATTRIBUTE_AUTOFOCUS,
+    ATTRIBUTE_CONTENTEDITABLE,
+    ATTRIBUTE_DIR,
+    ATTRIBUTE_DRAGGABLE,
+    ATTRIBUTE_ENTERKEYHINT,
+    ATTRIBUTE_EXPORTPARTS,
+    ATTRIBUTE_HIDDEN,
+    objectUpdaterLinkSymbol,
 
-import './constants.mjs';
-// find packages/monster/source/ -type f -name "*.mjs" -not -name "*namespace*" -not -iname  "monster.mjs"
-import './constraints/isobject.mjs';
-import './constraints/valid.mjs';
-import './constraints/invalid.mjs';
-import './constraints/abstractoperator.mjs';
-import './constraints/oroperator.mjs';
-import './constraints/andoperator.mjs';
-import './constraints/abstract.mjs';
-import './constraints/isarray.mjs';
-import './logging/logger.mjs';
-import './logging/handler.mjs';
-import './logging/logentry.mjs';
-import './logging/handler/console.mjs';
-import './text/formatter.mjs';
-import './dom/resource/script.mjs';
-import './dom/resource/data.mjs';
-import './dom/resource/link/stylesheet.mjs';
-import './dom/resource/link.mjs';
-import './dom/resource.mjs';
-import './dom/updater.mjs';
-import './dom/attributes.mjs';
-import './dom/template.mjs';
-import './dom/util.mjs';
-import './dom/ready.mjs';
-import './dom/resourcemanager.mjs';
-import './dom/locale.mjs';
-import './dom/customcontrol.mjs';
-import './dom/constants.mjs';
-import './dom/assembler.mjs';
-import './dom/theme.mjs';
-import './dom/worker/factory.mjs';
-import './dom/focusmanager.mjs';
-import './dom/events.mjs';
-import './dom/customelement.mjs';
-import './i18n/formatter.mjs';
-import './i18n/providers/fetch.mjs';
-import './i18n/translations.mjs';
-import './i18n/locale.mjs';
-import './i18n/provider.mjs';
-import './types/queue.mjs';
-import './types/binary.mjs';
-import './types/regex.mjs';
-import './types/observer.mjs';
-import './types/observerlist.mjs';
-import './types/basewithoptions.mjs';
-import './types/is.mjs';
-import './types/proxyobserver.mjs';
-import './types/uniquequeue.mjs';
-import './types/node.mjs';
-import './types/tokenlist.mjs';
-import './types/typeof.mjs';
-import './types/uuid.mjs';
-import './types/mediatype.mjs';
-import './types/dataurl.mjs';
-import './types/base.mjs';
-import './types/version.mjs';
-import './types/nodelist.mjs';
-import './types/id.mjs';
-import './types/randomid.mjs';
-import './types/noderecursiveiterator.mjs';
-import './types/validate.mjs';
-import './types/stack.mjs';
-import './util/deadmansswitch.mjs';
-import './util/comparator.mjs';
-import './util/trimspaces.mjs';
-import './util/clone.mjs';
-import './util/freeze.mjs';
-import './util/processing.mjs';
-import './constants.mjs';
-import './data/pathfinder.mjs';
-import './data/pipe.mjs';
-import './data/extend.mjs';
-import './data/diff.mjs';
-import './data/buildmap.mjs';
-import './data/datasource.mjs';
-import './data/buildtree.mjs';
-import './data/transformer.mjs';
-import './data/datasource/storage.mjs';
-import './data/datasource/restapi.mjs';
-import './data/datasource/storage/sessionstorage.mjs';
-import './data/datasource/storage/localstorage.mjs';
-import './data/datasource/restapi/writeerror.mjs';
-import './math/random.mjs';
+} from "./dom/constants.mjs"
+export {
+    CustomElement,
+    initMethodSymbol,
+    assembleMethodSymbol,
+    attributeObserverSymbol,
+    registerCustomElement,
+    assignUpdaterToElement,
+    getSlottedElements
+} from "./dom/customelement.mjs"
+export {
+    findClosestObjectLink,
+    addToObjectLink,
+    removeObjectLink,
+    hasObjectLink,
+    getLinkedObjects,
+    toggleAttributeToken,
+    addAttributeToken,
+    removeAttributeToken,
+    containsAttributeToken,
+    replaceAttributeToken,
+    clearAttributeTokens,
+    findClosestByAttribute,
+    findClosestByClass
+} from "./dom/attributes.mjs"
+export {fireEvent, fireCustomEvent, findTargetElementFromEvent} from "./dom/events.mjs"
+export {Factory} from "./dom/worker/factory.mjs"
+export {Template} from "./dom/template.mjs"
+export {domReady, windowReady} from "./dom/ready.mjs"
+export {FocusManager} from "./dom/focusmanager.mjs"
+export {ATTRIBUTEPREFIX, Assembler} from "./dom/assembler.mjs"
+export {Translations} from "./i18n/translations.mjs"
+export {Locale, parseLocale} from "./i18n/locale.mjs"
+export {Formatter} from "./i18n/formatter.mjs"
+export {Fetch} from "./i18n/providers/fetch.mjs"
+export {Provider} from "./i18n/provider.mjs"
+export {
+    internalSymbol,
+    internalStateSymbol
+} from "./constants.mjs"
+export {MediaType, parseMediaType} from "./types/mediatype.mjs"
+export {typeOf} from "./types/typeof.mjs"
+export {ObserverList} from "./types/observerlist.mjs"
+export {RandomID} from "./types/randomid.mjs"
+export {UUID} from "./types/uuid.mjs"
+export {Observer} from "./types/observer.mjs"
+export {TokenList} from "./types/tokenlist.mjs"
+export {Queue} from "./types/queue.mjs"
+export {Stack} from "./types/stack.mjs"
+export {toBinary, fromBinary} from "./types/binary.mjs"
+export {BaseWithOptions} from "./types/basewithoptions.mjs"
+export {escapeString} from "./types/regex.mjs"
+export {ProxyObserver} from "./types/proxyobserver.mjs"
+export {NodeList} from "./types/nodelist.mjs"
+export {Version, getMonsterVersion} from "./types/version.mjs"
+export {Node} from "./types/node.mjs"
+export {NodeRecursiveIterator} from "./types/noderecursiveiterator.mjs"
+export {getGlobal, getGlobalObject, getGlobalFunction} from "./types/global.mjs"
+export {DataUrl, parseDataURL} from "./types/dataurl.mjs"
+export {
+    validateIterable,
+    validatePrimitive,
+    validateBoolean,
+    validateString,
+    validateObject,
+    validateInstance,
+    validateArray,
+    validateSymbol,
+    validateFunction,
+    validateInteger
+} from "./types/validate.mjs"
+export {UniqueQueue} from "./types/uniquequeue.mjs"
+export {Base} from "./types/base.mjs"
+export {
+    isIterable, isPrimitive, isSymbol, isBoolean, isString, isObject, isInstance, isArray, isFunction, isInteger
+} from "./types/is.mjs"
+export {ID} from "./types/id.mjs"
+export {trimSpaces} from "./util/trimspaces.mjs"
+export {DeadMansSwitch} from "./util/deadmansswitch.mjs"
+export {deepFreeze} from "./util/freeze.mjs"
+export {Comparator} from "./util/comparator.mjs"
+export {clone} from "./util/clone.mjs"
+export {Processing} from "./util/processing.mjs"
+export {extend} from "./data/extend.mjs"
+export {Pipe} from "./data/pipe.mjs"
+export {buildMap, PARENT, assembleParts} from "./data/buildmap.mjs"
+export {Datasource} from "./data/datasource.mjs"
+export {buildTree} from "./data/buildtree.mjs"
+export {Transformer} from "./data/transformer.mjs"
+export {Pathfinder, DELIMITER, WILDCARD} from "./data/pathfinder.mjs"
+export {diff} from "./data/diff.mjs"
+export {RestAPI} from "./data/datasource/restapi.mjs"
+export {SessionStorage} from "./data/datasource/storage/sessionstorage.mjs"
+export {LocalStorage} from "./data/datasource/storage/localstorage.mjs"
+export {WriteError} from "./data/datasource/restapi/writeerror.mjs"
+export {Storage, storageObjectSymbol} from "./data/datasource/storage.mjs"
+export {random} from "./math/random.mjs"
 
 export {Monster}
 
diff --git a/development/script/grep-exports.cjs b/development/script/grep-exports.cjs
new file mode 100755
index 000000000..328f9a086
--- /dev/null
+++ b/development/script/grep-exports.cjs
@@ -0,0 +1,51 @@
+#!/usr/bin/env node
+
+const regex = /^\s*(?<exp>(export\s+{[^}]+)})/gm;
+
+const fs = require('fs');
+var path = require('path')
+const basename= __dirname + '/../../application/source/'
+
+let exportLines = []
+
+function scanSymbols(root) {
+
+    const dir = fs.opendirSync(root);
+    while ((f = dir.readSync()) !== null) {
+
+        if (f.isDirectory()) {
+            scanSymbols(path.join(root, f.name));
+            continue;
+        } else if (!f.isFile()) {
+            continue;
+        };
+
+        if ((path.extname(f.name) !== ".mjs")) {
+            continue;
+        }
+
+        const fn = path.join( root , f.name);
+        let content = fs.readFileSync(fn, 'utf8');
+
+        while ((m = regex.exec(content)) !== null) {
+            let exp= m.groups?.exp;
+            if (!exp) {
+                continue;
+            }
+            
+            
+            exportLines.push(exp + " from \"./" + path.relative(basename, fn)+"\"");
+            
+        }
+
+    }
+}
+
+scanSymbols(path.normalize(basename))
+
+
+console.log(exportLines.join("\n"));
+
+
+
+
-- 
GitLab