@casual-simulation/aux-records 3.8.1 → 3.10.2

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 (239) hide show
  1. package/AIChatInterface.d.ts +7 -43
  2. package/AIChatInterface.js +8 -6
  3. package/AIChatInterface.js.map +1 -1
  4. package/AIController.js +44 -49
  5. package/AIController.js.map +1 -1
  6. package/AIOpenAIRealtimeInterface.d.ts +1 -1
  7. package/AnthropicAIChatInterface.js +4 -4
  8. package/AnthropicAIChatInterface.js.map +1 -1
  9. package/AuthController.d.ts +78 -10
  10. package/AuthController.js +230 -166
  11. package/AuthController.js.map +1 -1
  12. package/AuthStore.d.ts +317 -4
  13. package/BigIntPatch.d.ts +1 -0
  14. package/BigIntPatch.js +24 -0
  15. package/BigIntPatch.js.map +1 -0
  16. package/BlockadeLabsGenerateSkyboxInterface.js +4 -4
  17. package/BlockadeLabsGenerateSkyboxInterface.js.map +1 -1
  18. package/CachingConfigStore.d.ts +8 -1
  19. package/CachingConfigStore.js +50 -0
  20. package/CachingConfigStore.js.map +1 -1
  21. package/ComIdConfig.d.ts +132 -86
  22. package/ComIdConfig.js +5 -5
  23. package/ComIdConfig.js.map +1 -1
  24. package/ConfigurationStore.d.ts +1393 -3
  25. package/ConfigurationStore.js +49 -0
  26. package/ConfigurationStore.js.map +1 -1
  27. package/DataRecordsController.js +28 -28
  28. package/DataRecordsController.js.map +1 -1
  29. package/EventRecordsController.js +9 -9
  30. package/EventRecordsController.js.map +1 -1
  31. package/FileRecordsController.js +18 -17
  32. package/FileRecordsController.js.map +1 -1
  33. package/GoogleAIChatInterface.js +4 -4
  34. package/GoogleAIChatInterface.js.map +1 -1
  35. package/HttpTestUtils.d.ts +48 -0
  36. package/HttpTestUtils.js +256 -0
  37. package/HttpTestUtils.js.map +1 -0
  38. package/LivekitController.js +2 -2
  39. package/LivekitController.js.map +1 -1
  40. package/LoomController.js +3 -4
  41. package/LoomController.js.map +1 -1
  42. package/MemoryStore.d.ts +60 -7
  43. package/MemoryStore.js +427 -59
  44. package/MemoryStore.js.map +1 -1
  45. package/MetricsStore.d.ts +11 -0
  46. package/ModerationConfiguration.d.ts +11 -85
  47. package/ModerationConfiguration.js +17 -17
  48. package/ModerationConfiguration.js.map +1 -1
  49. package/ModerationController.js +9 -11
  50. package/ModerationController.js.map +1 -1
  51. package/OpenAIChatInterface.js +8 -13
  52. package/OpenAIChatInterface.js.map +1 -1
  53. package/OpenAIImageInterface.js +4 -5
  54. package/OpenAIImageInterface.js.map +1 -1
  55. package/PolicyController.js +66 -73
  56. package/PolicyController.js.map +1 -1
  57. package/PolicyStore.d.ts +59 -33
  58. package/PolicyStore.js +35 -1
  59. package/PolicyStore.js.map +1 -1
  60. package/PrivoClient.d.ts +3 -1
  61. package/PrivoClient.js +2 -4
  62. package/PrivoClient.js.map +1 -1
  63. package/PrivoConfiguration.d.ts +6 -72
  64. package/PrivoConfiguration.js +30 -31
  65. package/PrivoConfiguration.js.map +1 -1
  66. package/README.md +276 -2
  67. package/RateLimitController.js +2 -2
  68. package/RateLimitController.js.map +1 -1
  69. package/RecordsClient.d.ts +3 -1
  70. package/RecordsClient.js +6 -6
  71. package/RecordsClient.js.map +1 -1
  72. package/RecordsController.d.ts +145 -3
  73. package/RecordsController.js +399 -61
  74. package/RecordsController.js.map +1 -1
  75. package/RecordsServer.d.ts +1932 -1109
  76. package/RecordsStore.d.ts +99 -14
  77. package/RecordsStore.js +8 -10
  78. package/RecordsStore.js.map +1 -1
  79. package/ServerConfig.d.ts +698 -9867
  80. package/ServerConfig.js +457 -377
  81. package/ServerConfig.js.map +1 -1
  82. package/SloydInterface.js +1 -1
  83. package/SloydInterface.js.map +1 -1
  84. package/StabilityAIImageInterface.js +6 -9
  85. package/StabilityAIImageInterface.js.map +1 -1
  86. package/StripeInterface.d.ts +431 -287
  87. package/StripeInterface.js +21 -1
  88. package/StripeInterface.js.map +1 -1
  89. package/SubscriptionConfigBuilder.d.ts +10 -1
  90. package/SubscriptionConfigBuilder.js +72 -41
  91. package/SubscriptionConfigBuilder.js.map +1 -1
  92. package/SubscriptionConfiguration.d.ts +606 -6334
  93. package/SubscriptionConfiguration.js +460 -277
  94. package/SubscriptionConfiguration.js.map +1 -1
  95. package/SubscriptionController.d.ts +677 -4
  96. package/SubscriptionController.js +2986 -186
  97. package/SubscriptionController.js.map +1 -1
  98. package/SystemNotificationMessenger.d.ts +14 -70
  99. package/SystemNotificationMessenger.js +17 -20
  100. package/SystemNotificationMessenger.js.map +1 -1
  101. package/TestUtils.d.ts +18 -3
  102. package/TestUtils.js +84 -8
  103. package/TestUtils.js.map +1 -1
  104. package/TypeUtils.d.ts +991 -0
  105. package/TypeUtils.js +2 -0
  106. package/TypeUtils.js.map +1 -0
  107. package/Utils.d.ts +59 -0
  108. package/Utils.js +507 -3
  109. package/Utils.js.map +1 -1
  110. package/Validations.d.ts +24 -108
  111. package/Validations.js +62 -45
  112. package/Validations.js.map +1 -1
  113. package/ViewTemplateRenderer.d.ts +39 -0
  114. package/ViewTemplateRenderer.js +19 -0
  115. package/ViewTemplateRenderer.js.map +1 -0
  116. package/contracts/ContractRecordsController.d.ts +58 -0
  117. package/contracts/ContractRecordsController.js +144 -0
  118. package/contracts/ContractRecordsController.js.map +1 -0
  119. package/contracts/ContractRecordsStore.d.ts +285 -0
  120. package/contracts/ContractRecordsStore.js +19 -0
  121. package/contracts/ContractRecordsStore.js.map +1 -0
  122. package/contracts/MemoryContractRecordsStore.d.ts +27 -0
  123. package/contracts/MemoryContractRecordsStore.js +124 -0
  124. package/contracts/MemoryContractRecordsStore.js.map +1 -0
  125. package/contracts/index.d.ts +4 -0
  126. package/contracts/index.js +21 -0
  127. package/contracts/index.js.map +1 -0
  128. package/crud/CrudHelpers.d.ts +25 -26
  129. package/crud/CrudHelpers.js +1 -1
  130. package/crud/CrudHelpers.js.map +1 -1
  131. package/crud/CrudRecordsController.js +13 -16
  132. package/crud/CrudRecordsController.js.map +1 -1
  133. package/crud/CrudRecordsControllerTests.d.ts +2 -2
  134. package/crud/CrudRecordsControllerTests.js +605 -580
  135. package/crud/CrudRecordsControllerTests.js.map +1 -1
  136. package/crud/MemoryCrudRecordsStore.js +1 -2
  137. package/crud/MemoryCrudRecordsStore.js.map +1 -1
  138. package/crud/sub/MemorySubCrudRecordsStore.js +4 -6
  139. package/crud/sub/MemorySubCrudRecordsStore.js.map +1 -1
  140. package/crud/sub/SubCrudRecordsController.js +8 -8
  141. package/crud/sub/SubCrudRecordsController.js.map +1 -1
  142. package/database/DatabaseRecordsController.js +1 -2
  143. package/database/DatabaseRecordsController.js.map +1 -1
  144. package/database/SqliteDatabaseInterface.js +1 -2
  145. package/database/SqliteDatabaseInterface.js.map +1 -1
  146. package/dns/DNSDomainNameValidator.d.ts +11 -0
  147. package/dns/DNSDomainNameValidator.js +59 -0
  148. package/dns/DNSDomainNameValidator.js.map +1 -0
  149. package/dns/DomainNameValidator.d.ts +36 -0
  150. package/dns/DomainNameValidator.js +19 -0
  151. package/dns/DomainNameValidator.js.map +1 -0
  152. package/dns/index.d.ts +3 -0
  153. package/dns/index.js +20 -0
  154. package/dns/index.js.map +1 -0
  155. package/financial/FinancialController.d.ts +272 -0
  156. package/financial/FinancialController.js +762 -0
  157. package/financial/FinancialController.js.map +1 -0
  158. package/financial/FinancialInterface.d.ts +352 -0
  159. package/financial/FinancialInterface.js +642 -0
  160. package/financial/FinancialInterface.js.map +1 -0
  161. package/financial/FinancialStore.d.ts +186 -0
  162. package/financial/FinancialStore.js +19 -0
  163. package/financial/FinancialStore.js.map +1 -0
  164. package/financial/MemoryFinancialInterface.d.ts +23 -0
  165. package/financial/MemoryFinancialInterface.js +592 -0
  166. package/financial/MemoryFinancialInterface.js.map +1 -0
  167. package/financial/TigerBeetleFinancialInterface.d.ts +46 -0
  168. package/financial/TigerBeetleFinancialInterface.js +109 -0
  169. package/financial/TigerBeetleFinancialInterface.js.map +1 -0
  170. package/financial/TigerBeetleTestUtils.d.ts +40 -0
  171. package/financial/TigerBeetleTestUtils.js +185 -0
  172. package/financial/TigerBeetleTestUtils.js.map +1 -0
  173. package/financial/Types.d.ts +1 -0
  174. package/financial/Types.js +801 -0
  175. package/financial/Types.js.map +1 -0
  176. package/financial/index.d.ts +6 -0
  177. package/financial/index.js +24 -0
  178. package/financial/index.js.map +1 -0
  179. package/index.d.ts +4 -0
  180. package/index.js +3 -0
  181. package/index.js.map +1 -1
  182. package/notifications/NotificationRecordsController.js +14 -14
  183. package/notifications/NotificationRecordsController.js.map +1 -1
  184. package/notifications/WebPushInterface.d.ts +24 -155
  185. package/notifications/WebPushInterface.js +2 -2
  186. package/notifications/WebPushInterface.js.map +1 -1
  187. package/package.json +72 -70
  188. package/packages/version/MemoryPackageVersionRecordsStore.js +12 -15
  189. package/packages/version/MemoryPackageVersionRecordsStore.js.map +1 -1
  190. package/packages/version/PackageVersionRecordsController.d.ts +19 -0
  191. package/packages/version/PackageVersionRecordsController.js +102 -22
  192. package/packages/version/PackageVersionRecordsController.js.map +1 -1
  193. package/packages/version/PackageVersionRecordsStore.js +6 -8
  194. package/packages/version/PackageVersionRecordsStore.js.map +1 -1
  195. package/purchasable-items/MemoryPurchasableItemRecordsStore.d.ts +7 -0
  196. package/purchasable-items/MemoryPurchasableItemRecordsStore.js +33 -0
  197. package/purchasable-items/MemoryPurchasableItemRecordsStore.js.map +1 -0
  198. package/purchasable-items/PurchasableItemRecordsController.d.ts +16 -0
  199. package/purchasable-items/PurchasableItemRecordsController.js +72 -0
  200. package/purchasable-items/PurchasableItemRecordsController.js.map +1 -0
  201. package/purchasable-items/PurchasableItemRecordsStore.d.ts +66 -0
  202. package/purchasable-items/PurchasableItemRecordsStore.js +2 -0
  203. package/purchasable-items/PurchasableItemRecordsStore.js.map +1 -0
  204. package/purchasable-items/index.d.ts +4 -0
  205. package/purchasable-items/index.js +21 -0
  206. package/purchasable-items/index.js.map +1 -0
  207. package/queue/MemoryQueue.js +1 -1
  208. package/queue/MemoryQueue.js.map +1 -1
  209. package/search/MemorySearchInterface.js +1 -2
  210. package/search/MemorySearchInterface.js.map +1 -1
  211. package/search/SearchRecordsController.d.ts +66 -244
  212. package/search/SearchRecordsController.js +35 -36
  213. package/search/SearchRecordsController.js.map +1 -1
  214. package/search/SearchSyncProcessor.d.ts +7 -83
  215. package/search/TypesenseSearchInterface.js +8 -11
  216. package/search/TypesenseSearchInterface.js.map +1 -1
  217. package/tracing/TracingDecorators.js +5 -8
  218. package/tracing/TracingDecorators.js.map +1 -1
  219. package/webhooks/WebhookEnvironment.d.ts +36 -560
  220. package/webhooks/WebhookEnvironment.js +1 -1
  221. package/webhooks/WebhookEnvironment.js.map +1 -1
  222. package/webhooks/WebhookRecordsController.js +14 -16
  223. package/webhooks/WebhookRecordsController.js.map +1 -1
  224. package/websockets/MemoryLockStore.d.ts +18 -0
  225. package/websockets/MemoryLockStore.js +2 -0
  226. package/websockets/MemoryLockStore.js.map +1 -0
  227. package/websockets/MemoryTempInstRecordsStore.js +15 -27
  228. package/websockets/MemoryTempInstRecordsStore.js.map +1 -1
  229. package/websockets/MemoryWebsocketConnectionStore.js +6 -8
  230. package/websockets/MemoryWebsocketConnectionStore.js.map +1 -1
  231. package/websockets/MemoryWebsocketMessenger.js +1 -2
  232. package/websockets/MemoryWebsocketMessenger.js.map +1 -1
  233. package/websockets/SplitInstRecordsStore.js +2 -2
  234. package/websockets/SplitInstRecordsStore.js.map +1 -1
  235. package/websockets/WebsocketController.d.ts +5 -0
  236. package/websockets/WebsocketController.js +122 -83
  237. package/websockets/WebsocketController.js.map +1 -1
  238. package/RecordsServer.js +0 -6435
  239. package/RecordsServer.js.map +0 -1
