@hotmeshio/hotmesh 0.4.0 → 0.4.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 (284) hide show
  1. package/README.md +39 -14
  2. package/build/modules/enums.d.ts +110 -0
  3. package/build/modules/enums.js +134 -0
  4. package/build/modules/errors.d.ts +124 -0
  5. package/build/modules/errors.js +191 -0
  6. package/build/modules/key.d.ts +66 -0
  7. package/build/modules/key.js +190 -0
  8. package/build/modules/storage.d.ts +3 -0
  9. package/build/modules/storage.js +5 -0
  10. package/build/modules/utils.d.ts +119 -0
  11. package/build/modules/utils.js +374 -0
  12. package/build/package.json +1 -1
  13. package/build/services/activities/activity.d.ts +104 -0
  14. package/build/services/activities/activity.js +549 -0
  15. package/build/services/activities/await.d.ts +12 -0
  16. package/build/services/activities/await.js +114 -0
  17. package/build/services/activities/cycle.d.ts +19 -0
  18. package/build/services/activities/cycle.js +112 -0
  19. package/build/services/activities/hook.d.ts +27 -0
  20. package/build/services/activities/hook.js +168 -0
  21. package/build/services/activities/index.d.ts +19 -0
  22. package/build/services/activities/index.js +20 -0
  23. package/build/services/activities/interrupt.d.ts +16 -0
  24. package/build/services/activities/interrupt.js +158 -0
  25. package/build/services/activities/signal.d.ts +20 -0
  26. package/build/services/activities/signal.js +134 -0
  27. package/build/services/activities/trigger.d.ts +37 -0
  28. package/build/services/activities/trigger.js +246 -0
  29. package/build/services/activities/worker.d.ts +12 -0
  30. package/build/services/activities/worker.js +106 -0
  31. package/build/services/collator/index.d.ts +111 -0
  32. package/build/services/collator/index.js +293 -0
  33. package/build/services/compiler/deployer.d.ts +40 -0
  34. package/build/services/compiler/deployer.js +488 -0
  35. package/build/services/compiler/index.d.ts +32 -0
  36. package/build/services/compiler/index.js +112 -0
  37. package/build/services/compiler/validator.d.ts +34 -0
  38. package/build/services/compiler/validator.js +147 -0
  39. package/build/services/connector/factory.d.ts +22 -0
  40. package/build/services/connector/factory.js +99 -0
  41. package/build/services/connector/index.d.ts +30 -0
  42. package/build/services/connector/index.js +54 -0
  43. package/build/services/connector/providers/ioredis.d.ts +9 -0
  44. package/build/services/connector/providers/ioredis.js +26 -0
  45. package/build/services/connector/providers/nats.d.ts +9 -0
  46. package/build/services/connector/providers/nats.js +34 -0
  47. package/build/services/connector/providers/postgres.d.ts +20 -0
  48. package/build/services/connector/providers/postgres.js +102 -0
  49. package/build/services/connector/providers/redis.d.ts +9 -0
  50. package/build/services/connector/providers/redis.js +38 -0
  51. package/build/services/engine/index.d.ts +264 -0
  52. package/build/services/engine/index.js +761 -0
  53. package/build/services/exporter/index.d.ts +44 -0
  54. package/build/services/exporter/index.js +126 -0
  55. package/build/services/hotmesh/index.d.ts +483 -0
  56. package/build/services/hotmesh/index.js +622 -0
  57. package/build/services/logger/index.d.ts +16 -0
  58. package/build/services/logger/index.js +54 -0
  59. package/build/services/mapper/index.d.ts +28 -0
  60. package/build/services/mapper/index.js +81 -0
  61. package/build/services/memflow/client.d.ts +108 -0
  62. package/build/services/memflow/client.js +372 -0
  63. package/build/services/memflow/connection.d.ts +23 -0
  64. package/build/services/memflow/connection.js +33 -0
  65. package/build/services/memflow/context.d.ts +143 -0
  66. package/build/services/memflow/context.js +299 -0
  67. package/build/services/memflow/exporter.d.ts +51 -0
  68. package/build/services/memflow/exporter.js +215 -0
  69. package/build/services/memflow/handle.d.ts +90 -0
  70. package/build/services/memflow/handle.js +176 -0
  71. package/build/services/memflow/index.d.ts +116 -0
  72. package/build/services/memflow/index.js +122 -0
  73. package/build/services/memflow/schemas/factory.d.ts +29 -0
  74. package/build/services/memflow/schemas/factory.js +2492 -0
  75. package/build/services/memflow/search.d.ts +142 -0
  76. package/build/services/memflow/search.js +320 -0
  77. package/build/services/memflow/worker.d.ts +124 -0
  78. package/build/services/memflow/worker.js +514 -0
  79. package/build/services/memflow/workflow/all.d.ts +7 -0
  80. package/build/services/memflow/workflow/all.js +15 -0
  81. package/build/services/memflow/workflow/common.d.ts +20 -0
  82. package/build/services/memflow/workflow/common.js +47 -0
  83. package/build/services/memflow/workflow/context.d.ts +6 -0
  84. package/build/services/memflow/workflow/context.js +45 -0
  85. package/build/services/memflow/workflow/contextMethods.d.ts +14 -0
  86. package/build/services/memflow/workflow/contextMethods.js +33 -0
  87. package/build/services/memflow/workflow/didRun.d.ts +7 -0
  88. package/build/services/memflow/workflow/didRun.js +22 -0
  89. package/build/services/memflow/workflow/emit.d.ts +11 -0
  90. package/build/services/memflow/workflow/emit.js +29 -0
  91. package/build/services/memflow/workflow/enrich.d.ts +9 -0
  92. package/build/services/memflow/workflow/enrich.js +17 -0
  93. package/build/services/memflow/workflow/execChild.d.ts +18 -0
  94. package/build/services/memflow/workflow/execChild.js +102 -0
  95. package/build/services/memflow/workflow/execHook.d.ts +65 -0
  96. package/build/services/memflow/workflow/execHook.js +73 -0
  97. package/build/services/memflow/workflow/hook.d.ts +9 -0
  98. package/build/services/memflow/workflow/hook.js +56 -0
  99. package/build/services/memflow/workflow/index.d.ts +74 -0
  100. package/build/services/memflow/workflow/index.js +87 -0
  101. package/build/services/memflow/workflow/interrupt.d.ts +9 -0
  102. package/build/services/memflow/workflow/interrupt.js +24 -0
  103. package/build/services/memflow/workflow/isSideEffectAllowed.d.ts +10 -0
  104. package/build/services/memflow/workflow/isSideEffectAllowed.js +33 -0
  105. package/build/services/memflow/workflow/proxyActivities.d.ts +20 -0
  106. package/build/services/memflow/workflow/proxyActivities.js +97 -0
  107. package/build/services/memflow/workflow/random.d.ts +6 -0
  108. package/build/services/memflow/workflow/random.js +16 -0
  109. package/build/services/memflow/workflow/searchMethods.d.ts +6 -0
  110. package/build/services/memflow/workflow/searchMethods.js +25 -0
  111. package/build/services/memflow/workflow/signal.d.ts +29 -0
  112. package/build/services/memflow/workflow/signal.js +50 -0
  113. package/build/services/memflow/workflow/sleepFor.d.ts +24 -0
  114. package/build/services/memflow/workflow/sleepFor.js +51 -0
  115. package/build/services/memflow/workflow/trace.d.ts +14 -0
  116. package/build/services/memflow/workflow/trace.js +33 -0
  117. package/build/services/memflow/workflow/waitFor.d.ts +29 -0
  118. package/build/services/memflow/workflow/waitFor.js +56 -0
  119. package/build/services/meshcall/index.d.ts +194 -0
  120. package/build/services/meshcall/index.js +452 -0
  121. package/build/services/meshcall/schemas/factory.d.ts +9 -0
  122. package/build/services/meshcall/schemas/factory.js +189 -0
  123. package/build/services/meshdata/index.d.ts +795 -0
  124. package/build/services/meshdata/index.js +1235 -0
  125. package/build/services/meshos/index.d.ts +293 -0
  126. package/build/services/meshos/index.js +547 -0
  127. package/build/services/pipe/functions/array.d.ts +17 -0
  128. package/build/services/pipe/functions/array.js +74 -0
  129. package/build/services/pipe/functions/bitwise.d.ts +9 -0
  130. package/build/services/pipe/functions/bitwise.js +24 -0
  131. package/build/services/pipe/functions/conditional.d.ts +13 -0
  132. package/build/services/pipe/functions/conditional.js +36 -0
  133. package/build/services/pipe/functions/cron.d.ts +12 -0
  134. package/build/services/pipe/functions/cron.js +40 -0
  135. package/build/services/pipe/functions/date.d.ts +58 -0
  136. package/build/services/pipe/functions/date.js +171 -0
  137. package/build/services/pipe/functions/index.d.ts +29 -0
  138. package/build/services/pipe/functions/index.js +30 -0
  139. package/build/services/pipe/functions/json.d.ts +5 -0
  140. package/build/services/pipe/functions/json.js +12 -0
  141. package/build/services/pipe/functions/logical.d.ts +5 -0
  142. package/build/services/pipe/functions/logical.js +12 -0
  143. package/build/services/pipe/functions/math.d.ts +42 -0
  144. package/build/services/pipe/functions/math.js +184 -0
  145. package/build/services/pipe/functions/number.d.ts +21 -0
  146. package/build/services/pipe/functions/number.js +60 -0
  147. package/build/services/pipe/functions/object.d.ts +25 -0
  148. package/build/services/pipe/functions/object.js +81 -0
  149. package/build/services/pipe/functions/string.d.ts +23 -0
  150. package/build/services/pipe/functions/string.js +69 -0
  151. package/build/services/pipe/functions/symbol.d.ts +12 -0
  152. package/build/services/pipe/functions/symbol.js +33 -0
  153. package/build/services/pipe/functions/unary.d.ts +7 -0
  154. package/build/services/pipe/functions/unary.js +18 -0
  155. package/build/services/pipe/index.d.ts +48 -0
  156. package/build/services/pipe/index.js +242 -0
  157. package/build/services/quorum/index.d.ts +90 -0
  158. package/build/services/quorum/index.js +263 -0
  159. package/build/services/reporter/index.d.ts +50 -0
  160. package/build/services/reporter/index.js +348 -0
  161. package/build/services/router/config/index.d.ts +11 -0
  162. package/build/services/router/config/index.js +36 -0
  163. package/build/services/router/consumption/index.d.ts +34 -0
  164. package/build/services/router/consumption/index.js +395 -0
  165. package/build/services/router/error-handling/index.d.ts +8 -0
  166. package/build/services/router/error-handling/index.js +98 -0
  167. package/build/services/router/index.d.ts +57 -0
  168. package/build/services/router/index.js +121 -0
  169. package/build/services/router/lifecycle/index.d.ts +27 -0
  170. package/build/services/router/lifecycle/index.js +80 -0
  171. package/build/services/router/telemetry/index.d.ts +11 -0
  172. package/build/services/router/telemetry/index.js +32 -0
  173. package/build/services/router/throttling/index.d.ts +23 -0
  174. package/build/services/router/throttling/index.js +76 -0
  175. package/build/services/search/factory.d.ts +7 -0
  176. package/build/services/search/factory.js +24 -0
  177. package/build/services/search/index.d.ts +23 -0
  178. package/build/services/search/index.js +10 -0
  179. package/build/services/search/providers/postgres/postgres.d.ts +25 -0
  180. package/build/services/search/providers/postgres/postgres.js +149 -0
  181. package/build/services/search/providers/redis/ioredis.d.ts +19 -0
  182. package/build/services/search/providers/redis/ioredis.js +121 -0
  183. package/build/services/search/providers/redis/redis.d.ts +19 -0
  184. package/build/services/search/providers/redis/redis.js +134 -0
  185. package/build/services/serializer/index.d.ts +42 -0
  186. package/build/services/serializer/index.js +282 -0
  187. package/build/services/store/cache.d.ts +67 -0
  188. package/build/services/store/cache.js +128 -0
  189. package/build/services/store/factory.d.ts +8 -0
  190. package/build/services/store/factory.js +24 -0
  191. package/build/services/store/index.d.ts +89 -0
  192. package/build/services/store/index.js +9 -0
  193. package/build/services/store/providers/postgres/kvsql.d.ts +168 -0
  194. package/build/services/store/providers/postgres/kvsql.js +198 -0
  195. package/build/services/store/providers/postgres/kvtables.d.ts +20 -0
  196. package/build/services/store/providers/postgres/kvtables.js +441 -0
  197. package/build/services/store/providers/postgres/kvtransaction.d.ts +36 -0
  198. package/build/services/store/providers/postgres/kvtransaction.js +248 -0
  199. package/build/services/store/providers/postgres/kvtypes/hash.d.ts +60 -0
  200. package/build/services/store/providers/postgres/kvtypes/hash.js +1287 -0
  201. package/build/services/store/providers/postgres/kvtypes/list.d.ts +33 -0
  202. package/build/services/store/providers/postgres/kvtypes/list.js +194 -0
  203. package/build/services/store/providers/postgres/kvtypes/string.d.ts +20 -0
  204. package/build/services/store/providers/postgres/kvtypes/string.js +115 -0
  205. package/build/services/store/providers/postgres/kvtypes/zset.d.ts +41 -0
  206. package/build/services/store/providers/postgres/kvtypes/zset.js +214 -0
  207. package/build/services/store/providers/postgres/postgres.d.ts +178 -0
  208. package/build/services/store/providers/postgres/postgres.js +1244 -0
  209. package/build/services/store/providers/redis/_base.d.ts +137 -0
  210. package/build/services/store/providers/redis/_base.js +980 -0
  211. package/build/services/store/providers/redis/ioredis.d.ts +20 -0
  212. package/build/services/store/providers/redis/ioredis.js +180 -0
  213. package/build/services/store/providers/redis/redis.d.ts +18 -0
  214. package/build/services/store/providers/redis/redis.js +199 -0
  215. package/build/services/store/providers/store-initializable.d.ts +5 -0
  216. package/build/services/store/providers/store-initializable.js +2 -0
  217. package/build/services/stream/factory.d.ts +8 -0
  218. package/build/services/stream/factory.js +37 -0
  219. package/build/services/stream/index.d.ts +69 -0
  220. package/build/services/stream/index.js +11 -0
  221. package/build/services/stream/providers/nats/nats.d.ts +60 -0
  222. package/build/services/stream/providers/nats/nats.js +225 -0
  223. package/build/services/stream/providers/postgres/kvtables.d.ts +3 -0
  224. package/build/services/stream/providers/postgres/kvtables.js +146 -0
  225. package/build/services/stream/providers/postgres/postgres.d.ts +107 -0
  226. package/build/services/stream/providers/postgres/postgres.js +519 -0
  227. package/build/services/stream/providers/redis/ioredis.d.ts +61 -0
  228. package/build/services/stream/providers/redis/ioredis.js +272 -0
  229. package/build/services/stream/providers/redis/redis.d.ts +61 -0
  230. package/build/services/stream/providers/redis/redis.js +305 -0
  231. package/build/services/stream/providers/stream-initializable.d.ts +4 -0
  232. package/build/services/stream/providers/stream-initializable.js +2 -0
  233. package/build/services/sub/factory.d.ts +7 -0
  234. package/build/services/sub/factory.js +29 -0
  235. package/build/services/sub/index.d.ts +22 -0
  236. package/build/services/sub/index.js +10 -0
  237. package/build/services/sub/providers/nats/nats.d.ts +19 -0
  238. package/build/services/sub/providers/nats/nats.js +105 -0
  239. package/build/services/sub/providers/postgres/postgres.d.ts +19 -0
  240. package/build/services/sub/providers/postgres/postgres.js +92 -0
  241. package/build/services/sub/providers/redis/ioredis.d.ts +17 -0
  242. package/build/services/sub/providers/redis/ioredis.js +81 -0
  243. package/build/services/sub/providers/redis/redis.d.ts +17 -0
  244. package/build/services/sub/providers/redis/redis.js +72 -0
  245. package/build/services/task/index.d.ts +48 -0
  246. package/build/services/task/index.js +253 -0
  247. package/build/services/telemetry/index.d.ts +52 -0
  248. package/build/services/telemetry/index.js +306 -0
  249. package/build/services/worker/index.d.ts +77 -0
  250. package/build/services/worker/index.js +197 -0
  251. package/package.json +1 -1
  252. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  253. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  254. package/typedoc.json +0 -47
  255. package/types/activity.ts +0 -268
  256. package/types/app.ts +0 -20
  257. package/types/async.ts +0 -6
  258. package/types/cache.ts +0 -1
  259. package/types/collator.ts +0 -9
  260. package/types/error.ts +0 -56
  261. package/types/exporter.ts +0 -102
  262. package/types/hook.ts +0 -44
  263. package/types/hotmesh.ts +0 -314
  264. package/types/index.ts +0 -306
  265. package/types/job.ts +0 -233
  266. package/types/logger.ts +0 -8
  267. package/types/manifest.ts +0 -70
  268. package/types/map.ts +0 -5
  269. package/types/memflow.ts +0 -645
  270. package/types/meshcall.ts +0 -235
  271. package/types/meshdata.ts +0 -278
  272. package/types/ms.d.ts +0 -7
  273. package/types/nats.ts +0 -270
  274. package/types/pipe.ts +0 -90
  275. package/types/postgres.ts +0 -114
  276. package/types/provider.ts +0 -161
  277. package/types/quorum.ts +0 -167
  278. package/types/redis.ts +0 -404
  279. package/types/serializer.ts +0 -40
  280. package/types/stats.ts +0 -117
  281. package/types/stream.ts +0 -231
  282. package/types/task.ts +0 -7
  283. package/types/telemetry.ts +0 -16
  284. package/types/transition.ts +0 -20
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConditionalHandler = void 0;
4
+ class ConditionalHandler {
5
+ ternary(condition, valueIfTrue, valueIfFalse) {
6
+ return condition ? valueIfTrue : valueIfFalse;
7
+ }
8
+ equality(value1, value2) {
9
+ return value1 == value2;
10
+ }
11
+ strict_equality(value1, value2) {
12
+ return value1 === value2;
13
+ }
14
+ inequality(value1, value2) {
15
+ return value1 != value2;
16
+ }
17
+ strict_inequality(value1, value2) {
18
+ return value1 !== value2;
19
+ }
20
+ greater_than(value1, value2) {
21
+ return value1 > value2;
22
+ }
23
+ less_than(value1, value2) {
24
+ return value1 < value2;
25
+ }
26
+ greater_than_or_equal(value1, value2) {
27
+ return value1 >= value2;
28
+ }
29
+ less_than_or_equal(value1, value2) {
30
+ return value1 <= value2;
31
+ }
32
+ nullish(value1, value2) {
33
+ return value1 ?? value2;
34
+ }
35
+ }
36
+ exports.ConditionalHandler = ConditionalHandler;
@@ -0,0 +1,12 @@
1
+ import { ILogger } from '../../../types/logger';
2
+ /**
3
+ * Safely calculates the delay in seconds until the next execution of a cron job.
4
+ * Fails silently and returns -1 if the cron expression is invalid.
5
+ * @param cronExpression The cron expression to parse (e.g. '0 0 * * *').
6
+ * @returns The delay in seconds until the next cron job execution (minimum 5 seconds).
7
+ */
8
+ declare class CronHandler {
9
+ static logger: ILogger;
10
+ nextDelay(cronExpression: string): number;
11
+ }
12
+ export { CronHandler };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CronHandler = void 0;
4
+ const cron_parser_1 = require("cron-parser");
5
+ const enums_1 = require("../../../modules/enums");
6
+ const utils_1 = require("../../../modules/utils");
7
+ const logger_1 = require("../../logger");
8
+ /**
9
+ * Safely calculates the delay in seconds until the next execution of a cron job.
10
+ * Fails silently and returns -1 if the cron expression is invalid.
11
+ * @param cronExpression The cron expression to parse (e.g. '0 0 * * *').
12
+ * @returns The delay in seconds until the next cron job execution (minimum 5 seconds).
13
+ */
14
+ class CronHandler {
15
+ nextDelay(cronExpression) {
16
+ try {
17
+ if (!(0, utils_1.isValidCron)(cronExpression)) {
18
+ return -1;
19
+ }
20
+ const interval = (0, cron_parser_1.parseExpression)(cronExpression, { utc: true });
21
+ const nextDate = interval.next().toDate();
22
+ const now = new Date();
23
+ const delay = (nextDate.getTime() - now.getTime()) / 1000;
24
+ if (delay <= 0) {
25
+ return -1;
26
+ }
27
+ if (delay < enums_1.HMSH_FIDELITY_SECONDS) {
28
+ return enums_1.HMSH_FIDELITY_SECONDS;
29
+ }
30
+ const iDelay = Math.round(delay);
31
+ return iDelay;
32
+ }
33
+ catch (error) {
34
+ CronHandler.logger.error('Error calculating next cron job execution delay:', { error });
35
+ return -1;
36
+ }
37
+ }
38
+ }
39
+ exports.CronHandler = CronHandler;
40
+ CronHandler.logger = new logger_1.LoggerService('hotmesh', 'meshos');
@@ -0,0 +1,58 @@
1
+ type DateInput = Date | string | number;
2
+ declare class DateHandler {
3
+ /**
4
+ * It is so common in mapping operations to use a string (ISO) date as input. This helper
5
+ * method allows for a more-concise mapping ruleset by avoiding date initialization boilerplate
6
+ * code and instead handles the ISO, Milliseconds, and ECMAScript Date input types.
7
+ * @param input
8
+ * @returns
9
+ */
10
+ static getDateInstance(input: DateInput): Date;
11
+ fromISOString(isoString: string): Date;
12
+ now(): number;
13
+ parse(dateString: string): number;
14
+ getDate(date: DateInput): number;
15
+ getDay(date: DateInput): number;
16
+ getFullYear(date: DateInput): number;
17
+ getHours(date: DateInput): number;
18
+ getMilliseconds(date: DateInput): number;
19
+ getMinutes(date: DateInput): number;
20
+ getMonth(date: DateInput): number;
21
+ getSeconds(date: DateInput): number;
22
+ getTime(date: DateInput): number;
23
+ getTimezoneOffset(date: DateInput): number;
24
+ getUTCDate(date: DateInput): number;
25
+ getUTCDay(date: DateInput): number;
26
+ getUTCFullYear(date: DateInput): number;
27
+ getUTCHours(date: DateInput): number;
28
+ getUTCMilliseconds(date: DateInput): number;
29
+ getUTCMinutes(date: DateInput): number;
30
+ getUTCMonth(date: DateInput): number;
31
+ getUTCSeconds(date: DateInput): number;
32
+ setMilliseconds(date: DateInput, ms: number): number;
33
+ setMinutes(date: DateInput, minutes: number, seconds?: number, ms?: number): number;
34
+ setMonth(date: DateInput, month: number, day?: number): number;
35
+ setSeconds(date: DateInput, seconds: number, ms?: number): number;
36
+ setTime(date: DateInput, time: number): number;
37
+ setUTCDate(date: DateInput, day: number): number;
38
+ setUTCFullYear(date: DateInput, year: number, month?: number, day?: number): number;
39
+ setUTCHours(date: DateInput, hours: number, minutes?: number, seconds?: number, ms?: number): number;
40
+ setUTCMilliseconds(date: DateInput, ms: number): number;
41
+ setUTCMinutes(date: DateInput, minutes: number, seconds?: number, ms?: number): number;
42
+ setUTCMonth(date: DateInput, month: number, day?: number): number;
43
+ setUTCSeconds(date: DateInput, seconds: number, ms?: number): number;
44
+ setDate(date: DateInput, day: number): number;
45
+ setFullYear(date: DateInput, year: number, month?: number, day?: number): number;
46
+ setHours(date: DateInput, hours: number, minutes?: number, seconds?: number, ms?: number): number;
47
+ toDateString(date: DateInput): string;
48
+ toISOString(date: DateInput): string;
49
+ toISOXString(date?: DateInput): string;
50
+ toJSON(date: DateInput): string;
51
+ toLocaleDateString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
52
+ toLocaleString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
53
+ toLocaleTimeString(date: DateInput, locales?: string | string[], options?: Intl.DateTimeFormatOptions): string;
54
+ toString(date: DateInput): string;
55
+ UTC(year: number, month: number, date?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): number;
56
+ valueOf(date: DateInput): number;
57
+ }
58
+ export { DateHandler };
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DateHandler = void 0;
4
+ const utils_1 = require("../../../modules/utils");
5
+ class DateHandler {
6
+ /**
7
+ * It is so common in mapping operations to use a string (ISO) date as input. This helper
8
+ * method allows for a more-concise mapping ruleset by avoiding date initialization boilerplate
9
+ * code and instead handles the ISO, Milliseconds, and ECMAScript Date input types.
10
+ * @param input
11
+ * @returns
12
+ */
13
+ static getDateInstance(input) {
14
+ const ISO_REGEX = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?Z)?$/;
15
+ if (typeof input === 'string') {
16
+ if (ISO_REGEX.test(input)) {
17
+ return new Date(input);
18
+ }
19
+ const milliseconds = parseInt(input, 10);
20
+ if (!isNaN(milliseconds)) {
21
+ return new Date(milliseconds);
22
+ }
23
+ }
24
+ else if (input instanceof Date) {
25
+ return input;
26
+ }
27
+ else if (typeof input === 'number') {
28
+ return new Date(input);
29
+ }
30
+ throw new Error('Invalid date format');
31
+ }
32
+ fromISOString(isoString) {
33
+ return new Date(isoString);
34
+ }
35
+ now() {
36
+ return Date.now();
37
+ }
38
+ parse(dateString) {
39
+ return Date.parse(dateString);
40
+ }
41
+ getDate(date) {
42
+ return DateHandler.getDateInstance(date).getDate();
43
+ }
44
+ getDay(date) {
45
+ return DateHandler.getDateInstance(date).getDay();
46
+ }
47
+ getFullYear(date) {
48
+ return DateHandler.getDateInstance(date).getFullYear();
49
+ }
50
+ getHours(date) {
51
+ return DateHandler.getDateInstance(date).getHours();
52
+ }
53
+ getMilliseconds(date) {
54
+ return DateHandler.getDateInstance(date).getMilliseconds();
55
+ }
56
+ getMinutes(date) {
57
+ return DateHandler.getDateInstance(date).getMinutes();
58
+ }
59
+ getMonth(date) {
60
+ return DateHandler.getDateInstance(date).getMonth();
61
+ }
62
+ getSeconds(date) {
63
+ return DateHandler.getDateInstance(date).getSeconds();
64
+ }
65
+ getTime(date) {
66
+ return DateHandler.getDateInstance(date).getTime();
67
+ }
68
+ getTimezoneOffset(date) {
69
+ return DateHandler.getDateInstance(date).getTimezoneOffset();
70
+ }
71
+ getUTCDate(date) {
72
+ return DateHandler.getDateInstance(date).getUTCDate();
73
+ }
74
+ getUTCDay(date) {
75
+ return DateHandler.getDateInstance(date).getUTCDay();
76
+ }
77
+ getUTCFullYear(date) {
78
+ return DateHandler.getDateInstance(date).getUTCFullYear();
79
+ }
80
+ getUTCHours(date) {
81
+ return DateHandler.getDateInstance(date).getUTCHours();
82
+ }
83
+ getUTCMilliseconds(date) {
84
+ return DateHandler.getDateInstance(date).getUTCMilliseconds();
85
+ }
86
+ getUTCMinutes(date) {
87
+ return DateHandler.getDateInstance(date).getUTCMinutes();
88
+ }
89
+ getUTCMonth(date) {
90
+ return DateHandler.getDateInstance(date).getUTCMonth();
91
+ }
92
+ getUTCSeconds(date) {
93
+ return DateHandler.getDateInstance(date).getUTCSeconds();
94
+ }
95
+ setMilliseconds(date, ms) {
96
+ return DateHandler.getDateInstance(date).setMilliseconds(ms);
97
+ }
98
+ setMinutes(date, minutes, seconds, ms) {
99
+ return DateHandler.getDateInstance(date).setMinutes(minutes, seconds, ms);
100
+ }
101
+ setMonth(date, month, day) {
102
+ return DateHandler.getDateInstance(date).setMonth(month, day);
103
+ }
104
+ setSeconds(date, seconds, ms) {
105
+ return DateHandler.getDateInstance(date).setSeconds(seconds, ms);
106
+ }
107
+ setTime(date, time) {
108
+ return DateHandler.getDateInstance(date).setTime(time);
109
+ }
110
+ setUTCDate(date, day) {
111
+ return DateHandler.getDateInstance(date).setUTCDate(day);
112
+ }
113
+ setUTCFullYear(date, year, month, day) {
114
+ return DateHandler.getDateInstance(date).setUTCFullYear(year, month, day);
115
+ }
116
+ setUTCHours(date, hours, minutes, seconds, ms) {
117
+ return DateHandler.getDateInstance(date).setUTCHours(hours, minutes, seconds, ms);
118
+ }
119
+ setUTCMilliseconds(date, ms) {
120
+ return DateHandler.getDateInstance(date).setUTCMilliseconds(ms);
121
+ }
122
+ setUTCMinutes(date, minutes, seconds, ms) {
123
+ return DateHandler.getDateInstance(date).setUTCMinutes(minutes, seconds, ms);
124
+ }
125
+ setUTCMonth(date, month, day) {
126
+ return DateHandler.getDateInstance(date).setUTCMonth(month, day);
127
+ }
128
+ setUTCSeconds(date, seconds, ms) {
129
+ return DateHandler.getDateInstance(date).setUTCSeconds(seconds, ms);
130
+ }
131
+ setDate(date, day) {
132
+ return DateHandler.getDateInstance(date).setDate(day);
133
+ }
134
+ setFullYear(date, year, month, day) {
135
+ return DateHandler.getDateInstance(date).setFullYear(year, month, day);
136
+ }
137
+ setHours(date, hours, minutes, seconds, ms) {
138
+ return DateHandler.getDateInstance(date).setHours(hours, minutes, seconds, ms);
139
+ }
140
+ toDateString(date) {
141
+ return DateHandler.getDateInstance(date).toDateString();
142
+ }
143
+ toISOString(date) {
144
+ return DateHandler.getDateInstance(date).toISOString();
145
+ }
146
+ toISOXString(date) {
147
+ return (0, utils_1.formatISODate)(date ? DateHandler.getDateInstance(date) : new Date());
148
+ }
149
+ toJSON(date) {
150
+ return DateHandler.getDateInstance(date).toJSON();
151
+ }
152
+ toLocaleDateString(date, locales, options) {
153
+ return DateHandler.getDateInstance(date).toLocaleDateString(locales, options);
154
+ }
155
+ toLocaleString(date, locales, options) {
156
+ return DateHandler.getDateInstance(date).toLocaleString(locales, options);
157
+ }
158
+ toLocaleTimeString(date, locales, options) {
159
+ return DateHandler.getDateInstance(date).toLocaleTimeString(locales, options);
160
+ }
161
+ toString(date) {
162
+ return DateHandler.getDateInstance(date).toString();
163
+ }
164
+ UTC(year, month, date, hours, minutes, seconds, ms) {
165
+ return Date.UTC(year, month, date, hours, minutes, seconds, ms);
166
+ }
167
+ valueOf(date) {
168
+ return DateHandler.getDateInstance(date).valueOf();
169
+ }
170
+ }
171
+ exports.DateHandler = DateHandler;
@@ -0,0 +1,29 @@
1
+ import { ArrayHandler } from './array';
2
+ import { BitwiseHandler } from './bitwise';
3
+ import { ConditionalHandler } from './conditional';
4
+ import { CronHandler } from './cron';
5
+ import { DateHandler } from './date';
6
+ import { JsonHandler } from './json';
7
+ import { LogicalHandler } from './logical';
8
+ import { MathHandler } from './math';
9
+ import { NumberHandler } from './number';
10
+ import { ObjectHandler } from './object';
11
+ import { StringHandler } from './string';
12
+ import { SymbolHandler } from './symbol';
13
+ import { UnaryHandler } from './unary';
14
+ declare const _default: {
15
+ array: ArrayHandler;
16
+ bitwise: BitwiseHandler;
17
+ conditional: ConditionalHandler;
18
+ cron: CronHandler;
19
+ date: DateHandler;
20
+ json: JsonHandler;
21
+ logical: LogicalHandler;
22
+ math: MathHandler;
23
+ number: NumberHandler;
24
+ object: ObjectHandler;
25
+ string: StringHandler;
26
+ symbol: SymbolHandler;
27
+ unary: UnaryHandler;
28
+ };
29
+ export default _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const array_1 = require("./array");
4
+ const bitwise_1 = require("./bitwise");
5
+ const conditional_1 = require("./conditional");
6
+ const cron_1 = require("./cron");
7
+ const date_1 = require("./date");
8
+ const json_1 = require("./json");
9
+ const logical_1 = require("./logical");
10
+ const math_1 = require("./math");
11
+ const number_1 = require("./number");
12
+ const object_1 = require("./object");
13
+ const string_1 = require("./string");
14
+ const symbol_1 = require("./symbol");
15
+ const unary_1 = require("./unary");
16
+ exports.default = {
17
+ array: new array_1.ArrayHandler(),
18
+ bitwise: new bitwise_1.BitwiseHandler(),
19
+ conditional: new conditional_1.ConditionalHandler(),
20
+ cron: new cron_1.CronHandler(),
21
+ date: new date_1.DateHandler(),
22
+ json: new json_1.JsonHandler(),
23
+ logical: new logical_1.LogicalHandler(),
24
+ math: new math_1.MathHandler(),
25
+ number: new number_1.NumberHandler(),
26
+ object: new object_1.ObjectHandler(),
27
+ string: new string_1.StringHandler(),
28
+ symbol: new symbol_1.SymbolHandler(),
29
+ unary: new unary_1.UnaryHandler(),
30
+ };
@@ -0,0 +1,5 @@
1
+ declare class JsonHandler {
2
+ stringify(value: any, replacer?: (this: any, key: string, value: any) => any | (number | string)[] | null, space?: string | number): string;
3
+ parse(text: string, reviver?: (this: any, key: string, value: any) => any): any;
4
+ }
5
+ export { JsonHandler };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonHandler = void 0;
4
+ class JsonHandler {
5
+ stringify(value, replacer, space) {
6
+ return JSON.stringify(value, replacer, space);
7
+ }
8
+ parse(text, reviver) {
9
+ return JSON.parse(text, reviver);
10
+ }
11
+ }
12
+ exports.JsonHandler = JsonHandler;
@@ -0,0 +1,5 @@
1
+ declare class LogicalHandler {
2
+ and(firstValue: boolean, secondValue: boolean): boolean;
3
+ or(firstValue: boolean, secondValue: boolean): boolean;
4
+ }
5
+ export { LogicalHandler };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogicalHandler = void 0;
4
+ class LogicalHandler {
5
+ and(firstValue, secondValue) {
6
+ return firstValue && secondValue;
7
+ }
8
+ or(firstValue, secondValue) {
9
+ return firstValue || secondValue;
10
+ }
11
+ }
12
+ exports.LogicalHandler = LogicalHandler;
@@ -0,0 +1,42 @@
1
+ declare class MathHandler {
2
+ add(...operands: (number | number[])[]): number;
3
+ subtract(...operands: (number | number[])[]): number;
4
+ multiply(...operands: (number | number[])[]): number;
5
+ divide(...operands: (number | number[])[]): number;
6
+ abs(x: number): number;
7
+ acos(x: number): number;
8
+ acosh(x: number): number;
9
+ asin(x: number): number;
10
+ asinh(x: number): number;
11
+ atan(x: number): number;
12
+ atan2(y: number, x: number): number;
13
+ atanh(x: number): number;
14
+ cbrt(x: number): number;
15
+ ceil(x: number): number;
16
+ clz32(x: number): number;
17
+ cos(x: number): number;
18
+ cosh(x: number): number;
19
+ exp(x: number): number;
20
+ expm1(x: number): number;
21
+ floor(x: number): number;
22
+ fround(x: number): number;
23
+ hypot(...values: number[]): number;
24
+ imul(x: number, y: number): number;
25
+ log(x: number): number;
26
+ log10(x: number): number;
27
+ log1p(x: number): number;
28
+ log2(x: number): number;
29
+ max(...values: number[]): number;
30
+ min(...values: number[]): number;
31
+ pow(x: number, y: number): number;
32
+ random(): number;
33
+ round(x: number): number;
34
+ sign(x: number): number;
35
+ sin(x: number): number;
36
+ sinh(x: number): number;
37
+ sqrt(x: number): number;
38
+ tan(x: number): number;
39
+ tanh(x: number): number;
40
+ trunc(x: number): number;
41
+ }
42
+ export { MathHandler };
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MathHandler = void 0;
4
+ class MathHandler {
5
+ add(...operands) {
6
+ // @ts-ignore
7
+ return operands.reduce((a, b) => {
8
+ if (Array.isArray(b)) {
9
+ return a + this.add(...b);
10
+ }
11
+ else {
12
+ return a + b;
13
+ }
14
+ }, 0);
15
+ }
16
+ subtract(...operands) {
17
+ if (operands.length === 0) {
18
+ throw new Error('At least one operand is required.');
19
+ }
20
+ let flatOperands = [];
21
+ operands.forEach((op) => {
22
+ if (Array.isArray(op)) {
23
+ flatOperands = [...flatOperands, ...op];
24
+ }
25
+ else {
26
+ flatOperands.push(op);
27
+ }
28
+ });
29
+ if (flatOperands.length === 0) {
30
+ throw new Error('At least one operand is required after flattening.');
31
+ }
32
+ const result = flatOperands.reduce((a, b, i) => {
33
+ return i === 0 ? a : a - b;
34
+ });
35
+ return result;
36
+ }
37
+ multiply(...operands) {
38
+ if (operands.length === 0) {
39
+ throw new Error('At least one operand is required.');
40
+ }
41
+ // @ts-ignore
42
+ return operands.reduce((a, b) => {
43
+ if (Array.isArray(b)) {
44
+ return a * this.multiply(...b);
45
+ }
46
+ else {
47
+ return a * b;
48
+ }
49
+ }, 1);
50
+ }
51
+ divide(...operands) {
52
+ if (operands.length === 0) {
53
+ throw new Error('At least one operand is required.');
54
+ }
55
+ let flatOperands = [];
56
+ operands.forEach((op) => {
57
+ if (Array.isArray(op)) {
58
+ flatOperands = [...flatOperands, ...op];
59
+ }
60
+ else {
61
+ flatOperands.push(op);
62
+ }
63
+ });
64
+ if (flatOperands.length === 0) {
65
+ throw new Error('At least one operand is required after flattening.');
66
+ }
67
+ const result = flatOperands.reduce((a, b, i) => {
68
+ if (b === 0) {
69
+ return NaN;
70
+ }
71
+ return i === 0 ? a : a / b;
72
+ });
73
+ if (isNaN(result)) {
74
+ return NaN;
75
+ }
76
+ return result;
77
+ }
78
+ abs(x) {
79
+ return Math.abs(x);
80
+ }
81
+ acos(x) {
82
+ return Math.acos(x);
83
+ }
84
+ acosh(x) {
85
+ return Math.acosh(x);
86
+ }
87
+ asin(x) {
88
+ return Math.asin(x);
89
+ }
90
+ asinh(x) {
91
+ return Math.asinh(x);
92
+ }
93
+ atan(x) {
94
+ return Math.atan(x);
95
+ }
96
+ atan2(y, x) {
97
+ return Math.atan2(y, x);
98
+ }
99
+ atanh(x) {
100
+ return Math.atanh(x);
101
+ }
102
+ cbrt(x) {
103
+ return Math.cbrt(x);
104
+ }
105
+ ceil(x) {
106
+ return Math.ceil(x);
107
+ }
108
+ clz32(x) {
109
+ return Math.clz32(x);
110
+ }
111
+ cos(x) {
112
+ return Math.cos(x);
113
+ }
114
+ cosh(x) {
115
+ return Math.cosh(x);
116
+ }
117
+ exp(x) {
118
+ return Math.exp(x);
119
+ }
120
+ expm1(x) {
121
+ return Math.expm1(x);
122
+ }
123
+ floor(x) {
124
+ return Math.floor(x);
125
+ }
126
+ fround(x) {
127
+ return Math.fround(x);
128
+ }
129
+ hypot(...values) {
130
+ return Math.hypot(...values);
131
+ }
132
+ imul(x, y) {
133
+ return Math.imul(x, y);
134
+ }
135
+ log(x) {
136
+ return Math.log(x);
137
+ }
138
+ log10(x) {
139
+ return Math.log10(x);
140
+ }
141
+ log1p(x) {
142
+ return Math.log1p(x);
143
+ }
144
+ log2(x) {
145
+ return Math.log2(x);
146
+ }
147
+ max(...values) {
148
+ return Math.max(...values);
149
+ }
150
+ min(...values) {
151
+ return Math.min(...values);
152
+ }
153
+ pow(x, y) {
154
+ return Math.pow(x, y);
155
+ }
156
+ random() {
157
+ return Math.random();
158
+ }
159
+ round(x) {
160
+ return Math.round(x);
161
+ }
162
+ sign(x) {
163
+ return Math.sign(x);
164
+ }
165
+ sin(x) {
166
+ return Math.sin(x);
167
+ }
168
+ sinh(x) {
169
+ return Math.sinh(x);
170
+ }
171
+ sqrt(x) {
172
+ return Math.sqrt(x);
173
+ }
174
+ tan(x) {
175
+ return Math.tan(x);
176
+ }
177
+ tanh(x) {
178
+ return Math.tanh(x);
179
+ }
180
+ trunc(x) {
181
+ return Math.trunc(x);
182
+ }
183
+ }
184
+ exports.MathHandler = MathHandler;
@@ -0,0 +1,21 @@
1
+ declare class NumberHandler {
2
+ isFinite(input: number): boolean;
3
+ isEven(input: number): boolean;
4
+ isOdd(input: number): boolean;
5
+ isInteger(input: number): boolean;
6
+ isNaN(input: number): boolean;
7
+ parseFloat(input: string): number;
8
+ parseInt(input: string, radix?: number): number;
9
+ toFixed(input: number, digits?: number): string;
10
+ toExponential(input: number, fractionalDigits?: number): string;
11
+ toPrecision(input: number, precision?: number): string;
12
+ gte(input: number, compareValue: number): boolean;
13
+ lte(input: number, compareValue: number): boolean;
14
+ gt(input: number, compareValue: number): boolean;
15
+ lt(input: number, compareValue: number): boolean;
16
+ max(...values: number[]): number;
17
+ min(...values: number[]): number;
18
+ pow(base: number, exponent: number): number;
19
+ round(input: number): number;
20
+ }
21
+ export { NumberHandler };