@hahnpro/flow-sdk 2025.2.0-beta.1 → 2025.2.0-beta.3

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 (79) hide show
  1. package/package.json +4 -4
  2. package/src/{index.ts → index.d.ts} +0 -3
  3. package/src/index.js +18 -0
  4. package/src/lib/ContextManager.d.ts +40 -0
  5. package/src/lib/ContextManager.js +105 -0
  6. package/src/lib/FlowApplication.d.ts +85 -0
  7. package/src/lib/FlowApplication.js +528 -0
  8. package/src/lib/FlowElement.d.ts +67 -0
  9. package/src/lib/FlowElement.js +178 -0
  10. package/src/lib/FlowEvent.d.ts +25 -0
  11. package/src/lib/FlowEvent.js +72 -0
  12. package/src/lib/FlowLogger.d.ts +44 -0
  13. package/src/lib/FlowLogger.js +110 -0
  14. package/src/lib/FlowModule.d.ts +7 -0
  15. package/src/lib/FlowModule.js +14 -0
  16. package/src/lib/RpcClient.d.ts +13 -0
  17. package/src/lib/RpcClient.js +88 -0
  18. package/src/lib/TestModule.d.ts +2 -0
  19. package/src/lib/TestModule.js +27 -0
  20. package/src/lib/amqp.d.ts +14 -0
  21. package/src/lib/amqp.js +12 -0
  22. package/src/lib/extra-validators.d.ts +1 -0
  23. package/src/lib/extra-validators.js +53 -0
  24. package/src/lib/flow.interface.d.ts +48 -0
  25. package/src/lib/flow.interface.js +9 -0
  26. package/src/lib/{index.ts → index.d.ts} +0 -3
  27. package/src/lib/index.js +18 -0
  28. package/src/lib/nats.d.ts +12 -0
  29. package/src/lib/nats.js +115 -0
  30. package/src/lib/unit-decorators.d.ts +39 -0
  31. package/src/lib/unit-decorators.js +156 -0
  32. package/src/lib/unit-utils.d.ts +8 -0
  33. package/src/lib/unit-utils.js +144 -0
  34. package/src/lib/units.d.ts +31 -0
  35. package/src/lib/units.js +572 -0
  36. package/src/lib/utils.d.ts +51 -0
  37. package/src/lib/utils.js +178 -0
  38. package/jest.config.ts +0 -10
  39. package/project.json +0 -41
  40. package/src/lib/ContextManager.ts +0 -111
  41. package/src/lib/FlowApplication.ts +0 -659
  42. package/src/lib/FlowElement.ts +0 -220
  43. package/src/lib/FlowEvent.ts +0 -73
  44. package/src/lib/FlowLogger.ts +0 -131
  45. package/src/lib/FlowModule.ts +0 -18
  46. package/src/lib/RpcClient.ts +0 -99
  47. package/src/lib/TestModule.ts +0 -14
  48. package/src/lib/__pycache__/rpc_server.cpython-310.pyc +0 -0
  49. package/src/lib/amqp.ts +0 -32
  50. package/src/lib/extra-validators.ts +0 -62
  51. package/src/lib/flow.interface.ts +0 -56
  52. package/src/lib/nats.ts +0 -140
  53. package/src/lib/unit-decorators.ts +0 -156
  54. package/src/lib/unit-utils.ts +0 -163
  55. package/src/lib/units.ts +0 -587
  56. package/src/lib/utils.ts +0 -176
  57. package/test/context-manager-purpose.spec.ts +0 -248
  58. package/test/context-manager.spec.ts +0 -55
  59. package/test/context.spec.ts +0 -180
  60. package/test/event.spec.ts +0 -155
  61. package/test/extra-validators.spec.ts +0 -84
  62. package/test/flow-logger.spec.ts +0 -104
  63. package/test/flow.spec.ts +0 -508
  64. package/test/input-stream.decorator.spec.ts +0 -379
  65. package/test/long-rpc.test.py +0 -14
  66. package/test/long-running-rpc.spec.ts +0 -60
  67. package/test/message.spec.ts +0 -57
  68. package/test/mocks/logger.mock.ts +0 -7
  69. package/test/mocks/nats-connection.mock.ts +0 -135
  70. package/test/mocks/nats-prepare.reals-nats.ts +0 -15
  71. package/test/rpc.spec.ts +0 -198
  72. package/test/rpc.test.py +0 -45
  73. package/test/rx.spec.ts +0 -92
  74. package/test/unit-decorator.spec.ts +0 -57
  75. package/test/utils.spec.ts +0 -210
  76. package/test/validation.spec.ts +0 -174
  77. package/tsconfig.json +0 -13
  78. package/tsconfig.lib.json +0 -22
  79. package/tsconfig.spec.json +0 -8