package/TypeUtils.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TypeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeUtils.js","sourceRoot":"","sources":["TypeUtils.ts"],"names":[],"mappings":""}
package/Utils.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { ArrayOfKASP, ISO4217_Map } from './TypeUtils';
1
2
  /**
2
3
  * Signs the given request and adds the related headers to it.
3
4
  * @param request The request to sign.
@@ -56,6 +57,21 @@ export declare function canonicalUriEncode(input: string, encodeSlash: boolean):
56
57
  * @param char The character to encode.
57
58
  */
58
59
  export declare function encodeHexUtf8(char: number): string;
60
+ export declare const iSO4217_AlphaArray: (keyof ISO4217_Map)[];
61
+ declare const ISO4217_Map: ArrayOfKASP<ISO4217_Map, ['n', 'mU']>;
62
+ /**
63
+ * Gets the ISO 4217 currency meta for the given currency name
64
+ * or numeric code
65
+ * @important
66
+ * ! Be sure to validate that the implementing service supports
67
+ * ! the currency as well as the minor unit count (if applicable)
68
+ * @param query The currency name or numeric code
69
+ */
70
+ export declare function getISO4217CurrencyCode(query: keyof ISO4217_Map | ISO4217_Map[keyof ISO4217_Map]['n']): [
71
+ keyof ISO4217_Map,
72
+ ISO4217_Map[keyof ISO4217_Map]['n'],
73
+ ISO4217_Map[keyof ISO4217_Map]['mU']
74
+ ];
59
75
  /**
60
76
  * Parses the given string of instance names into an array of instance names.
61
77
  * @param instances The names of the instances.
@@ -66,6 +82,48 @@ export declare function parseInstancesList(instances: string): string[] | undefi
66
82
  * @param obj The object to cleanup.
67
83
  */
