@bitblit/ratchet-common 4.0.420-alpha → 4.0.425-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 (312) hide show
  1. package/lib/2d/index.d.ts +5 -0
  2. package/lib/2d/index.js +6 -0
  3. package/lib/2d/index.js.map +1 -0
  4. package/lib/2d/line-2d.d.ts +5 -0
  5. package/lib/2d/line-2d.js +2 -0
  6. package/lib/2d/line-2d.js.map +1 -0
  7. package/lib/2d/plane-2d.d.ts +6 -0
  8. package/lib/2d/plane-2d.js +2 -0
  9. package/lib/2d/plane-2d.js.map +1 -0
  10. package/lib/2d/point-2d.d.ts +4 -0
  11. package/lib/2d/point-2d.js +2 -0
  12. package/lib/2d/point-2d.js.map +1 -0
  13. package/lib/2d/poly-line-2d.d.ts +4 -0
  14. package/lib/2d/poly-line-2d.js +2 -0
  15. package/lib/2d/poly-line-2d.js.map +1 -0
  16. package/lib/2d/ratchet-2d.d.ts +37 -0
  17. package/lib/2d/ratchet-2d.js +246 -0
  18. package/lib/2d/ratchet-2d.js.map +1 -0
  19. package/lib/build/build-information.d.ts +8 -0
  20. package/lib/build/build-information.js +2 -0
  21. package/lib/build/build-information.js.map +1 -0
  22. package/lib/build/index.d.ts +2 -0
  23. package/lib/build/index.js +3 -0
  24. package/lib/build/index.js.map +1 -0
  25. package/lib/build/ratchet-common-info.d.ts +5 -0
  26. package/lib/build/ratchet-common-info.js +15 -0
  27. package/lib/build/ratchet-common-info.js.map +1 -0
  28. package/lib/histogram/histogram-entry.d.ts +4 -0
  29. package/lib/histogram/histogram-entry.js +2 -0
  30. package/lib/histogram/histogram-entry.js.map +1 -0
  31. package/lib/histogram/histogram.d.ts +12 -0
  32. package/lib/histogram/histogram.js +49 -0
  33. package/lib/histogram/histogram.js.map +1 -0
  34. package/lib/histogram/index.d.ts +2 -0
  35. package/lib/histogram/index.js +3 -0
  36. package/lib/histogram/index.js.map +1 -0
  37. package/lib/jwt/common-jwt-token.d.ts +6 -0
  38. package/lib/jwt/common-jwt-token.js +2 -0
  39. package/lib/jwt/common-jwt-token.js.map +1 -0
  40. package/lib/jwt/expired-jwt-handling.d.ts +5 -0
  41. package/lib/jwt/expired-jwt-handling.js +7 -0
  42. package/lib/jwt/expired-jwt-handling.js.map +1 -0
  43. package/lib/jwt/index.d.ts +6 -0
  44. package/lib/jwt/index.js +7 -0
  45. package/lib/jwt/index.js.map +1 -0
  46. package/lib/jwt/jwt-ratchet-config.d.ts +8 -0
  47. package/lib/jwt/jwt-ratchet-config.js +2 -0
  48. package/lib/jwt/jwt-ratchet-config.js.map +1 -0
  49. package/lib/jwt/jwt-ratchet-like.d.ts +15 -0
  50. package/lib/jwt/jwt-ratchet-like.js +2 -0
  51. package/lib/jwt/jwt-ratchet-like.js.map +1 -0
  52. package/lib/jwt/jwt-ratchet.d.ts +28 -0
  53. package/lib/jwt/jwt-ratchet.js +171 -0
  54. package/lib/jwt/jwt-ratchet.js.map +1 -0
  55. package/lib/jwt/jwt-token-base.d.ts +9 -0
  56. package/lib/jwt/jwt-token-base.js +2 -0
  57. package/lib/jwt/jwt-token-base.js.map +1 -0
  58. package/lib/lang/array-ratchet.d.ts +12 -0
  59. package/lib/lang/array-ratchet.js +84 -0
  60. package/lib/lang/array-ratchet.js.map +1 -0
  61. package/lib/lang/base64-ratchet.d.ts +20 -0
  62. package/lib/lang/base64-ratchet.js +209 -0
  63. package/lib/lang/base64-ratchet.js.map +1 -0
  64. package/lib/lang/boolean-ratchet.d.ts +7 -0
  65. package/lib/lang/boolean-ratchet.js +46 -0
  66. package/lib/lang/boolean-ratchet.js.map +1 -0
  67. package/lib/lang/composite-last-success-provider.d.ts +7 -0
  68. package/lib/lang/composite-last-success-provider.js +27 -0
  69. package/lib/lang/composite-last-success-provider.js.map +1 -0
  70. package/lib/lang/date-ratchet.d.ts +11 -0
  71. package/lib/lang/date-ratchet.js +30 -0
  72. package/lib/lang/date-ratchet.js.map +1 -0
  73. package/lib/lang/duration-ratchet.d.ts +7 -0
  74. package/lib/lang/duration-ratchet.js +43 -0
  75. package/lib/lang/duration-ratchet.js.map +1 -0
  76. package/lib/lang/enum-ratchet.d.ts +5 -0
  77. package/lib/lang/enum-ratchet.js +31 -0
  78. package/lib/lang/enum-ratchet.js.map +1 -0
  79. package/lib/lang/error-ratchet.d.ts +6 -0
  80. package/lib/lang/error-ratchet.js +45 -0
  81. package/lib/lang/error-ratchet.js.map +1 -0
  82. package/lib/lang/esm-ratchet.d.ts +7 -0
  83. package/lib/lang/esm-ratchet.js +65 -0
  84. package/lib/lang/esm-ratchet.js.map +1 -0
  85. package/lib/lang/expiring-object.d.ts +20 -0
  86. package/lib/lang/expiring-object.js +73 -0
  87. package/lib/lang/expiring-object.js.map +1 -0
  88. package/lib/lang/geolocation-ratchet.d.ts +40 -0
  89. package/lib/lang/geolocation-ratchet.js +264 -0
  90. package/lib/lang/geolocation-ratchet.js.map +1 -0
  91. package/lib/lang/global-ratchet.d.ts +6 -0
  92. package/lib/lang/global-ratchet.js +44 -0
  93. package/lib/lang/global-ratchet.js.map +1 -0
  94. package/lib/lang/index.d.ts +27 -0
  95. package/lib/lang/index.js +28 -0
  96. package/lib/lang/index.js.map +1 -0
  97. package/lib/lang/key-value.d.ts +4 -0
  98. package/lib/lang/key-value.js +5 -0
  99. package/lib/lang/key-value.js.map +1 -0
  100. package/lib/lang/last-success-provider.d.ts +3 -0
  101. package/lib/lang/last-success-provider.js +2 -0
  102. package/lib/lang/last-success-provider.js.map +1 -0
  103. package/lib/lang/map-ratchet.d.ts +15 -0
  104. package/lib/lang/map-ratchet.js +173 -0
  105. package/lib/lang/map-ratchet.js.map +1 -0
  106. package/lib/lang/no.d.ts +3 -0
  107. package/lib/lang/no.js +5 -0
  108. package/lib/lang/no.js.map +1 -0
  109. package/lib/lang/number-ratchet.d.ts +28 -0
  110. package/lib/lang/number-ratchet.js +186 -0
  111. package/lib/lang/number-ratchet.js.map +1 -0
  112. package/lib/lang/parsed-url.d.ts +10 -0
  113. package/lib/lang/parsed-url.js +2 -0
  114. package/lib/lang/parsed-url.js.map +1 -0
  115. package/lib/lang/promise-ratchet.d.ts +18 -0
  116. package/lib/lang/promise-ratchet.js +130 -0
  117. package/lib/lang/promise-ratchet.js.map +1 -0
  118. package/lib/lang/require-ratchet.d.ts +11 -0
  119. package/lib/lang/require-ratchet.js +56 -0
  120. package/lib/lang/require-ratchet.js.map +1 -0
  121. package/lib/lang/sort-ratchet.d.ts +7 -0
  122. package/lib/lang/sort-ratchet.js +33 -0
  123. package/lib/lang/sort-ratchet.js.map +1 -0
  124. package/lib/lang/stop-watch.d.ts +27 -0
  125. package/lib/lang/stop-watch.js +170 -0
  126. package/lib/lang/stop-watch.js.map +1 -0
  127. package/lib/lang/string-ratchet.d.ts +40 -0
  128. package/lib/lang/string-ratchet.js +280 -0
  129. package/lib/lang/string-ratchet.js.map +1 -0
  130. package/lib/lang/time-zone-ratchet.d.ts +20 -0
  131. package/lib/lang/time-zone-ratchet.js +81 -0
  132. package/lib/lang/time-zone-ratchet.js.map +1 -0
  133. package/lib/lang/timeout-token.d.ts +9 -0
  134. package/lib/lang/timeout-token.js +19 -0
  135. package/lib/lang/timeout-token.js.map +1 -0
  136. package/lib/lang/uint-8-array-ratchet.d.ts +5 -0
  137. package/lib/lang/uint-8-array-ratchet.js +31 -0
  138. package/lib/lang/uint-8-array-ratchet.js.map +1 -0
  139. package/lib/lang/web-stream-ratchet.d.ts +6 -0
  140. package/lib/lang/web-stream-ratchet.js +47 -0
  141. package/lib/lang/web-stream-ratchet.js.map +1 -0
  142. package/lib/logger/classic-single-line-log-message-formatter.d.ts +6 -0
  143. package/lib/logger/classic-single-line-log-message-formatter.js +14 -0
  144. package/lib/logger/classic-single-line-log-message-formatter.js.map +1 -0
  145. package/lib/logger/index.d.ts +17 -0
  146. package/lib/logger/index.js +18 -0
  147. package/lib/logger/index.js.map +1 -0
  148. package/lib/logger/log-message-builder.d.ts +14 -0
  149. package/lib/logger/log-message-builder.js +49 -0
  150. package/lib/logger/log-message-builder.js.map +1 -0
  151. package/lib/logger/log-message-format-type.d.ts +6 -0
  152. package/lib/logger/log-message-format-type.js +6 -0
  153. package/lib/logger/log-message-format-type.js.map +1 -0
  154. package/lib/logger/log-message-formatter.d.ts +5 -0
  155. package/lib/logger/log-message-formatter.js +2 -0
  156. package/lib/logger/log-message-formatter.js.map +1 -0
  157. package/lib/logger/log-message-processor.d.ts +5 -0
  158. package/lib/logger/log-message-processor.js +2 -0
  159. package/lib/logger/log-message-processor.js.map +1 -0
  160. package/lib/logger/log-message.d.ts +8 -0
  161. package/lib/logger/log-message.js +2 -0
  162. package/lib/logger/log-message.js.map +1 -0
  163. package/lib/logger/log-snapshot.d.ts +5 -0
  164. package/lib/logger/log-snapshot.js +2 -0
  165. package/lib/logger/log-snapshot.js.map +1 -0
  166. package/lib/logger/logger-instance.d.ts +49 -0
  167. package/lib/logger/logger-instance.js +216 -0
  168. package/lib/logger/logger-instance.js.map +1 -0
  169. package/lib/logger/logger-level-name.d.ts +9 -0
  170. package/lib/logger/logger-level-name.js +9 -0
  171. package/lib/logger/logger-level-name.js.map +1 -0
  172. package/lib/logger/logger-meta.d.ts +6 -0
  173. package/lib/logger/logger-meta.js +2 -0
  174. package/lib/logger/logger-meta.js.map +1 -0
  175. package/lib/logger/logger-options.d.ts +13 -0
  176. package/lib/logger/logger-options.js +2 -0
  177. package/lib/logger/logger-options.js.map +1 -0
  178. package/lib/logger/logger-output-function.d.ts +6 -0
  179. package/lib/logger/logger-output-function.js +6 -0
  180. package/lib/logger/logger-output-function.js.map +1 -0
  181. package/lib/logger/logger-ring-buffer.d.ts +18 -0
  182. package/lib/logger/logger-ring-buffer.js +72 -0
  183. package/lib/logger/logger-ring-buffer.js.map +1 -0
  184. package/lib/logger/logger-util.d.ts +8 -0
  185. package/lib/logger/logger-util.js +45 -0
  186. package/lib/logger/logger-util.js.map +1 -0
  187. package/lib/logger/logger.d.ts +46 -0
  188. package/lib/logger/logger.js +150 -0
  189. package/lib/logger/logger.js.map +1 -0
  190. package/lib/logger/none-log-message-formatter.d.ts +6 -0
  191. package/lib/logger/none-log-message-formatter.js +6 -0
  192. package/lib/logger/none-log-message-formatter.js.map +1 -0
  193. package/lib/logger/structured-json-log-message-formatter.d.ts +6 -0
  194. package/lib/logger/structured-json-log-message-formatter.js +20 -0
  195. package/lib/logger/structured-json-log-message-formatter.js.map +1 -0
  196. package/lib/mail/archive-email-result.d.ts +5 -0
  197. package/lib/mail/archive-email-result.js +2 -0
  198. package/lib/mail/archive-email-result.js.map +1 -0
  199. package/lib/mail/email-attachment.d.ts +5 -0
  200. package/lib/mail/email-attachment.js +2 -0
  201. package/lib/mail/email-attachment.js.map +1 -0
  202. package/lib/mail/index.d.ts +11 -0
  203. package/lib/mail/index.js +12 -0
  204. package/lib/mail/index.js.map +1 -0
  205. package/lib/mail/mail-sending-provider.d.ts +5 -0
  206. package/lib/mail/mail-sending-provider.js +2 -0
  207. package/lib/mail/mail-sending-provider.js.map +1 -0
  208. package/lib/mail/mailer-config.d.ts +11 -0
  209. package/lib/mail/mailer-config.js +2 -0
  210. package/lib/mail/mailer-config.js.map +1 -0
  211. package/lib/mail/mailer-like.d.ts +11 -0
  212. package/lib/mail/mailer-like.js +2 -0
  213. package/lib/mail/mailer-like.js.map +1 -0
  214. package/lib/mail/mailer-util.d.ts +7 -0
  215. package/lib/mail/mailer-util.js +49 -0
  216. package/lib/mail/mailer-util.js.map +1 -0
  217. package/lib/mail/mailer.d.ts +17 -0
  218. package/lib/mail/mailer.js +174 -0
  219. package/lib/mail/mailer.js.map +1 -0
  220. package/lib/mail/ready-to-send-email.d.ts +13 -0
  221. package/lib/mail/ready-to-send-email.js +2 -0
  222. package/lib/mail/ready-to-send-email.js.map +1 -0
  223. package/lib/mail/resolved-ready-to-send-email.d.ts +5 -0
  224. package/lib/mail/resolved-ready-to-send-email.js +2 -0
  225. package/lib/mail/resolved-ready-to-send-email.js.map +1 -0
  226. package/lib/mail/send-email-result.d.ts +12 -0
  227. package/lib/mail/send-email-result.js +2 -0
  228. package/lib/mail/send-email-result.js.map +1 -0
  229. package/lib/mail/test-mail-sending-provider.d.ts +8 -0
  230. package/lib/mail/test-mail-sending-provider.js +31 -0
  231. package/lib/mail/test-mail-sending-provider.js.map +1 -0
  232. package/lib/network/browser-local-ip-provider.d.ts +7 -0
  233. package/lib/network/browser-local-ip-provider.js +22 -0
  234. package/lib/network/browser-local-ip-provider.js.map +1 -0
  235. package/lib/network/fixed-local-ip-provider.d.ts +6 -0
  236. package/lib/network/fixed-local-ip-provider.js +10 -0
  237. package/lib/network/fixed-local-ip-provider.js.map +1 -0
  238. package/lib/network/index.d.ts +9 -0
  239. package/lib/network/index.js +10 -0
  240. package/lib/network/index.js.map +1 -0
  241. package/lib/network/local-ip-provider.d.ts +3 -0
  242. package/lib/network/local-ip-provider.js +2 -0
  243. package/lib/network/local-ip-provider.js.map +1 -0
  244. package/lib/network/network-ratchet.d.ts +10 -0
  245. package/lib/network/network-ratchet.js +102 -0
  246. package/lib/network/network-ratchet.js.map +1 -0
  247. package/lib/network/remote-file-sync/backup-result.d.ts +5 -0
  248. package/lib/network/remote-file-sync/backup-result.js +7 -0
  249. package/lib/network/remote-file-sync/backup-result.js.map +1 -0
  250. package/lib/network/remote-file-sync/file-transfer-result.d.ts +5 -0
  251. package/lib/network/remote-file-sync/file-transfer-result.js +7 -0
  252. package/lib/network/remote-file-sync/file-transfer-result.js.map +1 -0
  253. package/lib/network/remote-file-sync/remote-file-sync-like.d.ts +16 -0
  254. package/lib/network/remote-file-sync/remote-file-sync-like.js +2 -0
  255. package/lib/network/remote-file-sync/remote-file-sync-like.js.map +1 -0
  256. package/lib/network/remote-file-sync/remote-status-data.d.ts +6 -0
  257. package/lib/network/remote-file-sync/remote-status-data.js +2 -0
  258. package/lib/network/remote-file-sync/remote-status-data.js.map +1 -0
  259. package/lib/network/restful-api-http-error.d.ts +41 -0
  260. package/lib/network/restful-api-http-error.js +134 -0
  261. package/lib/network/restful-api-http-error.js.map +1 -0
  262. package/lib/template/index.d.ts +1 -0
  263. package/lib/template/index.js +2 -0
  264. package/lib/template/index.js.map +1 -0
  265. package/lib/template/ratchet-template-renderer.d.ts +4 -0
  266. package/lib/template/ratchet-template-renderer.js +2 -0
  267. package/lib/template/ratchet-template-renderer.js.map +1 -0
  268. package/lib/third-party/google/google-recaptcha-ratchet.d.ts +4 -0
  269. package/lib/third-party/google/google-recaptcha-ratchet.js +27 -0
  270. package/lib/third-party/google/google-recaptcha-ratchet.js.map +1 -0
  271. package/lib/third-party/index.d.ts +3 -0
  272. package/lib/third-party/index.js +4 -0
  273. package/lib/third-party/index.js.map +1 -0
  274. package/lib/third-party/twilio/twilio-ratchet.d.ts +11 -0
  275. package/lib/third-party/twilio/twilio-ratchet.js +70 -0
  276. package/lib/third-party/twilio/twilio-ratchet.js.map +1 -0
  277. package/lib/third-party/twilio/twilio-verify-ratchet.d.ts +23 -0
  278. package/lib/third-party/twilio/twilio-verify-ratchet.js +60 -0
  279. package/lib/third-party/twilio/twilio-verify-ratchet.js.map +1 -0
  280. package/lib/transform/built-in-transforms.d.ts +18 -0
  281. package/lib/transform/built-in-transforms.js +192 -0
  282. package/lib/transform/built-in-transforms.js.map +1 -0
  283. package/lib/transform/index.d.ts +3 -0
  284. package/lib/transform/index.js +4 -0
  285. package/lib/transform/index.js.map +1 -0
  286. package/lib/transform/transform-ratchet.d.ts +7 -0
  287. package/lib/transform/transform-ratchet.js +67 -0
  288. package/lib/transform/transform-ratchet.js.map +1 -0
  289. package/lib/transform/transform-rule.d.ts +3 -0
  290. package/lib/transform/transform-rule.js +2 -0
  291. package/lib/transform/transform-rule.js.map +1 -0
  292. package/lib/tx/index.d.ts +5 -0
  293. package/lib/tx/index.js +6 -0
  294. package/lib/tx/index.js.map +1 -0
  295. package/lib/tx/transaction-configuration.d.ts +7 -0
  296. package/lib/tx/transaction-configuration.js +2 -0
  297. package/lib/tx/transaction-configuration.js.map +1 -0
  298. package/lib/tx/transaction-final-state.d.ts +6 -0
  299. package/lib/tx/transaction-final-state.js +6 -0
  300. package/lib/tx/transaction-final-state.js.map +1 -0
  301. package/lib/tx/transaction-ratchet.d.ts +6 -0
  302. package/lib/tx/transaction-ratchet.js +77 -0
  303. package/lib/tx/transaction-ratchet.js.map +1 -0
  304. package/lib/tx/transaction-result.d.ts +9 -0
  305. package/lib/tx/transaction-result.js +2 -0
  306. package/lib/tx/transaction-result.js.map +1 -0
  307. package/lib/tx/transaction-step.d.ts +5 -0
  308. package/lib/tx/transaction-step.js +2 -0
  309. package/lib/tx/transaction-step.js.map +1 -0
  310. package/package.json +14 -12
  311. package/lib/index.mjs +0 -2
  312. package/lib/types.d.ts +0 -1024
