@fsai-flow/workflow 0.0.1 → 0.0.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 (79) hide show
  1. package/README.md +22 -2
  2. package/package.json +1 -4
  3. package/src/lib/Interfaces.ts +33 -0
  4. package/src/lib/Workflow.ts +4 -0
  5. package/src/lib/utils.ts +123 -89
  6. package/dist/README.md +0 -11
  7. package/dist/package.json +0 -42
  8. package/dist/src/index.d.ts +0 -21
  9. package/dist/src/index.js +0 -33
  10. package/dist/src/index.js.map +0 -1
  11. package/dist/src/lib/Constants.d.ts +0 -68
  12. package/dist/src/lib/Constants.js +0 -106
  13. package/dist/src/lib/Constants.js.map +0 -1
  14. package/dist/src/lib/DeferredPromise.d.ts +0 -6
  15. package/dist/src/lib/DeferredPromise.js +0 -11
  16. package/dist/src/lib/DeferredPromise.js.map +0 -1
  17. package/dist/src/lib/Expression.d.ts +0 -65
  18. package/dist/src/lib/Expression.js +0 -215
  19. package/dist/src/lib/Expression.js.map +0 -1
  20. package/dist/src/lib/Interfaces.d.ts +0 -1569
  21. package/dist/src/lib/Interfaces.js +0 -44
  22. package/dist/src/lib/Interfaces.js.map +0 -1
  23. package/dist/src/lib/LoggerProxy.d.ts +0 -9
  24. package/dist/src/lib/LoggerProxy.js +0 -40
  25. package/dist/src/lib/LoggerProxy.js.map +0 -1
  26. package/dist/src/lib/MetadataUtils.d.ts +0 -4
  27. package/dist/src/lib/MetadataUtils.js +0 -27
  28. package/dist/src/lib/MetadataUtils.js.map +0 -1
  29. package/dist/src/lib/NodeErrors.d.ts +0 -82
  30. package/dist/src/lib/NodeErrors.js +0 -289
  31. package/dist/src/lib/NodeErrors.js.map +0 -1
  32. package/dist/src/lib/NodeHelpers.d.ts +0 -198
  33. package/dist/src/lib/NodeHelpers.js +0 -1348
  34. package/dist/src/lib/NodeHelpers.js.map +0 -1
  35. package/dist/src/lib/ObservableObject.d.ts +0 -5
  36. package/dist/src/lib/ObservableObject.js +0 -61
  37. package/dist/src/lib/ObservableObject.js.map +0 -1
  38. package/dist/src/lib/RoutingNode.d.ts +0 -18
  39. package/dist/src/lib/RoutingNode.js +0 -508
  40. package/dist/src/lib/RoutingNode.js.map +0 -1
  41. package/dist/src/lib/TelemetryHelpers.d.ts +0 -3
  42. package/dist/src/lib/TelemetryHelpers.js +0 -69
  43. package/dist/src/lib/TelemetryHelpers.js.map +0 -1
  44. package/dist/src/lib/TypeValidation.d.ts +0 -21
  45. package/dist/src/lib/TypeValidation.js +0 -385
  46. package/dist/src/lib/TypeValidation.js.map +0 -1
  47. package/dist/src/lib/VersionedNodeType.d.ts +0 -9
  48. package/dist/src/lib/VersionedNodeType.js +0 -26
  49. package/dist/src/lib/VersionedNodeType.js.map +0 -1
  50. package/dist/src/lib/Workflow.d.ts +0 -248
  51. package/dist/src/lib/Workflow.js +0 -901
  52. package/dist/src/lib/Workflow.js.map +0 -1
  53. package/dist/src/lib/WorkflowDataProxy.d.ts +0 -87
  54. package/dist/src/lib/WorkflowDataProxy.js +0 -556
  55. package/dist/src/lib/WorkflowDataProxy.js.map +0 -1
  56. package/dist/src/lib/WorkflowErrors.d.ts +0 -9
  57. package/dist/src/lib/WorkflowErrors.js +0 -18
  58. package/dist/src/lib/WorkflowErrors.js.map +0 -1
  59. package/dist/src/lib/WorkflowHooks.d.ts +0 -11
  60. package/dist/src/lib/WorkflowHooks.js +0 -34
  61. package/dist/src/lib/WorkflowHooks.js.map +0 -1
  62. package/dist/src/lib/errors/base/base.error.d.ts +0 -30
  63. package/dist/src/lib/errors/base/base.error.js +0 -45
  64. package/dist/src/lib/errors/base/base.error.js.map +0 -1
  65. package/dist/src/lib/errors/base/operational.error.d.ts +0 -15
  66. package/dist/src/lib/errors/base/operational.error.js +0 -19
  67. package/dist/src/lib/errors/base/operational.error.js.map +0 -1
  68. package/dist/src/lib/errors/error.types.d.ts +0 -11
  69. package/dist/src/lib/errors/error.types.js +0 -3
  70. package/dist/src/lib/errors/error.types.js.map +0 -1
  71. package/dist/src/lib/errors/index.d.ts +0 -1
  72. package/dist/src/lib/errors/index.js +0 -6
  73. package/dist/src/lib/errors/index.js.map +0 -1
  74. package/dist/src/lib/result.d.ts +0 -19
  75. package/dist/src/lib/result.js +0 -36
  76. package/dist/src/lib/result.js.map +0 -1
  77. package/dist/src/lib/utils.d.ts +0 -50
  78. package/dist/src/lib/utils.js +0 -110
  79. package/dist/src/lib/utils.js.map +0 -1