68
84
  export declare function cleanupObject<T extends object>(obj: T): Partial<T>;
85
+ /**
86
+ * A function which returns true if param val is found to be type / instance of any specified in param constructorArray
87
+ * @param val The value whose type / instance to check the presence of in constructorArray
88
+ * @param constructorArray The array which contains the allowed types / instances for parameter val
89
+ */
90
+ export declare function isOfXType<T>(val: T, constructorArray: Array<Function | undefined | null>): boolean;
91
+ /**
92
+ * Clones the given record or returns null if the record is undefined.
93
+ * @param record The record to clone.
94
+ */
95
+ export declare function cloneDeepNull<T extends Record<keyof any, any>>(record: T | undefined): T;
96
+ /**
97
+ * Tries to parse the given JSON string into a JavaScript Value.
98
+ * @param json The JSON to parse.
99
+ */
100
+ export declare function tryParseJson(json: string): JsonParseResult;
101
+ interface ScopedErrorConfig {
102
+ /** The scope of the function. E.g. [ClassName, FunctionName] */
103
+ scope: Array<string> | string;
104
+ /** The message to log if an error occurs. */
105
+ errMsg: string;
106
+ }
107
+ export declare function scopedError(errConfig: ScopedErrorConfig, err: string): void;
108
+ interface ScopedTryConfig<E> extends ScopedErrorConfig {
109
+ /** The value to return if an error occurs. */
110
+ returnOnError?: E;
111
+ }
112
+ /**
113
+ * Attempts to run the given function and logs an error if it fails with a standard error format which includes the scope and message.
114
+ * @param fn The function to run.
115
+ * @param errConfig The configuration for proper logging and return value if an error occurs.
116
+ */
117
+ export declare function tryScope<T, E>(fn: () => T, errConfig: ScopedTryConfig<E>): Promise<T | E>;
118
+ export type JsonParseResult = JsonParseSuccess | JsonParseFailure;
119
+ export interface JsonParseSuccess {
120
+ success: true;
121
+ value: any;
122
+ }
123
+ export interface JsonParseFailure {
124
+ success: false;
125
+ error: Error;
126
+ }
69
127
  export interface RegexRule {
70
128
  type: 'allow' | 'deny';
71
129
  pattern: string;
@@ -128,4 +186,5 @@ export declare function handleAxiosErrors(err: any): void;
128
186
  * @param str The string.
129
187
  */
130
188
  export declare function byteLengthOfString(str: string): number;
189
+ export {};
131
190
  //# sourceMappingURL=Utils.d.ts.map
package/Utils.js CHANGED
@@ -15,7 +15,7 @@
15
15
  * You should have received a copy of the GNU Affero General Public License
16
16
  * along with this program. If not, see <https://www.gnu.org/licenses/>.
17
17
  */
18
- import { omitBy, padStart, sortBy } from 'es-toolkit/compat';
18
+ import { cloneDeep, omitBy, padStart, sortBy } from 'es-toolkit/compat';
19
19
  import { sha256, hmac } from 'hash.js';
20
20
  import { PUBLIC_READ_MARKER } from '@casual-simulation/aux-common';
21
21
  import axios from 'axios';
@@ -223,6 +223,381 @@ function getAmzDateString(date) {
223
223
  padStart(date.getUTCSeconds().toString(), 2, '0') +
224
224
  'Z');
225
225
  }