@@ -0,0 +1,572 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.units = exports.dimensionToUnitMap = void 0;
4
+ exports.dimensionToUnitMap = {
5
+ // SI dimensions
6
+ T: 'time',
7
+ L: 'length',
8
+ M: 'mass',
9
+ I: 'electricCurrent',
10
+ Θ: 'thermodynamicTemperature',
11
+ N: 'amountOfSubstance',
12
+ J: 'luminousIntensity',
13
+ // pseudo dimensions
14
+ U: 'voltage',
15
+ F: 'force',
16
+ E: 'energy',
17
+ W: 'power',
18
+ P: 'pressure',
19
+ A: 'angle',
20
+ V: 'volume',
21
+ f: 'frequency',
22
+ };
23
+ exports.units = {
24
+ time: {
25
+ units: [
26
+ {
27
+ unit: 's',
28
+ conversionFactor: 1,
29
+ SIPrefixes: false,
30
+ },
31
+ {
32
+ unit: 'min',
33
+ conversionFactor: 60,
34
+ SIPrefixes: false,
35
+ },
36
+ {
37
+ unit: 'h',
38
+ conversionFactor: 60 * 60,
39
+ SIPrefixes: false,
40
+ },
41
+ {
42
+ unit: 'd',
43
+ conversionFactor: 60 * 60 * 24,
44
+ SIPrefixes: false,
45
+ },
46
+ {
47
+ unit: 'w',
48
+ conversionFactor: 60 * 60 * 24 * 7,
49
+ SIPrefixes: false,
50
+ },
51
+ {
52
+ unit: 'j',
53
+ conversionFactor: 60 * 60 * 24 * 365,
54
+ SIPrefixes: false,
55
+ },
56
+ ],
57
+ baseUnit: 's',
58
+ dimensions: ['T'],
59
+ },
60
+ length: {
61
+ units: [
62
+ {
63
+ unit: 'm',
64
+ conversionFactor: 1,
65
+ SIPrefixes: true,
66
+ },
67
+ {
68
+ unit: 'in',
69
+ conversionFactor: 1 / 39.3701,
70
+ SIPrefixes: false,
71
+ },
72
+ {
73
+ unit: 'ft',
74
+ conversionFactor: 1 / 3.28084,
75
+ SIPrefixes: false,
76
+ },
77
+ {
78
+ unit: 'yd',
79
+ conversionFactor: 1 / 0.9144,
80
+ SIPrefixes: false,
81
+ },
82
+ {
83
+ unit: 'mi',
84
+ conversionFactor: 1 / 1609.34,
85
+ SIPrefixes: false,
86
+ },
87
+ ],
88
+ baseUnit: 'm',
89
+ dimensions: ['L'],
90
+ },
91
+ mass: {
92
+ units: [
93
+ {
94
+ unit: 'g',
95
+ conversionFactor: 0.001,
96
+ SIPrefixes: true,
97
+ },
98
+ {
99
+ unit: 'lbs',
100
+ conversionFactor: 0.45359237,
101
+ SIPrefixes: false,
102
+ },
103
+ ],
104
+ baseUnit: 'kg',
105
+ dimensions: ['M'],
106
+ },
107
+ electricCurrent: {
108
+ units: [
109
+ {
110
+ unit: 'A',
111
+ conversionFactor: 1,
112
+ SIPrefixes: true,
113
+ },
114
+ ],
115
+ baseUnit: 'A',
116
+ dimensions: ['I'],
117
+ },
118
+ thermodynamicTemperature: {
119
+ units: [
120
+ {
121
+ unit: 'K',
122
+ conversionFactor: 1,
123
+ SIPrefixes: true,
124
+ offset: 0,
125
+ },
126
+ {
127
+ unit: 'C',
128
+ conversionFactor: 1,
129
+ SIPrefixes: false,
130
+ offset: 273.15,
131
+ },
132
+ {
133
+ unit: 'F',
134
+ conversionFactor: 5 / 9,
135
+ SIPrefixes: false,
136
+ offset: 255.372,
137
+ },
138
+ ],
139
+ baseUnit: 'K',
140
+ dimensions: ['Θ'],
141
+ },
142
+ amountOfSubstance: {
143
+ units: [
144
+ {
145
+ unit: 'mol',
146
+ conversionFactor: 1,
147
+ SIPrefixes: false,
148
+ },
149
+ ],
150
+ baseUnit: 'mol',
151
+ dimensions: ['N'],
152
+ },
153
+ luminousIntensity: {
154
+ units: [
155
+ {
156
+ unit: 'cd',
157
+ conversionFactor: 1,
158
+ SIPrefixes: true,
159
+ },
160
+ ],
161
+ baseUnit: 'cd',
162
+ dimensions: ['J'],
163
+ },
164
+ voltage: {
165
+ units: [
166
+ {
167
+ unit: 'V',
168
+ conversionFactor: 1,
169
+ SIPrefixes: true,
170
+ },
171
+ ],
172
+ baseUnit: 'V',
173
+ dimensions: ['U', 'M*L2*I−1*T−3'],
174
+ },
175
+ force: {
176
+ units: [
177
+ {
178
+ unit: 'N',
179
+ conversionFactor: 1,
180
+ SIPrefixes: true,
181
+ },
182
+ {
183
+ unit: 'lbf',
184
+ conversionFactor: 4.4482,
185
+ SIPrefixes: false,
186
+ },
187
+ {
188
+ unit: 'gf',
189
+ conversionFactor: 0.00980665,
190
+ SIPrefixes: false,
191
+ },
192
+ {
193
+ unit: 'kgf',
194
+ conversionFactor: 9.80665,
195
+ SIPrefixes: false,
196
+ },
197
+ ],
198
+ baseUnit: 'N',
199
+ dimensions: ['F', 'L*M*T-2'],
200
+ },
201
+ energy: {
202
+ units: [
203
+ {
204
+ unit: 'J',
205
+ conversionFactor: 1,
206
+ SIPrefixes: true,
207
+ },
208
+ {
209
+ unit: 'Btu',
210
+ conversionFactor: 1055,
211
+ SIPrefixes: true,
212
+ },
213
+ ],
214
+ baseUnit: 'J',
215
+ dimensions: ['E', 'M*L2*T-2'],
216
+ },
217
+ power: {
218
+ units: [
219
+ {
220
+ unit: 'W',
221
+ conversionFactor: 1,
222
+ SIPrefixes: true,
223
+ },
224
+ {
225
+ unit: 'PS',
226
+ conversionFactor: 735.49875,
227
+ SIPrefixes: false,
228
+ },
229
+ {
230
+ unit: 'hp',
231
+ conversionFactor: 745.7,
232
+ SIPrefixes: false,
233
+ },
234
+ ],
235
+ baseUnit: 'W',
236
+ dimensions: ['W', 'E*T-1', 'M*L2*T-3'],
237
+ },
238
+ pressure: {
239
+ units: [
240
+ {
241
+ unit: 'Pa',
242
+ conversionFactor: 1,
243
+ SIPrefixes: true,
244
+ },
245
+ {
246
+ unit: 'bar',
247
+ conversionFactor: 100000,
248
+ SIPrefixes: true,
249
+ },
250
+ {
251
+ unit: 'at',
252
+ conversionFactor: 98066.5,
253
+ SIPrefixes: false,
254
+ },
255
+ {
256
+ unit: 'atm',
257
+ conversionFactor: 101325,
258
+ SIPrefixes: false,
259
+ },
260
+ {
261
+ unit: 'Torr',
262
+ conversionFactor: 133.322368421,
263
+ SIPrefixes: true,
264
+ },
265
+ ],
266
+ baseUnit: 'Pa',
267
+ dimensions: ['P', 'F*L-2', 'E*L-3', 'M*L-1*T-2'],
268
+ },
269
+ frequency: {
270
+ units: [
271
+ {
272
+ unit: 'Hz',
273
+ conversionFactor: 1,
274
+ SIPrefixes: true,
275
+ },
276
+ ],
277
+ baseUnit: 'Hz',
278
+ dimensions: ['f', 'T-1'],
279
+ },
280
+ area: {
281
+ units: [
282
+ {
283
+ unit: 'm^2',
284
+ conversionFactor: 1,
285
+ SIPrefixes: false,
286
+ },
287
+ {
288
+ unit: 'are',
289
+ conversionFactor: 100,
290
+ SIPrefixes: false,
291
+ },
292
+ {
293
+ unit: 'hectare',
294
+ conversionFactor: 10000,
295
+ SIPrefixes: false,
296
+ },
297
+ {
298
+ unit: 'acre',
299
+ conversionFactor: 4046.86,
300
+ SIPrefixes: false,
301
+ },
302
+ ],
303
+ baseUnit: 'm^2',
304
+ dimensions: ['L2'],
305
+ },
306
+ volume: {
307
+ units: [
308
+ {
309
+ unit: 'm^3',
310
+ conversionFactor: 1,
311
+ SIPrefixes: false,
312
+ },
313
+ {
314
+ unit: 'barrel',
315
+ conversionFactor: 0.158987294928,
316
+ SIPrefixes: false,
317
+ },
318
+ {
319
+ unit: 'litre',
320
+ conversionFactor: 0.001,
321
+ SIPrefixes: false,
322
+ },
323
+ {
324
+ unit: 'gallon',
325
+ conversionFactor: 0.003785411784,
326
+ SIPrefixes: false,
327
+ },
328
+ {
329
+ unit: 'pint',
330
+ conversionFactor: 0.000473176473,
331
+ SIPrefixes: false,
332
+ },
333
+ ],
334
+ baseUnit: 'm^3',
335
+ dimensions: ['L3', 'V'],
336
+ },
337
+ angle: {
338
+ units: [
339
+ {
340
+ unit: 'rad',
341
+ conversionFactor: 1,
342
+ SIPrefixes: true,
343
+ },
344
+ {
345
+ unit: 'deg',
346
+ conversionFactor: 57.2958,
347
+ SIPrefixes: true,
348
+ },
349
+ {
350
+ unit: 'turn',
351
+ conversionFactor: 1 / (2 * Math.PI),
352
+ SIPrefixes: true,
353
+ },
354
+ {
355
+ unit: 'gon',
356
+ conversionFactor: 63.662,
357
+ SIPrefixes: true,
358
+ },
359
+ ],
360
+ baseUnit: 'rad',
361
+ dimensions: ['A', 'L*L-1'],
362
+ },
363
+ translationalAcceleration: {
364
+ units: [
365
+ {
366
+ unit: 'm/s^2',
367
+ conversionFactor: 1,
368
+ SIPrefixes: false,
369
+ },
370
+ {
371
+ unit: 'Gal',
372
+ conversionFactor: 0.01,
373
+ SIPrefixes: false,
374
+ },
375
+ {
376
+ unit: 'g0',
377
+ conversionFactor: 9.80665,
378
+ SIPrefixes: false,
379
+ },
380
+ ],
381
+ baseUnit: 'm/s^2',
382
+ dimensions: ['L*T-2'],
383
+ },
384
+ translationalVelocity: {
385
+ units: [
386
+ {
387
+ unit: 'm/s',
388
+ conversionFactor: 1,
389
+ SIPrefixes: false,
390
+ },
391
+ ],
392
+ baseUnit: 'm/s',
393
+ dimensions: ['L*T-1'],
394
+ },
395
+ get translationalDisplacement() {
396
+ return this.length;
397
+ },
398
+ springConstant: {
399
+ units: [
400
+ {
401
+ unit: 'N/m',
402
+ conversionFactor: 1,
403
+ SIPrefixes: false,
404
+ },
405
+ ],
406
+ baseUnit: 'N/m',
407
+ dimensions: ['F*L-1', 'M*T-2'],
408
+ },
409
+ rotationalAcceleration: {
410
+ units: [
411
+ {
412
+ unit: 'rad/s^2',
413
+ conversionFactor: 1,
414
+ SIPrefixes: false,
415
+ },
416
+ ],
417
+ baseUnit: 'rad/s^2',
418
+ dimensions: ['A*T-2', 'L*L-1*T-2', 'T-2'],
419
+ },
420
+ rotationalVelocity: {
421
+ units: [
422
+ {
423
+ unit: 'rad/s',
424
+ conversionFactor: 1,
425
+ SIPrefixes: true,
426
+ },
427
+ ],
428
+ baseUnit: 'rad/s',
429
+ dimensions: ['A*T-1', 'L*L-1*T-1', 'T-1'],
430
+ },
431
+ get rotationalDisplacement() {
432
+ return this.angle;
433
+ },
434
+ torque: {
435
+ units: [
436
+ {
437
+ unit: 'Nm',
438
+ conversionFactor: 1,
439
+ SIPrefixes: false,
440
+ },
441
+ ],
442
+ baseUnit: 'Nm',
443
+ dimensions: ['F*L', 'M*L2*T−2'],
444
+ },
445
+ momentOfInertia: {
446
+ units: [
447
+ {
448
+ unit: 'kgm^2',
449
+ conversionFactor: 1,
450
+ SIPrefixes: false,
451
+ },
452
+ ],
453
+ baseUnit: 'kgm^2',
454
+ dimensions: ['M*L2', 'F*L*T2'],
455
+ },
456
+ rotatingUnbalance: {
457
+ units: [
458
+ {
459
+ unit: 'kgm',
460
+ conversionFactor: 1,
461
+ SIPrefixes: false,
462
+ },
463
+ ],
464
+ baseUnit: 'kgm',
465
+ dimensions: ['L*M'],
466
+ },
467
+ get mechanicalPower() {
468
+ return this.power;
469
+ },
470
+ get mechanicalEnergy() {
471
+ return this.energy;
472
+ },
473
+ dynamicViscosity: {
474
+ units: [
475
+ {
476
+ unit: 'Pas',
477
+ conversionFactor: 1,
478
+ SIPrefixes: false,
479
+ },
480
+ {
481
+ unit: 'poise',
482
+ conversionFactor: 0.1,
483
+ SIPrefixes: true,
484
+ },
485
+ ],
486
+ baseUnit: 'Pas',
487
+ dimensions: ['P*T', 'F*T*L-2', 'M*L-1*T-1'],
488
+ },
489
+ kinematicViscosity: {
490
+ units: [
491
+ {
492
+ unit: 'm^2/s',
493
+ conversionFactor: 1,
494
+ SIPrefixes: false,
495
+ },
496
+ {
497
+ unit: 'St',
498
+ conversionFactor: 0.0001,
499
+ SIPrefixes: true,
500
+ },
501
+ ],
502
+ baseUnit: 'm^2/s',
503
+ dimensions: ['L2*T-1'],
504
+ },
505
+ volumeFlow: {
506
+ units: [
507
+ {
508
+ unit: 'm^3/s',
509
+ conversionFactor: 1,
510
+ SIPrefixes: false,
511
+ },
512
+ ],
513
+ baseUnit: 'm^3/s',
514
+ dimensions: ['V*T-1', 'L3*T-1'],
515
+ },
516
+ massFlow: {
517
+ units: [
518
+ {
519
+ unit: 'kg/s',
520
+ conversionFactor: 1,
521
+ SIPrefixes: false,
522
+ },
523
+ ],
524
+ baseUnit: 'kg/s',
525
+ dimensions: ['M*L-1'],
526
+ },
527
+ heatFlux: {
528
+ units: [
529
+ {
530
+ unit: 'W/m^2',
531
+ conversionFactor: 1,
532
+ SIPrefixes: false,
533
+ },
534
+ ],
535
+ baseUnit: 'W/m^2',
536
+ dimensions: ['W*L-2', 'E*T-1*L-2', 'M*T-3'],
537
+ },
538
+ get thermalEnergy() {
539
+ return this.energy;
540
+ },
541
+ specificHeatCapacity: {
542
+ units: [
543
+ {
544
+ unit: 'J/kgK',
545
+ conversionFactor: 1,
546
+ SIPrefixes: false,
547
+ },
548
+ ],
549
+ baseUnit: 'J/kgK',
550
+ dimensions: ['E*M-1*Θ−1', 'L2*Θ−1*T−2'],
551
+ },
552
+ thermalTransmittance: {
553
+ units: [
554
+ {
555
+ unit: 'W/m^2K',
556
+ conversionFactor: 1,
557
+ SIPrefixes: false,
558
+ },
559
+ ],
560
+ baseUnit: 'W/m^2K',
561
+ dimensions: ['W*L-2*Θ-1', 'E*T-1*L-2*Θ-1'],
562
+ },
563
+ get electricalPower() {
564
+ return this.power;
565
+ },
566
+ get electricalEnergy() {
567
+ return this.energy;
568
+ },
569
+ get electricalFrequency() {
570
+ return this.frequency;
571
+ },
572
+ };
@@ -0,0 +1,51 @@
1
+ import { FlowLogger } from './FlowLogger';
2
+ export declare function fillTemplate(value: any, ...templateVariables: any): any;
3
+ export declare function getCircularReplacer(): (key: any, value: any) => any;
4
+ export declare function toArray(value?: string | string[]): string[];
5
+ export declare function delay(ms: number): Promise<void>;
6
+ /**
7
+ * Creates a promise that resolves after a specified delay, with support for cancellation via an AbortSignal.
8
+ *
9
+ * @param {number} ms - The delay duration in milliseconds.
10
+ * @param {Object} [options] - Optional configuration.
11
+ * @param {AbortSignal} [options.signal] - An AbortSignal to allow cancellation of the delay.
12
+ *
13
+ * @returns {Promise<void>} A promise that resolves after the specified delay or rejects if aborted.
14
+ *
15
+ * @throws {Error} If the AbortSignal is already aborted or gets aborted during the delay, the promise rejects with an "AbortError".
16
+ *
17
+ * @details Usage:
18
+ * ```typescript
19
+ * @FlowFunction('test.task.LongRunningTask')
20
+ * class LongRunningTask extends FlowTask<Properties> {
21
+ * private readonly abortController = new AbortController();
22
+ *
23
+ * constructor(...) {...}
24
+ *
25
+ * @InputStream()
26
+ * public async loveMeLongTime(event) {
27
+ * try {
28
+ * await delayWithAbort(this.properties.delay, { signal: this.abortController.signal });
29
+ * return this.emitEvent({ foo: 'bar' }, null);
30
+ * } catch (err) {
31
+ * if (err.message === 'AbortError') {
32
+ * return; // Task was aborted
33
+ * }
34
+ * throw err;
35
+ * }
36
+ * }
37
+ *
38
+ * public onDestroy = () => { this.abortController.abort(); };
39
+ * }
40
+ * ```
41
+ */
42
+ export declare function delayWithAbort(ms: number, options?: {
43
+ signal?: AbortSignal;
44
+ }): Promise<void>;
45
+ export declare function deleteFiles(dir: string, ...filenames: string[]): Promise<void>;
46
+ export declare function handleApiError(error: any, logger: FlowLogger): void;
47
+ export declare function runPyScript(scriptPath: string, data: any): Promise<any>;
48
+ /**
49
+ * Truncates an object or string to the specified max length and depth
50
+ */
51
+ export declare function truncate(msg: any, depth?: number, maxStringLength?: number): string;