@@ -1,385 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tryToParseJwt = exports.tryToParseUrl = exports.getValueDescription = exports.tryToParseJsonToFormFields = exports.tryToParseObject = exports.tryToParseArray = exports.tryToParseTime = exports.tryToParseDateTime = exports.tryToParseBoolean = exports.tryToParseAlphanumericString = exports.tryToParseString = exports.tryToParseNumber = void 0;
4
- exports.validateFieldType = validateFieldType;
5
- const tslib_1 = require("tslib");
6
- const isObject_1 = tslib_1.__importDefault(require("lodash/isObject"));
7
- const luxon_1 = require("luxon");
8
- const utils_1 = require("./utils");
9
- const tryToParseNumber = (value) => {
10
- const isValidNumber = !isNaN(Number(value));
11
- if (!isValidNumber) {
12
- throw new Error('Failed to parse value to number');
13
- }
14
- return Number(value);
15
- };
16
- exports.tryToParseNumber = tryToParseNumber;
17
- const tryToParseString = (value) => {
18
- if (typeof value === 'object')
19
- return JSON.stringify(value);
20
- if (typeof value === 'undefined')
21
- return '';
22
- if (typeof value === 'string' ||
23
- typeof value === 'bigint' ||
24
- typeof value === 'boolean' ||
25
- typeof value === 'number') {
26
- return value.toString();
27
- }
28
- return String(value);
29
- };
30
- exports.tryToParseString = tryToParseString;
31
- const tryToParseAlphanumericString = (value) => {
32
- const parsed = (0, exports.tryToParseString)(value);
33
- const regex = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
34
- if (!regex.test(parsed)) {
35
- throw new Error('Value is not a valid alphanumeric string');
36
- }
37
- return parsed;
38
- };
39
- exports.tryToParseAlphanumericString = tryToParseAlphanumericString;
40
- const tryToParseBoolean = (value) => {
41
- if (typeof value === 'boolean') {
42
- return value;
43
- }
44
- if (typeof value === 'string' && ['true', 'false'].includes(value.toLowerCase())) {
45
- return value.toLowerCase() === 'true';
46
- }
47
- // If value is not a empty string, try to parse it to a number
48
- if (!(typeof value === 'string' && value.trim() === '')) {
49
- const num = Number(value);
50
- if (num === 0) {
51
- return false;
52
- }
53
- else if (num === 1) {
54
- return true;
55
- }
56
- }
57
- throw new Error('Failed to parse value as boolean');
58
- };
59
- exports.tryToParseBoolean = tryToParseBoolean;
60
- const tryToParseDateTime = (value) => {
61
- if (value instanceof luxon_1.DateTime && value.isValid) {
62
- return value;
63
- }
64
- if (value instanceof Date) {
65
- const fromJSDate = luxon_1.DateTime.fromJSDate(value);
66
- if (fromJSDate.isValid) {
67
- return fromJSDate;
68
- }
69
- }
70
- const dateString = String(value).trim();
71
- // Rely on luxon to parse different date formats
72
- const isoDate = luxon_1.DateTime.fromISO(dateString, { setZone: true });
73
- if (isoDate.isValid) {
74
- return isoDate;
75
- }
76
- const httpDate = luxon_1.DateTime.fromHTTP(dateString, { setZone: true });
77
- if (httpDate.isValid) {
78
- return httpDate;
79
- }
80
- const rfc2822Date = luxon_1.DateTime.fromRFC2822(dateString, { setZone: true });
81
- if (rfc2822Date.isValid) {
82
- return rfc2822Date;
83
- }
84
- const sqlDate = luxon_1.DateTime.fromSQL(dateString, { setZone: true });
85
- if (sqlDate.isValid) {
86
- return sqlDate;
87
- }
88
- const parsedDateTime = luxon_1.DateTime.fromMillis(Date.parse(dateString));
89
- if (parsedDateTime.isValid) {
90
- return parsedDateTime;
91
- }
92
- throw new Error('Value is not a valid date');
93
- };
94
- exports.tryToParseDateTime = tryToParseDateTime;
95
- const tryToParseTime = (value) => {
96
- const isTimeInput = /^\d{2}:\d{2}(:\d{2})?((\-|\+)\d{4})?((\-|\+)\d{1,2}(:\d{2})?)?$/s.test(String(value));
97
- if (!isTimeInput) {
98
- throw new Error('Value is not a valid time');
99
- }
100
- return String(value);
101
- };
102
- exports.tryToParseTime = tryToParseTime;
103
- const tryToParseArray = (value) => {
104
- try {
105
- if (typeof value === 'object' && Array.isArray(value)) {
106
- return value;
107
- }
108
- let parsed;
109
- try {
110
- parsed = JSON.parse(String(value));
111
- }
112
- catch (e) {
113
- parsed = JSON.parse(String(value).replace(/'/g, '"'));
114
- }
115
- if (!Array.isArray(parsed)) {
116
- throw new Error('Value is not a valid array');
117
- }
118
- return parsed;
119
- }
120
- catch (e) {
121
- throw new Error('Value is not a valid array');
122
- }
123
- };
124
- exports.tryToParseArray = tryToParseArray;
125
- const tryToParseObject = (value) => {
126
- if (value && typeof value === 'object' && !Array.isArray(value)) {
127
- return value;
128
- }
129
- try {
130
- const o = (0, utils_1.jsonParse)(String(value), { acceptJSObject: true });
131
- if (typeof o !== 'object' || Array.isArray(o)) {
132
- throw new Error('Value is not a valid object');
133
- }
134
- return o;
135
- }
136
- catch (e) {
137
- throw new Error('Value is not a valid object');
138
- }
139
- };
140
- exports.tryToParseObject = tryToParseObject;
141
- const ALLOWED_FORM_FIELDS_KEYS = [
142
- 'fieldLabel',
143
- 'fieldType',
144
- 'placeholder',
145
- 'fieldOptions',
146
- 'multiselect',
147
- 'multipleFiles',
148
- 'acceptFileTypes',
149
- 'formatDate',
150
- 'requiredField',
151
- ];
152
- const ALLOWED_FIELD_TYPES = [
153
- 'date',
154
- 'dropdown',
155
- 'email',
156
- 'file',
157
- 'number',
158
- 'password',
159
- 'text',
160
- 'textarea',
161
- ];
162
- const tryToParseJsonToFormFields = (value) => {
163
- const fields = [];
164
- try {
165
- const rawFields = (0, utils_1.jsonParse)(value, {
166
- acceptJSObject: true,
167
- });
168
- for (const [index, field] of rawFields.entries()) {
169
- for (const key of Object.keys(field)) {
170
- if (!ALLOWED_FORM_FIELDS_KEYS.includes(key)) {
171
- throw new Error(`Key '${key}' in field ${index} is not valid for form fields`);
172
- }
173
- if (key !== 'fieldOptions' &&
174
- !['string', 'number', 'boolean'].includes(typeof field[key])) {
175
- field[key] = String(field[key]);
176
- }
177
- else if (typeof field[key] === 'string') {
178
- field[key] = field[key].replace(/</g, '&lt;').replace(/>/g, '&gt;');
179
- }
180
- if (key === 'fieldType' && !ALLOWED_FIELD_TYPES.includes(field[key])) {
181
- throw new Error(`Field type '${field[key]}' in field ${index} is not valid for form fields`);
182
- }
183
- if (key === 'fieldOptions') {
184
- if (Array.isArray(field[key])) {
185
- field[key] = { values: field[key] };
186
- }
187
- if (typeof field[key] !== 'object' ||
188
- !field[key]['values']) {
189
- throw new Error(`Field dropdown in field ${index} does has no 'values' property that contain an array of options`);
190
- }
191
- for (const [optionIndex, option] of field[key]['values'].entries()) {
192
- if (Object.keys(option).length !== 1 || typeof option['option'] !== 'string') {
193
- throw new Error(`Field dropdown in field ${index} has an invalid option ${optionIndex}`);
194
- }
195
- }
196
- }
197
- }
198
- fields.push(field);
199
- }
200
- }
201
- catch (error) {
202
- if (error instanceof Error)
203
- throw error;
204
- throw new Error('Value is not valid JSON');
205
- }
206
- return fields;
207
- };
208
- exports.tryToParseJsonToFormFields = tryToParseJsonToFormFields;
209
- const getValueDescription = (value) => {
210
- if (typeof value === 'object') {
211
- if (value === null)
212
- return "'null'";
213
- if (Array.isArray(value))
214
- return 'array';
215
- return 'object';
216
- }
217
- return `'${String(value)}'`;
218
- };
219
- exports.getValueDescription = getValueDescription;
220
- const tryToParseUrl = (value) => {
221
- if (typeof value === 'string' && !value.includes('://')) {
222
- value = `http://${value}`;
223
- }
224
- const urlPattern = /^(https?|ftp|file):\/\/\S+|www\.\S+/;
225
- if (!urlPattern.test(String(value))) {
226
- throw new Error(`The value "${String(value)}" is not a valid url.`);
227
- }
228
- return String(value);
229
- };
230
- exports.tryToParseUrl = tryToParseUrl;
231
- const tryToParseJwt = (value) => {
232
- const error = new Error(`The value "${String(value)}" is not a valid JWT token.`);
233
- if (!value)
234
- throw error;
235
- const jwtPattern = /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_.+/=]*$/;
236
- if (!jwtPattern.test(String(value)))
237
- throw error;
238
- return String(value);
239
- };
240
- exports.tryToParseJwt = tryToParseJwt;
241
- // eslint-disable-next-line complexity
242
- function validateFieldType(fieldName, value, type, options = {}) {
243
- if (value === null || value === undefined)
244
- return { valid: true };
245
- const strict = options.strict ?? false;
246
- const valueOptions = options.valueOptions ?? [];
247
- const parseStrings = options.parseStrings ?? false;
248
- const defaultErrorMessage = `'${fieldName}' expects a ${type} but we got ${(0, exports.getValueDescription)(value)}`;
249
- switch (type.toLowerCase()) {
250
- case 'string': {
251
- if (!parseStrings)
252
- return { valid: true, newValue: value };
253
- try {
254
- if (strict && typeof value !== 'string') {
255
- return { valid: false, errorMessage: defaultErrorMessage };
256
- }
257
- return { valid: true, newValue: (0, exports.tryToParseString)(value) };
258
- }
259
- catch (e) {
260
- return { valid: false, errorMessage: defaultErrorMessage };
261
- }
262
- }
263
- case 'string-alphanumeric': {
264
- try {
265
- return { valid: true, newValue: (0, exports.tryToParseAlphanumericString)(value) };
266
- }
267
- catch (e) {
268
- return {
269
- valid: false,
270
- errorMessage: 'Value is not a valid alphanumeric string, only letters, numbers and underscore allowed',
271
- };
272
- }
273
- }
274
- case 'number': {
275
- try {
276
- if (strict && typeof value !== 'number') {
277
- return { valid: false, errorMessage: defaultErrorMessage };
278
- }
279
- return { valid: true, newValue: (0, exports.tryToParseNumber)(value) };
280
- }
281
- catch (e) {
282
- return { valid: false, errorMessage: defaultErrorMessage };
283
- }
284
- }
285
- case 'boolean': {
286
- try {
287
- if (strict && typeof value !== 'boolean') {
288
- return { valid: false, errorMessage: defaultErrorMessage };
289
- }
290
- return { valid: true, newValue: (0, exports.tryToParseBoolean)(value) };
291
- }
292
- catch (e) {
293
- return { valid: false, errorMessage: defaultErrorMessage };
294
- }
295
- }
296
- case 'datetime': {
297
- try {
298
- return { valid: true, newValue: (0, exports.tryToParseDateTime)(value) };
299
- }
300
- catch (e) {
301
- const luxonDocsURL = 'https://moment.github.io/luxon/api-docs/index.html#datetimefromformat';
302
- const errorMessage = `${defaultErrorMessage} <br/><br/> Consider using <a href="${luxonDocsURL}" target="_blank"><code>DateTime.fromFormat</code></a> to work with custom date formats.`;
303
- return { valid: false, errorMessage };
304
- }
305
- }
306
- case 'time': {
307
- try {
308
- return { valid: true, newValue: (0, exports.tryToParseTime)(value) };
309
- }
310
- catch (e) {
311
- return {
312
- valid: false,
313
- errorMessage: `'${fieldName}' expects time (hh:mm:(:ss)) but we got ${(0, exports.getValueDescription)(value)}.`,
314
- };
315
- }
316
- }
317
- case 'object': {
318
- try {
319
- if (strict && !(0, isObject_1.default)(value)) {
320
- return { valid: false, errorMessage: defaultErrorMessage };
321
- }
322
- return { valid: true, newValue: (0, exports.tryToParseObject)(value) };
323
- }
324
- catch (e) {
325
- return { valid: false, errorMessage: defaultErrorMessage };
326
- }
327
- }
328
- case 'array': {
329
- if (strict && !Array.isArray(value)) {
330
- return { valid: false, errorMessage: defaultErrorMessage };
331
- }
332
- try {
333
- return { valid: true, newValue: (0, exports.tryToParseArray)(value) };
334
- }
335
- catch (e) {
336
- return { valid: false, errorMessage: defaultErrorMessage };
337
- }
338
- }
339
- case 'options': {
340
- const validOptions = valueOptions.map((option) => option.value).join(', ');
341
- const isValidOption = valueOptions.some((option) => option.value === value);
342
- if (!isValidOption) {
343
- return {
344
- valid: false,
345
- errorMessage: `'${fieldName}' expects one of the following values: [${validOptions}] but we got ${(0, exports.getValueDescription)(value)}`,
346
- };
347
- }
348
- return { valid: true, newValue: value };
349
- }
350
- case 'url': {
351
- try {
352
- return { valid: true, newValue: (0, exports.tryToParseUrl)(value) };
353
- }
354
- catch (e) {
355
- return { valid: false, errorMessage: defaultErrorMessage };
356
- }
357
- }
358
- case 'jwt': {
359
- try {
360
- return { valid: true, newValue: (0, exports.tryToParseJwt)(value) };
361
- }
362
- catch (e) {
363
- return {
364
- valid: false,
365
- errorMessage: 'Value is not a valid JWT token',
366
- };
367
- }
368
- }
369
- case 'form-fields': {
370
- try {
371
- return { valid: true, newValue: (0, exports.tryToParseJsonToFormFields)(value) };
372
- }
373
- catch (e) {
374
- return {
375
- valid: false,
376
- errorMessage: e.message,
377
- };
378
- }
379
- }
380
- default: {
381
- return { valid: true, newValue: value };
382
- }
383
- }
384
- }
385
- //# sourceMappingURL=TypeValidation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TypeValidation.js","sourceRoot":"","sources":["../../../src/lib/TypeValidation.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import type { INodeTypeBaseDescription, IVersionedNodeType, INodeType } from './Interfaces';
2
- export declare class VersionedNodeType implements IVersionedNodeType {
3
- currentVersion: number;
4
- nodeVersions: IVersionedNodeType['nodeVersions'];
5
- description: INodeTypeBaseDescription;
6
- constructor(nodeVersions: IVersionedNodeType['nodeVersions'], description: INodeTypeBaseDescription);
7
- getLatestVersion(): number;
8
- getNodeType(version?: number): INodeType;
9
- }
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VersionedNodeType = void 0;
4
- class VersionedNodeType {
5
- currentVersion;
6
- nodeVersions;
7
- description;
8
- constructor(nodeVersions, description) {
9
- this.nodeVersions = nodeVersions;
10
- this.currentVersion = description.defaultVersion ?? this.getLatestVersion();
11
- this.description = description;
12
- }
13
- getLatestVersion() {
14
- return Math.max(...Object.keys(this.nodeVersions).map(Number));
15
- }
16
- getNodeType(version) {
17
- if (version) {
18
- return this.nodeVersions[version];
19
- }
20
- else {
21
- return this.nodeVersions[this.currentVersion];
22
- }
23
- }
24
- }
25
- exports.VersionedNodeType = VersionedNodeType;
26
- //# sourceMappingURL=VersionedNodeType.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VersionedNodeType.js","sourceRoot":"","sources":["../../../src/lib/VersionedNodeType.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAC7B,cAAc,CAAS;IAEvB,YAAY,CAAqC;IAEjD,WAAW,CAA2B;IAEtC,YACC,YAAgD,EAChD,WAAqC;QAErC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,OAAgB;QAC3B,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACP,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;CACD;AA3BD,8CA2BC"}