@allgemein/base 1.5.6 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/Constants.d.ts +1 -0
  2. package/Constants.js +2 -1
  3. package/Constants.js.map +1 -1
  4. package/MetadataStorage.js +4 -4
  5. package/MetadataStorage.js.map +1 -1
  6. package/browser.d.ts +1 -1
  7. package/browser.js +4 -1
  8. package/browser.js.map +1 -1
  9. package/index.d.ts +1 -1
  10. package/index.js +4 -1
  11. package/index.js.map +1 -1
  12. package/locking/LockFactory.d.ts +15 -0
  13. package/locking/LockFactory.js +60 -0
  14. package/locking/LockFactory.js.map +1 -0
  15. package/locking/Semaphore.d.ts +45 -0
  16. package/locking/Semaphore.js +108 -0
  17. package/locking/Semaphore.js.map +1 -0
  18. package/logging/AbstractLogger.js +3 -3
  19. package/logging/AbstractLogger.js.map +1 -1
  20. package/logging/Logger.js +1 -1
  21. package/logging/Logger.js.map +1 -1
  22. package/package.json +19 -12
  23. package/shared.d.ts +4 -1
  24. package/shared.js +7 -1
  25. package/shared.js.map +1 -1
  26. package/utils/ArrayUtils.d.ts +4 -0
  27. package/utils/ArrayUtils.js +91 -0
  28. package/utils/ArrayUtils.js.map +1 -0
  29. package/utils/ClassLoader.js +6 -6
  30. package/utils/ClassLoader.js.map +1 -1
  31. package/utils/ClassUtils.js +6 -6
  32. package/utils/ClassUtils.js.map +1 -1
  33. package/utils/FileUtils.d.ts +2 -2
  34. package/utils/FileUtils.js.map +1 -1
  35. package/utils/JsonUtils.js +2 -2
  36. package/utils/JsonUtils.js.map +1 -1
  37. package/utils/PlatformUtils.js +1 -1
  38. package/utils/PlatformUtils.js.map +1 -1
  39. package/utils/PlatformUtilsBrowser.js +1 -1
  40. package/utils/PlatformUtilsBrowser.js.map +1 -1
  41. package/utils/Serializer.d.ts +9 -0
  42. package/utils/Serializer.js +84 -0
  43. package/utils/Serializer.js.map +1 -0
  44. package/utils/TreeUtils.js +10 -10
  45. package/utils/TreeUtils.js.map +1 -1
package/Constants.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export declare type StringOrFunction = string | Function;
2
2
  export declare const __SOURCE__ = "__SOURCE__";
3
+ export declare const __CLASS__ = "__CLASS__";
3
4
  export declare const C_DEFAULT = "default";
4
5
  export declare const C_CONSOLE = "console";
5
6
  export declare const C_WARN = "warn";
package/Constants.js CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ISO8601 = exports.C_INFO = exports.C_TRACE = exports.C_DEBUG = exports.C_ERROR = exports.C_WARN = exports.C_CONSOLE = exports.C_DEFAULT = exports.__SOURCE__ = void 0;
3
+ exports.ISO8601 = exports.C_INFO = exports.C_TRACE = exports.C_DEBUG = exports.C_ERROR = exports.C_WARN = exports.C_CONSOLE = exports.C_DEFAULT = exports.__CLASS__ = exports.__SOURCE__ = void 0;
4
4
  exports.__SOURCE__ = '__SOURCE__';
5
+ exports.__CLASS__ = '__CLASS__';
5
6
  exports.C_DEFAULT = 'default';
6
7
  exports.C_CONSOLE = 'console';
7
8
  exports.C_WARN = 'warn';
