@bitblit/ratchet-common 4.0.128-alpha → 4.0.130-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 (218) hide show
  1. package/lib/2d/line-2d.js +2 -0
  2. package/lib/2d/line-2d.js.map +1 -0
  3. package/lib/2d/plane-2d.js +2 -0
  4. package/lib/2d/plane-2d.js.map +1 -0
  5. package/lib/2d/point-2d.js +2 -0
  6. package/lib/2d/point-2d.js.map +1 -0
  7. package/lib/2d/poly-line-2d.js +2 -0
  8. package/lib/2d/poly-line-2d.js.map +1 -0
  9. package/lib/2d/ratchet-2d.js +246 -0
  10. package/lib/2d/ratchet-2d.js.map +1 -0
  11. package/lib/2d/ratchet-2d.spec.js +118 -0
  12. package/lib/2d/ratchet-2d.spec.js.map +1 -0
  13. package/lib/build/build-information.js +2 -0
  14. package/lib/build/build-information.js.map +1 -0
  15. package/lib/build/ratchet-common-info.js +15 -0
  16. package/lib/build/ratchet-common-info.js.map +1 -0
  17. package/lib/histogram/histogram-entry.js +2 -0
  18. package/lib/histogram/histogram-entry.js.map +1 -0
  19. package/lib/histogram/histogram.js +49 -0
  20. package/lib/histogram/histogram.js.map +1 -0
  21. package/lib/histogram/histogram.spec.js +20 -0
  22. package/lib/histogram/histogram.spec.js.map +1 -0
  23. package/lib/index.js +74 -0
  24. package/lib/index.js.map +1 -0
  25. package/lib/jwt/common-jwt-token.js +2 -0
  26. package/lib/jwt/common-jwt-token.js.map +1 -0
  27. package/lib/jwt/expired-jwt-handling.js +7 -0
  28. package/lib/jwt/expired-jwt-handling.js.map +1 -0
  29. package/lib/jwt/jwt-ratchet-like.js +2 -0
  30. package/lib/jwt/jwt-ratchet-like.js.map +1 -0
  31. package/lib/jwt/jwt-ratchet.js +166 -0
  32. package/lib/jwt/jwt-ratchet.js.map +1 -0
  33. package/lib/jwt/jwt-ratchet.spec.js +50 -0
  34. package/lib/jwt/jwt-ratchet.spec.js.map +1 -0
  35. package/lib/jwt/jwt-token-base.js +2 -0
  36. package/lib/jwt/jwt-token-base.js.map +1 -0
  37. package/lib/lang/array-ratchet.js +84 -0
  38. package/lib/lang/array-ratchet.js.map +1 -0
  39. package/lib/lang/array-ratchet.spec.js +69 -0
  40. package/lib/lang/array-ratchet.spec.js.map +1 -0
  41. package/lib/lang/base64-ratchet.d.ts +1 -1
  42. package/lib/lang/base64-ratchet.js +46 -0
  43. package/lib/lang/base64-ratchet.js.map +1 -0
  44. package/lib/lang/base64-ratchet.spec.js +29 -0
  45. package/lib/lang/base64-ratchet.spec.js.map +1 -0
  46. package/lib/lang/boolean-ratchet.js +46 -0
  47. package/lib/lang/boolean-ratchet.js.map +1 -0
  48. package/lib/lang/boolean-ratchet.spec.js +82 -0
  49. package/lib/lang/boolean-ratchet.spec.js.map +1 -0
  50. package/lib/lang/composite-last-success-provider.js +27 -0
  51. package/lib/lang/composite-last-success-provider.js.map +1 -0
  52. package/lib/lang/composite-last-success-provider.spec.js +27 -0
  53. package/lib/lang/composite-last-success-provider.spec.js.map +1 -0
  54. package/lib/lang/date-ratchet.js +31 -0
  55. package/lib/lang/date-ratchet.js.map +1 -0
  56. package/lib/lang/date-ratchet.spec.js +22 -0
  57. package/lib/lang/date-ratchet.spec.js.map +1 -0
  58. package/lib/lang/duration-ratchet.js +43 -0
  59. package/lib/lang/duration-ratchet.js.map +1 -0
  60. package/lib/lang/duration-ratchet.spec.js +40 -0
  61. package/lib/lang/duration-ratchet.spec.js.map +1 -0
  62. package/lib/lang/enum-ratchet.js +31 -0
  63. package/lib/lang/enum-ratchet.js.map +1 -0
  64. package/lib/lang/enum-ratchet.spec.js +32 -0
  65. package/lib/lang/enum-ratchet.spec.js.map +1 -0
  66. package/lib/lang/error-ratchet.js +45 -0
  67. package/lib/lang/error-ratchet.js.map +1 -0
  68. package/lib/lang/error-ratchet.spec.js +21 -0
  69. package/lib/lang/error-ratchet.spec.js.map +1 -0
  70. package/lib/lang/esm-ratchet.js +18 -0
  71. package/lib/lang/esm-ratchet.js.map +1 -0
  72. package/lib/lang/expiring-object.js +73 -0
  73. package/lib/lang/expiring-object.js.map +1 -0
  74. package/lib/lang/expiring-object.spec.js +52 -0
  75. package/lib/lang/expiring-object.spec.js.map +1 -0
  76. package/lib/lang/geolocation-ratchet.js +264 -0
  77. package/lib/lang/geolocation-ratchet.js.map +1 -0
  78. package/lib/lang/geolocation-ratchet.spec.js +75 -0
  79. package/lib/lang/geolocation-ratchet.spec.js.map +1 -0
  80. package/lib/lang/global-ratchet.js +44 -0
  81. package/lib/lang/global-ratchet.js.map +1 -0
  82. package/lib/lang/global-ratchet.spec.js +15 -0
  83. package/lib/lang/global-ratchet.spec.js.map +1 -0
  84. package/lib/lang/key-value.js +5 -0
  85. package/lib/lang/key-value.js.map +1 -0
  86. package/lib/lang/last-success-provider.js +2 -0
  87. package/lib/lang/last-success-provider.js.map +1 -0
  88. package/lib/lang/map-ratchet.js +165 -0
  89. package/lib/lang/map-ratchet.js.map +1 -0
  90. package/lib/lang/map-ratchet.spec.js +91 -0
  91. package/lib/lang/map-ratchet.spec.js.map +1 -0
  92. package/lib/lang/no.js +5 -0
  93. package/lib/lang/no.js.map +1 -0
  94. package/lib/lang/no.spec.js +8 -0
  95. package/lib/lang/no.spec.js.map +1 -0
  96. package/lib/lang/number-ratchet.js +157 -0
  97. package/lib/lang/number-ratchet.js.map +1 -0
  98. package/lib/lang/number-ratchet.spec.js +119 -0
  99. package/lib/lang/number-ratchet.spec.js.map +1 -0
  100. package/lib/lang/parsed-url.js +2 -0
  101. package/lib/lang/parsed-url.js.map +1 -0
  102. package/lib/lang/promise-ratchet.js +139 -0
  103. package/lib/lang/promise-ratchet.js.map +1 -0
  104. package/lib/lang/promise-ratchet.spec.js +75 -0
  105. package/lib/lang/promise-ratchet.spec.js.map +1 -0
  106. package/lib/lang/require-ratchet.js +56 -0
  107. package/lib/lang/require-ratchet.js.map +1 -0
  108. package/lib/lang/require-ratchet.spec.js +81 -0
  109. package/lib/lang/require-ratchet.spec.js.map +1 -0
  110. package/lib/lang/stop-watch.js +115 -0
  111. package/lib/lang/stop-watch.js.map +1 -0
  112. package/lib/lang/string-ratchet.js +203 -0
  113. package/lib/lang/string-ratchet.js.map +1 -0
  114. package/lib/lang/string-ratchet.spec.js +159 -0
  115. package/lib/lang/string-ratchet.spec.js.map +1 -0
  116. package/lib/lang/time-zone-ratchet.js +79 -0
  117. package/lib/lang/time-zone-ratchet.js.map +1 -0
  118. package/lib/lang/time-zone-ratchet.spec.js +41 -0
  119. package/lib/lang/time-zone-ratchet.spec.js.map +1 -0
  120. package/lib/lang/timeout-token.js +18 -0
  121. package/lib/lang/timeout-token.js.map +1 -0
  122. package/lib/lang/timeout-token.spec.js +10 -0
  123. package/lib/lang/timeout-token.spec.js.map +1 -0
  124. package/lib/lang/transform-ratchet.js +67 -0
  125. package/lib/lang/transform-ratchet.js.map +1 -0
  126. package/lib/lang/transform-ratchet.spec.js +119 -0
  127. package/lib/lang/transform-ratchet.spec.js.map +1 -0
  128. package/lib/logger/classic-single-line-log-message-formatter.js +14 -0
  129. package/lib/logger/classic-single-line-log-message-formatter.js.map +1 -0
  130. package/lib/logger/log-message-builder.js +49 -0
  131. package/lib/logger/log-message-builder.js.map +1 -0
  132. package/lib/logger/log-message-format-type.js +7 -0
  133. package/lib/logger/log-message-format-type.js.map +1 -0
  134. package/lib/logger/log-message-formatter.js +2 -0
  135. package/lib/logger/log-message-formatter.js.map +1 -0
  136. package/lib/logger/log-message-processor.js +2 -0
  137. package/lib/logger/log-message-processor.js.map +1 -0
  138. package/lib/logger/log-message.js +2 -0
  139. package/lib/logger/log-message.js.map +1 -0
  140. package/lib/logger/log-snapshot.js +2 -0
  141. package/lib/logger/log-snapshot.js.map +1 -0
  142. package/lib/logger/logger-instance.js +209 -0
  143. package/lib/logger/logger-instance.js.map +1 -0
  144. package/lib/logger/logger-level-name.js +10 -0
  145. package/lib/logger/logger-level-name.js.map +1 -0
  146. package/lib/logger/logger-meta.js +2 -0
  147. package/lib/logger/logger-meta.js.map +1 -0
  148. package/lib/logger/logger-options.js +2 -0
  149. package/lib/logger/logger-options.js.map +1 -0
  150. package/lib/logger/logger-output-function.js +7 -0
  151. package/lib/logger/logger-output-function.js.map +1 -0
  152. package/lib/logger/logger-ring-buffer.js +72 -0
  153. package/lib/logger/logger-ring-buffer.js.map +1 -0
  154. package/lib/logger/logger-util.js +46 -0
  155. package/lib/logger/logger-util.js.map +1 -0
  156. package/lib/logger/logger-util.spec.js +10 -0
  157. package/lib/logger/logger-util.spec.js.map +1 -0
  158. package/lib/logger/logger.js +136 -0
  159. package/lib/logger/logger.js.map +1 -0
  160. package/lib/logger/logger.spec.js +135 -0
  161. package/lib/logger/logger.spec.js.map +1 -0
  162. package/lib/logger/none-log-message-formatter.js +6 -0
  163. package/lib/logger/none-log-message-formatter.js.map +1 -0
  164. package/lib/logger/structured-json-log-message-formatter.js +20 -0
  165. package/lib/logger/structured-json-log-message-formatter.js.map +1 -0
  166. package/lib/network/browser-local-ip-provider.js +22 -0
  167. package/lib/network/browser-local-ip-provider.js.map +1 -0
  168. package/lib/network/browser-local-ip-provider.spec.js +17 -0
  169. package/lib/network/browser-local-ip-provider.spec.js.map +1 -0
  170. package/lib/network/fixed-local-ip-provider.js +10 -0
  171. package/lib/network/fixed-local-ip-provider.js.map +1 -0
  172. package/lib/network/local-ip-provider.js +2 -0
  173. package/lib/network/local-ip-provider.js.map +1 -0
  174. package/lib/network/network-ratchet.js +104 -0
  175. package/lib/network/network-ratchet.js.map +1 -0
  176. package/lib/network/network-ratchet.spec.js +14 -0
  177. package/lib/network/network-ratchet.spec.js.map +1 -0
  178. package/lib/stream/buffer-writable.d.ts +2 -2
  179. package/lib/stream/buffer-writable.js +17 -0
  180. package/lib/stream/buffer-writable.js.map +1 -0
  181. package/lib/stream/multi-stream.d.ts +1 -1
  182. package/lib/stream/multi-stream.js +13 -0
  183. package/lib/stream/multi-stream.js.map +1 -0
  184. package/lib/stream/stream-ratchet.d.ts +2 -2
  185. package/lib/stream/stream-ratchet.js +69 -0
  186. package/lib/stream/stream-ratchet.js.map +1 -0
  187. package/lib/stream/stream-ratchet.spec.js +14 -0
  188. package/lib/stream/stream-ratchet.spec.js.map +1 -0
  189. package/lib/stream/string-writable.d.ts +1 -1
  190. package/lib/stream/string-writable.js +15 -0
  191. package/lib/stream/string-writable.js.map +1 -0
  192. package/lib/stream/string-writable.spec.js +13 -0
  193. package/lib/stream/string-writable.spec.js.map +1 -0
  194. package/lib/third-party/google/google-recaptcha-ratchet.js +30 -0
  195. package/lib/third-party/google/google-recaptcha-ratchet.js.map +1 -0
  196. package/lib/third-party/google/google-recaptcha-ratchet.spec.js +21 -0
  197. package/lib/third-party/google/google-recaptcha-ratchet.spec.js.map +1 -0
  198. package/lib/third-party/twilio/twilio-ratchet.js +75 -0
  199. package/lib/third-party/twilio/twilio-ratchet.js.map +1 -0
  200. package/lib/transform/built-in-transforms.js +192 -0
  201. package/lib/transform/built-in-transforms.js.map +1 -0
  202. package/lib/transform/transform-rule.js +2 -0
  203. package/lib/transform/transform-rule.js.map +1 -0
  204. package/lib/tx/transaction-configuration.js +2 -0
  205. package/lib/tx/transaction-configuration.js.map +1 -0
  206. package/lib/tx/transaction-final-state.js +7 -0
  207. package/lib/tx/transaction-final-state.js.map +1 -0
  208. package/lib/tx/transaction-ratchet.js +77 -0
  209. package/lib/tx/transaction-ratchet.js.map +1 -0
  210. package/lib/tx/transaction-ratchet.spec.js +131 -0
  211. package/lib/tx/transaction-ratchet.spec.js.map +1 -0
  212. package/lib/tx/transaction-result.js +2 -0
  213. package/lib/tx/transaction-result.js.map +1 -0
  214. package/lib/tx/transaction-step.js +2 -0
  215. package/lib/tx/transaction-step.js.map +1 -0
  216. package/package.json +3 -2
  217. package/lib/index.mjs +0 -4
  218. package/lib/index.mjs.map +0 -1
