@bitblit/ratchet-common 4.0.98-alpha → 4.0.102-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 (298) hide show
  1. package/dist/{types/2d → 2d}/line-2d.d.ts +1 -1
  2. package/dist/{types/2d → 2d}/poly-line-2d.d.ts +1 -1
  3. package/dist/{types/2d → 2d}/ratchet-2d.d.ts +4 -4
  4. package/dist/{es/2d → 2d}/ratchet-2d.js +1 -1
  5. package/dist/2d/ratchet-2d.spec.js +117 -0
  6. package/dist/{types/build → build}/ratchet-common-info.d.ts +1 -1
  7. package/dist/{types/histogram → histogram}/histogram.d.ts +1 -4
  8. package/dist/{es/histogram → histogram}/histogram.js +1 -3
  9. package/dist/histogram/histogram.spec.js +19 -0
  10. package/dist/jwt/common-jwt-token.d.ts +6 -0
  11. package/dist/{types/jwt → jwt}/jwt-ratchet-like.d.ts +3 -6
  12. package/dist/{types/jwt → jwt}/jwt-ratchet.d.ts +4 -13
  13. package/dist/{es/jwt → jwt}/jwt-ratchet.js +12 -7
  14. package/dist/jwt/jwt-ratchet.spec.js +49 -0
  15. package/dist/{types/jwt → jwt}/jwt-token-base.d.ts +0 -4
  16. package/dist/lang/array-ratchet.d.ts +14 -0
  17. package/dist/{es/lang → lang}/array-ratchet.js +2 -2
  18. package/dist/lang/array-ratchet.spec.js +68 -0
  19. package/dist/{types/lang → lang}/base64-ratchet.d.ts +1 -1
  20. package/dist/{es/lang → lang}/base64-ratchet.js +1 -1
  21. package/dist/lang/base64-ratchet.spec.js +28 -0
  22. package/dist/{es/lang → lang}/boolean-ratchet.js +1 -1
  23. package/dist/lang/boolean-ratchet.spec.js +81 -0
  24. package/dist/{types/lang → lang}/composite-last-success-provider.d.ts +1 -2
  25. package/dist/{es/lang → lang}/composite-last-success-provider.js +2 -0
  26. package/dist/lang/composite-last-success-provider.spec.js +26 -0
  27. package/dist/{es/lang → lang}/date-ratchet.js +5 -5
  28. package/dist/lang/date-ratchet.spec.js +21 -0
  29. package/dist/{es/lang → lang}/duration-ratchet.js +1 -1
  30. package/dist/lang/duration-ratchet.spec.js +39 -0
  31. package/dist/lang/enum-ratchet.d.ts +5 -0
  32. package/dist/{es/lang → lang}/enum-ratchet.js +1 -1
  33. package/dist/lang/enum-ratchet.spec.d.ts +5 -0
  34. package/dist/lang/enum-ratchet.spec.js +31 -0
  35. package/dist/{es/lang → lang}/error-ratchet.js +1 -1
  36. package/dist/lang/error-ratchet.spec.js +20 -0
  37. package/dist/lang/esm-ratchet.d.ts +4 -0
  38. package/dist/lang/esm-ratchet.js +11 -0
  39. package/dist/{types/lang → lang}/expiring-object.d.ts +1 -1
  40. package/dist/{es/lang → lang}/expiring-object.js +13 -4
  41. package/dist/lang/expiring-object.spec.js +51 -0
  42. package/dist/{es/lang → lang}/geolocation-ratchet.js +4 -4
  43. package/dist/lang/geolocation-ratchet.spec.d.ts +1 -0
  44. package/dist/lang/geolocation-ratchet.spec.js +74 -0
  45. package/dist/{es/lang → lang}/global-ratchet.js +3 -3
  46. package/dist/lang/global-ratchet.spec.d.ts +1 -0
  47. package/dist/lang/global-ratchet.spec.js +14 -0
  48. package/dist/{es/lang → lang}/key-value.js +2 -0
  49. package/dist/lang/last-success-provider.d.ts +3 -0
  50. package/dist/lang/last-success-provider.js +1 -0
  51. package/dist/{types/lang → lang}/map-ratchet.d.ts +1 -1
  52. package/dist/{es/lang → lang}/map-ratchet.js +3 -3
  53. package/dist/lang/map-ratchet.spec.d.ts +1 -0
  54. package/dist/lang/map-ratchet.spec.js +90 -0
  55. package/dist/lang/no.spec.d.ts +1 -0
  56. package/dist/lang/no.spec.js +7 -0
  57. package/dist/{es/lang → lang}/number-ratchet.js +3 -3
  58. package/dist/lang/number-ratchet.spec.d.ts +1 -0
  59. package/dist/lang/number-ratchet.spec.js +118 -0
  60. package/dist/lang/parsed-url.js +1 -0
  61. package/dist/lang/promise-ratchet.d.ts +18 -0
  62. package/dist/{es/lang → lang}/promise-ratchet.js +5 -5
  63. package/dist/lang/promise-ratchet.spec.d.ts +1 -0
  64. package/dist/lang/promise-ratchet.spec.js +74 -0
  65. package/dist/{es/lang → lang}/require-ratchet.js +1 -1
  66. package/dist/lang/require-ratchet.spec.d.ts +3 -0
  67. package/dist/lang/require-ratchet.spec.js +80 -0
  68. package/dist/{types/lang → lang}/stop-watch.d.ts +1 -1
  69. package/dist/{es/lang → lang}/stop-watch.js +9 -8
  70. package/dist/{es/lang → lang}/string-ratchet.js +2 -2
  71. package/dist/lang/string-ratchet.spec.d.ts +1 -0
  72. package/dist/lang/string-ratchet.spec.js +158 -0
  73. package/dist/lang/time-zone-ratchet.d.ts +19 -0
  74. package/dist/{es/lang → lang}/time-zone-ratchet.js +2 -1
  75. package/dist/lang/time-zone-ratchet.spec.d.ts +1 -0
  76. package/dist/lang/time-zone-ratchet.spec.js +40 -0
  77. package/dist/{types/lang → lang}/timeout-token.d.ts +1 -1
  78. package/dist/{es/lang → lang}/timeout-token.js +5 -3
  79. package/dist/lang/timeout-token.spec.d.ts +1 -0
  80. package/dist/lang/timeout-token.spec.js +9 -0
  81. package/dist/{types/lang → lang}/transform-ratchet.d.ts +1 -1
  82. package/dist/{es/lang → lang}/transform-ratchet.js +1 -1
  83. package/dist/lang/transform-ratchet.spec.d.ts +1 -0
  84. package/dist/lang/transform-ratchet.spec.js +118 -0
  85. package/dist/logger/classic-single-line-log-message-formatter.d.ts +6 -0
  86. package/dist/{types/logger → logger}/log-message-builder.d.ts +2 -2
  87. package/dist/{es/logger → logger}/log-message-builder.js +1 -0
  88. package/dist/{types/logger → logger}/log-message-formatter.d.ts +2 -2
  89. package/dist/logger/log-message-formatter.js +1 -0
  90. package/dist/{types/logger → logger}/log-message-processor.d.ts +1 -1
  91. package/dist/logger/log-message-processor.js +1 -0
  92. package/dist/{types/logger → logger}/log-message.d.ts +1 -1
  93. package/dist/logger/log-message.js +1 -0
  94. package/dist/{types/logger → logger}/log-snapshot.d.ts +1 -1
  95. package/dist/logger/log-snapshot.js +1 -0
  96. package/dist/{types/logger → logger}/logger-instance.d.ts +6 -6
  97. package/dist/{es/logger → logger}/logger-instance.js +15 -8
  98. package/dist/{types/logger → logger}/logger-meta.d.ts +1 -1
  99. package/dist/logger/logger-meta.js +1 -0
  100. package/dist/{types/logger → logger}/logger-options.d.ts +4 -4
  101. package/dist/logger/logger-options.js +1 -0
  102. package/dist/{types/logger → logger}/logger-ring-buffer.d.ts +2 -2
  103. package/dist/{es/logger → logger}/logger-ring-buffer.js +7 -6
  104. package/dist/{types/logger → logger}/logger-util.d.ts +2 -2
  105. package/dist/{es/logger → logger}/logger-util.js +10 -10
  106. package/dist/logger/logger-util.spec.d.ts +1 -0
  107. package/dist/logger/logger-util.spec.js +9 -0
  108. package/dist/{types/logger → logger}/logger.d.ts +7 -16
  109. package/dist/{es/logger → logger}/logger.js +14 -14
  110. package/dist/logger/logger.spec.d.ts +1 -0
  111. package/dist/logger/logger.spec.js +134 -0
  112. package/dist/logger/none-log-message-formatter.d.ts +6 -0
  113. package/dist/logger/structured-json-log-message-formatter.d.ts +6 -0
  114. package/dist/{types/network → network}/browser-local-ip-provider.d.ts +1 -1
  115. package/dist/{es/network → network}/browser-local-ip-provider.js +3 -3
  116. package/dist/network/browser-local-ip-provider.spec.d.ts +1 -0
  117. package/dist/network/browser-local-ip-provider.spec.js +16 -0
  118. package/dist/{types/network → network}/fixed-local-ip-provider.d.ts +1 -1
  119. package/dist/{es/network → network}/fixed-local-ip-provider.js +1 -0
  120. package/dist/network/local-ip-provider.d.ts +3 -0
  121. package/dist/network/local-ip-provider.js +1 -0
  122. package/dist/{types/network → network}/network-ratchet.d.ts +1 -1
  123. package/dist/{es/network → network}/network-ratchet.js +2 -2
  124. package/dist/network/network-ratchet.spec.d.ts +1 -0
  125. package/dist/network/network-ratchet.spec.js +13 -0
  126. package/dist/{types/stream → stream}/buffer-writable.d.ts +2 -2
  127. package/dist/{es/stream → stream}/buffer-writable.js +1 -1
  128. package/dist/stream/multi-stream.d.ts +7 -0
  129. package/dist/stream/multi-stream.js +12 -0
  130. package/dist/{types/stream → stream}/stream-ratchet.d.ts +2 -2
  131. package/dist/{es/stream → stream}/stream-ratchet.js +2 -2
  132. package/dist/stream/stream-ratchet.spec.d.ts +1 -0
  133. package/dist/stream/stream-ratchet.spec.js +13 -0
  134. package/dist/{types/stream → stream}/string-writable.d.ts +1 -1
  135. package/dist/{es/stream → stream}/string-writable.js +1 -1
  136. package/dist/stream/string-writable.spec.d.ts +1 -0
  137. package/dist/stream/string-writable.spec.js +12 -0
  138. package/dist/{es/third-party → third-party}/google/google-recaptcha-ratchet.js +3 -3
  139. package/dist/third-party/google/google-recaptcha-ratchet.spec.d.ts +1 -0
  140. package/dist/third-party/google/google-recaptcha-ratchet.spec.js +20 -0
  141. package/dist/{types/third-party → third-party}/twilio/twilio-ratchet.d.ts +0 -4
  142. package/dist/{es/third-party → third-party}/twilio/twilio-ratchet.js +8 -5
  143. package/dist/{types/transform → transform}/built-in-transforms.d.ts +1 -1
  144. package/dist/{es/transform → transform}/built-in-transforms.js +2 -2
  145. package/dist/transform/transform-rule.js +1 -0
  146. package/dist/{types/tx → tx}/transaction-configuration.d.ts +2 -2
  147. package/dist/tx/transaction-configuration.js +1 -0
  148. package/dist/{types/tx → tx}/transaction-ratchet.d.ts +3 -3
  149. package/dist/{es/tx → tx}/transaction-ratchet.js +4 -4
  150. package/dist/tx/transaction-ratchet.spec.d.ts +1 -0
  151. package/dist/tx/transaction-ratchet.spec.js +130 -0
  152. package/dist/{types/tx → tx}/transaction-result.d.ts +1 -1
  153. package/dist/tx/transaction-result.js +1 -0
  154. package/dist/tx/transaction-step.js +1 -0
  155. package/package.json +10 -11
  156. package/dist/cjs/2d/line-2d.js +0 -2
  157. package/dist/cjs/2d/plane-2d.js +0 -2
  158. package/dist/cjs/2d/point-2d.js +0 -2
  159. package/dist/cjs/2d/poly-line-2d.js +0 -2
  160. package/dist/cjs/2d/ratchet-2d.js +0 -250
  161. package/dist/cjs/build/build-information.js +0 -2
  162. package/dist/cjs/build/ratchet-common-info.js +0 -18
  163. package/dist/cjs/histogram/histogram-entry.js +0 -2
  164. package/dist/cjs/histogram/histogram.js +0 -54
  165. package/dist/cjs/index.js +0 -74
  166. package/dist/cjs/jwt/common-jwt-token.js +0 -2
  167. package/dist/cjs/jwt/expired-jwt-handling.js +0 -9
  168. package/dist/cjs/jwt/jwt-ratchet-like.js +0 -2
  169. package/dist/cjs/jwt/jwt-ratchet.js +0 -164
  170. package/dist/cjs/jwt/jwt-token-base.js +0 -2
  171. package/dist/cjs/lang/array-ratchet.js +0 -87
  172. package/dist/cjs/lang/base64-ratchet.js +0 -49
  173. package/dist/cjs/lang/boolean-ratchet.js +0 -49
  174. package/dist/cjs/lang/composite-last-success-provider.js +0 -28
  175. package/dist/cjs/lang/date-ratchet.js +0 -33
  176. package/dist/cjs/lang/duration-ratchet.js +0 -46
  177. package/dist/cjs/lang/enum-ratchet.js +0 -34
  178. package/dist/cjs/lang/error-ratchet.js +0 -49
  179. package/dist/cjs/lang/expiring-object.js +0 -68
  180. package/dist/cjs/lang/geolocation-ratchet.js +0 -267
  181. package/dist/cjs/lang/global-ratchet.js +0 -48
  182. package/dist/cjs/lang/key-value.js +0 -6
  183. package/dist/cjs/lang/last-success-provider.js +0 -2
  184. package/dist/cjs/lang/map-ratchet.js +0 -168
  185. package/dist/cjs/lang/no.js +0 -8
  186. package/dist/cjs/lang/number-ratchet.js +0 -159
  187. package/dist/cjs/lang/parsed-url.js +0 -2
  188. package/dist/cjs/lang/promise-ratchet.js +0 -142
  189. package/dist/cjs/lang/require-ratchet.js +0 -60
  190. package/dist/cjs/lang/stop-watch.js +0 -117
  191. package/dist/cjs/lang/string-ratchet.js +0 -195
  192. package/dist/cjs/lang/time-zone-ratchet.js +0 -80
  193. package/dist/cjs/lang/timeout-token.js +0 -19
  194. package/dist/cjs/lang/transform-ratchet.js +0 -70
  195. package/dist/cjs/logger/classic-single-line-log-message-formatter.js +0 -18
  196. package/dist/cjs/logger/log-message-builder.js +0 -51
  197. package/dist/cjs/logger/log-message-format-type.js +0 -9
  198. package/dist/cjs/logger/log-message-formatter.js +0 -2
  199. package/dist/cjs/logger/log-message-processor.js +0 -2
  200. package/dist/cjs/logger/log-message.js +0 -2
  201. package/dist/cjs/logger/log-snapshot.js +0 -2
  202. package/dist/cjs/logger/logger-instance.js +0 -207
  203. package/dist/cjs/logger/logger-level-name.js +0 -12
  204. package/dist/cjs/logger/logger-meta.js +0 -2
  205. package/dist/cjs/logger/logger-options.js +0 -2
  206. package/dist/cjs/logger/logger-output-function.js +0 -9
  207. package/dist/cjs/logger/logger-ring-buffer.js +0 -76
  208. package/dist/cjs/logger/logger-util.js +0 -49
  209. package/dist/cjs/logger/logger.js +0 -139
  210. package/dist/cjs/logger/none-log-message-formatter.js +0 -9
  211. package/dist/cjs/logger/structured-json-log-message-formatter.js +0 -24
  212. package/dist/cjs/network/browser-local-ip-provider.js +0 -25
  213. package/dist/cjs/network/fixed-local-ip-provider.js +0 -12
  214. package/dist/cjs/network/local-ip-provider.js +0 -2
  215. package/dist/cjs/network/network-ratchet.js +0 -106
  216. package/dist/cjs/stream/buffer-writable.js +0 -20
  217. package/dist/cjs/stream/stream-ratchet.js +0 -72
  218. package/dist/cjs/stream/string-writable.js +0 -18
  219. package/dist/cjs/third-party/google/google-recaptcha-ratchet.js +0 -33
  220. package/dist/cjs/third-party/twilio/twilio-ratchet.js +0 -75
  221. package/dist/cjs/transform/built-in-transforms.js +0 -195
  222. package/dist/cjs/transform/transform-rule.js +0 -2
  223. package/dist/cjs/tx/transaction-configuration.js +0 -2
  224. package/dist/cjs/tx/transaction-final-state.js +0 -9
  225. package/dist/cjs/tx/transaction-ratchet.js +0 -80
  226. package/dist/cjs/tx/transaction-result.js +0 -2
  227. package/dist/cjs/tx/transaction-step.js +0 -2
  228. package/dist/es/index.js +0 -71
  229. package/dist/tsconfig.cjs.tsbuildinfo +0 -1
  230. package/dist/tsconfig.es.tsbuildinfo +0 -1
  231. package/dist/tsconfig.types.tsbuildinfo +0 -1
  232. package/dist/types/index.d.ts +0 -74
  233. package/dist/types/jwt/common-jwt-token.d.ts +0 -17
  234. package/dist/types/lang/array-ratchet.d.ts +0 -30
  235. package/dist/types/lang/enum-ratchet.d.ts +0 -12
  236. package/dist/types/lang/last-success-provider.d.ts +0 -4
  237. package/dist/types/lang/promise-ratchet.d.ts +0 -32
  238. package/dist/types/lang/time-zone-ratchet.d.ts +0 -50
  239. package/dist/types/logger/classic-single-line-log-message-formatter.d.ts +0 -6
  240. package/dist/types/logger/none-log-message-formatter.d.ts +0 -6
  241. package/dist/types/logger/structured-json-log-message-formatter.d.ts +0 -6
  242. package/dist/types/network/local-ip-provider.d.ts +0 -4
  243. /package/dist/{es/2d → 2d}/line-2d.js +0 -0
  244. /package/dist/{types/2d → 2d}/plane-2d.d.ts +0 -0
  245. /package/dist/{es/2d → 2d}/plane-2d.js +0 -0
  246. /package/dist/{types/2d → 2d}/point-2d.d.ts +0 -0
  247. /package/dist/{es/2d → 2d}/point-2d.js +0 -0
  248. /package/dist/{es/2d → 2d}/poly-line-2d.js +0 -0
  249. /package/dist/{es/build/build-information.js → 2d/ratchet-2d.spec.d.ts} +0 -0
  250. /package/dist/{types/build → build}/build-information.d.ts +0 -0
  251. /package/dist/{es/histogram/histogram-entry.js → build/build-information.js} +0 -0
  252. /package/dist/{es/build → build}/ratchet-common-info.js +0 -0
  253. /package/dist/{types/histogram → histogram}/histogram-entry.d.ts +0 -0
  254. /package/dist/{es/jwt/common-jwt-token.js → histogram/histogram-entry.js} +0 -0
  255. /package/dist/{es/jwt/jwt-ratchet-like.js → histogram/histogram.spec.d.ts} +0 -0
  256. /package/dist/{es/jwt/jwt-token-base.js → index.d.ts} +0 -0
  257. /package/dist/{es/lang/last-success-provider.js → index.js} +0 -0
  258. /package/dist/{es/lang/parsed-url.js → jwt/common-jwt-token.js} +0 -0
  259. /package/dist/{types/jwt → jwt}/expired-jwt-handling.d.ts +0 -0
  260. /package/dist/{es/jwt → jwt}/expired-jwt-handling.js +0 -0
  261. /package/dist/{es/logger/log-message-formatter.js → jwt/jwt-ratchet-like.js} +0 -0
  262. /package/dist/{es/logger/log-message-processor.js → jwt/jwt-ratchet.spec.d.ts} +0 -0
  263. /package/dist/{es/logger/log-message.js → jwt/jwt-token-base.js} +0 -0
  264. /package/dist/{es/logger/log-snapshot.js → lang/array-ratchet.spec.d.ts} +0 -0
  265. /package/dist/{es/logger/logger-meta.js → lang/base64-ratchet.spec.d.ts} +0 -0
  266. /package/dist/{types/lang → lang}/boolean-ratchet.d.ts +0 -0
  267. /package/dist/{es/logger/logger-options.js → lang/boolean-ratchet.spec.d.ts} +0 -0
  268. /package/dist/{es/network/local-ip-provider.js → lang/composite-last-success-provider.spec.d.ts} +0 -0
  269. /package/dist/{types/lang → lang}/date-ratchet.d.ts +0 -0
  270. /package/dist/{es/transform/transform-rule.js → lang/date-ratchet.spec.d.ts} +0 -0
  271. /package/dist/{types/lang → lang}/duration-ratchet.d.ts +0 -0
  272. /package/dist/{es/tx/transaction-configuration.js → lang/duration-ratchet.spec.d.ts} +0 -0
  273. /package/dist/{types/lang → lang}/error-ratchet.d.ts +0 -0
  274. /package/dist/{es/tx/transaction-result.js → lang/error-ratchet.spec.d.ts} +0 -0
  275. /package/dist/{es/tx/transaction-step.js → lang/expiring-object.spec.d.ts} +0 -0
  276. /package/dist/{types/lang → lang}/geolocation-ratchet.d.ts +0 -0
  277. /package/dist/{types/lang → lang}/global-ratchet.d.ts +0 -0
  278. /package/dist/{types/lang → lang}/key-value.d.ts +0 -0
  279. /package/dist/{types/lang → lang}/no.d.ts +0 -0
  280. /package/dist/{es/lang → lang}/no.js +0 -0
  281. /package/dist/{types/lang → lang}/number-ratchet.d.ts +0 -0
  282. /package/dist/{types/lang → lang}/parsed-url.d.ts +0 -0
  283. /package/dist/{types/lang → lang}/require-ratchet.d.ts +0 -0
  284. /package/dist/{types/lang → lang}/string-ratchet.d.ts +0 -0
  285. /package/dist/{es/logger → logger}/classic-single-line-log-message-formatter.js +0 -0
  286. /package/dist/{types/logger → logger}/log-message-format-type.d.ts +0 -0
  287. /package/dist/{es/logger → logger}/log-message-format-type.js +0 -0
  288. /package/dist/{types/logger → logger}/logger-level-name.d.ts +0 -0
  289. /package/dist/{es/logger → logger}/logger-level-name.js +0 -0
  290. /package/dist/{types/logger → logger}/logger-output-function.d.ts +0 -0
  291. /package/dist/{es/logger → logger}/logger-output-function.js +0 -0
  292. /package/dist/{es/logger → logger}/none-log-message-formatter.js +0 -0
  293. /package/dist/{es/logger → logger}/structured-json-log-message-formatter.js +0 -0
  294. /package/dist/{types/third-party → third-party}/google/google-recaptcha-ratchet.d.ts +0 -0
  295. /package/dist/{types/transform → transform}/transform-rule.d.ts +0 -0
  296. /package/dist/{types/tx → tx}/transaction-final-state.d.ts +0 -0
  297. /package/dist/{es/tx → tx}/transaction-final-state.js +0 -0
  298. /package/dist/{types/tx → tx}/transaction-step.d.ts +0 -0