package/Constants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/Constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,YAAY,CAAC;AAE1B,QAAA,SAAS,GAAG,SAAS,CAAC;AACtB,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC;AAGhB,QAAA,OAAO,GAAG,+DAA+D,CAAC","file":"Constants.js","sourcesContent":["export type StringOrFunction = string | Function\n\nexport const __SOURCE__ = '__SOURCE__';\n\nexport const C_DEFAULT = 'default';\nexport const C_CONSOLE = 'console';\n\nexport const C_WARN = 'warn';\nexport const C_ERROR = 'error';\nexport const C_DEBUG = 'debug';\nexport const C_TRACE = 'trace';\nexport const C_INFO = 'info';\n\n\nexport const ISO8601 = /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(([+-]\\d\\d:\\d\\d)|Z)?$/i;\n\n\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../../src/Constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,SAAS,GAAG,WAAW,CAAC;AAGxB,QAAA,SAAS,GAAG,SAAS,CAAC;AACtB,QAAA,SAAS,GAAG,SAAS,CAAC;AAEtB,QAAA,MAAM,GAAG,MAAM,CAAC;AAChB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,OAAO,GAAG,OAAO,CAAC;AAClB,QAAA,MAAM,GAAG,MAAM,CAAC;AAGhB,QAAA,OAAO,GAAG,+DAA+D,CAAC","file":"Constants.js","sourcesContent":["export type StringOrFunction = string | Function;\n\nexport const __SOURCE__ = '__SOURCE__';\nexport const __CLASS__ = '__CLASS__';\n\n\nexport const C_DEFAULT = 'default';\nexport const C_CONSOLE = 'console';\n\nexport const C_WARN = 'warn';\nexport const C_ERROR = 'error';\nexport const C_DEBUG = 'debug';\nexport const C_TRACE = 'trace';\nexport const C_INFO = 'info';\n\n\nexport const ISO8601 = /^\\d{4}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(([+-]\\d\\d:\\d\\d)|Z)?$/i;\n\n\n"],"sourceRoot":"."}
@@ -22,22 +22,22 @@ class MetadataStorage {
22
22
  * @param initial
23
23
  */
24
24
  key(key, initial = []) {
25
- if (!lodash_1.has(this, key)) {
25
+ if (!(0, lodash_1.has)(this, key)) {
26
26
  this[key] = initial;
27
27
  }
28
28
  return this[key];
29
29
  }
30
30
  has(path) {
31
- return lodash_1.has(this, path);
31
+ return (0, lodash_1.has)(this, path);
32
32
  }
33
33
  get(key) {
34
- if (lodash_1.has(this, key)) {
34
+ if ((0, lodash_1.has)(this, key)) {
35
35
  return this[key];
36
36
  }
37
37
  return undefined;
38
38
  }
39
39
  remove(key) {
40
- if (lodash_1.has(this, key)) {
40
+ if ((0, lodash_1.has)(this, key)) {
41
41
  delete this[key];
42
42
  }
43
43
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/MetadataStorage.ts"],"names":[],"mappings":";;;AAAA,mCAA2B;AAG3B,MAAa,eAAe;IAS1B,MAAM,CAAC,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAGD,MAAM,CAAC,GAAG,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAGD,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,UAAe,EAAE;QAChC,IAAI,CAAC,YAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SACrB;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAGD,GAAG,CAAC,IAAY;QACd,OAAO,YAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAGD,GAAG,CAAC,GAAW;QACb,IAAI,YAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,MAAM,CAAC,GAAW;QAChB,IAAI,YAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;IACH,CAAC;CAEF;AA3DD,0CA2DC","file":"MetadataStorage.js","sourcesContent":["import {has} from 'lodash';\n\n\nexport class MetadataStorage {\n\n\n [k: string]: any;\n\n\n static $self: MetadataStorage;\n\n\n static $() {\n if (!this.$self) {\n this.$self = new MetadataStorage();\n }\n return this.$self;\n }\n\n\n static key(k: string): any[] {\n return this.$().key(k);\n }\n\n\n static clear() {\n this.$self = null;\n }\n\n /**\n * Create or get a cached key by object / array\n *\n * @param key\n * @param initial\n */\n key(key: string, initial: any = []): any[] {\n if (!has(this, key)) {\n this[key] = initial;\n }\n return this[key];\n }\n\n\n has(path: string) {\n return has(this, path);\n }\n\n\n get(key: string) {\n if (has(this, key)) {\n return this[key];\n }\n return undefined;\n }\n\n\n remove(key: string) {\n if (has(this, key)) {\n delete this[key];\n }\n }\n\n}\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../../src/MetadataStorage.ts"],"names":[],"mappings":";;;AAAA,mCAA2B;AAG3B,MAAa,eAAe;IAS1B,MAAM,CAAC,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;SACpC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAGD,MAAM,CAAC,GAAG,CAAC,CAAS;QAClB,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAGD,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACH,GAAG,CAAC,GAAW,EAAE,UAAe,EAAE;QAChC,IAAI,CAAC,IAAA,YAAG,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;SACrB;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAGD,GAAG,CAAC,IAAY;QACd,OAAO,IAAA,YAAG,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzB,CAAC;IAGD,GAAG,CAAC,GAAW;QACb,IAAI,IAAA,YAAG,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,MAAM,CAAC,GAAW;QAChB,IAAI,IAAA,YAAG,EAAC,IAAI,EAAE,GAAG,CAAC,EAAE;YAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;IACH,CAAC;CAEF;AA3DD,0CA2DC","file":"MetadataStorage.js","sourcesContent":["import {has} from 'lodash';\n\n\nexport class MetadataStorage {\n\n\n [k: string]: any;\n\n\n static $self: MetadataStorage;\n\n\n static $() {\n if (!this.$self) {\n this.$self = new MetadataStorage();\n }\n return this.$self;\n }\n\n\n static key(k: string): any[] {\n return this.$().key(k);\n }\n\n\n static clear() {\n this.$self = null;\n }\n\n /**\n * Create or get a cached key by object / array\n *\n * @param key\n * @param initial\n */\n key(key: string, initial: any = []): any[] {\n if (!has(this, key)) {\n this[key] = initial;\n }\n return this[key];\n }\n\n\n has(path: string) {\n return has(this, path);\n }\n\n\n get(key: string) {\n if (has(this, key)) {\n return this[key];\n }\n return undefined;\n }\n\n\n remove(key: string) {\n if (has(this, key)) {\n delete this[key];\n }\n }\n\n}\n"],"sourceRoot":"."}
package/browser.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { JsonUtils, TreeUtils, CryptUtils, ClassUtils, NotSupportedError, NotYetImplementedError, TodoException, NestedException, Logger, ILogLevel, ILoggerOptions, ILoggerApi, ConsoleLogger, AbstractLogger, MetaArgs, StringOrFunction, ISO8601, C_WARN, C_TRACE, C_INFO, C_ERROR, C_DEBUG, C_CONSOLE, __SOURCE__, C_DEFAULT, MetadataStorage } from './shared';
1
+ export { JsonUtils, TreeUtils, WalkValues, CryptUtils, ClassUtils, NotSupportedError, NotYetImplementedError, TodoException, NestedException, Logger, ILogLevel, ILoggerOptions, ILoggerApi, ConsoleLogger, AbstractLogger, MetaArgs, StringOrFunction, ISO8601, C_WARN, C_TRACE, C_INFO, C_ERROR, C_DEBUG, C_CONSOLE, __SOURCE__, C_DEFAULT, MetadataStorage, Semaphore, LockFactory, Serializer } from './shared';
2
2
  export { PlatformUtils } from './utils/PlatformUtilsBrowser';
package/browser.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PlatformUtils = exports.MetadataStorage = exports.C_DEFAULT = exports.__SOURCE__ = exports.C_CONSOLE = exports.C_DEBUG = exports.C_ERROR = exports.C_INFO = exports.C_TRACE = exports.C_WARN = exports.ISO8601 = exports.MetaArgs = exports.AbstractLogger = exports.ConsoleLogger = exports.Logger = exports.NestedException = exports.TodoException = exports.NotYetImplementedError = exports.NotSupportedError = exports.ClassUtils = exports.CryptUtils = exports.TreeUtils = exports.JsonUtils = void 0;
3
+ exports.PlatformUtils = exports.Serializer = exports.LockFactory = exports.Semaphore = exports.MetadataStorage = exports.C_DEFAULT = exports.__SOURCE__ = exports.C_CONSOLE = exports.C_DEBUG = exports.C_ERROR = exports.C_INFO = exports.C_TRACE = exports.C_WARN = exports.ISO8601 = exports.MetaArgs = exports.AbstractLogger = exports.ConsoleLogger = exports.Logger = exports.NestedException = exports.TodoException = exports.NotYetImplementedError = exports.NotSupportedError = exports.ClassUtils = exports.CryptUtils = exports.TreeUtils = exports.JsonUtils = void 0;
4
4
  var shared_1 = require("./shared");
5
5
  Object.defineProperty(exports, "JsonUtils", { enumerable: true, get: function () { return shared_1.JsonUtils; } });
6
6
  Object.defineProperty(exports, "TreeUtils", { enumerable: true, get: function () { return shared_1.TreeUtils; } });
@@ -24,6 +24,9 @@ Object.defineProperty(exports, "C_CONSOLE", { enumerable: true, get: function ()
24
24
  Object.defineProperty(exports, "__SOURCE__", { enumerable: true, get: function () { return shared_1.__SOURCE__; } });
25
25
  Object.defineProperty(exports, "C_DEFAULT", { enumerable: true, get: function () { return shared_1.C_DEFAULT; } });
26
26
  Object.defineProperty(exports, "MetadataStorage", { enumerable: true, get: function () { return shared_1.MetadataStorage; } });
27
+ Object.defineProperty(exports, "Semaphore", { enumerable: true, get: function () { return shared_1.Semaphore; } });
28
+ Object.defineProperty(exports, "LockFactory", { enumerable: true, get: function () { return shared_1.LockFactory; } });
29
+ Object.defineProperty(exports, "Serializer", { enumerable: true, get: function () { return shared_1.Serializer; } });
27
30
  var PlatformUtilsBrowser_1 = require("./utils/PlatformUtilsBrowser");
28
31
  Object.defineProperty(exports, "PlatformUtils", { enumerable: true, get: function () { return PlatformUtilsBrowser_1.PlatformUtils; } });
29
32
 
package/browser.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/browser.ts"],"names":[],"mappings":";;;AAAA,mCA2BkB;AA1BhB,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,oGAAA,UAAU,OAAA;AACV,2GAAA,iBAAiB,OAAA;AACjB,gHAAA,sBAAsB,OAAA;AACtB,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,gGAAA,MAAM,OAAA;AAIN,uGAAA,aAAa,OAAA;AACb,wGAAA,cAAc,OAAA;AACd,kGAAA,QAAQ,OAAA;AAER,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,iGAAA,OAAO,OAAA;AACP,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AAEjB,qEAA2D;AAAnD,qHAAA,aAAa,OAAA","file":"browser.js","sourcesContent":["export {\n JsonUtils,\n TreeUtils,\n CryptUtils,\n ClassUtils,\n NotSupportedError,\n NotYetImplementedError,\n TodoException,\n NestedException,\n Logger,\n ILogLevel,\n ILoggerOptions,\n ILoggerApi,\n ConsoleLogger,\n AbstractLogger,\n MetaArgs,\n StringOrFunction,\n ISO8601,\n C_WARN,\n C_TRACE,\n C_INFO,\n C_ERROR,\n C_DEBUG,\n C_CONSOLE,\n __SOURCE__,\n C_DEFAULT,\n MetadataStorage\n} from './shared';\nexport {PlatformUtils} from './utils/PlatformUtilsBrowser';\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../../src/browser.ts"],"names":[],"mappings":";;;AAAA,mCA+BkB;AA9BhB,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AAET,oGAAA,UAAU,OAAA;AACV,oGAAA,UAAU,OAAA;AACV,2GAAA,iBAAiB,OAAA;AACjB,gHAAA,sBAAsB,OAAA;AACtB,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,gGAAA,MAAM,OAAA;AAIN,uGAAA,aAAa,OAAA;AACb,wGAAA,cAAc,OAAA;AACd,kGAAA,QAAQ,OAAA;AAER,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,iGAAA,OAAO,OAAA;AACP,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AACf,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AAEZ,qEAA2D;AAAnD,qHAAA,aAAa,OAAA","file":"browser.js","sourcesContent":["export {\n JsonUtils,\n TreeUtils,\n WalkValues,\n CryptUtils,\n ClassUtils,\n NotSupportedError,\n NotYetImplementedError,\n TodoException,\n NestedException,\n Logger,\n ILogLevel,\n ILoggerOptions,\n ILoggerApi,\n ConsoleLogger,\n AbstractLogger,\n MetaArgs,\n StringOrFunction,\n ISO8601,\n C_WARN,\n C_TRACE,\n C_INFO,\n C_ERROR,\n C_DEBUG,\n C_CONSOLE,\n __SOURCE__,\n C_DEFAULT,\n MetadataStorage,\n Semaphore,\n LockFactory,\n Serializer\n} from './shared';\nexport {PlatformUtils} from './utils/PlatformUtilsBrowser';\n"],"sourceRoot":"."}
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { JsonUtils, TreeUtils, CryptUtils, ClassUtils, NotSupportedError, NotYetImplementedError, TodoException, NestedException, Logger, ILogLevel, ILoggerOptions, ILoggerApi, ConsoleLogger, AbstractLogger, MetaArgs, StringOrFunction, ISO8601, C_WARN, C_TRACE, C_INFO, C_ERROR, C_DEBUG, C_CONSOLE, __SOURCE__, C_DEFAULT, MetadataStorage } from './shared';
1
+ export { JsonUtils, TreeUtils, CryptUtils, ClassUtils, NotSupportedError, NotYetImplementedError, TodoException, NestedException, Logger, ILogLevel, ILoggerOptions, ILoggerApi, ConsoleLogger, AbstractLogger, MetaArgs, StringOrFunction, ISO8601, C_WARN, C_TRACE, C_INFO, C_ERROR, C_DEBUG, C_CONSOLE, __SOURCE__, C_DEFAULT, MetadataStorage, LockFactory, Semaphore, Serializer } from './shared';
2
2
  export { ClassLoader } from './utils/ClassLoader';
3
3
  export { PlatformUtils } from './utils/PlatformUtils';
4
4
  export { FileUtils } from './utils/FileUtils';
package/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FileUtils = exports.PlatformUtils = exports.ClassLoader = exports.MetadataStorage = exports.C_DEFAULT = exports.__SOURCE__ = exports.C_CONSOLE = exports.C_DEBUG = exports.C_ERROR = exports.C_INFO = exports.C_TRACE = exports.C_WARN = exports.ISO8601 = exports.MetaArgs = exports.AbstractLogger = exports.ConsoleLogger = exports.Logger = exports.NestedException = exports.TodoException = exports.NotYetImplementedError = exports.NotSupportedError = exports.ClassUtils = exports.CryptUtils = exports.TreeUtils = exports.JsonUtils = void 0;
3
+ exports.FileUtils = exports.PlatformUtils = exports.ClassLoader = exports.Serializer = exports.Semaphore = exports.LockFactory = exports.MetadataStorage = exports.C_DEFAULT = exports.__SOURCE__ = exports.C_CONSOLE = exports.C_DEBUG = exports.C_ERROR = exports.C_INFO = exports.C_TRACE = exports.C_WARN = exports.ISO8601 = exports.MetaArgs = exports.AbstractLogger = exports.ConsoleLogger = exports.Logger = exports.NestedException = exports.TodoException = exports.NotYetImplementedError = exports.NotSupportedError = exports.ClassUtils = exports.CryptUtils = exports.TreeUtils = exports.JsonUtils = void 0;
4
4
  var shared_1 = require("./shared");
5
5
  Object.defineProperty(exports, "JsonUtils", { enumerable: true, get: function () { return shared_1.JsonUtils; } });
6
6
  Object.defineProperty(exports, "TreeUtils", { enumerable: true, get: function () { return shared_1.TreeUtils; } });
@@ -24,6 +24,9 @@ Object.defineProperty(exports, "C_CONSOLE", { enumerable: true, get: function ()
24
24
  Object.defineProperty(exports, "__SOURCE__", { enumerable: true, get: function () { return shared_1.__SOURCE__; } });
25
25
  Object.defineProperty(exports, "C_DEFAULT", { enumerable: true, get: function () { return shared_1.C_DEFAULT; } });
26
26
  Object.defineProperty(exports, "MetadataStorage", { enumerable: true, get: function () { return shared_1.MetadataStorage; } });
27
+ Object.defineProperty(exports, "LockFactory", { enumerable: true, get: function () { return shared_1.LockFactory; } });
28
+ Object.defineProperty(exports, "Semaphore", { enumerable: true, get: function () { return shared_1.Semaphore; } });
29
+ Object.defineProperty(exports, "Serializer", { enumerable: true, get: function () { return shared_1.Serializer; } });
27
30
  var ClassLoader_1 = require("./utils/ClassLoader");
28
31
  Object.defineProperty(exports, "ClassLoader", { enumerable: true, get: function () { return ClassLoader_1.ClassLoader; } });
29
32
  var PlatformUtils_1 = require("./utils/PlatformUtils");
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,mCA2BkB;AA1BhB,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,oGAAA,UAAU,OAAA;AACV,2GAAA,iBAAiB,OAAA;AACjB,gHAAA,sBAAsB,OAAA;AACtB,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,gGAAA,MAAM,OAAA;AAIN,uGAAA,aAAa,OAAA;AACb,wGAAA,cAAc,OAAA;AACd,kGAAA,QAAQ,OAAA;AAER,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,iGAAA,OAAO,OAAA;AACP,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AAIjB,mDAAgD;AAAxC,0GAAA,WAAW,OAAA;AACnB,uDAAoD;AAA5C,8GAAA,aAAa,OAAA;AACrB,+CAA4C;AAApC,sGAAA,SAAS,OAAA","file":"index.js","sourcesContent":["export {\n JsonUtils,\n TreeUtils,\n CryptUtils,\n ClassUtils,\n NotSupportedError,\n NotYetImplementedError,\n TodoException,\n NestedException,\n Logger,\n ILogLevel,\n ILoggerOptions,\n ILoggerApi,\n ConsoleLogger,\n AbstractLogger,\n MetaArgs,\n StringOrFunction,\n ISO8601,\n C_WARN,\n C_TRACE,\n C_INFO,\n C_ERROR,\n C_DEBUG,\n C_CONSOLE,\n __SOURCE__,\n C_DEFAULT,\n MetadataStorage\n} from './shared';\n\n\nexport {ClassLoader} from './utils/ClassLoader';\nexport {PlatformUtils} from './utils/PlatformUtils';\nexport {FileUtils} from './utils/FileUtils';\n\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../../src/index.ts"],"names":[],"mappings":";;;AAAA,mCA8BkB;AA7BhB,mGAAA,SAAS,OAAA;AACT,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,oGAAA,UAAU,OAAA;AACV,2GAAA,iBAAiB,OAAA;AACjB,gHAAA,sBAAsB,OAAA;AACtB,uGAAA,aAAa,OAAA;AACb,yGAAA,eAAe,OAAA;AACf,gGAAA,MAAM,OAAA;AAIN,uGAAA,aAAa,OAAA;AACb,wGAAA,cAAc,OAAA;AACd,kGAAA,QAAQ,OAAA;AAER,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,iGAAA,OAAO,OAAA;AACP,iGAAA,OAAO,OAAA;AACP,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AACV,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AACf,qGAAA,WAAW,OAAA;AACX,mGAAA,SAAS,OAAA;AACT,oGAAA,UAAU,OAAA;AAIZ,mDAAgD;AAAxC,0GAAA,WAAW,OAAA;AACnB,uDAAoD;AAA5C,8GAAA,aAAa,OAAA;AACrB,+CAA4C;AAApC,sGAAA,SAAS,OAAA","file":"index.js","sourcesContent":["export {\n JsonUtils,\n TreeUtils,\n CryptUtils,\n ClassUtils,\n NotSupportedError,\n NotYetImplementedError,\n TodoException,\n NestedException,\n Logger,\n ILogLevel,\n ILoggerOptions,\n ILoggerApi,\n ConsoleLogger,\n AbstractLogger,\n MetaArgs,\n StringOrFunction,\n ISO8601,\n C_WARN,\n C_TRACE,\n C_INFO,\n C_ERROR,\n C_DEBUG,\n C_CONSOLE,\n __SOURCE__,\n C_DEFAULT,\n MetadataStorage,\n LockFactory,\n Semaphore,\n Serializer\n} from './shared';\n\n\nexport {ClassLoader} from './utils/ClassLoader';\nexport {PlatformUtils} from './utils/PlatformUtils';\nexport {FileUtils} from './utils/FileUtils';\n\n"],"sourceRoot":"."}
@@ -0,0 +1,15 @@
1
+
2
+ import { EventEmitter } from 'events';
3
+ import { Semaphore } from './Semaphore';
4
+ export declare class LockFactory extends EventEmitter {
5
+ constructor();
6
+ static NAME: string;
7
+ static __self__: LockFactory;
8
+ private semaphores;
9
+ static $(): LockFactory;
10
+ static reset(): void;
11
+ semaphore(max: number): Semaphore;
12
+ remove(s: Semaphore): void;
13
+ await(): Promise<any>;
14
+ shutdown(timeout?: number): Promise<void>;
15
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LockFactory = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const events_1 = require("events");
6
+ const Semaphore_1 = require("./Semaphore");
7
+ class LockFactory extends events_1.EventEmitter {
8
+ constructor() {
9
+ super();
10
+ this.semaphores = [];
11
+ this.setMaxListeners(1000);
12
+ }
13
+ static $() {
14
+ if (!this.__self__) {
15
+ this.__self__ = new LockFactory();
16
+ }
17
+ return this.__self__;
18
+ }
19
+ static reset() {
20
+ this.__self__ = null;
21
+ }
22
+ semaphore(max) {
23
+ const sem = new Semaphore_1.Semaphore(max);
24
+ this.semaphores.push(sem);
25
+ return sem;
26
+ }
27
+ remove(s) {
28
+ (0, lodash_1.remove)(this.semaphores, s);
29
+ if ((0, lodash_1.isEmpty)(this.semaphores)) {
30
+ this.emit('empty');
31
+ }
32
+ }
33
+ await() {
34
+ if ((0, lodash_1.isEmpty)(this.semaphores)) {
35
+ return Promise.resolve();
36
+ }
37
+ else {
38
+ return new Promise(resolve => {
39
+ this.once('empty', () => {
40
+ resolve(null);
41
+ });
42
+ });
43
+ }
44
+ }
45
+ async shutdown(timeout = 10000) {
46
+ await Promise.all(this.semaphores.map(x => x.await(timeout)));
47
+ for (const s of this.semaphores.reverse()) {
48
+ try {
49
+ s.purge();
50
+ }
51
+ catch (e) {
52
+ }
53
+ this.remove(s);
54
+ }
55
+ }
56
+ }
57
+ exports.LockFactory = LockFactory;
58
+ LockFactory.NAME = LockFactory.name;
59
+
60
+ //# sourceMappingURL=LockFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/locking/LockFactory.ts"],"names":[],"mappings":";;;AAAA,mCAAuC;AACvC,mCAAoC;AACpC,2CAAsC;AAEtC,MAAa,WAAY,SAAQ,qBAAY;IAE3C;QACE,KAAK,EAAE,CAAC;QASF,eAAU,GAAgB,EAAE,CAAC;QARnC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IASD,MAAM,CAAC,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;SACnC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAK;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,MAAM,GAAG,GAAG,IAAI,qBAAS,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,CAAY;QACjB,IAAA,eAAM,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACpB;IACH,CAAC;IAGD,KAAK;QACH,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YAC5B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;SAC1B;aAAM;YACL,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;oBACtB,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK;QAC5B,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAe,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC5E,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;YACzC,IAAI;gBACF,CAAC,CAAC,KAAK,EAAE,CAAC;aACX;YAAC,OAAO,CAAC,EAAE;aACX;YACD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAChB;IAEH,CAAC;;AA7DH,kCA+DC;AAvDQ,gBAAI,GAAW,WAAW,CAAC,IAAI,CAAC","file":"LockFactory.js","sourcesContent":["import {isEmpty, remove} from 'lodash';\nimport {EventEmitter} from 'events';\nimport {Semaphore} from './Semaphore';\n\nexport class LockFactory extends EventEmitter {\n\n constructor() {\n super();\n this.setMaxListeners(1000);\n }\n\n\n static NAME: string = LockFactory.name;\n\n static __self__: LockFactory;\n\n private semaphores: Semaphore[] = [];\n\n static $() {\n if (!this.__self__) {\n this.__self__ = new LockFactory();\n }\n return this.__self__;\n }\n\n static reset() {\n this.__self__ = null;\n }\n\n semaphore(max: number) {\n const sem = new Semaphore(max);\n this.semaphores.push(sem);\n return sem;\n }\n\n remove(s: Semaphore) {\n remove(this.semaphores, s);\n if (isEmpty(this.semaphores)) {\n this.emit('empty');\n }\n }\n\n\n await(): Promise<any> {\n if (isEmpty(this.semaphores)) {\n return Promise.resolve();\n } else {\n return new Promise(resolve => {\n this.once('empty', () => {\n resolve(null);\n });\n });\n }\n }\n\n async shutdown(timeout = 10000) {\n await Promise.all(this.semaphores.map(x => <Promise<any>>x.await(timeout)));\n for (const s of this.semaphores.reverse()) {\n try {\n s.purge();\n } catch (e) {\n }\n this.remove(s);\n }\n\n }\n\n}\n"],"sourceRoot":".."}
@@ -0,0 +1,45 @@
1
+
2
+ /**
3
+ * https://gist.github.com/Gericop/e33be1f201cf242197d9c4d0a1fa7335
4
+ */
5
+ import { EventEmitter } from 'events';
6
+ /**
7
+ * Semaphore implementation
8
+ */
9
+ export declare class Semaphore extends EventEmitter {
10
+ /**
11
+ * Count resource usage
12
+ */
13
+ private counter;
14
+ /**
15
+ * Waiting queue
16
+ */
17
+ private waiting;
18
+ private readonly max;
19
+ private readonly name;
20
+ constructor(max: number, name?: string);
21
+ /**
22
+ * Take the next waiting caller
23
+ */
24
+ private take;
25
+ /**
26
+ * Acquire semaphore for resource use
27
+ */
28
+ acquire(): Promise<unknown>;
29
+ /**
30
+ * Release semaphore and free resource
31
+ */
32
+ release(): void;
33
+ /**
34
+ * Purge acquired leases
35
+ */
36
+ purge(): number;
37
+ /**
38
+ * Has waiting entries
39
+ */
40
+ isReserved(): boolean;
41
+ /**
42
+ * Wait till semaphore is fully released
43
+ */
44
+ await(timeout?: number): Promise<unknown>;
45
+ }
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Semaphore = void 0;
4
+ /**
5
+ * https://gist.github.com/Gericop/e33be1f201cf242197d9c4d0a1fa7335
6
+ */
7
+ const events_1 = require("events");
8
+ /**
9
+ * Semaphore implementation
10
+ */
11
+ class Semaphore extends events_1.EventEmitter {
12
+ constructor(max, name = null) {
13
+ super();
14
+ /**
15
+ * Count resource usage
16
+ */
17
+ this.counter = 0;
18
+ /**
19
+ * Waiting queue
20
+ */
21
+ // eslint-disable-next-line no-unused-vars
22
+ this.waiting = [];
23
+ this.setMaxListeners(10000);
24
+ this.max = max;
25
+ this.name = name;
26
+ }
27
+ /**
28
+ * Take the next waiting caller
29
+ */
30
+ take() {
31
+ if (this.waiting.length > 0 && this.counter < this.max) {
32
+ this.counter++;
33
+ const promise = this.waiting.shift();
34
+ promise.resolve();
35
+ }
36
+ }
37
+ /**
38
+ * Acquire semaphore for resource use
39
+ */
40
+ acquire() {
41
+ if (this.counter < this.max) {
42
+ this.counter++;
43
+ return new Promise(resolve => {
44
+ resolve(null);
45
+ });
46
+ }
47
+ else {
48
+ return new Promise((resolve, err) => {
49
+ this.waiting.push({ resolve: resolve, err: err });
50
+ });
51
+ }
52
+ }
53
+ /**
54
+ * Release semaphore and free resource
55
+ */
56
+ release() {
57
+ this.counter--;
58
+ this.take();
59
+ if (this.counter === 0) {
60
+ this.emit('empty');
61
+ }
62
+ }
63
+ /**
64
+ * Purge acquired leases
65
+ */
66
+ purge() {
67
+ const unresolved = this.waiting.length;
68
+ for (let i = 0; i < unresolved; i++) {
69
+ this.waiting[i].err('Task has been purged.');
70
+ }
71
+ this.counter = 0;
72
+ this.waiting = [];
73
+ this.removeAllListeners();
74
+ return unresolved;
75
+ }
76
+ /**
77
+ * Has waiting entries
78
+ */
79
+ isReserved() {
80
+ return this.counter > 0;
81
+ }
82
+ /**
83
+ * Wait till semaphore is fully released
84
+ */
85
+ await(timeout = 1000) {
86
+ if (this.counter === 0) {
87
+ return Promise.resolve();
88
+ }
89
+ else {
90
+ let timer = null;
91
+ return new Promise((resolve, reject) => {
92
+ const fn = () => {
93
+ clearTimeout(timer);
94
+ this.removeAllListeners();
95
+ resolve(null);
96
+ };
97
+ this.once('empty', fn);
98
+ timer = setTimeout(() => {
99
+ this.removeAllListeners();
100
+ reject(new Error('timeout waiting for free semaphore ' + this.name));
101
+ }, timeout);
102
+ });
103
+ }
104
+ }
105
+ }
106
+ exports.Semaphore = Semaphore;
107
+
108
+ //# sourceMappingURL=Semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/locking/Semaphore.ts"],"names":[],"mappings":"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","file":"Semaphore.js","sourcesContent":["/**\n * https://gist.github.com/Gericop/e33be1f201cf242197d9c4d0a1fa7335\n */\nimport { EventEmitter } from 'events';\n\n/**\n * Semaphore implementation\n */\nexport class Semaphore extends EventEmitter {\n\n\n /**\n * Count resource usage\n */\n private counter = 0;\n\n /**\n * Waiting queue\n */\n // eslint-disable-next-line no-unused-vars\n private waiting: { resolve: (value?: any) => void; err: (reason?: any) => void }[] = [];\n\n private readonly max: number;\n private readonly name: string;\n\n constructor(max: number, name: string = null) {\n super();\n this.setMaxListeners(10000);\n this.max = max;\n this.name = name;\n }\n\n /**\n * Take the next waiting caller\n */\n private take() {\n if (this.waiting.length > 0 && this.counter < this.max) {\n this.counter++;\n const promise = this.waiting.shift();\n promise.resolve();\n }\n }\n\n /**\n * Acquire semaphore for resource use\n */\n acquire() {\n if (this.counter < this.max) {\n this.counter++;\n return new Promise(resolve => {\n resolve(null);\n });\n } else {\n return new Promise((resolve, err) => {\n this.waiting.push({ resolve: resolve, err: err });\n });\n }\n }\n\n /**\n * Release semaphore and free resource\n */\n release() {\n this.counter--;\n this.take();\n if (this.counter === 0) {\n this.emit('empty');\n }\n }\n\n /**\n * Purge acquired leases\n */\n purge() {\n const unresolved = this.waiting.length;\n for (let i = 0; i < unresolved; i++) {\n this.waiting[i].err('Task has been purged.');\n }\n this.counter = 0;\n this.waiting = [];\n this.removeAllListeners();\n return unresolved;\n }\n\n /**\n * Has waiting entries\n */\n isReserved() {\n return this.counter > 0;\n }\n\n\n /**\n * Wait till semaphore is fully released\n */\n await(timeout = 1000) {\n if (this.counter === 0) {\n return Promise.resolve();\n } else {\n let timer: any = null;\n return new Promise((resolve, reject) => {\n const fn = () => {\n clearTimeout(timer);\n this.removeAllListeners();\n resolve(null);\n };\n this.once('empty', fn);\n timer = setTimeout(() => {\n this.removeAllListeners();\n reject(new Error('timeout waiting for free semaphore ' + this.name));\n }, timeout);\n });\n }\n }\n}\n"],"sourceRoot":".."}
@@ -23,7 +23,7 @@ class AbstractLogger {
23
23
  }
24
24
  }
25
25
  isEnabled(set = null) {
26
- if (!lodash_1.isNull(set)) {
26
+ if (!(0, lodash_1.isNull)(set)) {
27
27
  this._enable = set;
28
28
  }
29
29
  return this._enable;
@@ -35,13 +35,13 @@ class AbstractLogger {
35
35
  this._enable = true;
36
36
  }
37
37
  findLevel(m) {
38
- return this.levels.find(x => lodash_1.isNumber(m) ? x.nr === m : x.name.toLowerCase() === m.toLowerCase());
38
+ return this.levels.find(x => (0, lodash_1.isNumber)(m) ? x.nr === m : x.name.toLowerCase() === m.toLowerCase());
39
39
  }
40
40
  addLevel(name) {
41
41
  this.levels.push({ nr: this.levelInc++, name: name.toLowerCase() });
42
42
  }
43
43
  getLevel() {
44
- return lodash_1.find(this.levels, l => l.nr === this.logLevel);
44
+ return (0, lodash_1.find)(this.levels, l => l.nr === this.logLevel);
45
45
  }
46
46
  setLevel(level) {
47
47
  const l = this.findLevel(level);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/logging/AbstractLogger.ts"],"names":[],"mappings":"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","file":"AbstractLogger.js","sourcesContent":["import {isNull, isNumber, find} from 'lodash';\nimport {ILoggerApi} from './ILoggerApi';\nimport {ILogLevel} from './ILogLevel';\nimport {C_DEBUG, C_ERROR, C_INFO, C_TRACE, C_WARN} from '../Constants';\nimport {ILoggerOptions} from './ILoggerOptions';\n\n\nexport abstract class AbstractLogger implements ILoggerApi {\n\n private levelInc = 0;\n\n protected levels: ILogLevel[] = [];\n\n protected logLevel: number = 0;\n\n protected _enable: boolean = true;\n\n protected options: ILoggerOptions;\n\n\n constructor(opts: ILoggerOptions) {\n this.options = opts;\n this.addLevel(C_ERROR);\n this.addLevel(C_WARN);\n this.addLevel(C_INFO);\n this.addLevel(C_DEBUG);\n this.addLevel(C_TRACE);\n\n\n if (opts.level) {\n this.logLevel = this.findLevel(opts.level).nr;\n } else {\n this.logLevel = this.findLevel(C_INFO).nr;\n }\n\n }\n\n isEnabled(set: boolean = null): boolean {\n if (!isNull(set)) {\n this._enable = set;\n }\n return this._enable;\n }\n\n disable() {\n this._enable = false;\n }\n\n enable() {\n this._enable = true;\n }\n\n findLevel(m: string | number) {\n return this.levels.find(x => isNumber(m) ? x.nr === m : x.name.toLowerCase() === m.toLowerCase());\n }\n\n addLevel(name: string) {\n this.levels.push({nr: this.levelInc++, name: name.toLowerCase()});\n }\n\n\n getLevel(): ILogLevel {\n return find(this.levels, l => l.nr === this.logLevel);\n }\n\n setLevel(level: number | string): void {\n const l = this.findLevel(level);\n if (l) {\n this.logLevel = l.nr;\n } else {\n throw new Error('can\\'t find given log level entry ' + level);\n }\n }\n\n debug(...msg: any[]): void {\n this.log(C_DEBUG, ...msg);\n }\n\n\n error(...msg: any[]): void {\n this.log(C_ERROR, ...msg);\n }\n\n\n info(...msg: any[]): void {\n this.log(C_INFO, ...msg);\n }\n\n\n abstract log(level: number | string, ...msg: any[]): void ;\n\n\n trace(...msg: any[]): void {\n this.log(C_TRACE, ...msg);\n }\n\n\n warn(...msg: any[]): void {\n this.log(C_WARN, ...msg);\n }\n\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/logging/AbstractLogger.ts"],"names":[],"mappings":"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","file":"AbstractLogger.js","sourcesContent":["import {isNull, isNumber, find} from 'lodash';\nimport {ILoggerApi} from './ILoggerApi';\nimport {ILogLevel} from './ILogLevel';\nimport {C_DEBUG, C_ERROR, C_INFO, C_TRACE, C_WARN} from '../Constants';\nimport {ILoggerOptions} from './ILoggerOptions';\n\n\nexport abstract class AbstractLogger implements ILoggerApi {\n\n private levelInc = 0;\n\n protected levels: ILogLevel[] = [];\n\n protected logLevel: number = 0;\n\n protected _enable: boolean = true;\n\n protected options: ILoggerOptions;\n\n\n constructor(opts: ILoggerOptions) {\n this.options = opts;\n this.addLevel(C_ERROR);\n this.addLevel(C_WARN);\n this.addLevel(C_INFO);\n this.addLevel(C_DEBUG);\n this.addLevel(C_TRACE);\n\n\n if (opts.level) {\n this.logLevel = this.findLevel(opts.level).nr;\n } else {\n this.logLevel = this.findLevel(C_INFO).nr;\n }\n\n }\n\n isEnabled(set: boolean = null): boolean {\n if (!isNull(set)) {\n this._enable = set;\n }\n return this._enable;\n }\n\n disable() {\n this._enable = false;\n }\n\n enable() {\n this._enable = true;\n }\n\n findLevel(m: string | number) {\n return this.levels.find(x => isNumber(m) ? x.nr === m : x.name.toLowerCase() === m.toLowerCase());\n }\n\n addLevel(name: string) {\n this.levels.push({nr: this.levelInc++, name: name.toLowerCase()});\n }\n\n\n getLevel(): ILogLevel {\n return find(this.levels, l => l.nr === this.logLevel);\n }\n\n setLevel(level: number | string): void {\n const l = this.findLevel(level);\n if (l) {\n this.logLevel = l.nr;\n } else {\n throw new Error('can\\'t find given log level entry ' + level);\n }\n }\n\n debug(...msg: any[]): void {\n this.log(C_DEBUG, ...msg);\n }\n\n\n error(...msg: any[]): void {\n this.log(C_ERROR, ...msg);\n }\n\n\n info(...msg: any[]): void {\n this.log(C_INFO, ...msg);\n }\n\n\n abstract log(level: number | string, ...msg: any[]): void ;\n\n\n trace(...msg: any[]): void {\n this.log(C_TRACE, ...msg);\n }\n\n\n warn(...msg: any[]): void {\n this.log(C_WARN, ...msg);\n }\n\n\n}\n"],"sourceRoot":".."}
package/logging/Logger.js CHANGED
@@ -25,7 +25,7 @@ class Logger {
25
25
  this.$().loggerTypes[type] = cls;
26
26
  }
27
27
  static getLogger(opts = DEFAULT) {
28
- if (!this.$().instances[opts.context] || lodash_1.get(opts, 'override', false)) {
28
+ if (!this.$().instances[opts.context] || (0, lodash_1.get)(opts, 'override', false)) {
29
29
  const type = this.$().loggerTypes[opts.type];
30
30
  if (type) {
31
31
  this.$().instances[opts.context] = Reflect.construct(type, [opts]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/logging/Logger.ts"],"names":[],"mappings":";;;AAAA,mCAA2B;AAE3B,mDAA8C;AAC9C,4CAA6F;AAI7F,MAAM,OAAO,GAAmB;IAC9B,OAAO,EAAE,qBAAS;IAClB,IAAI,EAAE,qBAAS;CAEhB,CAAC;AAEF,MAAa,MAAM;IAEjB;QAMQ,gBAAW,GAA8B;YAC/C,OAAO,EAAE,6BAAa;SACvB,CAAC;QAEM,cAAS,GAAkC,EAAE,CAAC;IARtD,CAAC;IAUD,MAAM,CAAC,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,EAAE,CAAC;SAC3B;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,GAAa;QACxC,IAAI,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,OAAuB,OAAO;QAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,YAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aACpE;iBAAM;gBACL,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,6BAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aAC7E;SAEF;QACD,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAGD,MAAM,CAAC,GAAG,CAAC,QAAyB,kBAAM,EAAE,GAAG,GAAU;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,GAAU;QACxB,IAAI,CAAC,GAAG,CAAC,mBAAO,EAAE,GAAG,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,GAAU;QACvB,IAAI,CAAC,GAAG,CAAC,kBAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,GAAU;QACvB,IAAI,CAAC,GAAG,CAAC,kBAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,GAAU;QACxB,IAAI,CAAC,GAAG,CAAC,mBAAO,EAAE,GAAG,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,GAAU;QACxB,IAAI,CAAC,GAAG,CAAC,mBAAO,EAAE,GAAG,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CAEF;AAvED,wBAuEC","file":"Logger.js","sourcesContent":["import {get} from 'lodash';\nimport {ILoggerApi} from './ILoggerApi';\nimport {ConsoleLogger} from './ConsoleLogger';\nimport {C_CONSOLE, C_DEBUG, C_DEFAULT, C_ERROR, C_INFO, C_TRACE, C_WARN} from '../Constants';\nimport {ILoggerOptions} from './ILoggerOptions';\n\n\nconst DEFAULT: ILoggerOptions = {\n context: C_DEFAULT,\n type: C_CONSOLE\n\n};\n\nexport class Logger {\n\n private constructor() {\n\n }\n\n private static _self: Logger;\n\n private loggerTypes: { [k: string]: Function } = {\n console: ConsoleLogger\n };\n\n private instances: { [key: string]: ILoggerApi } = {};\n\n static $() {\n if (!this._self) {\n this._self = new Logger();\n }\n return this._self;\n }\n\n static addType(type: string, cls: Function) {\n this.$().loggerTypes[type] = cls;\n }\n\n static getLogger(opts: ILoggerOptions = DEFAULT) {\n if (!this.$().instances[opts.context] || get(opts, 'override', false)) {\n const type = this.$().loggerTypes[opts.type];\n if (type) {\n this.$().instances[opts.context] = Reflect.construct(type, [opts]);\n } else {\n this.$().instances[opts.context] = Reflect.construct(ConsoleLogger, [opts]);\n }\n\n }\n return this.$().instances[opts.context];\n }\n\n\n static log(level: number | string = C_INFO, ...msg: any[]) {\n this.getLogger().log(level, ...msg);\n }\n\n static error(...msg: any[]) {\n this.log(C_ERROR, ...msg);\n }\n\n static warn(...msg: any[]) {\n this.log(C_WARN, ...msg);\n }\n\n static info(...msg: any[]) {\n this.log(C_INFO, ...msg);\n }\n\n static debug(...msg: any[]) {\n this.log(C_DEBUG, ...msg);\n }\n\n static trace(...msg: any[]) {\n this.log(C_TRACE, ...msg);\n }\n\n getInstances() {\n return this.instances;\n }\n\n getTypes() {\n return this.loggerTypes;\n }\n\n}\n"],"sourceRoot":".."}
1
+ {"version":3,"sources":["../../../src/logging/Logger.ts"],"names":[],"mappings":";;;AAAA,mCAA2B;AAE3B,mDAA8C;AAC9C,4CAA6F;AAI7F,MAAM,OAAO,GAAmB;IAC9B,OAAO,EAAE,qBAAS;IAClB,IAAI,EAAE,qBAAS;CAEhB,CAAC;AAEF,MAAa,MAAM;IAEjB;QAMQ,gBAAW,GAA8B;YAC/C,OAAO,EAAE,6BAAa;SACvB,CAAC;QAEM,cAAS,GAAkC,EAAE,CAAC;IARtD,CAAC;IAUD,MAAM,CAAC,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,EAAE,CAAC;SAC3B;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAY,EAAE,GAAa;QACxC,IAAI,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,OAAuB,OAAO;QAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAA,YAAG,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE;YACrE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aACpE;iBAAM;gBACL,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,6BAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aAC7E;SAEF;QACD,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAGD,MAAM,CAAC,GAAG,CAAC,QAAyB,kBAAM,EAAE,GAAG,GAAU;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,GAAU;QACxB,IAAI,CAAC,GAAG,CAAC,mBAAO,EAAE,GAAG,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,GAAU;QACvB,IAAI,CAAC,GAAG,CAAC,kBAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAG,GAAU;QACvB,IAAI,CAAC,GAAG,CAAC,kBAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,GAAU;QACxB,IAAI,CAAC,GAAG,CAAC,mBAAO,EAAE,GAAG,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,GAAG,GAAU;QACxB,IAAI,CAAC,GAAG,CAAC,mBAAO,EAAE,GAAG,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CAEF;AAvED,wBAuEC","file":"Logger.js","sourcesContent":["import {get} from 'lodash';\nimport {ILoggerApi} from './ILoggerApi';\nimport {ConsoleLogger} from './ConsoleLogger';\nimport {C_CONSOLE, C_DEBUG, C_DEFAULT, C_ERROR, C_INFO, C_TRACE, C_WARN} from '../Constants';\nimport {ILoggerOptions} from './ILoggerOptions';\n\n\nconst DEFAULT: ILoggerOptions = {\n context: C_DEFAULT,\n type: C_CONSOLE\n\n};\n\nexport class Logger {\n\n private constructor() {\n\n }\n\n private static _self: Logger;\n\n private loggerTypes: { [k: string]: Function } = {\n console: ConsoleLogger\n };\n\n private instances: { [key: string]: ILoggerApi } = {};\n\n static $() {\n if (!this._self) {\n this._self = new Logger();\n }\n return this._self;\n }\n\n static addType(type: string, cls: Function) {\n this.$().loggerTypes[type] = cls;\n }\n\n static getLogger(opts: ILoggerOptions = DEFAULT) {\n if (!this.$().instances[opts.context] || get(opts, 'override', false)) {\n const type = this.$().loggerTypes[opts.type];\n if (type) {\n this.$().instances[opts.context] = Reflect.construct(type, [opts]);\n } else {\n this.$().instances[opts.context] = Reflect.construct(ConsoleLogger, [opts]);\n }\n\n }\n return this.$().instances[opts.context];\n }\n\n\n static log(level: number | string = C_INFO, ...msg: any[]) {\n this.getLogger().log(level, ...msg);\n }\n\n static error(...msg: any[]) {\n this.log(C_ERROR, ...msg);\n }\n\n static warn(...msg: any[]) {\n this.log(C_WARN, ...msg);\n }\n\n static info(...msg: any[]) {\n this.log(C_INFO, ...msg);\n }\n\n static debug(...msg: any[]) {\n this.log(C_DEBUG, ...msg);\n }\n\n static trace(...msg: any[]) {\n this.log(C_TRACE, ...msg);\n }\n\n getInstances() {\n return this.instances;\n }\n\n getTypes() {\n return this.loggerTypes;\n }\n\n}\n"],"sourceRoot":".."}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allgemein/base",
3
- "version": "1.5.6",
3
+ "version": "1.6.3",
4
4
  "description": "Library for commons moduls.",
5
5
  "main": "./index.js",
6
6
  "private": false,
@@ -29,18 +29,24 @@
29
29
  },
30
30
  "homepage": "https://github.com/allgemein-node/base#readme",
31
31
  "devDependencies": {
32
- "@allgemein/packaging": "^1.1.1",
32
+ "@allgemein/packaging": "^1.2.13",
33
33
  "@testdeck/mocha": "^0.1.2",
34
- "@types/chai": "^4.2.18",
34
+ "@types/chai": "^4.2.22",
35
35
  "@types/expect": "^24.3.0",
36
- "@types/glob": "^7.1.3",
37
- "@types/lodash": "^4.14.169",
38
- "@types/mocha": "^8.2.2",
39
- "@types/node": "^15.3.1",
36
+ "@types/glob": "^7.1.4",
37
+ "@types/lodash": "^4.14.175",
38
+ "@types/mocha": "^9.0.0",
39
+ "@types/node": "^16.10.3",
40
+ "@typescript-eslint/eslint-plugin": "^5.10.1",
41
+ "@typescript-eslint/parser": "^5.10.1",
40
42
  "chai": "^4.3.4",
41
- "codecov": "^3.8.2",
43
+ "codecov": "^3.8.3",
42
44
  "codelyzer": "^6.0.2",
43
45
  "del": "6.0.0",
46
+ "eslint": "7.28.0",
47
+ "eslint-plugin-import": "2.23.4",
48
+ "eslint-plugin-mocha": "9.0.0",
49
+ "eslint-plugin-prettier": "3.4.0",
44
50
  "gulp": "4.0.2",
45
51
  "gulp-bump": "^3.2.0",
46
52
  "gulp-clean": "^0.4.0",
@@ -49,15 +55,16 @@
49
55
  "gulp-sourcemaps": "3.0.0",
50
56
  "gulp-typescript": "5.0.1",
51
57
  "merge-stream": "^2.0.0",
52
- "mocha": "^8.4.0",
58
+ "mocha": "^9.1.2",
53
59
  "nyc": "^15.1.0",
60
+ "lodash": "^4.17.21",
54
61
  "reflect-metadata": "^0.1.13",
55
62
  "std-mocks": "^1.0.1",
56
- "ts-node": "^9.1.1",
63
+ "ts-node": "^10.2.1",
57
64
  "tslint": "^6.1.3",
58
- "typescript": "4.2.4"
65
+ "typescript": "4.4.3"
59
66
  },
60
- "dependencies": {
67
+ "peerDependencies": {
61
68
  "lodash": "^4.17.21"
62
69
  }
63
70
  }
package/shared.d.ts CHANGED
@@ -13,5 +13,8 @@ export { NotYetImplementedError } from './exceptions/NotYetImplementedError';
13
13
  export { NotSupportedError } from './exceptions/NotSupportedError';
14
14
  export { ClassUtils } from './utils/ClassUtils';
15
15
  export { CryptUtils } from './utils/CryptUtils';
16
- export { TreeUtils } from './utils/TreeUtils';
16
+ export { TreeUtils, WalkValues } from './utils/TreeUtils';
17
17
  export { JsonUtils } from './utils/JsonUtils';
18
+ export { Serializer } from './utils/Serializer';
19
+ export { LockFactory } from './locking/LockFactory';
20
+ export { Semaphore } from './locking/Semaphore';
package/shared.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JsonUtils = exports.TreeUtils = exports.CryptUtils = exports.ClassUtils = exports.NotSupportedError = exports.NotYetImplementedError = exports.TodoException = exports.NestedException = exports.Logger = exports.ConsoleLogger = exports.AbstractLogger = exports.MetadataStorage = exports.MetaArgs = exports.ISO8601 = exports.C_WARN = exports.C_TRACE = exports.C_INFO = exports.C_ERROR = exports.C_DEBUG = exports.C_CONSOLE = exports.__SOURCE__ = exports.C_DEFAULT = void 0;
3
+ exports.Semaphore = exports.LockFactory = exports.Serializer = exports.JsonUtils = exports.TreeUtils = exports.CryptUtils = exports.ClassUtils = exports.NotSupportedError = exports.NotYetImplementedError = exports.TodoException = exports.NestedException = exports.Logger = exports.ConsoleLogger = exports.AbstractLogger = exports.MetadataStorage = exports.MetaArgs = exports.ISO8601 = exports.C_WARN = exports.C_TRACE = exports.C_INFO = exports.C_ERROR = exports.C_DEBUG = exports.C_CONSOLE = exports.__SOURCE__ = exports.C_DEFAULT = void 0;
4
4
  var Constants_1 = require("./Constants");
5
5
  Object.defineProperty(exports, "C_DEFAULT", { enumerable: true, get: function () { return Constants_1.C_DEFAULT; } });
6
6
  Object.defineProperty(exports, "__SOURCE__", { enumerable: true, get: function () { return Constants_1.__SOURCE__; } });
@@ -37,5 +37,11 @@ var TreeUtils_1 = require("./utils/TreeUtils");
37
37
  Object.defineProperty(exports, "TreeUtils", { enumerable: true, get: function () { return TreeUtils_1.TreeUtils; } });
38
38
  var JsonUtils_1 = require("./utils/JsonUtils");
39
39
  Object.defineProperty(exports, "JsonUtils", { enumerable: true, get: function () { return JsonUtils_1.JsonUtils; } });
40
+ var Serializer_1 = require("./utils/Serializer");
41
+ Object.defineProperty(exports, "Serializer", { enumerable: true, get: function () { return Serializer_1.Serializer; } });
42
+ var LockFactory_1 = require("./locking/LockFactory");
43
+ Object.defineProperty(exports, "LockFactory", { enumerable: true, get: function () { return LockFactory_1.LockFactory; } });
44
+ var Semaphore_1 = require("./locking/Semaphore");
45
+ Object.defineProperty(exports, "Semaphore", { enumerable: true, get: function () { return Semaphore_1.Semaphore; } });
40
46
 
41
47
  //# sourceMappingURL=shared.js.map
package/shared.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared.ts"],"names":[],"mappings":";;;AAAA,yCAEqB;AADnB,sGAAA,SAAS,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,oGAAA,OAAO,OAAA;AAEtF,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AAEvB,2DAAwD;AAAhD,gHAAA,cAAc,OAAA;AACtB,yDAAsD;AAA9C,8GAAA,aAAa,OAAA;AAIrB,2CAAwC;AAAhC,gGAAA,MAAM,OAAA;AAEd,gEAA6D;AAArD,kHAAA,eAAe,OAAA;AACvB,4DAAyD;AAAjD,8GAAA,aAAa,OAAA;AACrB,8EAA2E;AAAnE,gIAAA,sBAAsB,OAAA;AAC9B,oEAAiE;AAAzD,sHAAA,iBAAiB,OAAA;AAEzB,iDAA8C;AAAtC,wGAAA,UAAU,OAAA;AAClB,iDAA8C;AAAtC,wGAAA,UAAU,OAAA;AAClB,+CAA4C;AAApC,sGAAA,SAAS,OAAA;AACjB,+CAA4C;AAApC,sGAAA,SAAS,OAAA","file":"shared.js","sourcesContent":["export {\n C_DEFAULT, __SOURCE__, C_CONSOLE, C_DEBUG, C_ERROR, C_INFO, C_TRACE, C_WARN, ISO8601, StringOrFunction\n} from './Constants';\nexport {MetaArgs} from './MetaArgs';\nexport {MetadataStorage} from './MetadataStorage';\n\nexport {AbstractLogger} from './logging/AbstractLogger';\nexport {ConsoleLogger} from './logging/ConsoleLogger';\nexport {ILoggerApi} from './logging/ILoggerApi';\nexport {ILoggerOptions} from './logging/ILoggerOptions';\nexport {ILogLevel} from './logging/ILogLevel';\nexport {Logger} from './logging/Logger';\n\nexport {NestedException} from './exceptions/NestedException';\nexport {TodoException} from './exceptions/TodoException';\nexport {NotYetImplementedError} from './exceptions/NotYetImplementedError';\nexport {NotSupportedError} from './exceptions/NotSupportedError';\n\nexport {ClassUtils} from './utils/ClassUtils';\nexport {CryptUtils} from './utils/CryptUtils';\nexport {TreeUtils} from './utils/TreeUtils';\nexport {JsonUtils} from './utils/JsonUtils';\n\n"],"sourceRoot":"."}
1
+ {"version":3,"sources":["../../../src/shared.ts"],"names":[],"mappings":";;;AAAA,yCAEqB;AADnB,sGAAA,SAAS,OAAA;AAAE,uGAAA,UAAU,OAAA;AAAE,sGAAA,SAAS,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,oGAAA,OAAO,OAAA;AAAE,mGAAA,MAAM,OAAA;AAAE,oGAAA,OAAO,OAAA;AAEtF,uCAAoC;AAA5B,oGAAA,QAAQ,OAAA;AAChB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AAEvB,2DAAwD;AAAhD,gHAAA,cAAc,OAAA;AACtB,yDAAsD;AAA9C,8GAAA,aAAa,OAAA;AAIrB,2CAAwC;AAAhC,gGAAA,MAAM,OAAA;AAEd,gEAA6D;AAArD,kHAAA,eAAe,OAAA;AACvB,4DAAyD;AAAjD,8GAAA,aAAa,OAAA;AACrB,8EAA2E;AAAnE,gIAAA,sBAAsB,OAAA;AAC9B,oEAAiE;AAAzD,sHAAA,iBAAiB,OAAA;AAEzB,iDAA8C;AAAtC,wGAAA,UAAU,OAAA;AAClB,iDAA8C;AAAtC,wGAAA,UAAU,OAAA;AAClB,+CAAwD;AAAhD,sGAAA,SAAS,OAAA;AACjB,+CAA4C;AAApC,sGAAA,SAAS,OAAA;AACjB,iDAA8C;AAAtC,wGAAA,UAAU,OAAA;AAElB,qDAAkD;AAA1C,0GAAA,WAAW,OAAA;AACnB,iDAA8C;AAAtC,sGAAA,SAAS,OAAA","file":"shared.js","sourcesContent":["export {\n C_DEFAULT, __SOURCE__, C_CONSOLE, C_DEBUG, C_ERROR, C_INFO, C_TRACE, C_WARN, ISO8601, StringOrFunction\n} from './Constants';\nexport {MetaArgs} from './MetaArgs';\nexport {MetadataStorage} from './MetadataStorage';\n\nexport {AbstractLogger} from './logging/AbstractLogger';\nexport {ConsoleLogger} from './logging/ConsoleLogger';\nexport {ILoggerApi} from './logging/ILoggerApi';\nexport {ILoggerOptions} from './logging/ILoggerOptions';\nexport {ILogLevel} from './logging/ILogLevel';\nexport {Logger} from './logging/Logger';\n\nexport {NestedException} from './exceptions/NestedException';\nexport {TodoException} from './exceptions/TodoException';\nexport {NotYetImplementedError} from './exceptions/NotYetImplementedError';\nexport {NotSupportedError} from './exceptions/NotSupportedError';\n\nexport {ClassUtils} from './utils/ClassUtils';\nexport {CryptUtils} from './utils/CryptUtils';\nexport {TreeUtils, WalkValues} from './utils/TreeUtils';\nexport {JsonUtils} from './utils/JsonUtils';\nexport {Serializer} from './utils/Serializer';\n\nexport {LockFactory} from './locking/LockFactory';\nexport {Semaphore} from './locking/Semaphore';\n\n"],"sourceRoot":"."}
@@ -0,0 +1,4 @@
1
+ export declare class ArrayUtils {
2
+ static merge(source: any, dest: any): any[];
3
+ private static mergeHandleArray;
4
+ }