@bitblit/ratchet-common 4.0.80-alpha

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 (220) hide show
  1. package/dist/cjs/2d/line-2d.js +2 -0
  2. package/dist/cjs/2d/plane-2d.js +2 -0
  3. package/dist/cjs/2d/point-2d.js +2 -0
  4. package/dist/cjs/2d/poly-line-2d.js +2 -0
  5. package/dist/cjs/2d/ratchet-2d.js +250 -0
  6. package/dist/cjs/build/build-information.js +2 -0
  7. package/dist/cjs/build/ratchet-common-info.js +18 -0
  8. package/dist/cjs/histogram/histogram-entry.js +2 -0
  9. package/dist/cjs/histogram/histogram.js +54 -0
  10. package/dist/cjs/index.js +74 -0
  11. package/dist/cjs/jwt/common-jwt-token.js +2 -0
  12. package/dist/cjs/jwt/expired-jwt-handling.js +9 -0
  13. package/dist/cjs/jwt/jwt-ratchet-like.js +2 -0
  14. package/dist/cjs/jwt/jwt-ratchet.js +164 -0
  15. package/dist/cjs/jwt/jwt-token-base.js +2 -0
  16. package/dist/cjs/lang/array-ratchet.js +87 -0
  17. package/dist/cjs/lang/base64-ratchet.js +49 -0
  18. package/dist/cjs/lang/boolean-ratchet.js +49 -0
  19. package/dist/cjs/lang/composite-last-success-provider.js +28 -0
  20. package/dist/cjs/lang/date-ratchet.js +33 -0
  21. package/dist/cjs/lang/duration-ratchet.js +46 -0
  22. package/dist/cjs/lang/enum-ratchet.js +34 -0
  23. package/dist/cjs/lang/error-ratchet.js +49 -0
  24. package/dist/cjs/lang/expiring-object.js +68 -0
  25. package/dist/cjs/lang/geolocation-ratchet.js +267 -0
  26. package/dist/cjs/lang/global-ratchet.js +48 -0
  27. package/dist/cjs/lang/key-value.js +6 -0
  28. package/dist/cjs/lang/last-success-provider.js +2 -0
  29. package/dist/cjs/lang/map-ratchet.js +168 -0
  30. package/dist/cjs/lang/no.js +8 -0
  31. package/dist/cjs/lang/number-ratchet.js +156 -0
  32. package/dist/cjs/lang/parsed-url.js +2 -0
  33. package/dist/cjs/lang/promise-ratchet.js +142 -0
  34. package/dist/cjs/lang/require-ratchet.js +60 -0
  35. package/dist/cjs/lang/stop-watch.js +117 -0
  36. package/dist/cjs/lang/string-ratchet.js +195 -0
  37. package/dist/cjs/lang/time-zone-ratchet.js +80 -0
  38. package/dist/cjs/lang/timeout-token.js +19 -0
  39. package/dist/cjs/lang/transform-ratchet.js +70 -0
  40. package/dist/cjs/logger/classic-single-line-log-message-formatter.js +18 -0
  41. package/dist/cjs/logger/log-message-builder.js +51 -0
  42. package/dist/cjs/logger/log-message-format-type.js +9 -0
  43. package/dist/cjs/logger/log-message-formatter.js +2 -0
  44. package/dist/cjs/logger/log-message-processor.js +2 -0
  45. package/dist/cjs/logger/log-message.js +2 -0
  46. package/dist/cjs/logger/log-snapshot.js +2 -0
  47. package/dist/cjs/logger/logger-instance.js +207 -0
  48. package/dist/cjs/logger/logger-level-name.js +12 -0
  49. package/dist/cjs/logger/logger-meta.js +2 -0
  50. package/dist/cjs/logger/logger-options.js +2 -0
  51. package/dist/cjs/logger/logger-output-function.js +9 -0
  52. package/dist/cjs/logger/logger-ring-buffer.js +76 -0
  53. package/dist/cjs/logger/logger-util.js +49 -0
  54. package/dist/cjs/logger/logger.js +139 -0
  55. package/dist/cjs/logger/none-log-message-formatter.js +9 -0
  56. package/dist/cjs/logger/structured-json-log-message-formatter.js +24 -0
  57. package/dist/cjs/network/browser-local-ip-provider.js +25 -0
  58. package/dist/cjs/network/fixed-local-ip-provider.js +12 -0
  59. package/dist/cjs/network/local-ip-provider.js +2 -0
  60. package/dist/cjs/network/network-ratchet.js +106 -0
  61. package/dist/cjs/stream/buffer-writable.js +20 -0
  62. package/dist/cjs/stream/stream-ratchet.js +72 -0
  63. package/dist/cjs/stream/string-writable.js +18 -0
  64. package/dist/cjs/third-party/google/google-recaptcha-ratchet.js +33 -0
  65. package/dist/cjs/third-party/twilio/twilio-ratchet.js +75 -0
  66. package/dist/cjs/transform/built-in-transforms.js +195 -0
  67. package/dist/cjs/transform/transform-rule.js +2 -0
  68. package/dist/cjs/tx/transaction-configuration.js +2 -0
  69. package/dist/cjs/tx/transaction-final-state.js +9 -0
  70. package/dist/cjs/tx/transaction-ratchet.js +80 -0
  71. package/dist/cjs/tx/transaction-result.js +2 -0
  72. package/dist/cjs/tx/transaction-step.js +2 -0
  73. package/dist/es/2d/line-2d.js +1 -0
  74. package/dist/es/2d/plane-2d.js +1 -0
  75. package/dist/es/2d/point-2d.js +1 -0
  76. package/dist/es/2d/poly-line-2d.js +1 -0
  77. package/dist/es/2d/ratchet-2d.js +245 -0
  78. package/dist/es/build/build-information.js +1 -0
  79. package/dist/es/build/ratchet-common-info.js +14 -0
  80. package/dist/es/histogram/histogram-entry.js +1 -0
  81. package/dist/es/histogram/histogram.js +50 -0
  82. package/dist/es/index.js +71 -0
  83. package/dist/es/jwt/common-jwt-token.js +1 -0
  84. package/dist/es/jwt/expired-jwt-handling.js +6 -0
  85. package/dist/es/jwt/jwt-ratchet-like.js +1 -0
  86. package/dist/es/jwt/jwt-ratchet.js +159 -0
  87. package/dist/es/jwt/jwt-token-base.js +1 -0
  88. package/dist/es/lang/array-ratchet.js +83 -0
  89. package/dist/es/lang/base64-ratchet.js +45 -0
  90. package/dist/es/lang/boolean-ratchet.js +45 -0
  91. package/dist/es/lang/composite-last-success-provider.js +24 -0
  92. package/dist/es/lang/date-ratchet.js +29 -0
  93. package/dist/es/lang/duration-ratchet.js +42 -0
  94. package/dist/es/lang/enum-ratchet.js +30 -0
  95. package/dist/es/lang/error-ratchet.js +44 -0
  96. package/dist/es/lang/expiring-object.js +63 -0
  97. package/dist/es/lang/geolocation-ratchet.js +263 -0
  98. package/dist/es/lang/global-ratchet.js +43 -0
  99. package/dist/es/lang/key-value.js +2 -0
  100. package/dist/es/lang/last-success-provider.js +1 -0
  101. package/dist/es/lang/map-ratchet.js +164 -0
  102. package/dist/es/lang/no.js +4 -0
  103. package/dist/es/lang/number-ratchet.js +152 -0
  104. package/dist/es/lang/parsed-url.js +1 -0
  105. package/dist/es/lang/promise-ratchet.js +138 -0
  106. package/dist/es/lang/require-ratchet.js +56 -0
  107. package/dist/es/lang/stop-watch.js +113 -0
  108. package/dist/es/lang/string-ratchet.js +191 -0
  109. package/dist/es/lang/time-zone-ratchet.js +76 -0
  110. package/dist/es/lang/timeout-token.js +15 -0
  111. package/dist/es/lang/transform-ratchet.js +66 -0
  112. package/dist/es/logger/classic-single-line-log-message-formatter.js +13 -0
  113. package/dist/es/logger/log-message-builder.js +47 -0
  114. package/dist/es/logger/log-message-format-type.js +6 -0
  115. package/dist/es/logger/log-message-formatter.js +1 -0
  116. package/dist/es/logger/log-message-processor.js +1 -0
  117. package/dist/es/logger/log-message.js +1 -0
  118. package/dist/es/logger/log-snapshot.js +1 -0
  119. package/dist/es/logger/logger-instance.js +201 -0
  120. package/dist/es/logger/logger-level-name.js +9 -0
  121. package/dist/es/logger/logger-meta.js +1 -0
  122. package/dist/es/logger/logger-options.js +1 -0
  123. package/dist/es/logger/logger-output-function.js +6 -0
  124. package/dist/es/logger/logger-ring-buffer.js +72 -0
  125. package/dist/es/logger/logger-util.js +44 -0
  126. package/dist/es/logger/logger.js +134 -0
  127. package/dist/es/logger/none-log-message-formatter.js +5 -0
  128. package/dist/es/logger/structured-json-log-message-formatter.js +19 -0
  129. package/dist/es/network/browser-local-ip-provider.js +21 -0
  130. package/dist/es/network/fixed-local-ip-provider.js +8 -0
  131. package/dist/es/network/local-ip-provider.js +1 -0
  132. package/dist/es/network/network-ratchet.js +102 -0
  133. package/dist/es/stream/buffer-writable.js +16 -0
  134. package/dist/es/stream/stream-ratchet.js +68 -0
  135. package/dist/es/stream/string-writable.js +14 -0
  136. package/dist/es/third-party/google/google-recaptcha-ratchet.js +28 -0
  137. package/dist/es/third-party/twilio/twilio-ratchet.js +70 -0
  138. package/dist/es/transform/built-in-transforms.js +191 -0
  139. package/dist/es/transform/transform-rule.js +1 -0
  140. package/dist/es/tx/transaction-configuration.js +1 -0
  141. package/dist/es/tx/transaction-final-state.js +6 -0
  142. package/dist/es/tx/transaction-ratchet.js +76 -0
  143. package/dist/es/tx/transaction-result.js +1 -0
  144. package/dist/es/tx/transaction-step.js +1 -0
  145. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  146. package/dist/tsconfig.es.tsbuildinfo +1 -0
  147. package/dist/tsconfig.types.tsbuildinfo +1 -0
  148. package/dist/types/2d/line-2d.d.ts +5 -0
  149. package/dist/types/2d/plane-2d.d.ts +6 -0
  150. package/dist/types/2d/point-2d.d.ts +4 -0
  151. package/dist/types/2d/poly-line-2d.d.ts +4 -0
  152. package/dist/types/2d/ratchet-2d.d.ts +37 -0
  153. package/dist/types/build/build-information.d.ts +8 -0
  154. package/dist/types/build/ratchet-common-info.d.ts +5 -0
  155. package/dist/types/histogram/histogram-entry.d.ts +4 -0
  156. package/dist/types/histogram/histogram.d.ts +15 -0
  157. package/dist/types/index.d.ts +74 -0
  158. package/dist/types/jwt/common-jwt-token.d.ts +17 -0
  159. package/dist/types/jwt/expired-jwt-handling.d.ts +5 -0
  160. package/dist/types/jwt/jwt-ratchet-like.d.ts +18 -0
  161. package/dist/types/jwt/jwt-ratchet.d.ts +39 -0
  162. package/dist/types/jwt/jwt-token-base.d.ts +13 -0
  163. package/dist/types/lang/array-ratchet.d.ts +30 -0
  164. package/dist/types/lang/base64-ratchet.d.ts +10 -0
  165. package/dist/types/lang/boolean-ratchet.d.ts +7 -0
  166. package/dist/types/lang/composite-last-success-provider.d.ts +8 -0
  167. package/dist/types/lang/date-ratchet.d.ts +11 -0
  168. package/dist/types/lang/duration-ratchet.d.ts +7 -0
  169. package/dist/types/lang/enum-ratchet.d.ts +12 -0
  170. package/dist/types/lang/error-ratchet.d.ts +6 -0
  171. package/dist/types/lang/expiring-object.d.ts +20 -0
  172. package/dist/types/lang/geolocation-ratchet.d.ts +40 -0
  173. package/dist/types/lang/global-ratchet.d.ts +6 -0
  174. package/dist/types/lang/key-value.d.ts +4 -0
  175. package/dist/types/lang/last-success-provider.d.ts +4 -0
  176. package/dist/types/lang/map-ratchet.d.ts +15 -0
  177. package/dist/types/lang/no.d.ts +3 -0
  178. package/dist/types/lang/number-ratchet.d.ts +20 -0
  179. package/dist/types/lang/parsed-url.d.ts +10 -0
  180. package/dist/types/lang/promise-ratchet.d.ts +32 -0
  181. package/dist/types/lang/require-ratchet.d.ts +11 -0
  182. package/dist/types/lang/stop-watch.d.ts +17 -0
  183. package/dist/types/lang/string-ratchet.d.ts +27 -0
  184. package/dist/types/lang/time-zone-ratchet.d.ts +50 -0
  185. package/dist/types/lang/timeout-token.d.ts +9 -0
  186. package/dist/types/lang/transform-ratchet.d.ts +7 -0
  187. package/dist/types/logger/classic-single-line-log-message-formatter.d.ts +6 -0
  188. package/dist/types/logger/log-message-builder.d.ts +14 -0
  189. package/dist/types/logger/log-message-format-type.d.ts +5 -0
  190. package/dist/types/logger/log-message-formatter.d.ts +5 -0
  191. package/dist/types/logger/log-message-processor.d.ts +5 -0
  192. package/dist/types/logger/log-message.d.ts +8 -0
  193. package/dist/types/logger/log-snapshot.d.ts +5 -0
  194. package/dist/types/logger/logger-instance.d.ts +46 -0
  195. package/dist/types/logger/logger-level-name.d.ts +8 -0
  196. package/dist/types/logger/logger-meta.d.ts +6 -0
  197. package/dist/types/logger/logger-options.d.ts +13 -0
  198. package/dist/types/logger/logger-output-function.d.ts +5 -0
  199. package/dist/types/logger/logger-ring-buffer.d.ts +18 -0
  200. package/dist/types/logger/logger-util.d.ts +8 -0
  201. package/dist/types/logger/logger.d.ts +52 -0
  202. package/dist/types/logger/none-log-message-formatter.d.ts +6 -0
  203. package/dist/types/logger/structured-json-log-message-formatter.d.ts +6 -0
  204. package/dist/types/network/browser-local-ip-provider.d.ts +7 -0
  205. package/dist/types/network/fixed-local-ip-provider.d.ts +6 -0
  206. package/dist/types/network/local-ip-provider.d.ts +4 -0
  207. package/dist/types/network/network-ratchet.d.ts +9 -0
  208. package/dist/types/stream/buffer-writable.d.ts +9 -0
  209. package/dist/types/stream/stream-ratchet.d.ts +12 -0
  210. package/dist/types/stream/string-writable.d.ts +8 -0
  211. package/dist/types/third-party/google/google-recaptcha-ratchet.d.ts +4 -0
  212. package/dist/types/third-party/twilio/twilio-ratchet.d.ts +15 -0
  213. package/dist/types/transform/built-in-transforms.d.ts +18 -0
  214. package/dist/types/transform/transform-rule.d.ts +3 -0
  215. package/dist/types/tx/transaction-configuration.d.ts +7 -0
  216. package/dist/types/tx/transaction-final-state.d.ts +5 -0
  217. package/dist/types/tx/transaction-ratchet.d.ts +6 -0
  218. package/dist/types/tx/transaction-result.d.ts +9 -0
  219. package/dist/types/tx/transaction-step.d.ts +5 -0
  220. package/package.json +65 -0
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClassicSingleLineLogMessageFormatter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const util_1 = tslib_1.__importDefault(require("util"));
6
+ class ClassicSingleLineLogMessageFormatter {
7
+ formatMessage(msg, meta) {
8
+ let tmp = null;
9
+ if (msg) {
10
+ tmp = '';
11
+ tmp += meta.options.trace ? meta.options.trace + ' ' : '';
12
+ tmp += '[' + msg.lvl + '] ';
13
+ tmp += util_1.default.format(msg.messageSource, ...msg.subsVars);
14
+ }
15
+ return tmp;
16
+ }
17
+ }
18
+ exports.ClassicSingleLineLogMessageFormatter = ClassicSingleLineLogMessageFormatter;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogMessageBuilder = void 0;
4
+ class LogMessageBuilder {
5
+ constructor(lvl, messageSource) {
6
+ if (!lvl) {
7
+ throw Error('Cannot set level to null/undefined');
8
+ }
9
+ this.wrapped = { lvl: lvl, timestamp: Date.now(), messageSource: messageSource };
10
+ }
11
+ clone() {
12
+ const rval = new LogMessageBuilder(this.wrapped.lvl, this.wrapped.messageSource);
13
+ rval.wrapped = Object.assign({}, this.wrapped);
14
+ return rval;
15
+ }
16
+ level(lvl) {
17
+ if (!lvl) {
18
+ throw Error('Cannot set level to null/undefined');
19
+ }
20
+ this.wrapped.lvl = lvl;
21
+ return this;
22
+ }
23
+ timestamp(val) {
24
+ if (!val) {
25
+ throw Error('Cannot set timestamp to null/undefined');
26
+ }
27
+ this.wrapped.timestamp = val;
28
+ return this;
29
+ }
30
+ messageSource(val) {
31
+ this.wrapped.messageSource = val;
32
+ return this;
33
+ }
34
+ subVars(val) {
35
+ this.wrapped.subsVars = val || [];
36
+ return this;
37
+ }
38
+ params(val) {
39
+ this.wrapped.params = val || {};
40
+ return this;
41
+ }
42
+ p(name, value) {
43
+ this.wrapped.params = this.wrapped.params || {};
44
+ this.wrapped.params[name] = value;
45
+ return this;
46
+ }
47
+ toMessage() {
48
+ return Object.assign({}, this.wrapped);
49
+ }
50
+ }
51
+ exports.LogMessageBuilder = LogMessageBuilder;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogMessageFormatType = void 0;
4
+ var LogMessageFormatType;
5
+ (function (LogMessageFormatType) {
6
+ LogMessageFormatType["ClassicSingleLine"] = "ClassicSingleLine";
7
+ LogMessageFormatType["StructuredJson"] = "StructuredJson";
8
+ LogMessageFormatType["None"] = "None";
9
+ })(LogMessageFormatType = exports.LogMessageFormatType || (exports.LogMessageFormatType = {}));
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoggerInstance = void 0;
4
+ const logger_ring_buffer_1 = require("./logger-ring-buffer");
5
+ const logger_level_name_1 = require("./logger-level-name");
6
+ const logger_util_1 = require("./logger-util");
7
+ const log_message_format_type_1 = require("./log-message-format-type");
8
+ const classic_single_line_log_message_formatter_1 = require("./classic-single-line-log-message-formatter");
9
+ const none_log_message_formatter_1 = require("./none-log-message-formatter");
10
+ const structured_json_log_message_formatter_1 = require("./structured-json-log-message-formatter");
11
+ const string_ratchet_1 = require("../lang/string-ratchet");
12
+ class LoggerInstance {
13
+ constructor(loggerInstanceName = 'default', inOptions) {
14
+ this.loggerInstanceName = loggerInstanceName;
15
+ this.options = inOptions;
16
+ }
17
+ addPreProcessor(proc) {
18
+ if (proc) {
19
+ this._options.preProcessors = this._options.preProcessors || [];
20
+ this._options.preProcessors.push(proc);
21
+ }
22
+ return Object.assign([], this._options.preProcessors);
23
+ }
24
+ get ringBuffer() {
25
+ return this._ringBuffer;
26
+ }
27
+ dumpConfigurationIntoLog() {
28
+ this.error('ERROR enabled');
29
+ this.warn('WARN enabled');
30
+ this.info('INFO enabled');
31
+ this.verbose('VERBOSE enabled');
32
+ this.debug('DEBUG enabled');
33
+ this.silly('SILLY enabled');
34
+ }
35
+ dumpOptionsIntoLog() {
36
+ var _a, _b;
37
+ this.info('Options: %j', this.options);
38
+ if ((_b = (_a = this === null || this === void 0 ? void 0 : this.options) === null || _a === void 0 ? void 0 : _a.preProcessors) === null || _b === void 0 ? void 0 : _b.length) {
39
+ const labels = this.options.preProcessors.map((p) => string_ratchet_1.StringRatchet.trimToNull(p.label()) || 'Unlabelled');
40
+ this.info('Preprocessors: %j', labels);
41
+ }
42
+ }
43
+ changeRingBufferSize(newSize) {
44
+ this._ringBuffer = null;
45
+ if (newSize) {
46
+ this._ringBuffer = new logger_ring_buffer_1.LoggerRingBuffer(newSize);
47
+ this._options.ringBufferSize = newSize;
48
+ }
49
+ }
50
+ updateTracePrefix(newValue) {
51
+ this._options.trace = newValue;
52
+ }
53
+ get options() {
54
+ return Object.assign({}, this._options);
55
+ }
56
+ set options(newOpts) {
57
+ this._options = Object.assign({}, newOpts);
58
+ if (this._options.ringBufferSize) {
59
+ this._ringBuffer = new logger_ring_buffer_1.LoggerRingBuffer(this._options.ringBufferSize);
60
+ }
61
+ switch (this._options.formatType) {
62
+ case log_message_format_type_1.LogMessageFormatType.None:
63
+ this._formatter = new none_log_message_formatter_1.NoneLogMessageFormatter();
64
+ break;
65
+ case log_message_format_type_1.LogMessageFormatType.StructuredJson:
66
+ this._formatter = new structured_json_log_message_formatter_1.StructuredJsonLogMessageFormatter();
67
+ break;
68
+ default:
69
+ this._formatter = new classic_single_line_log_message_formatter_1.ClassicSingleLineLogMessageFormatter();
70
+ break;
71
+ }
72
+ this._level = this._options.initialLevel;
73
+ this._handlerFunctionMap = logger_util_1.LoggerUtil.handlerFunctionMap(this._options.outputFunction);
74
+ const oldId = this._loggerMeta ? this._loggerMeta.loggerInstanceId : null;
75
+ this._loggerMeta = {
76
+ options: this._options,
77
+ loggerInstanceName: this.loggerInstanceName,
78
+ loggerInstanceId: oldId || string_ratchet_1.StringRatchet.createRandomHexString(8),
79
+ };
80
+ }
81
+ get level() {
82
+ return this._level;
83
+ }
84
+ set level(newLevel) {
85
+ if (!newLevel) {
86
+ throw new Error('Cannot set level to null/undefined');
87
+ }
88
+ this._level = newLevel;
89
+ }
90
+ consoleLogPassThru(level, ...input) {
91
+ if (logger_util_1.LoggerUtil.levelIsEnabled(level, this._level)) {
92
+ let passThruPrefix = this._options.trace || '';
93
+ passThruPrefix += '[' + level + '] ';
94
+ input.unshift(passThruPrefix);
95
+ const fn = this._handlerFunctionMap.get(level) || logger_util_1.LoggerUtil.defaultHandlerFunction;
96
+ fn(...input);
97
+ }
98
+ }
99
+ createLogMessage(level, params, format, ...input) {
100
+ const rval = {
101
+ lvl: level,
102
+ timestamp: Date.now(),
103
+ messageSource: format,
104
+ subsVars: input,
105
+ params: params,
106
+ };
107
+ return rval;
108
+ }
109
+ formatMessage(msg) {
110
+ const rval = msg ? this._formatter.formatMessage(msg, this._loggerMeta) : null;
111
+ return rval;
112
+ }
113
+ formatMessages(msgs) {
114
+ const rval = (msgs || []).map((m) => this.formatMessage(m)).filter((m) => !!m);
115
+ return rval;
116
+ }
117
+ recordMessageBuilder(msgBuild) {
118
+ return this.recordMessage(msgBuild.toMessage());
119
+ }
120
+ recordMessage(inMsg) {
121
+ var _a;
122
+ let rval = null;
123
+ if (logger_util_1.LoggerUtil.levelIsEnabled(inMsg.lvl, this._level)) {
124
+ let msg = Object.assign({}, inMsg);
125
+ if ((_a = this._options.preProcessors) === null || _a === void 0 ? void 0 : _a.length) {
126
+ for (let i = 0; i < this._options.preProcessors.length; i++) {
127
+ msg = this._options.preProcessors[i].process(msg);
128
+ }
129
+ }
130
+ rval = this.formatMessage(msg);
131
+ if (rval) {
132
+ const fn = this._handlerFunctionMap.get(msg.lvl) || logger_util_1.LoggerUtil.defaultHandlerFunction;
133
+ fn(rval);
134
+ if (this._ringBuffer) {
135
+ this._ringBuffer.addToRingBuffer(msg);
136
+ }
137
+ }
138
+ }
139
+ else {
140
+ }
141
+ return rval;
142
+ }
143
+ error(format, ...input) {
144
+ const msg = this.createLogMessage(logger_level_name_1.LoggerLevelName.error, {}, format, ...input);
145
+ return this.recordMessage(msg);
146
+ }
147
+ errorP(...input) {
148
+ this.consoleLogPassThru(logger_level_name_1.LoggerLevelName.error, ...input);
149
+ }
150
+ warn(format, ...input) {
151
+ const msg = this.createLogMessage(logger_level_name_1.LoggerLevelName.warn, {}, format, ...input);
152
+ return this.recordMessage(msg);
153
+ }
154
+ warnP(...input) {
155
+ this.consoleLogPassThru(logger_level_name_1.LoggerLevelName.warn, ...input);
156
+ }
157
+ info(format, ...input) {
158
+ const msg = this.createLogMessage(logger_level_name_1.LoggerLevelName.info, {}, format, ...input);
159
+ return this.recordMessage(msg);
160
+ }
161
+ infoP(...input) {
162
+ this.consoleLogPassThru(logger_level_name_1.LoggerLevelName.info, ...input);
163
+ }
164
+ verbose(format, ...input) {
165
+ const msg = this.createLogMessage(logger_level_name_1.LoggerLevelName.verbose, {}, format, ...input);
166
+ return this.recordMessage(msg);
167
+ }
168
+ verboseP(...input) {
169
+ this.consoleLogPassThru(logger_level_name_1.LoggerLevelName.verbose, ...input);
170
+ }
171
+ debug(format, ...input) {
172
+ const msg = this.createLogMessage(logger_level_name_1.LoggerLevelName.debug, {}, format, ...input);
173
+ return this.recordMessage(msg);
174
+ }
175
+ debugP(...input) {
176
+ this.consoleLogPassThru(logger_level_name_1.LoggerLevelName.debug, ...input);
177
+ }
178
+ silly(format, ...input) {
179
+ const msg = this.createLogMessage(logger_level_name_1.LoggerLevelName.silly, {}, format, ...input);
180
+ return this.recordMessage(msg);
181
+ }
182
+ sillyP(...input) {
183
+ this.consoleLogPassThru(logger_level_name_1.LoggerLevelName.silly, ...input);
184
+ }
185
+ logByLevel(level, format, ...input) {
186
+ const msg = this.createLogMessage(level, {}, format, ...input);
187
+ this.recordMessage(msg);
188
+ }
189
+ importMessages(msgs, prefixIn = '', addTimestamp = true) {
190
+ const prefix = prefixIn || '';
191
+ if (msgs && msgs.length > 0) {
192
+ this.silly('Received import data : %d msgs', msgs.length);
193
+ msgs.forEach((m) => {
194
+ if (m.messageSource) {
195
+ let mOut = prefix;
196
+ if (addTimestamp) {
197
+ const ts = String(new Date()).substring(15, 24);
198
+ mOut += ' (' + ts + ') : ';
199
+ mOut += m.messageSource;
200
+ }
201
+ this.logByLevel(m.lvl, mOut);
202
+ }
203
+ });
204
+ }
205
+ }
206
+ }
207
+ exports.LoggerInstance = LoggerInstance;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoggerLevelName = void 0;
4
+ var LoggerLevelName;
5
+ (function (LoggerLevelName) {
6
+ LoggerLevelName["error"] = "error";
7
+ LoggerLevelName["warn"] = "warn";
8
+ LoggerLevelName["info"] = "info";
9
+ LoggerLevelName["verbose"] = "verbose";
10
+ LoggerLevelName["debug"] = "debug";
11
+ LoggerLevelName["silly"] = "silly";
12
+ })(LoggerLevelName = exports.LoggerLevelName || (exports.LoggerLevelName = {}));
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoggerOutputFunction = void 0;
4
+ var LoggerOutputFunction;
5
+ (function (LoggerOutputFunction) {
6
+ LoggerOutputFunction["Console"] = "Console";
7
+ LoggerOutputFunction["ConsoleNoDebug"] = "ConsoleNoDebug";
8
+ LoggerOutputFunction["StdOut"] = "StdOut";
9
+ })(LoggerOutputFunction = exports.LoggerOutputFunction || (exports.LoggerOutputFunction = {}));
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoggerRingBuffer = void 0;
4
+ const logger_1 = require("./logger");
5
+ const logger_level_name_1 = require("./logger-level-name");
6
+ class LoggerRingBuffer {
7
+ constructor(size) {
8
+ this._lastLogMessage = { messageSource: 'No message yet', timestamp: new Date().getTime(), lvl: logger_level_name_1.LoggerLevelName.info };
9
+ this._buffer = [];
10
+ this._bufferIdx = 0;
11
+ this._lastSnapshotIdx = 0;
12
+ if (!size) {
13
+ throw new Error('Cannot create ring buffer of size 0');
14
+ }
15
+ this._bufferSize = size;
16
+ }
17
+ get currentIndex() {
18
+ return this._bufferIdx;
19
+ }
20
+ get lastSnapshotIdx() {
21
+ return this._lastSnapshotIdx;
22
+ }
23
+ set bufferSize(newSize) {
24
+ if (!newSize) {
25
+ throw new Error('Cannot create ring buffer of size 0');
26
+ }
27
+ this._bufferSize = newSize;
28
+ this.clearRingBuffer();
29
+ }
30
+ getMessages(inStartFrom = null, clear = false, reverseSort = false) {
31
+ let rval = null;
32
+ if (this._bufferIdx < this._bufferSize) {
33
+ const start = inStartFrom == null ? 0 : inStartFrom;
34
+ rval = this._buffer.slice(start, this._bufferIdx);
35
+ }
36
+ else {
37
+ rval = [];
38
+ const firstIdx = this._bufferIdx - this._bufferSize;
39
+ const startFrom = inStartFrom ? Math.max(inStartFrom, firstIdx) : firstIdx;
40
+ for (let i = startFrom; i < this._bufferIdx; i++) {
41
+ rval.push(this._buffer[i % this._bufferSize]);
42
+ }
43
+ }
44
+ if (clear) {
45
+ this.clearRingBuffer();
46
+ }
47
+ if (reverseSort) {
48
+ rval = rval.reverse();
49
+ }
50
+ return rval;
51
+ }
52
+ takeSnapshot() {
53
+ const trailingEdge = Math.max(0, this._bufferIdx - this._bufferSize);
54
+ const rval = {
55
+ messages: logger_1.Logger.getMessages(this._lastSnapshotIdx),
56
+ logMessagesTruncated: Math.max(0, trailingEdge - this._lastSnapshotIdx),
57
+ };
58
+ this._lastSnapshotIdx = this._bufferIdx;
59
+ return rval;
60
+ }
61
+ getLastLogMessage() {
62
+ return Object.assign({}, this._lastLogMessage);
63
+ }
64
+ clearRingBuffer() {
65
+ this._buffer = [];
66
+ this._bufferIdx = 0;
67
+ this._lastSnapshotIdx = 0;
68
+ logger_1.Logger.info('Cleared ring buffer (size is now %d)', this._bufferSize);
69
+ }
70
+ addToRingBuffer(newMsg) {
71
+ this._lastLogMessage = newMsg;
72
+ this._buffer[this._bufferIdx % this._bufferSize] = newMsg;
73
+ this._bufferIdx++;
74
+ }
75
+ }
76
+ exports.LoggerRingBuffer = LoggerRingBuffer;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LoggerUtil = void 0;
4
+ const logger_level_name_1 = require("./logger-level-name");
5
+ const logger_output_function_1 = require("./logger-output-function");
6
+ class LoggerUtil {
7
+ static handlerFunctionMap(outputFn = logger_output_function_1.LoggerOutputFunction.Console) {
8
+ var _a;
9
+ const output = new Map();
10
+ if (outputFn === logger_output_function_1.LoggerOutputFunction.StdOut) {
11
+ if (!((_a = process === null || process === void 0 ? void 0 : process.stdout) === null || _a === void 0 ? void 0 : _a.write)) {
12
+ throw new Error('Cannot use standard out - process.stdout.write not found');
13
+ }
14
+ const myStdOut = (chunk, cb) => process.stdout.write(chunk, 'utf-8', cb);
15
+ output.set(logger_level_name_1.LoggerLevelName.error, myStdOut);
16
+ output.set(logger_level_name_1.LoggerLevelName.warn, myStdOut);
17
+ output.set(logger_level_name_1.LoggerLevelName.info, myStdOut);
18
+ output.set(logger_level_name_1.LoggerLevelName.verbose, myStdOut);
19
+ output.set(logger_level_name_1.LoggerLevelName.debug, myStdOut);
20
+ output.set(logger_level_name_1.LoggerLevelName.silly, myStdOut);
21
+ }
22
+ else {
23
+ output.set(logger_level_name_1.LoggerLevelName.error, console.error);
24
+ output.set(logger_level_name_1.LoggerLevelName.warn, console.warn);
25
+ output.set(logger_level_name_1.LoggerLevelName.info, console.info);
26
+ output.set(logger_level_name_1.LoggerLevelName.verbose, outputFn === logger_output_function_1.LoggerOutputFunction.ConsoleNoDebug ? console.log : console.debug);
27
+ output.set(logger_level_name_1.LoggerLevelName.debug, outputFn === logger_output_function_1.LoggerOutputFunction.ConsoleNoDebug ? console.log : console.debug);
28
+ output.set(logger_level_name_1.LoggerLevelName.silly, outputFn === logger_output_function_1.LoggerOutputFunction.ConsoleNoDebug ? console.log : console.debug);
29
+ }
30
+ return output;
31
+ }
32
+ static defaultHandlerFunction() {
33
+ return console.info;
34
+ }
35
+ static levelIsEnabled(targetLevel, currentEnabled) {
36
+ const idxTarget = LoggerUtil.LOG_LEVELS_IN_ORDER.indexOf(targetLevel);
37
+ const lvl = LoggerUtil.LOG_LEVELS_IN_ORDER.indexOf(currentEnabled);
38
+ return idxTarget > -1 && lvl > -1 && lvl >= idxTarget;
39
+ }
40
+ }
41
+ exports.LoggerUtil = LoggerUtil;
42
+ LoggerUtil.LOG_LEVELS_IN_ORDER = [
43
+ logger_level_name_1.LoggerLevelName.error,
44
+ logger_level_name_1.LoggerLevelName.warn,
45
+ logger_level_name_1.LoggerLevelName.info,
46
+ logger_level_name_1.LoggerLevelName.verbose,
47
+ logger_level_name_1.LoggerLevelName.debug,
48
+ logger_level_name_1.LoggerLevelName.silly,
49
+ ];
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Logger = void 0;
4
+ const logger_instance_1 = require("./logger-instance");
5
+ const log_message_format_type_1 = require("./log-message-format-type");
6
+ const logger_level_name_1 = require("./logger-level-name");
7
+ const logger_output_function_1 = require("./logger-output-function");
8
+ class Logger {
9
+ static applyDefaultsToOptions(input) {
10
+ var _a, _b, _c, _d, _e, _f;
11
+ const rval = input || {};
12
+ rval.initialLevel = (_a = rval.initialLevel) !== null && _a !== void 0 ? _a : Logger.DEFAULT_OPTIONS.initialLevel;
13
+ rval.formatType = (_b = rval.formatType) !== null && _b !== void 0 ? _b : Logger.DEFAULT_OPTIONS.formatType;
14
+ rval.trace = (_c = rval.trace) !== null && _c !== void 0 ? _c : Logger.DEFAULT_OPTIONS.trace;
15
+ rval.globalVars = (_d = rval.globalVars) !== null && _d !== void 0 ? _d : Logger.DEFAULT_OPTIONS.globalVars;
16
+ rval.outputFunction = (_e = rval.outputFunction) !== null && _e !== void 0 ? _e : Logger.DEFAULT_OPTIONS.outputFunction;
17
+ rval.ringBufferSize = (_f = rval.ringBufferSize) !== null && _f !== void 0 ? _f : Logger.DEFAULT_OPTIONS.ringBufferSize;
18
+ return rval;
19
+ }
20
+ static changeDefaultOptions(input, retroactive) {
21
+ if (!input || !input.initialLevel || !input.formatType) {
22
+ throw new Error('Default options must be non-null, and provide initial level and format type');
23
+ }
24
+ Logger.DEFAULT_OPTIONS = Object.assign({}, input);
25
+ if (retroactive) {
26
+ Array.from(Logger.LOGGER_INSTANCES.values()).forEach((li) => (li.options = input));
27
+ }
28
+ }
29
+ static getLogger(loggerName = 'default', inOptions) {
30
+ let inst = Logger.LOGGER_INSTANCES.get(loggerName);
31
+ if (!inst) {
32
+ const options = Logger.applyDefaultsToOptions(inOptions);
33
+ inst = new logger_instance_1.LoggerInstance(loggerName, options);
34
+ Logger.LOGGER_INSTANCES.set(loggerName, inst);
35
+ }
36
+ return inst;
37
+ }
38
+ static recordMessageBuilder(msgBuild) {
39
+ return Logger.getLogger().recordMessageBuilder(msgBuild);
40
+ }
41
+ static recordMessage(msg) {
42
+ return Logger.getLogger().recordMessage(msg);
43
+ }
44
+ static formatMessages(msgs) {
45
+ return Logger.getLogger().formatMessages(msgs);
46
+ }
47
+ static updateTracePrefix(newValue) {
48
+ return Logger.getLogger().updateTracePrefix(newValue);
49
+ }
50
+ static changeRingBufferSize(newValue) {
51
+ return Logger.getLogger().changeRingBufferSize(newValue);
52
+ }
53
+ static getRingBuffer() {
54
+ return Logger.getLogger().ringBuffer;
55
+ }
56
+ static dumpConfigurationIntoLog() {
57
+ return Logger.getLogger().dumpConfigurationIntoLog();
58
+ }
59
+ static dumpOptionsIntoLog() {
60
+ return Logger.getLogger().dumpOptionsIntoLog();
61
+ }
62
+ static getLevel() {
63
+ return Logger.getLogger().level;
64
+ }
65
+ static setLevel(newLevel) {
66
+ Logger.getLogger().level = newLevel;
67
+ }
68
+ static getOptions() {
69
+ return Logger.getLogger().options;
70
+ }
71
+ static getMessages(inStartFrom = null, clear = false, reverseSort = false) {
72
+ const buf = Logger.getLogger().ringBuffer;
73
+ return buf ? buf.getMessages(inStartFrom, clear, reverseSort) : null;
74
+ }
75
+ static consoleLogPassThru(level, ...input) {
76
+ return Logger.getLogger().consoleLogPassThru(level, ...input);
77
+ }
78
+ static error(format, ...input) {
79
+ return Logger.getLogger().error(format, ...input);
80
+ }
81
+ static errorP(...input) {
82
+ return Logger.getLogger().errorP(...input);
83
+ }
84
+ static warn(format, ...input) {
85
+ return Logger.getLogger().warn(format, ...input);
86
+ }
87
+ static warnP(...input) {
88
+ return Logger.getLogger().warnP(...input);
89
+ }
90
+ static info(format, ...input) {
91
+ return Logger.getLogger().info(format, ...input);
92
+ }
93
+ static infoP(...input) {
94
+ return Logger.getLogger().infoP(...input);
95
+ }
96
+ static verbose(format, ...input) {
97
+ return Logger.getLogger().verbose(format, ...input);
98
+ }
99
+ static verboseP(...input) {
100
+ return Logger.getLogger().verboseP(...input);
101
+ }
102
+ static debug(format, ...input) {
103
+ return Logger.getLogger().debug(format, ...input);
104
+ }
105
+ static debugP(...input) {
106
+ return Logger.getLogger().debugP(...input);
107
+ }
108
+ static silly(format, ...input) {
109
+ return Logger.getLogger().silly(format, ...input);
110
+ }
111
+ static sillyP(...input) {
112
+ return Logger.getLogger().sillyP(...input);
113
+ }
114
+ static takeSnapshot() {
115
+ const buf = Logger.getLogger().ringBuffer;
116
+ return buf ? buf.takeSnapshot() : null;
117
+ }
118
+ static logByLevel(level, format, ...input) {
119
+ return Logger.getLogger().logByLevel(level, format, ...input);
120
+ }
121
+ static importMessages(msgs, prefixIn = '', addTimestamp = true) {
122
+ return Logger.getLogger().importMessages(msgs, prefixIn, addTimestamp);
123
+ }
124
+ static getLastLogMessage() {
125
+ const buf = Logger.getLogger().ringBuffer;
126
+ return buf ? buf.getLastLogMessage() : null;
127
+ }
128
+ }
129
+ exports.Logger = Logger;
130
+ Logger.LOGGER_INSTANCES = new Map();
131
+ Logger.DEFAULT_OPTIONS = {
132
+ initialLevel: logger_level_name_1.LoggerLevelName.info,
133
+ formatType: log_message_format_type_1.LogMessageFormatType.ClassicSingleLine,
134
+ trace: null,
135
+ globalVars: {},
136
+ outputFunction: logger_output_function_1.LoggerOutputFunction.Console,
137
+ ringBufferSize: 0,
138
+ preProcessors: [],
139
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoneLogMessageFormatter = void 0;
4
+ class NoneLogMessageFormatter {
5
+ formatMessage(msg, meta) {
6
+ return null;
7
+ }
8
+ }
9
+ exports.NoneLogMessageFormatter = NoneLogMessageFormatter;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StructuredJsonLogMessageFormatter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const util_1 = tslib_1.__importDefault(require("util"));
6
+ class StructuredJsonLogMessageFormatter {
7
+ formatMessage(msg, meta) {
8
+ let rval = null;
9
+ if (msg) {
10
+ const tmp = Object.assign({}, meta.options.globalVars || {}, msg.params || {});
11
+ tmp['msg'] = util_1.default.format(msg.messageSource, ...msg.subsVars);
12
+ tmp['utcDateTime'] = new Date(msg.timestamp).toISOString();
13
+ tmp['logLevel'] = msg.lvl;
14
+ if (meta.options.trace) {
15
+ tmp['trace'] = meta.options.trace;
16
+ }
17
+ tmp['logName'] = meta.loggerInstanceName;
18
+ tmp['logId'] = meta.loggerInstanceId;
19
+ rval = JSON.stringify(tmp) + '\n';
20
+ }
21
+ return rval;
22
+ }
23
+ }
24
+ exports.StructuredJsonLogMessageFormatter = StructuredJsonLogMessageFormatter;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserLocalIpProvider = void 0;
4
+ const network_ratchet_1 = require("./network-ratchet");
5
+ const logger_1 = require("../logger/logger");
6
+ class BrowserLocalIpProvider {
7
+ constructor() {
8
+ this.currentIp = 'UNSET';
9
+ network_ratchet_1.NetworkRatchet.findLocalIp(false)
10
+ .then((result) => {
11
+ logger_1.Logger.info('Setting local IP to %s', result);
12
+ this.currentIp = result;
13
+ })
14
+ .catch((err) => {
15
+ logger_1.Logger.warn('Unable to set current IP - leaving as UNSET : %s', err);
16
+ });
17
+ }
18
+ ready() {
19
+ return this.currentIp !== 'UNSET';
20
+ }
21
+ currentLocalIpAddress() {
22
+ return this.currentIp;
23
+ }
24
+ }
25
+ exports.BrowserLocalIpProvider = BrowserLocalIpProvider;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FixedLocalIpProvider = void 0;
4
+ class FixedLocalIpProvider {
5
+ constructor(fixed) {
6
+ this.fixed = fixed;
7
+ }
8
+ currentLocalIpAddress() {
9
+ return this.fixed;
10
+ }
11
+ }
12
+ exports.FixedLocalIpProvider = FixedLocalIpProvider;