@@ -0,0 +1,135 @@
1
+ import { Logger } from './logger.js';
2
+ import { LoggerLevelName } from './logger-level-name.js';
3
+ import { StringRatchet } from '../lang/string-ratchet.js';
4
+ import { LogMessageBuilder } from './log-message-builder.js';
5
+ import { LogMessageFormatType } from './log-message-format-type.js';
6
+ import { LoggerOutputFunction } from './logger-output-function.js';
7
+ describe('#setLevel', function () {
8
+ it('should change the level to debug then info then debug', function () {
9
+ Logger.dumpConfigurationIntoLog();
10
+ expect(Logger.getLevel()).toEqual(LoggerLevelName.info);
11
+ Logger.setLevel(LoggerLevelName.debug);
12
+ expect(Logger.getLevel()).toEqual(LoggerLevelName.debug);
13
+ Logger.setLevel(LoggerLevelName.info);
14
+ expect(Logger.getLevel()).toEqual(LoggerLevelName.info);
15
+ Logger.setLevel(LoggerLevelName.debug);
16
+ expect(Logger.getLevel()).toEqual(LoggerLevelName.debug);
17
+ });
18
+ });
19
+ describe('#takeSnapshot', function () {
20
+ it('should advance the pointer correctly after a snapshot', function () {
21
+ Logger.changeRingBufferSize(5);
22
+ expect(Logger.getRingBuffer().currentIndex).toEqual(0);
23
+ Logger.info('m1');
24
+ Logger.info('m2');
25
+ Logger.info('m3');
26
+ const snap1 = Logger.takeSnapshot();
27
+ Logger.info('m4');
28
+ Logger.info('m5');
29
+ const snap2 = Logger.takeSnapshot();
30
+ Logger.info('m6');
31
+ Logger.info('m7');
32
+ Logger.info('m8');
33
+ const snap3 = Logger.takeSnapshot();
34
+ expect(snap1.messages.length).toEqual(3);
35
+ expect(snap2.messages.length).toEqual(2);
36
+ expect(snap3.messages.length).toEqual(3);
37
+ expect(Logger.getRingBuffer().currentIndex).toEqual(8);
38
+ });
39
+ });
40
+ describe('#testTracePrefix', function () {
41
+ it('should apply a trace prefix correctly', function () {
42
+ Logger.updateTracePrefix('::TRACE::');
43
+ Logger.changeRingBufferSize(3);
44
+ Logger.info('m1');
45
+ Logger.info('m2');
46
+ const snap1 = Logger.takeSnapshot();
47
+ const snap1String = Logger.formatMessages(snap1.messages);
48
+ expect(snap1String.length).toBeGreaterThan(0);
49
+ snap1String.forEach((m) => {
50
+ expect(m.indexOf('::TRACE::')).toBeGreaterThan(-1);
51
+ });
52
+ Logger.updateTracePrefix(null);
53
+ Logger.info('m1');
54
+ Logger.info('m2');
55
+ const snap2 = Logger.takeSnapshot();
56
+ expect(snap2.messages.length).toBeGreaterThan(0);
57
+ snap2.messages.forEach((m) => {
58
+ expect(m.messageSource.indexOf('::TRACE::')).toEqual(-1);
59
+ });
60
+ });
61
+ });
62
+ describe('#testLastMessage', function () {
63
+ it('should return the last message', function () {
64
+ Logger.info('m1');
65
+ Logger.info('m2');
66
+ const last = Logger.getLastLogMessage();
67
+ expect(last).toBeTruthy();
68
+ expect(last.lvl).toEqual(LoggerLevelName.info);
69
+ expect(last.messageSource.endsWith('m2')).toBeTruthy();
70
+ });
71
+ });
72
+ describe('#testPassThruFunctions', function () {
73
+ it('should pass through values', function () {
74
+ Logger.setLevel(LoggerLevelName.debug);
75
+ Logger.error('Test %s', 'tVal');
76
+ Logger.errorP('TestP %s', 'tVal');
77
+ Logger.errorP('TestP 2', 27, { some: 'Object' });
78
+ Logger.warn('Test %s', 'tVal');
79
+ Logger.warnP('TestP %s', 'tVal');
80
+ Logger.info('Test %s', 'tVal');
81
+ Logger.infoP('TestP %s', 'tVal');
82
+ Logger.debug('Test %s', 'tVal');
83
+ Logger.debugP('TestP %s', 'tVal');
84
+ Logger.verbose('Test %s', 'tVal');
85
+ Logger.verboseP('TestP %s', 'tVal');
86
+ Logger.silly('Test %s', 'tVal');
87
+ Logger.sillyP('TestP %s', 'tVal');
88
+ Logger.setLevel(LoggerLevelName.debug);
89
+ });
90
+ });
91
+ describe('#testFormatter', function () {
92
+ it('should format values', function () {
93
+ const msg = {
94
+ lvl: LoggerLevelName.info,
95
+ timestamp: Date.now(),
96
+ messageSource: 'Test %d %d',
97
+ subsVars: [1, 2],
98
+ params: {},
99
+ };
100
+ Logger.info('Test %d %d', 3, 4);
101
+ const msgS = Logger.formatMessages([msg])[0];
102
+ expect(msgS).toEqual('[info] Test 1 2');
103
+ });
104
+ });
105
+ describe('#testPreProcessor', function () {
106
+ it('should perform a preprocess', function () {
107
+ const preProc = {
108
+ process(msg) {
109
+ msg.messageSource = 'Preprocess';
110
+ return msg;
111
+ },
112
+ };
113
+ const output = Logger.getLogger(StringRatchet.createRandomHexString(4), { preProcessors: [preProc] }).info('This is a test %s', 'bob');
114
+ expect(output).toEqual('[info] Preprocess bob');
115
+ });
116
+ });
117
+ describe('#testBuilder', function () {
118
+ it('should use a builder', function () {
119
+ const output = Logger.getLogger(StringRatchet.createRandomHexString(4)).recordMessageBuilder(new LogMessageBuilder(LoggerLevelName.warn, 'This is a test %s').subVars(['bob']));
120
+ expect(output).toEqual('[warn] This is a test bob');
121
+ });
122
+ });
123
+ describe('#testStructured', function () {
124
+ it('should use a structured logger', function () {
125
+ const output = Logger.getLogger(StringRatchet.createRandomHexString(4), {
126
+ formatType: LogMessageFormatType.StructuredJson,
127
+ outputFunction: LoggerOutputFunction.StdOut,
128
+ }).recordMessageBuilder(new LogMessageBuilder(LoggerLevelName.warn, 'This is a test %s').subVars(['bob']).p('a', 27));
129
+ const parsed = JSON.parse(output);
130
+ expect(parsed.msg).toEqual('This is a test bob');
131
+ expect(parsed.logLevel).toEqual('warn');
132
+ expect(parsed.a).toEqual(27);
133
+ });
134
+ });
135
+ //# sourceMappingURL=logger.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.spec.js","sourceRoot":"","sources":["../../src/logger/logger.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export class NoneLogMessageFormatter {
2
+ formatMessage(msg, meta) {
3
+ return null;
4
+ }
5
+ }
6
+ //# sourceMappingURL=none-log-message-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"none-log-message-formatter.js","sourceRoot":"","sources":["../../src/logger/none-log-message-formatter.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,uBAAuB;IAC3B,aAAa,CAAC,GAAe,EAAE,IAAgB;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import util from 'util';
2
+ export class StructuredJsonLogMessageFormatter {
3
+ formatMessage(msg, meta) {
4
+ let rval = null;
5
+ if (msg) {
6
+ const tmp = Object.assign({}, meta.options.globalVars || {}, msg.params || {});
7
+ tmp['msg'] = util.format(msg.messageSource, ...msg.subsVars);
8
+ tmp['utcDateTime'] = new Date(msg.timestamp).toISOString();
9
+ tmp['logLevel'] = msg.lvl;
10
+ if (meta.options.trace) {
11
+ tmp['trace'] = meta.options.trace;
12
+ }
13
+ tmp['logName'] = meta.loggerInstanceName;
14
+ tmp['logId'] = meta.loggerInstanceId;
15
+ rval = JSON.stringify(tmp) + '\n';
16
+ }
17
+ return rval;
18
+ }
19
+ }
20
+ //# sourceMappingURL=structured-json-log-message-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-json-log-message-formatter.js","sourceRoot":"","sources":["../../src/logger/structured-json-log-message-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAKxB,MAAM,OAAO,iCAAiC;IACrC,aAAa,CAAC,GAAe,EAAE,IAAgB;QACpD,IAAI,IAAI,GAAW,IAAI,CAAC;QACxB,IAAI,GAAG,EAAE;YACP,MAAM,GAAG,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YACjG,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7D,GAAG,CAAC,aAAa,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAC3D,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;YAC1B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;aACnC;YACD,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC;YACzC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAErC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SAEnC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import { NetworkRatchet } from './network-ratchet.js';
2
+ import { Logger } from '../logger/logger.js';
3
+ export class BrowserLocalIpProvider {
4
+ currentIp = 'UNSET';
5
+ constructor() {
6
+ NetworkRatchet.findLocalIp(false)
7
+ .then((result) => {
8
+ Logger.info('Setting local IP to %s', result);
9
+ this.currentIp = result;
10
+ })
11
+ .catch((err) => {
12
+ Logger.warn('Unable to set current IP - leaving as UNSET : %s', err);
13
+ });
14
+ }
15
+ ready() {
16
+ return this.currentIp !== 'UNSET';
17
+ }
18
+ currentLocalIpAddress() {
19
+ return this.currentIp;
20
+ }
21
+ }
22
+ //# sourceMappingURL=browser-local-ip-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-local-ip-provider.js","sourceRoot":"","sources":["../../src/network/browser-local-ip-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,sBAAsB;IACzB,SAAS,GAAG,OAAO,CAAC;IAE5B;QACE,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC;aAC9B,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QAC1B,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE,GAAG,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC;IACpC,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { BrowserLocalIpProvider } from './browser-local-ip-provider.js';
2
+ import { NetworkRatchet } from './network-ratchet.js';
3
+ import { PromiseRatchet } from '../lang/promise-ratchet.js';
4
+ import { jest } from '@jest/globals';
5
+ jest.mock('./network-ratchet');
6
+ describe('#browserLocalIpProvider', function () {
7
+ it('should pull a local ip and return it', async () => {
8
+ const mockStaticFn = jest.fn(() => Promise.resolve('192.168.1.1'));
9
+ NetworkRatchet.findLocalIp = mockStaticFn;
10
+ const up = new BrowserLocalIpProvider();
11
+ while (!up.ready()) {
12
+ await PromiseRatchet.wait(250);
13
+ }
14
+ expect(up.currentLocalIpAddress()).toEqual('192.168.1.1');
15
+ });
16
+ });
17
+ //# sourceMappingURL=browser-local-ip-provider.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-local-ip-provider.spec.js","sourceRoot":"","sources":["../../src/network/browser-local-ip-provider.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAE/B,QAAQ,CAAC,yBAAyB,EAAE;IAClC,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAGnE,cAAc,CAAC,WAAW,GAAG,YAAY,CAAC;QAE1C,MAAM,EAAE,GAA2B,IAAI,sBAAsB,EAAE,CAAC;QAGhE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChC;QAED,MAAM,CAAC,EAAE,CAAC,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export class FixedLocalIpProvider {
2
+ fixed;
3
+ constructor(fixed) {
4
+ this.fixed = fixed;
5
+ }
6
+ currentLocalIpAddress() {
7
+ return this.fixed;
8
+ }
9
+ }
10
+ //# sourceMappingURL=fixed-local-ip-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixed-local-ip-provider.js","sourceRoot":"","sources":["../../src/network/fixed-local-ip-provider.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,oBAAoB;IACX;IAApB,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAErC,qBAAqB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=local-ip-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-ip-provider.js","sourceRoot":"","sources":["../../src/network/local-ip-provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ import { Logger } from '../logger/logger.js';
2
+ class NetworkRatchet {
3
+ static LOCAL_IP = null;
4
+ static findLocalIp(useCache = true) {
5
+ Logger.info('Attempting to find local IP (V 2)');
6
+ if (NetworkRatchet.LOCAL_IP && useCache) {
7
+ return Promise.resolve(NetworkRatchet.LOCAL_IP);
8
+ }
9
+ else {
10
+ if (typeof window !== 'undefined') {
11
+ return new Promise(function (resolve, reject) {
12
+ try {
13
+ const RTCPeerConnection = window['RTCPeerConnection'] || window['webkitRTCPeerConnection'] || window['mozRTCPeerConnection'];
14
+ if (RTCPeerConnection) {
15
+ const rtc = new RTCPeerConnection({ iceServers: [] });
16
+ const addrs = Object.create(null);
17
+ addrs['0.0.0.0'] = false;
18
+ if (1 || window['mozRTCPeerConnection']) {
19
+ rtc.createDataChannel('', { reliable: false });
20
+ }
21
+ rtc.onicecandidate = function (evt) {
22
+ if (evt.candidate) {
23
+ NetworkRatchet.grepSDP('a=' + evt.candidate.candidate, addrs, resolve);
24
+ }
25
+ };
26
+ rtc.createOffer(function (offerDesc) {
27
+ NetworkRatchet.grepSDP(offerDesc.sdp, addrs, resolve);
28
+ rtc.setLocalDescription(offerDesc);
29
+ }, function (e) {
30
+ Logger.warn('Offer failed : %s', e);
31
+ resolve(NetworkRatchet.updateLocalIP('FIND_UNSUPPORTED'));
32
+ });
33
+ }
34
+ else {
35
+ Logger.warn('IP Address find not supported on this device');
36
+ resolve(NetworkRatchet.updateLocalIP('FIND_UNSUPPORTED'));
37
+ }
38
+ }
39
+ catch (err) {
40
+ Logger.warn('Error finding local ip address : %s', err);
41
+ resolve(NetworkRatchet.updateLocalIP('ERROR'));
42
+ }
43
+ });
44
+ }
45
+ else {
46
+ Logger.warn('Window not found, cannot calculate local ip');
47
+ return Promise.resolve(NetworkRatchet.updateLocalIP('NO_WINDOW'));
48
+ }
49
+ }
50
+ }
51
+ static parseUrl(href) {
52
+ const match = href.match(/^(https?\:)\/\/(([^:\/?#]*)(?:\:([0-9]+))?)([\/]{0,1}[^?#]*)(\?[^#]*|)(#.*|)$/);
53
+ const rval = match &&
54
+ {
55
+ href: href,
56
+ protocol: match[1],
57
+ host: match[2],
58
+ hostname: match[3],
59
+ port: match[4],
60
+ pathname: match[5],
61
+ search: match[6],
62
+ hash: match[7],
63
+ };
64
+ return rval;
65
+ }
66
+ static updateLocalIP(newIp) {
67
+ NetworkRatchet.LOCAL_IP = newIp;
68
+ return NetworkRatchet.LOCAL_IP;
69
+ }
70
+ static grepSDP(sdp, addrs, resolve) {
71
+ const hosts = [];
72
+ sdp.split('\r\n').forEach(function (line) {
73
+ if (~line.indexOf('a=candidate')) {
74
+ const parts = line.split(' '), addr = parts[4], type = parts[7];
75
+ if (type === 'host') {
76
+ NetworkRatchet.updateAddressList(addr, addrs, resolve);
77
+ }
78
+ }
79
+ else if (~line.indexOf('c=')) {
80
+ const parts = line.split(' '), addr = parts[2];
81
+ NetworkRatchet.updateAddressList(addr, addrs, resolve);
82
+ }
83
+ });
84
+ }
85
+ static updateAddressList(newAddr, addrs, resolve) {
86
+ if (newAddr in addrs)
87
+ return;
88
+ else
89
+ addrs[newAddr] = true;
90
+ const displayAddrs = Object.keys(addrs).filter(function (k) {
91
+ return addrs[k];
92
+ });
93
+ if (displayAddrs && displayAddrs.length == 1) {
94
+ resolve(NetworkRatchet.updateLocalIP(displayAddrs[0]));
95
+ }
96
+ else {
97
+ const multi = displayAddrs.sort().join(',');
98
+ Logger.warn('Multiple addresses found, returning sorted join : %s', multi);
99
+ resolve(NetworkRatchet.updateLocalIP(multi));
100
+ }
101
+ }
102
+ }
103
+ export { NetworkRatchet };
104
+ //# sourceMappingURL=network-ratchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-ratchet.js","sourceRoot":"","sources":["../../src/network/network-ratchet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { NetworkRatchet } from './network-ratchet.js';
2
+ describe('#parseUrl', function () {
3
+ it('should parse the url and return correct values', function () {
4
+ const result = NetworkRatchet.parseUrl('http://example.com:3000/pathname/?search=test#hash');
5
+ expect(result.protocol).toEqual('http:');
6
+ expect(result.host).toEqual('example.com:3000');
7
+ expect(result.hostname).toEqual('example.com');
8
+ expect(result.port).toEqual('3000');
9
+ expect(result.pathname).toEqual('/pathname/');
10
+ expect(result.search).toEqual('?search=test');
11
+ expect(result.hash).toEqual('#hash');
12
+ });
13
+ });
14
+ //# sourceMappingURL=network-ratchet.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-ratchet.spec.js","sourceRoot":"","sources":["../../src/network/network-ratchet.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,QAAQ,CAAC,WAAW,EAAE;IACpB,EAAE,CAAC,gDAAgD,EAAE;QACnD,MAAM,MAAM,GAAc,cAAc,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CAAC;QAExG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
3
  import { Writable } from 'stream';
4
4
  export declare class BufferWritable extends Writable {
5
5
  private _val;
@@ -0,0 +1,17 @@
1
+ import { Writable } from 'stream';
2
+ export class BufferWritable extends Writable {
3
+ _val = [];
4
+ constructor() {
5
+ super();
6
+ }
7
+ _write(chunk, encoding, callback) {
8
+ if (chunk) {
9
+ this._val.push(chunk);
10
+ }
11
+ callback();
12
+ }
13
+ get value() {
14
+ return Buffer.concat(this._val);
15
+ }
16
+ }
17
+ //# sourceMappingURL=buffer-writable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer-writable.js","sourceRoot":"","sources":["../../src/stream/buffer-writable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAClC,IAAI,GAAU,EAAE,CAAC;IAEzB;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,CAAC,KAAU,EAAE,QAAgB,EAAE,QAAQ;QAC3C,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvB;QACD,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,IAAW,KAAK;QACd,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
2
  import { Readable, ReadableOptions } from 'stream';
3
3
  export declare class MultiStream extends Readable {
4
4
  _object: any;
@@ -0,0 +1,13 @@
1
+ import { Readable } from 'stream';
2
+ export class MultiStream extends Readable {
3
+ _object;
4
+ constructor(object, options = {}) {
5
+ super(object instanceof Buffer || typeof object === 'string' ? options : { objectMode: true });
6
+ this._object = object;
7
+ }
8
+ _read() {
9
+ this.push(this._object);
10
+ this._object = null;
11
+ }
12
+ }
13
+ //# sourceMappingURL=multi-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-stream.js","sourceRoot":"","sources":["../../src/stream/multi-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAmB,MAAM,QAAQ,CAAC;AAEnD,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC,OAAO,CAAM;IAEb,YAAY,MAAW,EAAE,UAA2B,EAAE;QACpD,KAAK,CAAC,MAAM,YAAY,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/F,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- /// <reference types="node" />
2
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ /// <reference types="node" resolution-mode="require"/>
3
3
  import { Readable } from 'stream';
4
4
  export declare class StreamRatchet {
5
5
  private constructor();
@@ -0,0 +1,69 @@
1
+ import { Readable } from 'stream';
2
+ import { ErrorRatchet } from '../lang/error-ratchet.js';
3
+ import { StringRatchet } from '../lang/string-ratchet.js';
4
+ export class StreamRatchet {
5
+ constructor() { }
6
+ static readableToBufferSync(stream) {
7
+ const bufs = [];
8
+ let next = stream.read();
9
+ while (next) {
10
+ bufs.push(next);
11
+ next = stream.read();
12
+ }
13
+ return Buffer.concat(bufs);
14
+ }
15
+ static async webReadableStreamToBuffer(stream) {
16
+ const out = [];
17
+ const writer = new WritableStream({
18
+ async write(chunk, controller) {
19
+ if (typeof chunk === 'string') {
20
+ StringRatchet.stringToUint8Array(chunk);
21
+ }
22
+ else {
23
+ out.push(chunk);
24
+ }
25
+ return null;
26
+ },
27
+ abort(reason) {
28
+ ErrorRatchet.throwFormattedErr('StringWebWritableStream failure : %s', reason);
29
+ },
30
+ }, {
31
+ highWaterMark: 3,
32
+ size: () => 1,
33
+ });
34
+ await stream.pipeTo(writer);
35
+ return Buffer.concat(out);
36
+ }
37
+ static async webReadableStreamToString(stream) {
38
+ const buf = await StreamRatchet.webReadableStreamToBuffer(stream);
39
+ return buf.toString();
40
+ }
41
+ static stringToReadable(input) {
42
+ return new Readable({
43
+ read() {
44
+ this.push(input);
45
+ this.push(null);
46
+ },
47
+ });
48
+ }
49
+ static stringToWebReadableStream(input) {
50
+ const rval = new ReadableStream({
51
+ start(controller) {
52
+ if (input) {
53
+ controller.enqueue(input);
54
+ }
55
+ controller.close();
56
+ return null;
57
+ },
58
+ }, {
59
+ highWaterMark: input ? input.length : null,
60
+ });
61
+ return rval;
62
+ }
63
+ static anyToStringReadable(input) {
64
+ return input === null || input === undefined
65
+ ? StreamRatchet.stringToReadable(null)
66
+ : StreamRatchet.stringToReadable(StringRatchet.safeString(input));
67
+ }
68
+ }
69
+ //# sourceMappingURL=stream-ratchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-ratchet.js","sourceRoot":"","sources":["../../src/stream/stream-ratchet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,OAAO,aAAa;IAGxB,gBAAuB,CAAC;IAEjB,MAAM,CAAC,oBAAoB,CAAC,MAAgB;QACjD,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,IAAI,IAAI,GAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;SACtB;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAsB;QAClE,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAmB,IAAI,cAAc,CAC/C;YACE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU;gBAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC7B,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBACzC;qBAAM;oBACL,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACjB;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YACD,KAAK,CAAC,MAAM;gBACV,YAAY,CAAC,iBAAiB,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;YACjF,CAAC;SACF,EACD;YACE,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;SACd,CACF,CAAC;QACF,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAsB;QAClE,MAAM,GAAG,GAAW,MAAM,aAAa,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,KAAa;QAC1C,OAAO,IAAI,QAAQ,CAAC;YAClB,IAAI;gBACF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,yBAAyB,CAAC,KAAa;QAKnD,MAAM,IAAI,GAAmB,IAAI,cAAc,CAC7C;YACE,KAAK,CAAC,UAAU;gBACd,IAAI,KAAK,EAAE;oBACT,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;iBAC3B;gBACD,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;SACF,EACD;YACE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;SAC3C,CACF,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,KAAU;QAC1C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;YAC1C,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,aAAa,CAAC,gBAAgB,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import { StreamRatchet } from './stream-ratchet.js';
2
+ describe('#StreamRatchet', function () {
3
+ it('should wrap a string in a readable', async () => {
4
+ const r = StreamRatchet.stringToReadable('test');
5
+ const out = r.read(200);
6
+ expect(out.length).toEqual(4);
7
+ });
8
+ it('should wrap an number in a readable', async () => {
9
+ const r = StreamRatchet.anyToStringReadable(401);
10
+ const out = r.read(200);
11
+ expect(out.length).toEqual(3);
12
+ });
13
+ });
14
+ //# sourceMappingURL=stream-ratchet.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-ratchet.spec.js","sourceRoot":"","sources":["../../src/stream/stream-ratchet.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,QAAQ,CAAC,gBAAgB,EAAE;IACzB,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,CAAC,GAAa,aAAa,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,CAAC,GAAa,aAAa,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
2
  import { Writable } from 'stream';
3
3
  export declare class StringWritable extends Writable {
4
4
  private _val;
@@ -0,0 +1,15 @@
1
+ import { Writable } from 'stream';
2
+ export class StringWritable extends Writable {
3
+ _val = '';
4
+ constructor() {
5
+ super();
6
+ }
7
+ _write(chunk, encoding, callback) {
8
+ this._val += chunk ? chunk.toString() : '';
9
+ callback();
10
+ }
11
+ get value() {
12
+ return this._val;
13
+ }
14
+ }
15
+ //# sourceMappingURL=string-writable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-writable.js","sourceRoot":"","sources":["../../src/stream/string-writable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAClC,IAAI,GAAW,EAAE,CAAC;IAE1B;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,MAAM,CAAC,KAAU,EAAE,QAAgB,EAAE,QAAQ;QAC3C,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,QAAQ,EAAE,CAAC;IACb,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import { StringWritable } from './string-writable.js';
2
+ describe('#StringWritable', function () {
3
+ it('should write cumulatively to a string', async () => {
4
+ const sr = new StringWritable();
5
+ const callback = () => {
6
+ };
7
+ sr._write('a', null, callback);
8
+ sr._write('b', null, callback);
9
+ sr._write('c', null, callback);
10
+ expect(sr.value.length).toEqual(3);
11
+ });
12
+ });
13
+ //# sourceMappingURL=string-writable.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string-writable.spec.js","sourceRoot":"","sources":["../../src/stream/string-writable.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,QAAQ,CAAC,iBAAiB,EAAE;IAC1B,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAmB,IAAI,cAAc,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,GAAG,EAAE;QAEtB,CAAC,CAAC;QACF,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/B,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC/B,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE/B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Logger } from '../../logger/logger.js';
2
+ import { StringRatchet } from '../../lang/string-ratchet.js';
3
+ import fetch from 'cross-fetch';
4
+ class GoogleRecaptchaRatchet {
5
+ static GOOGLE_VERIFY_URL = 'https://www.google.com/recaptcha/api/siteverify?secret={{KEY}}&response={{TOKEN}}';
6
+ static async verifyRecaptchaToken(keySecret, token, fetchFn = fetch) {
7
+ Logger.debug('Verifying recaptcha token : %s', token);
8
+ let rval = null;
9
+ if (!StringRatchet.safeString(token)) {
10
+ Logger.warn('Recaptcha validation error, no token passed : %s', token);
11
+ return rval;
12
+ }
13
+ Logger.info('Validating Recaptcha via Google API : %s', token);
14
+ let url = GoogleRecaptchaRatchet.GOOGLE_VERIFY_URL;
15
+ url = url.split('{{KEY}}').join(keySecret);
16
+ url = url.split('{{TOKEN}}').join(token);
17
+ try {
18
+ const resp = await fetchFn(url);
19
+ const body = await resp.json();
20
+ rval = body && body.success;
21
+ }
22
+ catch (err) {
23
+ Logger.error('Failed to read from google : %s', err);
24
+ rval = false;
25
+ }
26
+ return rval;
27
+ }
28
+ }
29
+ export { GoogleRecaptchaRatchet };
30
+ //# sourceMappingURL=google-recaptcha-ratchet.js.map