@bitblit/ratchet-common 4.0.130-alpha → 4.0.133-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 (217) hide show
  1. package/lib/index.d.ts +2 -1
  2. package/lib/index.mjs +2 -0
  3. package/lib/index.mjs.map +1 -0
  4. package/lib/template/ratchet-template-renderer.d.ts +4 -0
  5. package/lib/{lang → transform}/transform-ratchet.d.ts +1 -1
  6. package/package.json +5 -3
  7. package/lib/2d/line-2d.js +0 -2
  8. package/lib/2d/line-2d.js.map +0 -1
  9. package/lib/2d/plane-2d.js +0 -2
  10. package/lib/2d/plane-2d.js.map +0 -1
  11. package/lib/2d/point-2d.js +0 -2
  12. package/lib/2d/point-2d.js.map +0 -1
  13. package/lib/2d/poly-line-2d.js +0 -2
  14. package/lib/2d/poly-line-2d.js.map +0 -1
  15. package/lib/2d/ratchet-2d.js +0 -246
  16. package/lib/2d/ratchet-2d.js.map +0 -1
  17. package/lib/2d/ratchet-2d.spec.js +0 -118
  18. package/lib/2d/ratchet-2d.spec.js.map +0 -1
  19. package/lib/build/build-information.js +0 -2
  20. package/lib/build/build-information.js.map +0 -1
  21. package/lib/build/ratchet-common-info.js +0 -15
  22. package/lib/build/ratchet-common-info.js.map +0 -1
  23. package/lib/histogram/histogram-entry.js +0 -2
  24. package/lib/histogram/histogram-entry.js.map +0 -1
  25. package/lib/histogram/histogram.js +0 -49
  26. package/lib/histogram/histogram.js.map +0 -1
  27. package/lib/histogram/histogram.spec.js +0 -20
  28. package/lib/histogram/histogram.spec.js.map +0 -1
  29. package/lib/index.js +0 -74
  30. package/lib/index.js.map +0 -1
  31. package/lib/jwt/common-jwt-token.js +0 -2
  32. package/lib/jwt/common-jwt-token.js.map +0 -1
  33. package/lib/jwt/expired-jwt-handling.js +0 -7
  34. package/lib/jwt/expired-jwt-handling.js.map +0 -1
  35. package/lib/jwt/jwt-ratchet-like.js +0 -2
  36. package/lib/jwt/jwt-ratchet-like.js.map +0 -1
  37. package/lib/jwt/jwt-ratchet.js +0 -166
  38. package/lib/jwt/jwt-ratchet.js.map +0 -1
  39. package/lib/jwt/jwt-ratchet.spec.js +0 -50
  40. package/lib/jwt/jwt-ratchet.spec.js.map +0 -1
  41. package/lib/jwt/jwt-token-base.js +0 -2
  42. package/lib/jwt/jwt-token-base.js.map +0 -1
  43. package/lib/lang/array-ratchet.js +0 -84
  44. package/lib/lang/array-ratchet.js.map +0 -1
  45. package/lib/lang/array-ratchet.spec.js +0 -69
  46. package/lib/lang/array-ratchet.spec.js.map +0 -1
  47. package/lib/lang/base64-ratchet.js +0 -46
  48. package/lib/lang/base64-ratchet.js.map +0 -1
  49. package/lib/lang/base64-ratchet.spec.js +0 -29
  50. package/lib/lang/base64-ratchet.spec.js.map +0 -1
  51. package/lib/lang/boolean-ratchet.js +0 -46
  52. package/lib/lang/boolean-ratchet.js.map +0 -1
  53. package/lib/lang/boolean-ratchet.spec.js +0 -82
  54. package/lib/lang/boolean-ratchet.spec.js.map +0 -1
  55. package/lib/lang/composite-last-success-provider.js +0 -27
  56. package/lib/lang/composite-last-success-provider.js.map +0 -1
  57. package/lib/lang/composite-last-success-provider.spec.js +0 -27
  58. package/lib/lang/composite-last-success-provider.spec.js.map +0 -1
  59. package/lib/lang/date-ratchet.js +0 -31
  60. package/lib/lang/date-ratchet.js.map +0 -1
  61. package/lib/lang/date-ratchet.spec.js +0 -22
  62. package/lib/lang/date-ratchet.spec.js.map +0 -1
  63. package/lib/lang/duration-ratchet.js +0 -43
  64. package/lib/lang/duration-ratchet.js.map +0 -1
  65. package/lib/lang/duration-ratchet.spec.js +0 -40
  66. package/lib/lang/duration-ratchet.spec.js.map +0 -1
  67. package/lib/lang/enum-ratchet.js +0 -31
  68. package/lib/lang/enum-ratchet.js.map +0 -1
  69. package/lib/lang/enum-ratchet.spec.js +0 -32
  70. package/lib/lang/enum-ratchet.spec.js.map +0 -1
  71. package/lib/lang/error-ratchet.js +0 -45
  72. package/lib/lang/error-ratchet.js.map +0 -1
  73. package/lib/lang/error-ratchet.spec.js +0 -21
  74. package/lib/lang/error-ratchet.spec.js.map +0 -1
  75. package/lib/lang/esm-ratchet.js +0 -18
  76. package/lib/lang/esm-ratchet.js.map +0 -1
  77. package/lib/lang/expiring-object.js +0 -73
  78. package/lib/lang/expiring-object.js.map +0 -1
  79. package/lib/lang/expiring-object.spec.js +0 -52
  80. package/lib/lang/expiring-object.spec.js.map +0 -1
  81. package/lib/lang/geolocation-ratchet.js +0 -264
  82. package/lib/lang/geolocation-ratchet.js.map +0 -1
  83. package/lib/lang/geolocation-ratchet.spec.js +0 -75
  84. package/lib/lang/geolocation-ratchet.spec.js.map +0 -1
  85. package/lib/lang/global-ratchet.js +0 -44
  86. package/lib/lang/global-ratchet.js.map +0 -1
  87. package/lib/lang/global-ratchet.spec.js +0 -15
  88. package/lib/lang/global-ratchet.spec.js.map +0 -1
  89. package/lib/lang/key-value.js +0 -5
  90. package/lib/lang/key-value.js.map +0 -1
  91. package/lib/lang/last-success-provider.js +0 -2
  92. package/lib/lang/last-success-provider.js.map +0 -1
  93. package/lib/lang/map-ratchet.js +0 -165
  94. package/lib/lang/map-ratchet.js.map +0 -1
  95. package/lib/lang/map-ratchet.spec.js +0 -91
  96. package/lib/lang/map-ratchet.spec.js.map +0 -1
  97. package/lib/lang/no.js +0 -5
  98. package/lib/lang/no.js.map +0 -1
  99. package/lib/lang/no.spec.js +0 -8
  100. package/lib/lang/no.spec.js.map +0 -1
  101. package/lib/lang/number-ratchet.js +0 -157
  102. package/lib/lang/number-ratchet.js.map +0 -1
  103. package/lib/lang/number-ratchet.spec.js +0 -119
  104. package/lib/lang/number-ratchet.spec.js.map +0 -1
  105. package/lib/lang/parsed-url.js +0 -2
  106. package/lib/lang/parsed-url.js.map +0 -1
  107. package/lib/lang/promise-ratchet.js +0 -139
  108. package/lib/lang/promise-ratchet.js.map +0 -1
  109. package/lib/lang/promise-ratchet.spec.js +0 -75
  110. package/lib/lang/promise-ratchet.spec.js.map +0 -1
  111. package/lib/lang/require-ratchet.js +0 -56
  112. package/lib/lang/require-ratchet.js.map +0 -1
  113. package/lib/lang/require-ratchet.spec.js +0 -81
  114. package/lib/lang/require-ratchet.spec.js.map +0 -1
  115. package/lib/lang/stop-watch.js +0 -115
  116. package/lib/lang/stop-watch.js.map +0 -1
  117. package/lib/lang/string-ratchet.js +0 -203
  118. package/lib/lang/string-ratchet.js.map +0 -1
  119. package/lib/lang/string-ratchet.spec.js +0 -159
  120. package/lib/lang/string-ratchet.spec.js.map +0 -1
  121. package/lib/lang/time-zone-ratchet.js +0 -79
  122. package/lib/lang/time-zone-ratchet.js.map +0 -1
  123. package/lib/lang/time-zone-ratchet.spec.js +0 -41
  124. package/lib/lang/time-zone-ratchet.spec.js.map +0 -1
  125. package/lib/lang/timeout-token.js +0 -18
  126. package/lib/lang/timeout-token.js.map +0 -1
  127. package/lib/lang/timeout-token.spec.js +0 -10
  128. package/lib/lang/timeout-token.spec.js.map +0 -1
  129. package/lib/lang/transform-ratchet.js +0 -67
  130. package/lib/lang/transform-ratchet.js.map +0 -1
  131. package/lib/lang/transform-ratchet.spec.js +0 -119
  132. package/lib/lang/transform-ratchet.spec.js.map +0 -1
  133. package/lib/logger/classic-single-line-log-message-formatter.js +0 -14
  134. package/lib/logger/classic-single-line-log-message-formatter.js.map +0 -1
  135. package/lib/logger/log-message-builder.js +0 -49
  136. package/lib/logger/log-message-builder.js.map +0 -1
  137. package/lib/logger/log-message-format-type.js +0 -7
  138. package/lib/logger/log-message-format-type.js.map +0 -1
  139. package/lib/logger/log-message-formatter.js +0 -2
  140. package/lib/logger/log-message-formatter.js.map +0 -1
  141. package/lib/logger/log-message-processor.js +0 -2
  142. package/lib/logger/log-message-processor.js.map +0 -1
  143. package/lib/logger/log-message.js +0 -2
  144. package/lib/logger/log-message.js.map +0 -1
  145. package/lib/logger/log-snapshot.js +0 -2
  146. package/lib/logger/log-snapshot.js.map +0 -1
  147. package/lib/logger/logger-instance.js +0 -209
  148. package/lib/logger/logger-instance.js.map +0 -1
  149. package/lib/logger/logger-level-name.js +0 -10
  150. package/lib/logger/logger-level-name.js.map +0 -1
  151. package/lib/logger/logger-meta.js +0 -2
  152. package/lib/logger/logger-meta.js.map +0 -1
  153. package/lib/logger/logger-options.js +0 -2
  154. package/lib/logger/logger-options.js.map +0 -1
  155. package/lib/logger/logger-output-function.js +0 -7
  156. package/lib/logger/logger-output-function.js.map +0 -1
  157. package/lib/logger/logger-ring-buffer.js +0 -72
  158. package/lib/logger/logger-ring-buffer.js.map +0 -1
  159. package/lib/logger/logger-util.js +0 -46
  160. package/lib/logger/logger-util.js.map +0 -1
  161. package/lib/logger/logger-util.spec.js +0 -10
  162. package/lib/logger/logger-util.spec.js.map +0 -1
  163. package/lib/logger/logger.js +0 -136
  164. package/lib/logger/logger.js.map +0 -1
  165. package/lib/logger/logger.spec.js +0 -135
  166. package/lib/logger/logger.spec.js.map +0 -1
  167. package/lib/logger/none-log-message-formatter.js +0 -6
  168. package/lib/logger/none-log-message-formatter.js.map +0 -1
  169. package/lib/logger/structured-json-log-message-formatter.js +0 -20
  170. package/lib/logger/structured-json-log-message-formatter.js.map +0 -1
  171. package/lib/network/browser-local-ip-provider.js +0 -22
  172. package/lib/network/browser-local-ip-provider.js.map +0 -1
  173. package/lib/network/browser-local-ip-provider.spec.js +0 -17
  174. package/lib/network/browser-local-ip-provider.spec.js.map +0 -1
  175. package/lib/network/fixed-local-ip-provider.js +0 -10
  176. package/lib/network/fixed-local-ip-provider.js.map +0 -1
  177. package/lib/network/local-ip-provider.js +0 -2
  178. package/lib/network/local-ip-provider.js.map +0 -1
  179. package/lib/network/network-ratchet.js +0 -104
  180. package/lib/network/network-ratchet.js.map +0 -1
  181. package/lib/network/network-ratchet.spec.js +0 -14
  182. package/lib/network/network-ratchet.spec.js.map +0 -1
  183. package/lib/stream/buffer-writable.js +0 -17
  184. package/lib/stream/buffer-writable.js.map +0 -1
  185. package/lib/stream/multi-stream.js +0 -13
  186. package/lib/stream/multi-stream.js.map +0 -1
  187. package/lib/stream/stream-ratchet.js +0 -69
  188. package/lib/stream/stream-ratchet.js.map +0 -1
  189. package/lib/stream/stream-ratchet.spec.js +0 -14
  190. package/lib/stream/stream-ratchet.spec.js.map +0 -1
  191. package/lib/stream/string-writable.js +0 -15
  192. package/lib/stream/string-writable.js.map +0 -1
  193. package/lib/stream/string-writable.spec.js +0 -13
  194. package/lib/stream/string-writable.spec.js.map +0 -1
  195. package/lib/third-party/google/google-recaptcha-ratchet.js +0 -30
  196. package/lib/third-party/google/google-recaptcha-ratchet.js.map +0 -1
  197. package/lib/third-party/google/google-recaptcha-ratchet.spec.js +0 -21
  198. package/lib/third-party/google/google-recaptcha-ratchet.spec.js.map +0 -1
  199. package/lib/third-party/twilio/twilio-ratchet.js +0 -75
  200. package/lib/third-party/twilio/twilio-ratchet.js.map +0 -1
  201. package/lib/transform/built-in-transforms.js +0 -192
  202. package/lib/transform/built-in-transforms.js.map +0 -1
  203. package/lib/transform/transform-rule.js +0 -2
  204. package/lib/transform/transform-rule.js.map +0 -1
  205. package/lib/tx/transaction-configuration.js +0 -2
  206. package/lib/tx/transaction-configuration.js.map +0 -1
  207. package/lib/tx/transaction-final-state.js +0 -7
  208. package/lib/tx/transaction-final-state.js.map +0 -1
  209. package/lib/tx/transaction-ratchet.js +0 -77
  210. package/lib/tx/transaction-ratchet.js.map +0 -1
  211. package/lib/tx/transaction-ratchet.spec.js +0 -131
  212. package/lib/tx/transaction-ratchet.spec.js.map +0 -1
  213. package/lib/tx/transaction-result.js +0 -2
  214. package/lib/tx/transaction-result.js.map +0 -1
  215. package/lib/tx/transaction-step.js +0 -2
  216. package/lib/tx/transaction-step.js.map +0 -1
  217. /package/lib/{lang → transform}/transform-ratchet.spec.d.ts +0 -0