226
+ export const iSO4217_AlphaArray = [
227
+ 'AED',
228
+ 'AFN',
229
+ 'ALL',
230
+ 'AMD',
231
+ 'ANG',
232
+ 'AOA',
233
+ 'ARS',
234
+ 'AUD',
235
+ 'AWG',
236
+ 'AZN',
237
+ 'BAM',
238
+ 'BBD',
239
+ 'BDT',
240
+ 'BGN',
241
+ 'BHD',
242
+ 'BIF',
243
+ 'BMD',
244
+ 'BND',
245
+ 'BOB',
246
+ 'BOV',
247
+ 'BRL',
248
+ 'BSD',
249
+ 'BTN',
250
+ 'BWP',
251
+ 'BYN',
252
+ 'BZD',
253
+ 'CAD',
254
+ 'CDF',
255
+ 'CHE',
256
+ 'CHF',
257
+ 'CHW',
258
+ 'CLF',
259
+ 'CLP',
260
+ 'CNY',
261
+ 'COP',
262
+ 'COU',
263
+ 'CRC',
264
+ 'CUC',
265
+ 'CUP',
266
+ 'CVE',
267
+ 'CZK',
268
+ 'DJF',
269
+ 'DKK',
270
+ 'DOP',
271
+ 'DZD',
272
+ 'EGP',
273
+ 'ERN',
274
+ 'ETB',
275
+ 'EUR',
276
+ 'FJD',
277
+ 'FKP',
278
+ 'GBP',
279
+ 'GEL',
280
+ 'GHS',
281
+ 'GIP',
282
+ 'GMD',
283
+ 'GNF',
284
+ 'GTQ',
285
+ 'GYD',
286
+ 'HKD',
287
+ 'HNL',
288
+ 'HTG',
289
+ 'HUF',
290
+ 'IDR',
291
+ 'ILS',
292
+ 'INR',
293
+ 'IQD',
294
+ 'IRR',
295
+ 'ISK',
296
+ 'JMD',
297
+ 'JOD',
298
+ 'JPY',
299
+ 'KES',
300
+ 'KGS',
301
+ 'KHR',
302
+ 'KMF',
303
+ 'KPW',
304
+ 'KRW',
305
+ 'KWD',
306
+ 'KYD',
307
+ 'KZT',
308
+ 'LAK',
309
+ 'LBP',
310
+ 'LKR',
311
+ 'LRD',
312
+ 'LSL',
313
+ 'LYD',
314
+ 'MAD',
315
+ 'MDL',
316
+ 'MGA',
317
+ 'MKD',
318
+ 'MMK',
319
+ 'MNT',
320
+ 'MOP',
321
+ 'MRU',
322
+ 'MUR',
323
+ 'MVR',
324
+ 'MWK',
325
+ 'MXN',
326
+ 'MXV',
327
+ 'MYR',
328
+ 'MZN',
329
+ 'NAD',
330
+ 'NGN',
331
+ 'NIO',
332
+ 'NOK',
333
+ 'NPR',
334
+ 'NZD',
335
+ 'OMR',
336
+ 'PAB',
337
+ 'PEN',
338
+ 'PGK',
339
+ 'PHP',
340
+ 'PKR',
341
+ 'PLN',
342
+ 'PYG',
343
+ 'QAR',
344
+ 'RON',
345
+ 'RSD',
346
+ 'RUB',
347
+ 'RWF',
348
+ 'SAR',
349
+ 'SBD',
350
+ 'SCR',
351
+ 'SDG',
352
+ 'SEK',
353
+ 'SGD',
354
+ 'SHP',
355
+ 'SLE',
356
+ 'SOS',
357
+ 'SRD',
358
+ 'SSP',
359
+ 'STN',
360
+ 'SVC',
361
+ 'SYP',
362
+ 'SZL',
363
+ 'THB',
364
+ 'TJS',
365
+ 'TMT',
366
+ 'TND',
367
+ 'TOP',
368
+ 'TRY',
369
+ 'TTD',
370
+ 'TWD',
371
+ 'TZS',
372
+ 'UAH',
373
+ 'UGX',
374
+ 'USD',
375
+ 'USN',
376
+ 'UYI',
377
+ 'UYU',
378
+ 'UYW',
379
+ 'UZS',
380
+ 'VED',
381
+ 'VES',
382
+ 'VND',
383
+ 'VUV',
384
+ 'WST',
385
+ 'XAF',
386
+ 'XAG',
387
+ 'XAU',
388
+ 'XBA',
389
+ 'XBB',
390
+ 'XBC',
391
+ 'XBD',
392
+ 'XCD',
393
+ 'XDR',
394
+ 'XOF',
395
+ 'XPD',
396
+ 'XPF',
397
+ 'XPT',
398
+ 'XSU',
399
+ 'XTS',
400
+ 'XUA',
401
+ 'XXX',
402
+ 'YER',
403
+ 'ZAR',
404
+ 'ZMW',
405
+ 'ZWG',
406
+ 'ZWL',
407
+ ];
408
+ const ISO4217_Map = [
409
+ ['AED', 784, 2],
410
+ ['AFN', 971, 2],
411
+ ['ALL', 8, 2],
412
+ ['AMD', 51, 2],
413
+ ['ANG', 532, 2],
414
+ ['AOA', 973, 2],
415
+ ['ARS', 32, 2],
416
+ ['AUD', 36, 2],
417
+ ['AWG', 533, 2],
418
+ ['AZN', 944, 2],
419
+ ['BAM', 977, 2],
420
+ ['BBD', 52, 2],
421
+ ['BDT', 50, 2],
422
+ ['BGN', 975, 2],
423
+ ['BHD', 48, 3],
424
+ ['BIF', 108, 0],
425
+ ['BMD', 60, 2],
426
+ ['BND', 96, 2],
427
+ ['BOB', 68, 2],
428
+ ['BOV', 984, 2],
429
+ ['BRL', 986, 2],
430
+ ['BSD', 44, 2],
431
+ ['BTN', 64, 2],
432
+ ['BWP', 72, 2],
433
+ ['BYN', 933, 2],
434
+ ['BZD', 84, 2],
435
+ ['CAD', 124, 2],
436
+ ['CDF', 976, 2],
437
+ ['CHE', 947, 2],
438
+ ['CHF', 756, 2],
439
+ ['CHW', 948, 2],
440
+ ['CLF', 990, 4],
441
+ ['CLP', 152, 0],
442
+ ['CNY', 156, 2],
443
+ ['COP', 170, 2],
444
+ ['COU', 970, 2],
445
+ ['CRC', 188, 2],
446
+ ['CUC', 931, 2],
447
+ ['CUP', 192, 2],
448
+ ['CVE', 132, 2],
449
+ ['CZK', 203, 2],
450
+ ['DJF', 262, 0],
451
+ ['DKK', 208, 2],
452
+ ['DOP', 214, 2],
453
+ ['DZD', 12, 2],
454
+ ['EGP', 818, 2],
455
+ ['ERN', 232, 2],
456
+ ['ETB', 230, 2],
457
+ ['EUR', 978, 2],
458
+ ['FJD', 242, 2],
459
+ ['FKP', 238, 2],
460
+ ['GBP', 826, 2],
461
+ ['GEL', 981, 2],
462
+ ['GHS', 936, 2],
463
+ ['GIP', 292, 2],
464
+ ['GMD', 270, 2],
465
+ ['GNF', 324, 0],
466
+ ['GTQ', 320, 2],
467
+ ['GYD', 328, 2],
468
+ ['HKD', 344, 2],
469
+ ['HNL', 340, 2],
470
+ ['HTG', 332, 2],
471
+ ['HUF', 348, 2],
472
+ ['IDR', 360, 2],
473
+ ['ILS', 376, 2],
474
+ ['INR', 356, 2],
475
+ ['IQD', 368, 3],
476
+ ['IRR', 364, 2],
477
+ ['ISK', 352, 0],
478
+ ['JMD', 388, 2],
479
+ ['JOD', 400, 3],
480
+ ['JPY', 392, 0],
481
+ ['KES', 404, 2],
482
+ ['KGS', 417, 2],
483
+ ['KHR', 116, 2],
484
+ ['KMF', 174, 0],
485
+ ['KPW', 408, 2],
486
+ ['KRW', 410, 0],
487
+ ['KWD', 414, 3],
488
+ ['KYD', 136, 2],
489
+ ['KZT', 398, 2],
490
+ ['LAK', 418, 2],
491
+ ['LBP', 422, 2],
492
+ ['LKR', 144, 2],
493
+ ['LRD', 430, 2],
494
+ ['LSL', 426, 2],
495
+ ['LYD', 434, 3],
496
+ ['MAD', 504, 2],
497
+ ['MDL', 498, 2],
498
+ ['MGA', 969, 2],
499
+ ['MKD', 807, 2],
500
+ ['MMK', 104, 2],
501
+ ['MNT', 496, 2],
502
+ ['MOP', 446, 2],
503
+ ['MRU', 929, 2],
504
+ ['MUR', 480, 2],
505
+ ['MVR', 462, 2],
506
+ ['MWK', 454, 2],
507
+ ['MXN', 484, 2],
508
+ ['MXV', 979, 2],
509
+ ['MYR', 458, 2],
510
+ ['MZN', 943, 2],
511
+ ['NAD', 516, 2],
512
+ ['NGN', 566, 2],
513
+ ['NIO', 558, 2],
514
+ ['NOK', 578, 2],
515
+ ['NPR', 524, 2],
516
+ ['NZD', 554, 2],
517
+ ['OMR', 512, 3],
518
+ ['PAB', 590, 2],
519
+ ['PEN', 604, 2],
520
+ ['PGK', 598, 2],
521
+ ['PHP', 608, 2],
522
+ ['PKR', 586, 2],
523
+ ['PLN', 985, 2],
524
+ ['PYG', 600, 0],
525
+ ['QAR', 634, 2],
526
+ ['RON', 946, 2],
527
+ ['RSD', 941, 2],
528
+ ['RUB', 643, 2],
529
+ ['RWF', 646, 0],
530
+ ['SAR', 682, 2],
531
+ ['SBD', 90, 2],
532
+ ['SCR', 690, 2],
533
+ ['SDG', 938, 2],
534
+ ['SEK', 752, 2],
535
+ ['SGD', 702, 2],
536
+ ['SHP', 654, 2],
537
+ ['SLE', 925, 2],
538
+ ['SOS', 706, 2],
539
+ ['SRD', 968, 2],
540
+ ['SSP', 728, 2],
541
+ ['STN', 930, 2],
542
+ ['SVC', 222, 2],
543
+ ['SYP', 760, 2],
544
+ ['SZL', 748, 2],
545
+ ['THB', 764, 2],
546
+ ['TJS', 972, 2],
547
+ ['TMT', 934, 2],
548
+ ['TND', 788, 3],
549
+ ['TOP', 776, 2],
550
+ ['TRY', 949, 2],
551
+ ['TTD', 780, 2],
552
+ ['TWD', 901, 2],
553
+ ['TZS', 834, 2],
554
+ ['UAH', 980, 2],
555
+ ['UGX', 800, 0],
556
+ ['USD', 840, 2],
557
+ ['USN', 997, 2],
558
+ ['UYI', 940, 0],
559
+ ['UYU', 858, 2],
560
+ ['UYW', 927, 4],
561
+ ['UZS', 860, 2],
562
+ ['VED', 926, 2],
563
+ ['VES', 928, 2],
564
+ ['VND', 704, 0],
565
+ ['VUV', 548, 0],
566
+ ['WST', 882, 2],
567
+ ['XAF', 950, 0],
568
+ ['XAG', 961, null],
569
+ ['XAU', 959, null],
570
+ ['XBA', 955, null],
571
+ ['XBB', 956, null],
572
+ ['XBC', 957, null],
573
+ ['XBD', 958, null],
574
+ ['XCD', 951, 2],
575
+ ['XDR', 960, null],
576
+ ['XOF', 952, 0],
577
+ ['XPD', 964, null],
578
+ ['XPF', 953, 0],
579
+ ['XPT', 962, null],
580
+ ['XSU', 994, null],
581
+ ['XTS', 963, null],
582
+ ['XUA', 965, null],
583
+ ['XXX', 999, null],
584
+ ['YER', 886, 2],
585
+ ['ZAR', 710, 2],
586
+ ['ZMW', 967, 2],
587
+ ['ZWG', 924, 2],
588
+ ['ZWL', 932, 2],
589
+ ];
590
+ /**
591
+ * Gets the ISO 4217 currency meta for the given currency name
592
+ * or numeric code
593
+ * @important
594
+ * ! Be sure to validate that the implementing service supports
595
+ * ! the currency as well as the minor unit count (if applicable)
596
+ * @param query The currency name or numeric code
597
+ */
598
+ export function getISO4217CurrencyCode(query) {
599
+ return ISO4217_Map.find((v) => v[typeof query == 'string' ? 0 : 1] === query);
600
+ }
226
601
  /**
227
602
  * Parses the given string of instance names into an array of instance names.
228
603
  * @param instances The names of the instances.
@@ -243,6 +618,136 @@ export function parseInstancesList(instances) {
243
618
  export function cleanupObject(obj) {
244
619
  return omitBy(obj, (o) => typeof o === 'undefined' || o === null);
245
620
  }
621
+ // /**
622
+ // * Deep clones and concurrently freezes within the same iteration the provided object (record/array).
623
+ // * @param obj The object to clone and freeze recursively.
624
+ // */
625
+ // export function deepCloneFreeze<T extends Record<string, any> | Array<any>>(
626
+ // obj: T
627
+ // ): Readonly<T> {
628
+ // const returnObj = (Array.isArray(obj) ? [] : {}) as T;
629
+ // for (const key in obj) {
630
+ // if (obj.hasOwnProperty(key)) {
631
+ // const value = obj[key];
632
+ // if (
633
+ // typeof value === 'object' &&
634
+ // value !== null &&
635
+ // !(value instanceof Date)
636
+ // ) {
637
+ // returnObj[key] = deepCloneFreeze(value) as T[Extract<
638
+ // keyof T,
639
+ // string
640
+ // >];
641
+ // } else {
642
+ // returnObj[key] = value;
643
+ // }
644
+ // }
645
+ // }
646
+ // return Object.freeze(returnObj);
647
+ // }
648
+ // /**
649
+ // * Provides a function that can be used to build a paginate/effect function for the given array.
650
+ // * @param arr The array to paginate.
651
+ // * @param effectEach A function used within map to effect each element.
652
+ // * @returns
653
+ // */
654
+ // export function paginationProviderOf<T, E>(
655
+ // arr: T[],
656
+ // effectEach?: (item: T) => PromiseOrValue<E>
657
+ // ) {
658
+ // return async (limit: number, offset: number) => {
659
+ // const content = arr.slice(offset, offset + limit);
660
+ // if (!effectEach || content.length < 1) return [];
661
+ // return await Promise.all(content.map((X) => effectEach(X)));
662
+ // };
663
+ // }
664
+ // ! Implementation is WIP
665
+ // /**
666
+ // * Generates a custom asymmetric matcher used by jest.
667
+ // * * (Similar to expect.any)
668
+ // * @param asymmetricMatcher The function to run on the value to indicate whether or not its as expected
669
+ // * @param toString The string provider of the expected values state/type
670
+ // * @param getExpectedType The string provider of the expected values type(s)
671
+ // */
672
+ // export function jestCustomAsymmetricMatcher(
673
+ // asymmetricMatcher: (value: any) => boolean,
674
+ // toAsymmetricMatcher: () => string,
675
+ // toString?: () => string,
676
+ // getExpectedType?: () => string
677
+ // ) {
678
+ // return {
679
+ // $$typeof: Symbol.for('jest.asymmetricMatcher'),
680
+ // asymmetricMatcher,
681
+ // toAsymmetricMatcher,
682
+ // toString,
683
+ // getExpectedType,
684
+ // };
685
+ // }
686
+ /**
687
+ * A function which returns true if param val is found to be type / instance of any specified in param constructorArray
688
+ * @param val The value whose type / instance to check the presence of in constructorArray
689
+ * @param constructorArray The array which contains the allowed types / instances for parameter val
690
+ */
691
+ export function isOfXType(val,
692
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
693
+ constructorArray) {
694
+ return constructorArray.some((constructor) => {
695
+ return constructor === String ||
696
+ constructor === Number ||
697
+ constructor === Boolean ||
698
+ constructor === Symbol ||
699
+ constructor === BigInt ||
700
+ constructor === undefined
701
+ ? typeof val === (constructor?.name?.toLowerCase() ?? 'undefined')
702
+ : constructor === null
703
+ ? val === null
704
+ : val instanceof constructor;
705
+ });
706
+ }
707
+ /**
708
+ * Clones the given record or returns null if the record is undefined.
709
+ * @param record The record to clone.
710
+ */
711
+ export function cloneDeepNull(record) {
712
+ return record ? cloneDeep(record) : null;
713
+ }
714
+ /**
715
+ * Tries to parse the given JSON string into a JavaScript Value.
716
+ * @param json The JSON to parse.
717
+ */
718
+ export function tryParseJson(json) {
719
+ try {
720
+ return {
721
+ success: true,
722
+ value: JSON.parse(json),
723
+ };
724
+ }
725
+ catch (err) {
726
+ return {
727
+ success: false,
728
+ error: err,
729
+ };
730
+ }
731
+ }
732
+ export function scopedError(errConfig, err) {
733
+ console.error(Array.isArray(errConfig.scope)
734
+ ? errConfig.scope.map((s) => `[${s}]`).join(' ')
735
+ : `[${errConfig.scope}]`, errConfig.errMsg, err);
736
+ }
737
+ /**
738
+ * Attempts to run the given function and logs an error if it fails with a standard error format which includes the scope and message.
739
+ * @param fn The function to run.
740
+ * @param errConfig The configuration for proper logging and return value if an error occurs.
741
+ */
742
+ export async function tryScope(fn, errConfig) {
743
+ try {
744
+ return await fn();
745
+ }
746
+ catch (err) {
747
+ scopedError(errConfig, err);
748
+ return errConfig.returnOnError;
749
+ }
750
+ }
246
751
  /**
247
752
  * Determines if the given value matches the given list of rules.
248
753
  * @param value The value to test.
@@ -361,9 +866,8 @@ export function getPathMarker(marker) {
361
866
  * @param err The error.
362
867
  */
363
868
  export function handleAxiosErrors(err) {
364
- var _a, _b, _c;
365
869
  if (axios.isAxiosError(err)) {
366
- console.error('An axios error occcurred:', '\nStatus:', (_a = err.response) === null || _a === void 0 ? void 0 : _a.status, '\nHeaders:', (_b = err.response) === null || _b === void 0 ? void 0 : _b.headers, '\nData:', (_c = err.response) === null || _c === void 0 ? void 0 : _c.data, '\nRequest:', err.request);
870
+ console.error('An axios error occcurred:', '\nStatus:', err.response?.status, '\nHeaders:', err.response?.headers, '\nData:', err.response?.data, '\nRequest:', err.request);
367
871
  throw new Error('An axios error occurred: ' + err.message);
368
872
  }
369
873
  else {