@@ -0,0 +1,16 @@
1
+ import { FileTransferResult } from './file-transfer-result.js';
2
+ import { BackupResult } from './backup-result.js';
3
+ import { RemoteStatusData } from './remote-status-data.js';
4
+ export interface RemoteFileSyncLike {
5
+ get lastSyncEpochMS(): number;
6
+ get localFileName(): string;
7
+ get localFileBytes(): number;
8
+ get localFileUpdatedEpochMS(): number;
9
+ get remoteStatusData(): Promise<RemoteStatusData>;
10
+ get wouldFetch(): Promise<boolean>;
11
+ get wouldPush(): Promise<boolean>;
12
+ backupRemote(): Promise<BackupResult>;
13
+ sendLocalToRemote(): Promise<FileTransferResult>;
14
+ fetchRemoteToLocal(): Promise<FileTransferResult>;
15
+ fetchRemoteToLocalIfNewerThan?(epochMS: number): Promise<FileTransferResult>;
16
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=remote-file-sync-like.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-file-sync-like.js","sourceRoot":"","sources":["../../../src/network/remote-file-sync/remote-file-sync-like.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export interface RemoteStatusData {
2
+ updatedEpochMs: number;
3
+ remoteSizeInBytes: number;
4
+ remoteLastUpdatedEpochMs: number;
5
+ remoteHash: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=remote-status-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-status-data.js","sourceRoot":"","sources":["../../../src/network/remote-file-sync/remote-status-data.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ export declare class RestfulApiHttpError<T = void> extends Error {
2
+ private static readonly RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY;
3
+ private _httpStatusCode;
4
+ private _errors;
5
+ private _detailErrorCode;
6
+ private _endUserErrors;
7
+ private _details;
8
+ private _requestId;
9
+ private _wrappedError;
10
+ constructor(...errors: string[]);
11
+ static combineErrorStringsWithDefault(errors: string[], defMessage?: string): string;
12
+ setFormattedErrorMessage(format: string, ...input: any[]): void;
13
+ withFormattedErrorMessage(format: string, ...input: any[]): RestfulApiHttpError<T>;
14
+ withHttpStatusCode(httpStatusCode: number): RestfulApiHttpError<T>;
15
+ withErrors(errors: string[]): RestfulApiHttpError<T>;
16
+ withDetailErrorCode(detailErrorCode: number): RestfulApiHttpError<T>;
17
+ withEndUserErrors(endUserErrors: string[]): RestfulApiHttpError<T>;
18
+ withDetails(details: T): RestfulApiHttpError<T>;
19
+ withRequestId(requestId: string): RestfulApiHttpError<T>;
20
+ withWrappedError(err: Error): RestfulApiHttpError<T>;
21
+ isWrappedError(): boolean;
22
+ static wrapError<T = void>(err: Error): RestfulApiHttpError<T>;
23
+ static objectIsRestfulApiHttpError(obj: any): boolean;
24
+ get httpStatusCode(): number;
25
+ set httpStatusCode(value: number);
26
+ get errors(): string[];
27
+ set errors(value: string[]);
28
+ get detailErrorCode(): number;
29
+ set detailErrorCode(value: number);
30
+ get endUserErrors(): string[];
31
+ set endUserErrors(value: string[]);
32
+ get details(): T;
33
+ set details(value: T);
34
+ get requestId(): string;
35
+ set requestId(value: string);
36
+ get wrappedError(): Error;
37
+ set wrappedError(value: Error);
38
+ static errorIsX0x(errIn: Error, xClass: number): boolean;
39
+ static errorIs40x(err: Error): boolean;
40
+ static errorIs50x(err: Error): boolean;
41
+ }
@@ -0,0 +1,134 @@
1
+ import util from 'util';
2
+ import { NumberRatchet } from '../lang/number-ratchet.js';
3
+ export class RestfulApiHttpError extends Error {
4
+ static RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY = '__ratchetRestfulApiHttpErrorFlag';
5
+ _httpStatusCode = 500;
6
+ _errors;
7
+ _detailErrorCode;
8
+ _endUserErrors;
9
+ _details;
10
+ _requestId;
11
+ _wrappedError;
12
+ constructor(...errors) {
13
+ super(RestfulApiHttpError.combineErrorStringsWithDefault(errors));
14
+ Object.setPrototypeOf(this, RestfulApiHttpError.prototype);
15
+ this._errors = errors;
16
+ this[RestfulApiHttpError.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY] = true;
17
+ }
18
+ static combineErrorStringsWithDefault(errors, defMessage = 'Internal Server Error') {
19
+ return errors && errors.length > 0 ? errors.join(',') : defMessage;
20
+ }
21
+ setFormattedErrorMessage(format, ...input) {
22
+ const msg = util.format(format, ...input);
23
+ this.errors = [msg];
24
+ }
25
+ withFormattedErrorMessage(format, ...input) {
26
+ this.setFormattedErrorMessage(format, ...input);
27
+ return this;
28
+ }
29
+ withHttpStatusCode(httpStatusCode) {
30
+ this.httpStatusCode = httpStatusCode;
31
+ return this;
32
+ }
33
+ withErrors(errors) {
34
+ this.errors = errors;
35
+ return this;
36
+ }
37
+ withDetailErrorCode(detailErrorCode) {
38
+ this._detailErrorCode = detailErrorCode;
39
+ return this;
40
+ }
41
+ withEndUserErrors(endUserErrors) {
42
+ this._endUserErrors = endUserErrors;
43
+ return this;
44
+ }
45
+ withDetails(details) {
46
+ this._details = details;
47
+ return this;
48
+ }
49
+ withRequestId(requestId) {
50
+ this._requestId = requestId;
51
+ return this;
52
+ }
53
+ withWrappedError(err) {
54
+ this._wrappedError = err;
55
+ return this;
56
+ }
57
+ isWrappedError() {
58
+ return !!this._wrappedError;
59
+ }
60
+ static wrapError(err) {
61
+ let rval = null;
62
+ if (RestfulApiHttpError.objectIsRestfulApiHttpError(err)) {
63
+ rval = err;
64
+ }
65
+ else {
66
+ rval = new RestfulApiHttpError(err.message).withWrappedError(err).withHttpStatusCode(500);
67
+ }
68
+ return rval;
69
+ }
70
+ static objectIsRestfulApiHttpError(obj) {
71
+ return obj && obj[RestfulApiHttpError.RATCHET_RESTFUL_API_HTTP_ERROR_FLAG_KEY] === true;
72
+ }
73
+ get httpStatusCode() {
74
+ return this._httpStatusCode;
75
+ }
76
+ set httpStatusCode(value) {
77
+ this._httpStatusCode = value || 500;
78
+ }
79
+ get errors() {
80
+ return this._errors;
81
+ }
82
+ set errors(value) {
83
+ this._errors = value || ['Internal Server Error'];
84
+ this.message = RestfulApiHttpError.combineErrorStringsWithDefault(this._errors);
85
+ }
86
+ get detailErrorCode() {
87
+ return this._detailErrorCode;
88
+ }
89
+ set detailErrorCode(value) {
90
+ this._detailErrorCode = value;
91
+ }
92
+ get endUserErrors() {
93
+ return this._endUserErrors;
94
+ }
95
+ set endUserErrors(value) {
96
+ this._endUserErrors = value;
97
+ }
98
+ get details() {
99
+ return this._details;
100
+ }
101
+ set details(value) {
102
+ this._details = value;
103
+ }
104
+ get requestId() {
105
+ return this._requestId;
106
+ }
107
+ set requestId(value) {
108
+ this._requestId = value || 'MISSING';
109
+ }
110
+ get wrappedError() {
111
+ return this._wrappedError;
112
+ }
113
+ set wrappedError(value) {
114
+ this._wrappedError = value;
115
+ }
116
+ static errorIsX0x(errIn, xClass) {
117
+ let rval = false;
118
+ if (errIn && RestfulApiHttpError.objectIsRestfulApiHttpError(errIn)) {
119
+ const err = errIn;
120
+ const val = NumberRatchet.safeNumber(err.httpStatusCode);
121
+ const bot = xClass * 100;
122
+ const top = bot + 99;
123
+ rval = val >= bot && val <= top;
124
+ }
125
+ return rval;
126
+ }
127
+ static errorIs40x(err) {
128
+ return RestfulApiHttpError.errorIsX0x(err, 4);
129
+ }
130
+ static errorIs50x(err) {
131
+ return RestfulApiHttpError.errorIsX0x(err, 5);
132
+ }
133
+ }
134
+ //# sourceMappingURL=restful-api-http-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restful-api-http-error.js","sourceRoot":"","sources":["../../src/network/restful-api-http-error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './ratchet-template-renderer.js';
@@ -0,0 +1,2 @@
1
+ export * from './ratchet-template-renderer.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"AAIA,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export interface RatchetTemplateRenderer {
2
+ renderTemplate(templateName: string, context: any, layoutName?: string, partialNames?: string[]): Promise<string>;
3
+ renderTemplateDirect(templateValue: string, context: any, layoutName?: string): Promise<string>;
4
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ratchet-template-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratchet-template-renderer.js","sourceRoot":"","sources":["../../src/template/ratchet-template-renderer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export declare class GoogleRecaptchaRatchet {
2
+ private static readonly GOOGLE_VERIFY_URL;
3
+ static verifyRecaptchaToken(keySecret: string, token: string, fetchFn?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>): Promise<boolean>;
4
+ }
@@ -0,0 +1,27 @@
1
+ import { Logger } from '../../logger/logger.js';
2
+ import { StringRatchet } from '../../lang/string-ratchet.js';
3
+ import fetch from 'cross-fetch';
4
+ export 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
+ const url = StringRatchet.simpleTemplateFill(GoogleRecaptchaRatchet.GOOGLE_VERIFY_URL, { KEY: keySecret, TOKEN: token }, true);
15
+ try {
16
+ const resp = await fetchFn(url);
17
+ const body = await resp.json();
18
+ rval = body && body.success;
19
+ }
20
+ catch (err) {
21
+ Logger.error('Failed to read from google : %s', err);
22
+ rval = false;
23
+ }
24
+ return rval;
25
+ }
26
+ }
27
+ //# sourceMappingURL=google-recaptcha-ratchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-recaptcha-ratchet.js","sourceRoot":"","sources":["../../../src/third-party/google/google-recaptcha-ratchet.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,MAAM,OAAO,sBAAsB;IACzB,MAAM,CAAU,iBAAiB,GAAW,iFAAiF,CAAC;IAE/H,MAAM,CAAC,KAAK,CAAC,oBAAoB,CACtC,SAAiB,EACjB,KAAa,EACb,UAA+E,KAAK;QAEpF,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,IAAI,GAAY,IAAI,CAAC;QAEzB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAW,aAAa,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QACvI,IAAI,CAAC;YACH,MAAM,IAAI,GAAa,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAQ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;YACrD,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './google/google-recaptcha-ratchet.js';
2
+ export * from './twilio/twilio-ratchet.js';
3
+ export * from './twilio/twilio-verify-ratchet.js';
@@ -0,0 +1,4 @@
1
+ export * from './google/google-recaptcha-ratchet.js';
2
+ export * from './twilio/twilio-ratchet.js';
3
+ export * from './twilio/twilio-verify-ratchet.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/third-party/index.ts"],"names":[],"mappings":"AAIA,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare class TwilioRatchet {
2
+ private accountSid;
3
+ private authToken;
4
+ private outBoundNumber;
5
+ static readonly TWILLIO_BASE_API_URL: string;
6
+ constructor(accountSid: string, authToken: string, outBoundNumber: string);
7
+ static sendMessageDirect(accountSid: string, authToken: string, outBoundNumber: string, recipientPhoneNumbers: string[], message: string): Promise<any[]>;
8
+ static generateTwilioBasicAuth(sid: string, authToken: string): string;
9
+ sendMessage(recipientPhoneNumbers: string[], message: string): Promise<any[]>;
10
+ static isValidE164Number(num: string): boolean;
11
+ }
@@ -0,0 +1,70 @@
1
+ import fetch from 'cross-fetch';
2
+ import { RequireRatchet } from '../../lang/require-ratchet.js';
3
+ import { Base64Ratchet } from '../../lang/base64-ratchet.js';
4
+ import { StringRatchet } from '../../lang/string-ratchet.js';
5
+ import { Logger } from '../../logger/logger.js';
6
+ export class TwilioRatchet {
7
+ accountSid;
8
+ authToken;
9
+ outBoundNumber;
10
+ static TWILLIO_BASE_API_URL = 'https://api.twilio.com/2010-04-01';
11
+ constructor(accountSid, authToken, outBoundNumber) {
12
+ this.accountSid = accountSid;
13
+ this.authToken = authToken;
14
+ this.outBoundNumber = outBoundNumber;
15
+ RequireRatchet.notNullOrUndefined(accountSid, 'accountSid');
16
+ RequireRatchet.notNullOrUndefined(authToken, 'authToken');
17
+ RequireRatchet.notNullOrUndefined(outBoundNumber, 'outBoundNumber');
18
+ RequireRatchet.true(TwilioRatchet.isValidE164Number(outBoundNumber), 'outBoundNumber invalid format');
19
+ }
20
+ static async sendMessageDirect(accountSid, authToken, outBoundNumber, recipientPhoneNumbers, message) {
21
+ const ratchet = new TwilioRatchet(accountSid, authToken, outBoundNumber);
22
+ const rval = await ratchet.sendMessage(recipientPhoneNumbers, message);
23
+ return rval;
24
+ }
25
+ static generateTwilioBasicAuth(sid, authToken) {
26
+ const authHeader = 'Basic ' + Base64Ratchet.generateBase64VersionOfString(sid + ':' + authToken);
27
+ return authHeader;
28
+ }
29
+ async sendMessage(recipientPhoneNumbers, message) {
30
+ const rval = [];
31
+ RequireRatchet.notNullOrUndefined(recipientPhoneNumbers, 'recipientPhoneNumbers');
32
+ RequireRatchet.notNullOrUndefined(StringRatchet.trimToNull(message), 'message');
33
+ RequireRatchet.true(recipientPhoneNumbers.length > 0, 'recipientPhoneNumbers non-empty');
34
+ if (!!recipientPhoneNumbers && recipientPhoneNumbers.length > 0 && !!StringRatchet.trimToNull(message)) {
35
+ Logger.info('Sending %s to %j', message, recipientPhoneNumbers);
36
+ for (const phoneNumber of recipientPhoneNumbers) {
37
+ Logger.info('To: %s', phoneNumber);
38
+ if (!TwilioRatchet.isValidE164Number(phoneNumber)) {
39
+ throw new Error('number must be E164 format!');
40
+ }
41
+ const body = 'Body=' +
42
+ encodeURIComponent(message) +
43
+ '&From=' +
44
+ encodeURIComponent(this.outBoundNumber) +
45
+ '&To=' +
46
+ encodeURIComponent(phoneNumber);
47
+ const post = {
48
+ method: 'post',
49
+ headers: {
50
+ authorization: TwilioRatchet.generateTwilioBasicAuth(this.accountSid, this.authToken),
51
+ 'Content-Type': 'application/x-www-form-urlencoded',
52
+ },
53
+ body: body,
54
+ };
55
+ const res = await fetch(TwilioRatchet.TWILLIO_BASE_API_URL + '/Accounts/' + this.accountSid + '/Messages.json', post);
56
+ const parsedResponse = await res.json();
57
+ Logger.debug('TwilioRatchet: For %s got %j', phoneNumber, parsedResponse);
58
+ rval.push(parsedResponse);
59
+ }
60
+ }
61
+ else {
62
+ Logger.warn('Not sending empty message / empty recipients');
63
+ }
64
+ return rval;
65
+ }
66
+ static isValidE164Number(num) {
67
+ return /^\+?[1-9]\d{1,14}$/.test(num);
68
+ }
69
+ }
70
+ //# sourceMappingURL=twilio-ratchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twilio-ratchet.js","sourceRoot":"","sources":["../../../src/third-party/twilio/twilio-ratchet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export declare class TwilioVerifyRatchet {
2
+ private accountSid;
3
+ private authToken;
4
+ private serviceSid;
5
+ static readonly TWILLIO_BASE_VERIFY_URL: string;
6
+ constructor(accountSid: string, authToken: string, serviceSid: string);
7
+ sendVerificationTokenUsingTwilioVerify(recipientPhoneNumber: string): Promise<string>;
8
+ simpleCheckVerificationTokenUsingTwilioVerify(recipientPhoneNumber: string, code: string): Promise<boolean>;
9
+ checkVerificationTokenUsingTwilioVerify(recipientPhoneNumber: string, code: string): Promise<TwilioVerifyCheckResponse>;
10
+ }
11
+ export interface TwilioVerifyCheckResponse {
12
+ status: string;
13
+ payee: string;
14
+ date_updated: string;
15
+ account_sid: string;
16
+ to: string;
17
+ amount: string;
18
+ valid: boolean;
19
+ sid: string;
20
+ date_created: string;
21
+ service_sid: string;
22
+ channel: string;
23
+ }
@@ -0,0 +1,60 @@
1
+ import fetch from 'cross-fetch';
2
+ import { RequireRatchet } from '../../lang/require-ratchet.js';
3
+ import { Logger } from '../../logger/logger.js';
4
+ import { TwilioRatchet } from './twilio-ratchet.js';
5
+ export class TwilioVerifyRatchet {
6
+ accountSid;
7
+ authToken;
8
+ serviceSid;
9
+ static TWILLIO_BASE_VERIFY_URL = 'https://verify.twilio.com/v2/Services/';
10
+ constructor(accountSid, authToken, serviceSid) {
11
+ this.accountSid = accountSid;
12
+ this.authToken = authToken;
13
+ this.serviceSid = serviceSid;
14
+ RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(accountSid, 'accountSid');
15
+ RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(authToken, 'authToken');
16
+ RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(serviceSid, 'serviceSid');
17
+ }
18
+ async sendVerificationTokenUsingTwilioVerify(recipientPhoneNumber) {
19
+ RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(recipientPhoneNumber, 'recipientPhoneNumber');
20
+ RequireRatchet.true(TwilioRatchet.isValidE164Number(recipientPhoneNumber), 'recipientPhoneNumber must be E164');
21
+ const phone = recipientPhoneNumber.startsWith('+1') ? recipientPhoneNumber : '+1' + recipientPhoneNumber;
22
+ const body = 'Channel=sms&To=' + encodeURIComponent(phone);
23
+ const post = {
24
+ method: 'post',
25
+ headers: {
26
+ authorization: TwilioRatchet.generateTwilioBasicAuth(this.accountSid, this.authToken),
27
+ 'Content-Type': 'application/x-www-form-urlencoded',
28
+ },
29
+ body: body,
30
+ };
31
+ const url = TwilioVerifyRatchet.TWILLIO_BASE_VERIFY_URL + this.serviceSid + '/Verifications';
32
+ const res = await fetch(url, post);
33
+ const respBody = await res.text();
34
+ return respBody;
35
+ }
36
+ async simpleCheckVerificationTokenUsingTwilioVerify(recipientPhoneNumber, code) {
37
+ const val = await this.checkVerificationTokenUsingTwilioVerify(recipientPhoneNumber, code);
38
+ return val && val.status === 'approved';
39
+ }
40
+ async checkVerificationTokenUsingTwilioVerify(recipientPhoneNumber, code) {
41
+ RequireRatchet.notNullUndefinedOrOnlyWhitespaceString(recipientPhoneNumber, 'recipientPhoneNumber');
42
+ RequireRatchet.true(TwilioRatchet.isValidE164Number(recipientPhoneNumber), 'recipientPhoneNumber must be E164');
43
+ const phone = recipientPhoneNumber.startsWith('+1') ? recipientPhoneNumber : '+1' + recipientPhoneNumber;
44
+ const body = 'To=' + encodeURIComponent(phone) + '&Code=' + encodeURIComponent(code);
45
+ const post = {
46
+ method: 'post',
47
+ headers: {
48
+ authorization: TwilioRatchet.generateTwilioBasicAuth(this.accountSid, this.authToken),
49
+ 'Content-Type': 'application/x-www-form-urlencoded',
50
+ },
51
+ body: body,
52
+ };
53
+ const url = TwilioVerifyRatchet.TWILLIO_BASE_VERIFY_URL + this.serviceSid + '/VerificationCheck';
54
+ Logger.info('Using %s / %j', url, post);
55
+ const res = await fetch(url, post);
56
+ const parsedResponse = await res.json();
57
+ return parsedResponse;
58
+ }
59
+ }
60
+ //# sourceMappingURL=twilio-verify-ratchet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twilio-verify-ratchet.js","sourceRoot":"","sources":["../../../src/third-party/twilio/twilio-verify-ratchet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { TransformRule } from './transform-rule.js';
2
+ export declare class BuiltInTransforms {
3
+ static keysOnly(rule: TransformRule): TransformRule;
4
+ static valuesOnly(rule: TransformRule): TransformRule;
5
+ static stringReplaceTransform(input: string, output: string): TransformRule;
6
+ static stripStringTransform(input: string): TransformRule;
7
+ static retainAll(input: string[]): TransformRule;
8
+ static removeAll(input: string[]): TransformRule;
9
+ static snakeToCamelCase(): TransformRule;
10
+ static stringToNumber(): TransformRule;
11
+ static camelToSnakeCase(): TransformRule;
12
+ static concatenateToNewField(newFieldName: string, oldFieldNamesInOrder: string[], abortIfFieldMissing?: boolean): TransformRule;
13
+ static numberToBool(fieldNames: string[]): TransformRule;
14
+ static boolToNumber(fieldNames: string[]): TransformRule;
15
+ static makeDuplicateField(oldName: string, newName: string): TransformRule;
16
+ static addField(name: string, valueToAdd: string): TransformRule;
17
+ static reformatDateFields(fieldNames: string[], oldFormat: string, newFormat: string): TransformRule;
18
+ }