@@ -1,166 +0,0 @@
1
- import jwt from 'jsonwebtoken';
2
- import { RequireRatchet } from '../lang/require-ratchet.js';
3
- import { Logger } from '../logger/logger.js';
4
- import { StringRatchet } from '../lang/string-ratchet.js';
5
- import { DurationRatchet } from '../lang/duration-ratchet.js';
6
- import { LoggerLevelName } from '../logger/logger-level-name.js';
7
- import { ExpiredJwtHandling } from './expired-jwt-handling.js';
8
- class JwtRatchet {
9
- _encryptionKeyPromise;
10
- _decryptKeysPromise;
11
- _jtiGenerator;
12
- _decryptOnlyKeyUseLogLevel;
13
- _parseFailureLogLevel;
14
- static EXPIRED_FLAG_NAME = '__jwtServiceExpiredFlag';
15
- constructor(_encryptionKeyPromise, _decryptKeysPromise, _jtiGenerator = StringRatchet.createType4Guid, _decryptOnlyKeyUseLogLevel = LoggerLevelName.info, _parseFailureLogLevel = LoggerLevelName.debug) {
16
- this._encryptionKeyPromise = _encryptionKeyPromise;
17
- this._decryptKeysPromise = _decryptKeysPromise;
18
- this._jtiGenerator = _jtiGenerator;
19
- this._decryptOnlyKeyUseLogLevel = _decryptOnlyKeyUseLogLevel;
20
- this._parseFailureLogLevel = _parseFailureLogLevel;
21
- RequireRatchet.notNullOrUndefined(_encryptionKeyPromise, 'encryptionKeyPromise');
22
- }
23
- get encryptionKeyPromise() {
24
- return this._encryptionKeyPromise;
25
- }
26
- get decryptKeysPromise() {
27
- return this._decryptKeysPromise;
28
- }
29
- get jtiGenerator() {
30
- return this._jtiGenerator;
31
- }
32
- get decryptOnlyKeyUseLogLevel() {
33
- return this._decryptOnlyKeyUseLogLevel;
34
- }
35
- get parseFailureLogLevel() {
36
- return this._parseFailureLogLevel;
37
- }
38
- static hasExpiredFlag(ob) {
39
- return ob && ob[JwtRatchet.EXPIRED_FLAG_NAME] === true;
40
- }
41
- static async invalidSafeDecode(payloadString, decryptKey, logLevel = LoggerLevelName.silly) {
42
- let rval = null;
43
- try {
44
- rval = jwt.verify(payloadString, decryptKey, { ignoreExpiration: true });
45
- }
46
- catch (err) {
47
- Logger.logByLevel(logLevel, 'Caught %s - ignoring', err);
48
- }
49
- return rval;
50
- }
51
- static async secondsRemainingUntilExpiration(payloadString) {
52
- let rval = null;
53
- if (StringRatchet.trimToNull(payloadString)) {
54
- const output = await JwtRatchet.decodeTokenNoVerify(payloadString);
55
- const nowSecond = Math.floor(Date.now() / 1000);
56
- if (output.exp) {
57
- const expSeconds = output.exp > nowSecond * 100 ? Math.floor(output.exp / 1000) : output.exp;
58
- rval = Math.max(0, expSeconds - nowSecond);
59
- }
60
- }
61
- return rval;
62
- }
63
- static async msRemainingUntilExpiration(payloadString) {
64
- const secs = await JwtRatchet.secondsRemainingUntilExpiration(payloadString);
65
- let rval = null;
66
- if (secs !== null && secs !== undefined) {
67
- rval = secs * 1000;
68
- }
69
- return rval;
70
- }
71
- async decodeToken(payloadString, expiredHandling = ExpiredJwtHandling.RETURN_NULL) {
72
- const encKeys = await this.encryptionKeyArray();
73
- let decKeys = Object.assign([], encKeys);
74
- if (this.decryptKeysPromise) {
75
- decKeys = decKeys.concat(await this.decryptKeysPromise);
76
- }
77
- const keysTried = [];
78
- let payload = null;
79
- for (let i = 0; i < decKeys.length && !payload; i++) {
80
- keysTried.push(StringRatchet.obscure(decKeys[i], 1, 1));
81
- const logLevel = i === decKeys.length - 1 && this.parseFailureLogLevel ? this.parseFailureLogLevel : LoggerLevelName.silly;
82
- payload = await JwtRatchet.invalidSafeDecode(payloadString, decKeys[i], logLevel);
83
- if (payload && i >= encKeys.length) {
84
- Logger.logByLevel(this.decryptOnlyKeyUseLogLevel, 'Used old key to decode token : %s', StringRatchet.obscure(decKeys[i], 2));
85
- }
86
- }
87
- if (payload) {
88
- const nowSeconds = Math.floor(Date.now() / 1000);
89
- const expSeconds = payload?.exp && payload.exp > nowSeconds * 100 ? Math.floor(payload.exp / 1000) : payload?.exp;
90
- const nbfSeconds = payload?.nbf && payload.nbf > nowSeconds * 100 ? Math.floor(payload.nbf / 1000) : payload?.nbf;
91
- if ((expSeconds && nowSeconds >= expSeconds) || (nbfSeconds && nowSeconds <= nbfSeconds)) {
92
- const age = nowSeconds - expSeconds;
93
- Logger.debug('JWT token expired or before NBF : on %d, %s ago', payload.exp, DurationRatchet.formatMsDuration(age * 1000));
94
- switch (expiredHandling) {
95
- case ExpiredJwtHandling.THROW_EXCEPTION:
96
- throw new Error('JWT Token was expired');
97
- case ExpiredJwtHandling.ADD_FLAG:
98
- payload[JwtRatchet.EXPIRED_FLAG_NAME] = true;
99
- break;
100
- default:
101
- payload = null;
102
- break;
103
- }
104
- }
105
- }
106
- else {
107
- Logger.warn('Unable to parse a payload (Tried %j) from : %s', keysTried, payloadString);
108
- }
109
- return payload;
110
- }
111
- async encryptionKeyArray() {
112
- const encKey = await this.encryptionKeyPromise;
113
- const rval = Array.isArray(encKey) ? encKey : [encKey];
114
- if (rval.length < 1) {
115
- throw new Error('Cannot create JwtRatchet with empty encryption key set');
116
- }
117
- return rval;
118
- }
119
- async selectRandomEncryptionKey() {
120
- const encKey = await this.encryptionKeyArray();
121
- const rval = encKey[Math.floor(Math.random() * encKey.length)];
122
- return rval;
123
- }
124
- async createTokenString(payload, expirationSeconds, overrideEncryptionKey) {
125
- const encKey = StringRatchet.trimToNull(overrideEncryptionKey)
126
- ? StringRatchet.trimToNull(overrideEncryptionKey)
127
- : await this.selectRandomEncryptionKey();
128
- RequireRatchet.notNullOrUndefined(payload, 'payload');
129
- payload.jti = this.jtiGenerator ? this.jtiGenerator() : null;
130
- if (expirationSeconds) {
131
- const nowSeconds = Math.floor(Date.now() / 1000);
132
- const expires = nowSeconds + expirationSeconds;
133
- Logger.debug('Forcing expiration to %d', expires);
134
- payload.exp = expires;
135
- }
136
- const token = jwt.sign(payload, encKey);
137
- return token;
138
- }
139
- async refreshJWTString(tokenString, allowExpired, expirationSeconds) {
140
- const handling = allowExpired ? ExpiredJwtHandling.ADD_FLAG : ExpiredJwtHandling.THROW_EXCEPTION;
141
- const payload = await this.decodeToken(tokenString, handling);
142
- const originalDurationSeconds = payload.exp && payload.iat ? payload.exp - payload.iat : null;
143
- const newExpirationSeconds = expirationSeconds || originalDurationSeconds;
144
- JwtRatchet.removeJwtFields(payload);
145
- JwtRatchet.removeExpiredFlag(payload);
146
- const token = await this.createTokenString(payload, newExpirationSeconds);
147
- return token;
148
- }
149
- static decodeTokenNoVerify(token) {
150
- return jwt.decode(token);
151
- }
152
- static removeJwtFields(ob) {
153
- if (ob) {
154
- ['iss', 'sub', 'aud', 'exp', 'nbf', 'iat', 'jti'].forEach((k) => {
155
- delete ob[k];
156
- });
157
- }
158
- }
159
- static removeExpiredFlag(ob) {
160
- if (ob) {
161
- delete ob[JwtRatchet.EXPIRED_FLAG_NAME];
162
- }
163
- }
164
- }
165
- export { JwtRatchet };
166
- //# sourceMappingURL=jwt-ratchet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt-ratchet.js","sourceRoot":"","sources":["../../src/jwt/jwt-ratchet.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { JwtRatchet } from './jwt-ratchet.js';
2
- import { ExpiredJwtHandling } from './expired-jwt-handling.js';
3
- describe('#jwtRatchet', function () {
4
- it('should test expiration flag for a token with millisecond expiration', async () => {
5
- const jwt = new JwtRatchet(Promise.resolve('test1234'), Promise.resolve([]));
6
- const token1 = await jwt.createTokenString({ test: 1, exp: Date.now() - 100 }, null);
7
- const output = await jwt.decodeToken(token1, ExpiredJwtHandling.ADD_FLAG);
8
- expect(output).not.toBeNull();
9
- expect(JwtRatchet.hasExpiredFlag(output)).toBeTruthy();
10
- });
11
- it('should test expiration calculation for a token', async () => {
12
- const jwt = new JwtRatchet(Promise.resolve('test1234'), Promise.resolve([]));
13
- const token1 = await jwt.createTokenString({ test: 1 }, 120);
14
- const output = await JwtRatchet.secondsRemainingUntilExpiration(token1);
15
- expect(output).not.toBeNull();
16
- expect(output).toBeLessThan(121);
17
- expect(output).toBeGreaterThan(115);
18
- });
19
- it('should test round-trip for a token', async () => {
20
- const jwt = new JwtRatchet(Promise.resolve('test1234'), Promise.resolve([]));
21
- const token1 = await jwt.createTokenString({ test: 1 }, 120);
22
- const output = await jwt.decodeToken(token1);
23
- expect(output).not.toBeNull();
24
- expect(output['test']).toEqual(1);
25
- });
26
- it('should test round-trip for a token with array enc keys', async () => {
27
- const jwt = new JwtRatchet(Promise.resolve(['test1234', 'test5678']), Promise.resolve([]));
28
- const token1 = await jwt.createTokenString({ test: 1 }, 120);
29
- const token2 = await jwt.createTokenString({ test: 1 }, 120);
30
- const token3 = await jwt.createTokenString({ test: 1 }, 120);
31
- const output1 = await jwt.decodeToken(token1);
32
- const output2 = await jwt.decodeToken(token2);
33
- const output3 = await jwt.decodeToken(token3);
34
- expect(output1).not.toBeNull();
35
- expect(output1['test']).toEqual(1);
36
- expect(output2).not.toBeNull();
37
- expect(output2['test']).toEqual(1);
38
- expect(output3).not.toBeNull();
39
- expect(output3['test']).toEqual(1);
40
- });
41
- it('should decode with a decode key', async () => {
42
- const jwtOld = new JwtRatchet(Promise.resolve('oldKey'), Promise.resolve([]));
43
- const jwtNew = new JwtRatchet(Promise.resolve('newKey'), Promise.resolve(['oldKey']));
44
- const token1 = await jwtOld.createTokenString({ test: 1 }, 120);
45
- const output = await jwtNew.decodeToken(token1);
46
- expect(output).not.toBeNull();
47
- expect(output['test']).toEqual(1);
48
- });
49
- });
50
- //# sourceMappingURL=jwt-ratchet.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt-ratchet.spec.js","sourceRoot":"","sources":["../../src/jwt/jwt-ratchet.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=jwt-token-base.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jwt-token-base.js","sourceRoot":"","sources":["../../src/jwt/jwt-token-base.ts"],"names":[],"mappings":""}
@@ -1,84 +0,0 @@
1
- import { RequireRatchet } from './require-ratchet.js';
2
- import { MapRatchet } from './map-ratchet.js';
3
- export class ArrayRatchet {
4
- static wrapElementsInArray(input) {
5
- return input.map((i) => [i]);
6
- }
7
- static compareTwoArrays(ar1, ar2, fn) {
8
- ar1.sort(fn);
9
- ar2.sort(fn);
10
- let id1 = 0;
11
- let id2 = 0;
12
- const rval = {
13
- matching: [],
14
- setOneOnly: [],
15
- setTwoOnly: [],
16
- };
17
- while (id1 < ar1.length && id2 < ar2.length) {
18
- const aVal = ar1[id1];
19
- const pVal = ar2[id2];
20
- const comp = fn(aVal, pVal);
21
- if (comp === 0) {
22
- rval.matching.push(aVal);
23
- id1++;
24
- id2++;
25
- }
26
- else if (comp < 0) {
27
- rval.setOneOnly.push(aVal);
28
- id1++;
29
- }
30
- else {
31
- rval.setTwoOnly.push(pVal);
32
- id2++;
33
- }
34
- }
35
- if (id1 < ar1.length - 1) {
36
- rval.setOneOnly = rval.setOneOnly.concat(ar1.slice(id1));
37
- }
38
- if (id2 < ar2.length - 1) {
39
- rval.setTwoOnly = rval.setTwoOnly.concat(ar2.slice(id2));
40
- }
41
- return rval;
42
- }
43
- static extractSubarrayFromSortedByNumberField(input, fieldDotPath, minInclusive, maxExclusive) {
44
- if (!input || input.length === 0) {
45
- return input;
46
- }
47
- let bottomIdx = minInclusive === null ? 0 : ArrayRatchet.findSplit(input, fieldDotPath, minInclusive) || 0;
48
- const topIdx = maxExclusive === null ? input.length : ArrayRatchet.findSplit(input, fieldDotPath, maxExclusive);
49
- const bottomValue = MapRatchet.findValueDotPath(input[bottomIdx], fieldDotPath);
50
- if (bottomIdx === input.length - 1 && bottomValue < minInclusive) {
51
- return [];
52
- }
53
- if (bottomIdx < input.length && bottomIdx < topIdx && bottomValue < minInclusive) {
54
- bottomIdx++;
55
- }
56
- return input.slice(bottomIdx, topIdx + 1);
57
- }
58
- static findSplit(input, fieldDotPath, target) {
59
- RequireRatchet.notNullOrUndefined(input);
60
- RequireRatchet.notNullOrUndefined(fieldDotPath);
61
- RequireRatchet.notNullOrUndefined(target);
62
- if (input.length === 0 || MapRatchet.findValueDotPath(input[0], fieldDotPath) > target) {
63
- return null;
64
- }
65
- let min = 0;
66
- let max = input.length;
67
- let rval = null;
68
- while (rval === null) {
69
- const curIdx = Math.floor((min + max) / 2);
70
- const curVal = MapRatchet.findValueDotPath(input[curIdx], fieldDotPath);
71
- if (min === max || min === max - 1) {
72
- rval = min;
73
- }
74
- else if (curVal <= target) {
75
- min = curIdx;
76
- }
77
- else {
78
- max = curIdx;
79
- }
80
- }
81
- return rval;
82
- }
83
- }
84
- //# sourceMappingURL=array-ratchet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-ratchet.js","sourceRoot":"","sources":["../../src/lang/array-ratchet.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- import { ArrayRatchet } from './array-ratchet.js';
2
- const sortedArr = [
3
- {
4
- n: 'test1',
5
- v: 1,
6
- },
7
- {
8
- n: 'test1',
9
- v: 2,
10
- },
11
- {
12
- n: 'test1',
13
- v: 4,
14
- },
15
- {
16
- n: 'test1',
17
- v: 4,
18
- },
19
- {
20
- n: 'test1',
21
- v: 7,
22
- },
23
- {
24
- n: 'test1',
25
- v: 12,
26
- },
27
- {
28
- n: 'test1',
29
- v: 25,
30
- },
31
- {
32
- n: 'test1',
33
- v: 30,
34
- },
35
- ];
36
- describe('#extractSubarrayFromSortedByNumberField', function () {
37
- it('should extract the subarray', function () {
38
- const subArr1 = ArrayRatchet.extractSubarrayFromSortedByNumberField(sortedArr, 'v', 5, 14);
39
- expect(subArr1.length).toEqual(2);
40
- const subArr2 = ArrayRatchet.extractSubarrayFromSortedByNumberField(sortedArr, 'v', null, 4);
41
- expect(subArr2.length).toEqual(4);
42
- const subArr3 = ArrayRatchet.extractSubarrayFromSortedByNumberField(sortedArr, 'v', 7, null);
43
- expect(subArr3.length).toEqual(4);
44
- });
45
- });
46
- describe('#compareTwoArrays', function () {
47
- it('should create a match report', function () {
48
- const arr1 = ['a', 'b', 'c'];
49
- const arr2 = ['a', 'e', 'i', 'o', 'u'];
50
- const report = ArrayRatchet.compareTwoArrays(arr1, arr2, (a, b) => a.localeCompare(b));
51
- expect(report).toBeTruthy();
52
- expect(report.setOneOnly.length).toEqual(2);
53
- expect(report.setTwoOnly.length).toEqual(4);
54
- expect(report.matching.length).toEqual(1);
55
- });
56
- });
57
- describe('#findSplit', function () {
58
- it('should find the split', function () {
59
- const split10 = ArrayRatchet.findSplit(sortedArr, 'v', 10);
60
- const split4 = ArrayRatchet.findSplit(sortedArr, 'v', 4);
61
- const split0 = ArrayRatchet.findSplit(sortedArr, 'v', 0);
62
- const split32 = ArrayRatchet.findSplit(sortedArr, 'v', 32);
63
- expect(split10).toEqual(4);
64
- expect(split4).toEqual(3);
65
- expect(split0).toEqual(null);
66
- expect(split32).toEqual(7);
67
- });
68
- });
69
- //# sourceMappingURL=array-ratchet.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"array-ratchet.spec.js","sourceRoot":"","sources":["../../src/lang/array-ratchet.spec.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- import { Logger } from '../logger/logger.js';
2
- export class Base64Ratchet {
3
- static safeObjectToBase64JSON(input) {
4
- return !!input ? Base64Ratchet.generateBase64VersionOfString(JSON.stringify(input)) : null;
5
- }
6
- static safeBase64JSONParse(input) {
7
- let rval = {};
8
- try {
9
- if (input) {
10
- rval = JSON.parse(Base64Ratchet.base64StringToString(input));
11
- }
12
- }
13
- catch (err) {
14
- Logger.warn('Error parsing b64/json : %s as json, got %s', input, err, err);
15
- rval = {};
16
- }
17
- return rval;
18
- }
19
- static generateBase64VersionOfBlob(blob) {
20
- return new Promise(function (resolve, reject) {
21
- if (!blob || blob.size == 0) {
22
- reject('Wont convert null or non-blob or empty blob');
23
- }
24
- else {
25
- const reader = new FileReader();
26
- reader.onloadend = function () {
27
- resolve(reader.result.toString());
28
- };
29
- reader.readAsDataURL(blob);
30
- }
31
- });
32
- }
33
- static generateBase64VersionOfString(input) {
34
- return Base64Ratchet.generateBase64VersionOfBuffer(Buffer.from(input));
35
- }
36
- static generateBase64VersionOfBuffer(input) {
37
- return input.toString('base64');
38
- }
39
- static base64StringToBuffer(input) {
40
- return Buffer.from(input, 'base64');
41
- }
42
- static base64StringToString(input, encoding = 'utf8') {
43
- return Buffer.from(input, 'base64').toString(encoding);
44
- }
45
- }
46
- //# sourceMappingURL=base64-ratchet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base64-ratchet.js","sourceRoot":"","sources":["../../src/lang/base64-ratchet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,aAAa;IAEjB,MAAM,CAAC,sBAAsB,CAAC,KAAU;QAC7C,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,6BAA6B,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7F,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,KAAa;QAC7C,IAAI,IAAI,GAAQ,EAAE,CAAC;QACnB,IAAI;YACF,IAAI,KAAK,EAAE;gBACT,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;aAC9D;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,IAAI,CAAC,6CAA6C,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5E,IAAI,GAAG,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,2BAA2B,CAAC,IAAU;QAClD,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM;YAC1C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;gBAC3B,MAAM,CAAC,6CAA6C,CAAC,CAAC;aACvD;iBAAM;gBACL,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAChC,MAAM,CAAC,SAAS,GAAG;oBACjB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpC,CAAC,CAAC;gBACF,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,6BAA6B,CAAC,KAAa;QACvD,OAAO,aAAa,CAAC,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,CAAC;IAEM,MAAM,CAAC,6BAA6B,CAAC,KAAa;QAEvD,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,KAAa;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,KAAa,EAAE,WAA2B,MAAM;QACjF,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -1,29 +0,0 @@
1
- import { Base64Ratchet } from './base64-ratchet.js';
2
- describe('#base64', function () {
3
- it('should parse a buffer from base64', function () {
4
- const result = Base64Ratchet.base64StringToBuffer('dGVzdHVzZXI6dGVzdHBhc3M=');
5
- expect(result).toBeTruthy();
6
- expect(result.length).toEqual(17);
7
- });
8
- it('should parse a string from base64', function () {
9
- const result = Base64Ratchet.base64StringToString('dGVzdHVzZXI6dGVzdHBhc3M=');
10
- expect(result).toBeTruthy();
11
- expect(result.length).toEqual(17);
12
- });
13
- it('should round-trip a string', function () {
14
- const testString = 'teststring';
15
- const enc = Base64Ratchet.generateBase64VersionOfString(testString);
16
- const result = Base64Ratchet.base64StringToString(enc);
17
- expect(result).toBeTruthy();
18
- expect(result).toEqual(testString);
19
- });
20
- it('should round-trip an object', function () {
21
- const testOb = { a: 'teststring', b: 27 };
22
- const enc = Base64Ratchet.safeObjectToBase64JSON(testOb);
23
- const result = Base64Ratchet.safeBase64JSONParse(enc);
24
- expect(result).toBeTruthy();
25
- expect(result.a).toEqual(testOb.a);
26
- expect(result.b).toEqual(testOb.b);
27
- });
28
- });
29
- //# sourceMappingURL=base64-ratchet.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base64-ratchet.spec.js","sourceRoot":"","sources":["../../src/lang/base64-ratchet.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,QAAQ,CAAC,SAAS,EAAE;IAClB,EAAE,CAAC,mCAAmC,EAAE;QACtC,MAAM,MAAM,GAAW,aAAa,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE;QACtC,MAAM,MAAM,GAAW,aAAa,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;QACtF,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAC/B,MAAM,UAAU,GAAW,YAAY,CAAC;QACxC,MAAM,GAAG,GAAW,aAAa,CAAC,6BAA6B,CAAC,UAAU,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAW,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE;QAChC,MAAM,MAAM,GAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAW,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,MAAM,GAAQ,aAAa,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,46 +0,0 @@
1
- import { NumberRatchet } from './number-ratchet.js';
2
- export class BooleanRatchet {
3
- static allTrue(vals, emptyArraysReturn = false) {
4
- let rval = null;
5
- if (!!vals) {
6
- if (vals.length > 0) {
7
- rval = vals.reduce((a, i) => a && i, true);
8
- }
9
- else {
10
- rval = emptyArraysReturn;
11
- }
12
- }
13
- else {
14
- rval = false;
15
- }
16
- return rval;
17
- }
18
- static anyTrue(vals, emptyArraysReturn = false) {
19
- let rval = null;
20
- if (!!vals) {
21
- if (vals.length > 0) {
22
- rval = vals.reduce((a, i) => a || i, false);
23
- }
24
- else {
25
- rval = emptyArraysReturn;
26
- }
27
- }
28
- else {
29
- rval = false;
30
- }
31
- return rval;
32
- }
33
- static parseBool(val) {
34
- return val === true || (val !== null && val !== undefined && typeof val === 'string' && val.toLowerCase() === 'true');
35
- }
36
- static intToBool(val) {
37
- if (val === null || val === undefined) {
38
- return false;
39
- }
40
- return NumberRatchet.safeNumber(val) !== 0;
41
- }
42
- static boolToInt(val) {
43
- return BooleanRatchet.parseBool(val) ? 1 : 0;
44
- }
45
- }
46
- //# sourceMappingURL=boolean-ratchet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boolean-ratchet.js","sourceRoot":"","sources":["../../src/lang/boolean-ratchet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,OAAO,cAAc;IAClB,MAAM,CAAC,OAAO,CAAC,IAAe,EAAE,oBAA6B,KAAK;QACvE,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,EAAE;YACV,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;aAC5C;iBAAM;gBACL,IAAI,GAAG,iBAAiB,CAAC;aAC1B;SACF;aAAM;YAEL,IAAI,GAAG,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,IAAe,EAAE,oBAA6B,KAAK;QACvE,IAAI,IAAI,GAAY,IAAI,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,EAAE;YACV,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACnB,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;aAC7C;iBAAM;gBACL,IAAI,GAAG,iBAAiB,CAAC;aAC1B;SACF;aAAM;YAEL,IAAI,GAAG,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,MAAM,CAAC,SAAS,CAAC,GAAQ;QAC9B,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;IACxH,CAAC;IAGM,MAAM,CAAC,SAAS,CAAC,GAAQ;QAC9B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;YACrC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAGM,MAAM,CAAC,SAAS,CAAC,GAAQ;QAC9B,OAAO,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -1,82 +0,0 @@
1
- import { BooleanRatchet } from './boolean-ratchet.js';
2
- import { NumberRatchet } from './number-ratchet.js';
3
- describe('#parseBool', function () {
4
- it('should check all true', function () {
5
- expect(BooleanRatchet.allTrue(null)).toEqual(false);
6
- expect(BooleanRatchet.allTrue([])).toEqual(false);
7
- expect(BooleanRatchet.allTrue([], true)).toEqual(true);
8
- expect(BooleanRatchet.allTrue([true])).toEqual(true);
9
- expect(BooleanRatchet.allTrue([true, true])).toEqual(true);
10
- expect(BooleanRatchet.allTrue([true, false, true])).toEqual(false);
11
- expect(BooleanRatchet.allTrue([false])).toEqual(false);
12
- expect(BooleanRatchet.allTrue([false, false])).toEqual(false);
13
- });
14
- it('should check any true', function () {
15
- expect(BooleanRatchet.anyTrue(null)).toEqual(false);
16
- expect(BooleanRatchet.anyTrue([])).toEqual(false);
17
- expect(BooleanRatchet.anyTrue([], true)).toEqual(true);
18
- expect(BooleanRatchet.anyTrue([true])).toEqual(true);
19
- expect(BooleanRatchet.anyTrue([true, true])).toEqual(true);
20
- expect(BooleanRatchet.anyTrue([true, false, true])).toEqual(true);
21
- expect(BooleanRatchet.anyTrue([false])).toEqual(false);
22
- expect(BooleanRatchet.anyTrue([false, false])).toEqual(false);
23
- });
24
- it('should xxx', function () {
25
- const val = 'false';
26
- const r1 = BooleanRatchet.parseBool(val);
27
- const r2 = BooleanRatchet.intToBool(val);
28
- const result = BooleanRatchet.parseBool(val) || BooleanRatchet.intToBool(NumberRatchet.safeNumber(val));
29
- expect(result).toEqual(false);
30
- });
31
- it('should parse the string true as true', function () {
32
- const result = BooleanRatchet.parseBool('true');
33
- expect(result).toEqual(true);
34
- });
35
- it('should parse the string TRUE as true', function () {
36
- const result = BooleanRatchet.parseBool('TRUE');
37
- expect(result).toEqual(true);
38
- });
39
- it('should parse the boolean true as true', function () {
40
- const result = BooleanRatchet.parseBool(true);
41
- expect(result).toEqual(true);
42
- });
43
- it('should parse the empty string as false', function () {
44
- const result = BooleanRatchet.parseBool('');
45
- expect(result).toEqual(false);
46
- });
47
- it('should parse null as false', function () {
48
- const result = BooleanRatchet.parseBool(null);
49
- expect(result).toEqual(false);
50
- });
51
- it('should parse "asdf" as false', function () {
52
- const result = BooleanRatchet.parseBool('asdf');
53
- expect(result).toEqual(false);
54
- });
55
- });
56
- describe('#intToBool', function () {
57
- it('should parse null as false', function () {
58
- const result = BooleanRatchet.intToBool(null);
59
- expect(result).toEqual(false);
60
- });
61
- it('should parse 0 as false', function () {
62
- const result = BooleanRatchet.intToBool(0);
63
- expect(result).toEqual(false);
64
- });
65
- it('should parse "0" as false', function () {
66
- const result = BooleanRatchet.intToBool('0');
67
- expect(result).toEqual(false);
68
- });
69
- it('should parse 1 as true', function () {
70
- const result = BooleanRatchet.intToBool(1);
71
- expect(result).toEqual(true);
72
- });
73
- it('should parse "1" as true', function () {
74
- const result = BooleanRatchet.intToBool('1');
75
- expect(result).toEqual(true);
76
- });
77
- it('should parse "2" as true', function () {
78
- const result = BooleanRatchet.intToBool('2');
79
- expect(result).toEqual(true);
80
- });
81
- });
82
- //# sourceMappingURL=boolean-ratchet.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boolean-ratchet.spec.js","sourceRoot":"","sources":["../../src/lang/boolean-ratchet.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,QAAQ,CAAC,YAAY,EAAE;IACrB,EAAE,CAAC,uBAAuB,EAAE;QAC1B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,uBAAuB,EAAE;QAC1B,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,YAAY,EAAE;QACf,MAAM,GAAG,GAAW,OAAO,CAAC;QAC5B,MAAM,EAAE,GAAY,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,EAAE,GAAY,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAElD,MAAM,MAAM,GAAY,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACjH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE;QACzC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE;QAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE;QAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE;QACjC,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,YAAY,EAAE;IACrB,EAAE,CAAC,4BAA4B,EAAE;QAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE;QAC5B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE;QAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE;QAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE;QAC7B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE;QAC7B,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}