@@ -1,159 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NumberRatchet = void 0;
4
- const logger_1 = require("../logger/logger");
5
- const require_ratchet_1 = require("./require-ratchet");
6
- class NumberRatchet {
7
- static toFixedDecimalNumber(input, placesAfterPoint) {
8
- const v = NumberRatchet.safeNumber(input);
9
- return v === null || v === undefined ? v : NumberRatchet.safeNumber(v.toFixed(placesAfterPoint));
10
- }
11
- static leadingZeros(val, size) {
12
- const sVal = String(val);
13
- if (sVal.length < size) {
14
- let pad = '0000';
15
- if (size > NumberRatchet.MAX_LEADING_ZEROS_FORMAT_LENGTH) {
16
- throw 'Cannot format number that large (max length is ' + NumberRatchet.MAX_LEADING_ZEROS_FORMAT_LENGTH + ')';
17
- }
18
- while (pad.length < size) {
19
- pad = pad + pad;
20
- }
21
- return (pad + sVal).slice(-1 * size);
22
- }
23
- else {
24
- return sVal;
25
- }
26
- }
27
- static between(inTest, inP1, inP2) {
28
- const test = NumberRatchet.safeNumber(inTest);
29
- const p1 = NumberRatchet.safeNumber(inP1);
30
- const p2 = NumberRatchet.safeNumber(inP2);
31
- return (test >= p1 && test <= p2) || (test >= p2 && test <= p1);
32
- }
33
- static safeNumber(input, ifNotNumber = null, useDefaultForNullAndUndefined) {
34
- let rval = undefined;
35
- if (input !== null && input !== undefined) {
36
- const type = typeof input;
37
- if (type == 'number') {
38
- rval = input;
39
- }
40
- else if (type == 'string') {
41
- if (input.trim().length === 0) {
42
- rval = ifNotNumber;
43
- }
44
- else {
45
- rval = Number.parseFloat(input);
46
- }
47
- }
48
- else {
49
- logger_1.Logger.warn('Value is of type %s, returning default', type);
50
- rval = ifNotNumber;
51
- }
52
- if (isNaN(rval)) {
53
- logger_1.Logger.debug('Parsed string to NaN - using NaN value from param');
54
- rval = ifNotNumber;
55
- }
56
- }
57
- else {
58
- rval = useDefaultForNullAndUndefined ? ifNotNumber : input;
59
- }
60
- return rval;
61
- }
62
- static numberCSVToList(inputCSV) {
63
- let rval = null;
64
- if (inputCSV) {
65
- rval = inputCSV.split(',').map((s) => {
66
- return NumberRatchet.safeNumber(s.trim());
67
- });
68
- rval = rval.filter((r) => typeof r === 'number' && !isNaN(r));
69
- }
70
- return rval;
71
- }
72
- static fitToWindow(val, b1, b2) {
73
- let rval = val;
74
- if (val === null || b1 === null || b2 === null || b1 < 0 || b2 < 0 || val < 0) {
75
- throw new Error('All values must be non-null and larger than 0');
76
- }
77
- const low = Math.min(b1, b2);
78
- const high = Math.max(b1, b2);
79
- const windowSize = high - low;
80
- if (high === low) {
81
- rval = high;
82
- }
83
- else {
84
- while (rval < low) {
85
- rval += windowSize;
86
- }
87
- while (rval > high) {
88
- rval -= windowSize;
89
- }
90
- }
91
- return rval;
92
- }
93
- static groupNumbersIntoContiguousRanges(inputData, minRangeSize = 3) {
94
- require_ratchet_1.RequireRatchet.notNullOrUndefined(inputData);
95
- const input = Object.assign([], inputData);
96
- input.sort((a, b) => a - b);
97
- const singles = [];
98
- const ranges = [];
99
- let start = 0;
100
- for (let i = 1; i < input.length; i++) {
101
- if (input[i] === input[i - 1] + 1) {
102
- }
103
- else {
104
- if (start === i - 1) {
105
- singles.push(input[i - 1]);
106
- }
107
- else {
108
- const rangeSize = i - start;
109
- if (rangeSize < minRangeSize) {
110
- for (let j = start; j < i; j++) {
111
- singles.push(input[j]);
112
- }
113
- }
114
- else {
115
- ranges.push({
116
- min: input[start],
117
- max: input[i - 1],
118
- });
119
- }
120
- }
121
- start = i;
122
- }
123
- }
124
- return {
125
- singles: singles,
126
- ranges: ranges,
127
- };
128
- }
129
- static distributeItemsEvenly(items, buckets) {
130
- require_ratchet_1.RequireRatchet.notNullOrUndefined(items, 'items');
131
- require_ratchet_1.RequireRatchet.notNullOrUndefined(buckets, 'buckets');
132
- require_ratchet_1.RequireRatchet.true(items > 0 && items === Math.floor(items), 'Items integer larger than 0');
133
- require_ratchet_1.RequireRatchet.true(buckets > 0 && buckets === Math.floor(buckets), 'Buckets integer larger than 0');
134
- const offset = buckets / items;
135
- const rval = [];
136
- for (let i = 0; i < buckets; i++) {
137
- rval.push(0);
138
- }
139
- let loc = 0;
140
- let rem = items;
141
- while (rem > 0) {
142
- rval[Math.floor(loc) % buckets]++;
143
- rem--;
144
- loc += offset;
145
- }
146
- return rval;
147
- }
148
- static createRange(minInclusive, maxExclusive, step = 1) {
149
- const rval = [];
150
- let val = minInclusive;
151
- while (val < maxExclusive) {
152
- rval.push(val);
153
- val += step;
154
- }
155
- return rval;
156
- }
157
- }
158
- exports.NumberRatchet = NumberRatchet;
159
- NumberRatchet.MAX_LEADING_ZEROS_FORMAT_LENGTH = 1000;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,142 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PromiseRatchet = void 0;
4
- const logger_1 = require("../logger/logger");
5
- const array_ratchet_1 = require("./array-ratchet");
6
- const timeout_token_1 = require("./timeout-token");
7
- const stop_watch_1 = require("./stop-watch");
8
- const logger_level_name_1 = require("../logger/logger-level-name");
9
- class PromiseRatchet {
10
- static resolveOnEvent(evtSrc, okEvtNames, errEvtNames = [], rval = null) {
11
- if (!evtSrc || !okEvtNames || okEvtNames.length === 0 || !evtSrc['on']) {
12
- Promise.reject('Cannot continue - missing source object or name, or the object is not an event source');
13
- }
14
- return new Promise((res, rej) => {
15
- okEvtNames.forEach((e) => {
16
- evtSrc.on(e, () => {
17
- res(rval);
18
- });
19
- });
20
- if (!!errEvtNames) {
21
- errEvtNames.forEach((e) => {
22
- evtSrc.on(e, (err) => {
23
- rej(err);
24
- });
25
- });
26
- }
27
- });
28
- }
29
- static timeout(srcPromise, title, timeoutMS) {
30
- return Promise.race([srcPromise, PromiseRatchet.createTimeoutPromise(title, timeoutMS)]);
31
- }
32
- static createTimeoutPromise(title, timeoutMS) {
33
- return new Promise((resolve, reject) => {
34
- const id = setTimeout(() => {
35
- clearTimeout(id);
36
- const rval = new timeout_token_1.TimeoutToken(title, timeoutMS);
37
- resolve(rval);
38
- }, timeoutMS);
39
- });
40
- }
41
- static async wait(time) {
42
- await PromiseRatchet.createTimeoutPromise('Wait ' + time, time);
43
- logger_1.Logger.silly('Finished wait of %d ms', time);
44
- }
45
- static dumpResult(result, autoDebug = false) {
46
- logger_1.Logger.info('Success, result was : \n\n%s\n\n', JSON.stringify(result));
47
- if (autoDebug) {
48
- debugger;
49
- }
50
- process.exit(0);
51
- }
52
- static dumpError(err, autoDebug = false) {
53
- logger_1.Logger.warn('Failure, err was : \n\n%s\n\n -- \n\n%s\n\n', JSON.stringify(err), String(err));
54
- console.trace();
55
- if (autoDebug) {
56
- debugger;
57
- }
58
- process.exit(1);
59
- }
60
- static logErrorAndReturnNull(err, autoDebug = false) {
61
- logger_1.Logger.warn('Failure, err was : \n\n%s\n\n -- \n\n%s\n\n', JSON.stringify(err), String(err));
62
- if (autoDebug) {
63
- debugger;
64
- }
65
- return null;
66
- }
67
- static runPromiseAndDump(promise) {
68
- promise.then(PromiseRatchet.dumpResult).catch(PromiseRatchet.dumpError);
69
- }
70
- static async waitFor(testFunction, expectedValue, intervalMS, maxCycles, label = 'waitFor', count = 0) {
71
- if (expectedValue == null || intervalMS < 50 || maxCycles < 1 || count < 0 || typeof testFunction != 'function') {
72
- logger_1.Logger.warn('%s: Invalid configuration for waitFor - exiting immediately', label);
73
- logger_1.Logger.warn('ExpectedValue : %s ; interval: %d ; maxCycles: %d ; test : %s', expectedValue, intervalMS, maxCycles, typeof testFunction);
74
- return false;
75
- }
76
- let curVal = null;
77
- try {
78
- curVal = testFunction(count);
79
- }
80
- catch (err) {
81
- logger_1.Logger.warn('%s: Caught error while waiting, giving up', label);
82
- return false;
83
- }
84
- if (curVal === null) {
85
- logger_1.Logger.debug('%s:CurVal was null - aborting', label);
86
- return false;
87
- }
88
- else if (curVal == expectedValue) {
89
- logger_1.Logger.debug('%s:Found expected value', label);
90
- return true;
91
- }
92
- else if (count > maxCycles) {
93
- logger_1.Logger.debug('%s:Exceeded max cycles, giving up', label);
94
- return false;
95
- }
96
- else {
97
- logger_1.Logger.debug('%s : value not reached yet, waiting (count = %d of %d)', label, count, maxCycles);
98
- await PromiseRatchet.wait(intervalMS);
99
- return PromiseRatchet.waitFor(testFunction, expectedValue, intervalMS, maxCycles, label, count + 1);
100
- }
101
- }
102
- static async runBoundedParallel(promiseFn, params, context, maxConcurrent = 1, logLevel = logger_level_name_1.LoggerLevelName.debug) {
103
- const sw = new stop_watch_1.StopWatch();
104
- let rval = [];
105
- let remain = params;
106
- logger_1.Logger.logByLevel(logLevel, 'Processing %d total elements %d at a time', params.length, maxConcurrent);
107
- const ctx = context || this;
108
- let processed = 0;
109
- const totalCount = remain.length;
110
- while (remain.length > 0) {
111
- const curBatch = remain.slice(0, Math.min(remain.length, maxConcurrent));
112
- remain = remain.slice(curBatch.length);
113
- const proms = curBatch.map((c) => promiseFn.apply(ctx, c));
114
- const output = await Promise.all(proms);
115
- processed += proms.length;
116
- rval = rval.concat(output);
117
- const pct = processed / totalCount;
118
- logger_1.Logger.logByLevel(logLevel, '%d elements remain : %s', remain.length, sw.dumpExpected(pct));
119
- }
120
- sw.log();
121
- return rval;
122
- }
123
- static async runBoundedParallelSingleParam(promiseFn, params, context, maxConcurrent = 1, logLevel = logger_level_name_1.LoggerLevelName.debug) {
124
- const wrappedParams = array_ratchet_1.ArrayRatchet.wrapElementsInArray(params);
125
- return PromiseRatchet.runBoundedParallel(promiseFn, wrappedParams, context, maxConcurrent, logLevel);
126
- }
127
- static async asyncForEachSerial(array, callback) {
128
- for (let index = 0; index < array.length; index++) {
129
- await callback(array[index], index, array);
130
- }
131
- }
132
- static async asyncForEachParallel(array, callback) {
133
- const proms = [];
134
- for (let index = 0; index < array.length; index++) {
135
- proms.push(callback(array[index], index, array));
136
- }
137
- await Promise.all(proms);
138
- }
139
- constructor() {
140
- }
141
- }
142
- exports.PromiseRatchet = PromiseRatchet;
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RequireRatchet = void 0;
4
- const error_ratchet_1 = require("./error-ratchet");
5
- class RequireRatchet {
6
- static isNullOrUndefined(ob) {
7
- return ob === null || ob === undefined;
8
- }
9
- static notNullOrUndefined(ob, name = 'object') {
10
- if (RequireRatchet.isNullOrUndefined(ob)) {
11
- throw new Error(name + ' may not be null or undefined');
12
- }
13
- }
14
- static notNullUndefinedOrOnlyWhitespaceString(ob, name = 'string') {
15
- if (RequireRatchet.isNullOrUndefined(ob) || ob.trim() === '') {
16
- throw new Error(name + ' may not be null or undefined or only whitespace string');
17
- }
18
- }
19
- static notNullUndefinedOrEmptyArray(ob, name = 'string') {
20
- if (RequireRatchet.isNullOrUndefined(ob) || ob.length === 0) {
21
- throw new Error(name + ' may not be null or undefined or an empty array');
22
- }
23
- }
24
- static equal(ob1, ob2, message = 'Values must be equal') {
25
- if (ob1 !== ob2) {
26
- throw new Error(message);
27
- }
28
- }
29
- static true(ob, message = 'Value must be true') {
30
- RequireRatchet.equal(ob, true, message);
31
- }
32
- static noNullOrUndefinedValuesInArray(arr, expectedLength = null, customMsg = null) {
33
- RequireRatchet.notNullOrUndefined(arr, 'Source array may not be null');
34
- if (expectedLength !== null && arr.length !== expectedLength) {
35
- error_ratchet_1.ErrorRatchet.throwFormattedErr('Expected array of length %d but was %d %s', expectedLength, arr.length, customMsg);
36
- }
37
- for (let i = 0; i < arr.length; i++) {
38
- if (RequireRatchet.isNullOrUndefined(arr[i])) {
39
- error_ratchet_1.ErrorRatchet.throwFormattedErr('Array index %d was null or undefined %s', i, customMsg);
40
- }
41
- }
42
- }
43
- static noNullOrUndefinedValuesInRestArgs(expectedLength, ...restArgs) {
44
- RequireRatchet.notNullOrUndefined(restArgs, 'Source array may not be null');
45
- if (expectedLength !== null && restArgs.length !== expectedLength) {
46
- error_ratchet_1.ErrorRatchet.throwFormattedErr('Expected array of length %d but was %d', expectedLength, restArgs.length);
47
- }
48
- for (let i = 0; i < restArgs.length; i++) {
49
- if (RequireRatchet.isNullOrUndefined(restArgs[i])) {
50
- error_ratchet_1.ErrorRatchet.throwFormattedErr('Array index %d was null or undefined', i);
51
- }
52
- }
53
- }
54
- static constructorArgumentsMatchLengthAndAreNonNull() {
55
- const args = Array.from(arguments);
56
- const len = this.constructor.length;
57
- return RequireRatchet.noNullOrUndefinedValuesInArray(args, len);
58
- }
59
- }
60
- exports.RequireRatchet = RequireRatchet;
@@ -1,117 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StopWatch = void 0;
4
- const duration_ratchet_1 = require("./duration-ratchet");
5
- const string_ratchet_1 = require("./string-ratchet");
6
- const require_ratchet_1 = require("./require-ratchet");
7
- const logger_level_name_1 = require("../logger/logger-level-name");
8
- const logger_1 = require("../logger/logger");
9
- class StopWatch {
10
- constructor(label = string_ratchet_1.StringRatchet.createRandomHexString(4)) {
11
- this.label = label;
12
- this.starts = new Map();
13
- this.ends = new Map();
14
- this.createTime = Date.now();
15
- }
16
- start(name) {
17
- require_ratchet_1.RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(name, 'name');
18
- const now = Date.now();
19
- this.starts.set(string_ratchet_1.StringRatchet.trimToNull(name), now);
20
- return now;
21
- }
22
- stop(name) {
23
- require_ratchet_1.RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(name, 'name');
24
- const now = Date.now();
25
- this.ends.set(string_ratchet_1.StringRatchet.trimToNull(name), now);
26
- return now;
27
- }
28
- reset(name) {
29
- require_ratchet_1.RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(name, 'name');
30
- this.starts.delete(string_ratchet_1.StringRatchet.trimToNull(name));
31
- this.ends.delete(string_ratchet_1.StringRatchet.trimToNull(name));
32
- }
33
- hasTimer(name) {
34
- require_ratchet_1.RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(name, 'name');
35
- return this.starts.has(name);
36
- }
37
- log(name, shortForm, logLevel = logger_level_name_1.LoggerLevelName.info) {
38
- logger_1.Logger.logByLevel(logLevel, this.dump(name, shortForm));
39
- }
40
- logExpected(pctComplete, name, shortForm, logLevel = logger_level_name_1.LoggerLevelName.info) {
41
- logger_1.Logger.logByLevel(logLevel, this.dumpExpected(pctComplete, name, shortForm));
42
- }
43
- dump(name, shortForm) {
44
- let rval = this.label + ' ';
45
- const cleanName = string_ratchet_1.StringRatchet.trimToNull(name);
46
- if (cleanName && !this.hasTimer(cleanName)) {
47
- rval += 'No such timer : ' + cleanName;
48
- }
49
- else {
50
- const start = name ? this.starts.get(cleanName) : this.createTime;
51
- const end = name ? this.ends.get(cleanName) : Date.now();
52
- rval += (cleanName || 'Default') + ' ';
53
- if (!!start && !!end) {
54
- rval += 'completed in ' + duration_ratchet_1.DurationRatchet.formatMsDuration(end - start, !shortForm);
55
- }
56
- else if (!!start) {
57
- rval += 'running for ' + duration_ratchet_1.DurationRatchet.formatMsDuration(Date.now() - start, !shortForm);
58
- }
59
- }
60
- return rval;
61
- }
62
- dumpExpected(pctComplete, name, shortForm) {
63
- let rval = this.label + ' ';
64
- const cleanName = string_ratchet_1.StringRatchet.trimToNull(name);
65
- if (cleanName && !this.hasTimer(cleanName)) {
66
- rval += 'No such timer : ' + cleanName;
67
- }
68
- else {
69
- if (!pctComplete || pctComplete <= 0) {
70
- rval += 'Cannot generate output for 0 percent complete';
71
- }
72
- else if (pctComplete > 1) {
73
- rval += 'Cannot generate output for percent > 1';
74
- }
75
- else {
76
- rval += (cleanName || 'Default') + ' ';
77
- const start = name ? this.starts.get(cleanName) : this.createTime;
78
- const end = name ? this.ends.get(cleanName) : Date.now();
79
- if (!!start && !!end) {
80
- rval += 'completed in ' + duration_ratchet_1.DurationRatchet.formatMsDuration(end - start, !shortForm);
81
- }
82
- else if (!!start) {
83
- const now = Date.now();
84
- const elapsedMS = now - start;
85
- const expectedTotalMS = elapsedMS / pctComplete;
86
- const remainMS = expectedTotalMS - elapsedMS;
87
- rval +=
88
- 'running for ' +
89
- duration_ratchet_1.DurationRatchet.formatMsDuration(elapsedMS, !shortForm) +
90
- ' approx ' +
91
- duration_ratchet_1.DurationRatchet.formatMsDuration(remainMS, !shortForm) +
92
- ' remaining';
93
- }
94
- }
95
- }
96
- return rval;
97
- }
98
- elapsedMS(name) {
99
- let rval = null;
100
- const cleanName = string_ratchet_1.StringRatchet.trimToNull(name);
101
- if (cleanName && !this.hasTimer(cleanName)) {
102
- rval = null;
103
- }
104
- else {
105
- const start = name ? this.starts.get(cleanName) : this.createTime;
106
- const end = name ? this.ends.get(cleanName) : Date.now();
107
- if (!!start && !!end) {
108
- rval = end - start;
109
- }
110
- else if (!!start) {
111
- rval = Date.now() - start;
112
- }
113
- }
114
- return rval;
115
- }
116
- }
117
- exports.StopWatch = StopWatch;
@@ -1,195 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StringRatchet = void 0;
4
- const require_ratchet_1 = require("./require-ratchet");
5
- class StringRatchet {
6
- static stringToUint8Array(val) {
7
- return val ? new TextEncoder().encode(val) : null;
8
- }
9
- static uint8ArrayToString(val) {
10
- return val ? new TextDecoder().decode(val) : null;
11
- }
12
- static attemptJsonParse(val) {
13
- let rval = null;
14
- if (StringRatchet.trimToNull(val)) {
15
- try {
16
- rval = JSON.parse(val);
17
- }
18
- catch (err) {
19
- rval = null;
20
- }
21
- }
22
- return rval;
23
- }
24
- static canParseAsJson(val) {
25
- return !!StringRatchet.attemptJsonParse(val);
26
- }
27
- static allUnique(input) {
28
- let rval = true;
29
- if (input) {
30
- const check = new Set();
31
- for (let i = 0; i < input.length && rval; i++) {
32
- const test = input.charAt(i);
33
- rval = !check.has(test);
34
- check.add(test);
35
- }
36
- }
37
- return rval;
38
- }
39
- static allPermutationsOfLength(len, alphabet) {
40
- const rval = [];
41
- if (len > 0 && alphabet && alphabet.length > 0) {
42
- require_ratchet_1.RequireRatchet.true(StringRatchet.allUnique(alphabet), 'Alphabet must be unique');
43
- const step = len === 1 ? [''] : StringRatchet.allPermutationsOfLength(len - 1, alphabet);
44
- for (let i = 0; i < alphabet.length; i++) {
45
- step.forEach((s) => rval.push(alphabet.charAt(i) + s));
46
- }
47
- }
48
- return rval;
49
- }
50
- static createType4Guid() {
51
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
52
- const r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;
53
- return v.toString(16);
54
- });
55
- }
56
- static createRandomHexString(len = 10) {
57
- let r = '';
58
- for (let i = 0; i < len; i++) {
59
- r += Math.floor(Math.random() * 16).toString(16);
60
- }
61
- return r;
62
- }
63
- static canonicalize(value) {
64
- let rval = value ? value.toLowerCase() : '';
65
- rval = rval.replace(' ', '-');
66
- StringRatchet.RFC_3986_RESERVED.forEach((s) => {
67
- rval = rval.replace(s, '');
68
- });
69
- return rval;
70
- }
71
- static formatBytes(bytes, decimals = 2) {
72
- if (bytes == 0)
73
- return '0 Bytes';
74
- const k = 1024, dm = decimals || 2, sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], i = Math.floor(Math.log(bytes) / Math.log(k));
75
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
76
- }
77
- static safeString(input) {
78
- let rval = null;
79
- if (input != null) {
80
- const type = typeof input;
81
- if (type == 'string') {
82
- rval = input;
83
- }
84
- else {
85
- rval = String(input);
86
- }
87
- }
88
- return rval;
89
- }
90
- static stringContainsOnlyNumbers(input) {
91
- const rval = /^[0-9]+$/.test(input);
92
- return rval;
93
- }
94
- static stringContainsOnlyAlphanumeric(input) {
95
- const rval = /^[0-9a-zA-Z]+$/.test(input);
96
- return rval;
97
- }
98
- static stringContainsOnlyHex(input) {
99
- const rval = /^[0-9a-fA-F]+$/.test(input);
100
- return rval;
101
- }
102
- static stringContainsOnly(inVal, validCharsIn) {
103
- const input = !inVal ? '' : inVal;
104
- const validChars = !validCharsIn ? '' : validCharsIn;
105
- let rval = true;
106
- for (let i = 0; i < input.length && rval; i++) {
107
- rval = validChars.indexOf(input.charAt(i)) >= 0;
108
- }
109
- return rval;
110
- }
111
- static obscure(input, prefixLength = 2, suffixLength = 2) {
112
- if (!input) {
113
- return input;
114
- }
115
- const len = input.length;
116
- let pl = prefixLength;
117
- let sl = suffixLength;
118
- while (len > 0 && len < pl + sl + 1) {
119
- pl = Math.max(0, pl - 1);
120
- sl = Math.max(0, sl - 1);
121
- }
122
- const rem = len - (pl + sl);
123
- let rval = '';
124
- rval += input.substring(0, pl);
125
- for (let i = 0; i < rem; i++) {
126
- rval += '*';
127
- }
128
- rval += input.substring(len - sl);
129
- return rval;
130
- }
131
- static leadingZeros(inVal, size) {
132
- const pad = '00000000000000000000000000000000000000000000000000';
133
- let negative = false;
134
- let sVal = String(inVal);
135
- if (sVal.startsWith('-')) {
136
- negative = true;
137
- sVal = sVal.substring(1);
138
- }
139
- if (size > pad.length) {
140
- throw new Error('Cannot format number that large');
141
- }
142
- let rval = (pad + sVal).slice(-1 * size);
143
- if (negative) {
144
- rval = '-' + rval;
145
- }
146
- return rval;
147
- }
148
- static trimToEmpty(input) {
149
- const t = input ? StringRatchet.safeString(input) : '';
150
- return t.trim();
151
- }
152
- static trimToNull(input) {
153
- const x = StringRatchet.trimToEmpty(input);
154
- return x.length > 0 ? x : null;
155
- }
156
- static trimAllStringPropertiesToNullInPlace(input) {
157
- return StringRatchet.trimAllStringPropertiesInPlace(input, false);
158
- }
159
- static trimAllStringPropertiesToEmptyInPlace(input) {
160
- return StringRatchet.trimAllStringPropertiesInPlace(input, true);
161
- }
162
- static trimAllStringPropertiesInPlace(input, toEmpty) {
163
- const dealKeys = Object.keys(input);
164
- dealKeys.forEach((key) => {
165
- const val = input[key];
166
- if (val != null && typeof val === 'string') {
167
- input[key] = toEmpty ? StringRatchet.trimToEmpty(input[key]) : StringRatchet.trimToNull(input[key]);
168
- }
169
- });
170
- return input;
171
- }
172
- static stripNonNumeric(input) {
173
- let rval = input;
174
- if (input != null && !StringRatchet.stringContainsOnlyNumbers(input)) {
175
- rval = '';
176
- for (let i = 0; i < input.length; i++) {
177
- const c = input.charAt(i);
178
- if (StringRatchet.stringContainsOnlyNumbers(c) || (i === 0 && c === '-')) {
179
- rval += c;
180
- }
181
- }
182
- }
183
- return rval;
184
- }
185
- static csvSafe(input) {
186
- let rval = StringRatchet.trimToEmpty(StringRatchet.safeString(input));
187
- rval.split('"').join('\\"');
188
- if (rval.indexOf(',') !== -1 || rval.indexOf('"') !== -1 || rval.indexOf("'") !== -1) {
189
- rval = '"' + rval + '"';
190
- }
191
- return rval;
192
- }
193
- }
194
- exports.StringRatchet = StringRatchet;
195
- StringRatchet.RFC_3986_RESERVED = ['!', '*', "'", '(', ')', ';', ':', '@', '&', '=', '+', '$', ',', '/', '?', '#', '[', ']', '%'];