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

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