@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 +0,0 @@
1
- {"version":3,"file":"WorkflowHooks.js","sourceRoot":"","sources":["../../../src/lib/WorkflowHooks.ts"],"names":[],"mappings":";;;AAQA,MAAa,aAAa;IACzB,IAAI,CAAsB;IAE1B,YAAY,CAAgB;IAE5B,WAAW,CAAS;IAEpB,SAAS,CAAU;IAEnB,OAAO,CAAU;IAEjB,aAAa,CAAwB;IAErC,YACC,aAAoC,EACpC,IAAyB,EACzB,WAAmB,EACnB,YAA2B,EAC3B,kBAAqD;QAErD,2FAA2F;QAC3F,kBAAkB,GAAG,kBAAkB,IAAI,EAAE,CAAC;QAE9C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAC3C,CAAC;IAED,iHAAiH;IACjH,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,UAAiB;QAC7D,6BAA6B;QAC7B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC/F,0FAA0F;YAC1F,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAE,EAAE,CAAC;gBAC1D,4CAA4C;gBAC5C,MAAM,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;IACF,CAAC;CACD;AA1CD,sCA0CC"}
@@ -1,30 +0,0 @@
1
- import type { Event } from '@sentry/node';
2
- import type { ErrorTags, ErrorLevel, ReportingOptions } from '../error.types';
3
- export type BaseErrorOptions = {
4
- description?: undefined | null;
5
- } & ErrorOptions & ReportingOptions;
6
- interface ErrorOptions {
7
- cause?: unknown;
8
- }
9
- /**
10
- * Base class for all errors
11
- */
12
- export declare abstract class BaseError extends Error {
13
- /**
14
- * Error level. Defines which level the error should be logged/reported
15
- * @default 'error'
16
- */
17
- level: ErrorLevel;
18
- /**
19
- * Whether the error should be reported to Sentry.
20
- * @default true
21
- */
22
- readonly shouldReport: boolean;
23
- readonly description: string | null | undefined;
24
- readonly tags: ErrorTags;
25
- readonly extra?: Event['extra'];
26
- readonly packageName?: string;
27
- readonly cause?: unknown;
28
- constructor(message: string, { level, description, shouldReport, tags, extra, ...rest }?: BaseErrorOptions);
29
- }
30
- export {};
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseError = void 0;
4
- const tslib_1 = require("tslib");
5
- const callsites_1 = tslib_1.__importDefault(require("callsites"));
6
- /**
7
- * Base class for all errors
8
- */
9
- class BaseError extends Error {
10
- /**
11
- * Error level. Defines which level the error should be logged/reported
12
- * @default 'error'
13
- */
14
- level;
15
- /**
16
- * Whether the error should be reported to Sentry.
17
- * @default true
18
- */
19
- shouldReport;
20
- description;
21
- tags;
22
- extra;
23
- packageName;
24
- cause;
25
- constructor(message, { level = 'error', description, shouldReport, tags = {}, extra, ...rest } = {}) {
26
- super(message);
27
- if (rest.cause !== undefined) {
28
- this.cause = rest.cause;
29
- }
30
- this.level = level;
31
- this.shouldReport = shouldReport ?? (level === 'error' || level === 'fatal');
32
- this.description = description;
33
- this.tags = tags;
34
- this.extra = extra;
35
- try {
36
- const filePath = (0, callsites_1.default)()[2].getFileName() ?? '';
37
- const match = /packages\/([^\/]+)\//.exec(filePath)?.[1];
38
- if (match)
39
- this.tags['packageName'] = match;
40
- }
41
- catch { }
42
- }
43
- }
44
- exports.BaseError = BaseError;
45
- //# sourceMappingURL=base.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.error.js","sourceRoot":"","sources":["../../../../../src/lib/errors/base/base.error.ts"],"names":[],"mappings":";;;;AACA,kEAAkC;AAUlC;;GAEG;AACH,MAAsB,SAAU,SAAQ,KAAK;IAC5C;;;OAGG;IACH,KAAK,CAAa;IAElB;;;OAGG;IACM,YAAY,CAAU;IAEtB,WAAW,CAA4B;IAEvC,IAAI,CAAY;IAEhB,KAAK,CAAkB;IAEvB,WAAW,CAAU;IAErB,KAAK,CAAW;IAEzB,YACC,OAAe,EACf,EACC,KAAK,GAAG,OAAO,EACf,WAAW,EACX,YAAY,EACZ,IAAI,GAAG,EAAE,EACT,KAAK,EACL,GAAG,IAAI,KACc,EAAE;QAExB,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAA,mBAAS,GAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAEzD,IAAI,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;CACD;AArDD,8BAqDC"}
@@ -1,15 +0,0 @@
1
- import type { BaseErrorOptions } from './base.error';
2
- import { BaseError } from './base.error';
3
- export type OperationalErrorOptions = Omit<BaseErrorOptions, 'level'> & {
4
- level?: 'info' | 'warning' | 'error';
5
- };
6
- /**
7
- * Error that indicates a transient issue, like a network request failing,
8
- * a database query timing out, etc. These are expected to happen, are
9
- * transient by nature and should be handled gracefully.
10
- *
11
- * Default level: warning
12
- */
13
- export declare class OperationalError extends BaseError {
14
- constructor(message: string, opts?: OperationalErrorOptions);
15
- }
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OperationalError = void 0;
4
- const base_error_1 = require("./base.error");
5
- /**
6
- * Error that indicates a transient issue, like a network request failing,
7
- * a database query timing out, etc. These are expected to happen, are
8
- * transient by nature and should be handled gracefully.
9
- *
10
- * Default level: warning
11
- */
12
- class OperationalError extends base_error_1.BaseError {
13
- constructor(message, opts = {}) {
14
- opts.level = opts.level ?? 'warning';
15
- super(message, opts);
16
- }
17
- }
18
- exports.OperationalError = OperationalError;
19
- //# sourceMappingURL=operational.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operational.error.js","sourceRoot":"","sources":["../../../../../src/lib/errors/base/operational.error.ts"],"names":[],"mappings":";;;AACA,6CAAyC;AAMzC;;;;;;GAMG;AACH,MAAa,gBAAiB,SAAQ,sBAAS;IAC9C,YAAY,OAAe,EAAE,OAAgC,EAAE;QAC9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;QAErC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;CACD;AAND,4CAMC"}
@@ -1,11 +0,0 @@
1
- import type { Event } from '@sentry/node';
2
- export type ErrorLevel = 'fatal' | 'error' | 'warning' | 'info';
3
- export type ErrorTags = NonNullable<Event['tags']>;
4
- export type ReportingOptions = {
5
- /** Whether the error should be reported to Sentry */
6
- shouldReport?: boolean;
7
- level?: ErrorLevel;
8
- tags?: ErrorTags;
9
- extra?: Event['extra'];
10
- executionId?: string;
11
- };
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=error.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"error.types.js","sourceRoot":"","sources":["../../../../src/lib/errors/error.types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export { OperationalError, type OperationalErrorOptions } from './base/operational.error';
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OperationalError = void 0;
4
- var operational_error_1 = require("./base/operational.error");
5
- Object.defineProperty(exports, "OperationalError", { enumerable: true, get: function () { return operational_error_1.OperationalError; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/errors/index.ts"],"names":[],"mappings":";;;AAAA,8DAA0F;AAAjF,qHAAA,gBAAgB,OAAA"}
@@ -1,19 +0,0 @@
1
- export type ResultOk<T> = {
2
- ok: true;
3
- result: T;
4
- };
5
- export type ResultError<E> = {
6
- ok: false;
7
- error: E;
8
- };
9
- export type Result<T, E> = ResultOk<T> | ResultError<E>;
10
- export declare const createResultOk: <T>(data: T) => ResultOk<T>;
11
- export declare const createResultError: <E = unknown>(error: E) => ResultError<E>;
12
- export declare function ensureError(error: unknown): Error;
13
- /**
14
- * Executes the given function and converts it to a Result object.
15
- *
16
- * @example
17
- * const result = toResult(() => fs.writeFileSync('file.txt', 'Hello, World!'));
18
- */
19
- export declare const toResult: <T, E extends Error = Error>(fn: () => T) => Result<T, E>;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toResult = exports.createResultError = exports.createResultOk = void 0;
4
- exports.ensureError = ensureError;
5
- const createResultOk = (data) => ({
6
- ok: true,
7
- result: data,
8
- });
9
- exports.createResultOk = createResultOk;
10
- const createResultError = (error) => ({
11
- ok: false,
12
- error,
13
- });
14
- exports.createResultError = createResultError;
15
- function ensureError(error) {
16
- return error instanceof Error
17
- ? error
18
- : new Error('Error that was not an instance of Error was thrown, cause: ' + error);
19
- }
20
- /**
21
- * Executes the given function and converts it to a Result object.
22
- *
23
- * @example
24
- * const result = toResult(() => fs.writeFileSync('file.txt', 'Hello, World!'));
25
- */
26
- const toResult = (fn) => {
27
- try {
28
- return (0, exports.createResultOk)(fn());
29
- }
30
- catch (e) {
31
- const error = ensureError(e);
32
- return (0, exports.createResultError)(error);
33
- }
34
- };
35
- exports.toResult = toResult;
36
- //# sourceMappingURL=result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/lib/result.ts"],"names":[],"mappings":";;;AAcA,kCAIC;AAdM,MAAM,cAAc,GAAG,CAAI,IAAO,EAAe,EAAE,CAAC,CAAC;IAC3D,EAAE,EAAE,IAAI;IACR,MAAM,EAAE,IAAI;CACZ,CAAC,CAAC;AAHU,QAAA,cAAc,kBAGxB;AAEI,MAAM,iBAAiB,GAAG,CAAc,KAAQ,EAAkB,EAAE,CAAC,CAAC;IAC5E,EAAE,EAAE,KAAK;IACT,KAAK;CACL,CAAC,CAAC;AAHU,QAAA,iBAAiB,qBAG3B;AAEH,SAAgB,WAAW,CAAC,KAAc;IACzC,OAAO,KAAK,YAAY,KAAK;QAC5B,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,IAAI,KAAK,CAAC,6DAA6D,GAAG,KAAK,CAAC,CAAC;AACrF,CAAC;AAED;;;;;GAKG;AACI,MAAM,QAAQ,GAAG,CAA6B,EAAW,EAAgB,EAAE;IACjF,IAAI,CAAC;QACJ,OAAO,IAAA,sBAAc,EAAI,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAA,yBAAiB,EAAI,KAAU,CAAC,CAAC;IACzC,CAAC;AACF,CAAC,CAAC;AAPW,QAAA,QAAQ,YAOnB"}
@@ -1,50 +0,0 @@
1
- import type { IDisplayOptions, INodeProperties } from './Interfaces';
2
- export declare function updateDisplayOptions(displayOptions: IDisplayOptions, properties: INodeProperties[]): {
3
- displayOptions: IDisplayOptions;
4
- displayName: string;
5
- name: string;
6
- type: import("./Interfaces").NodePropertyTypes;
7
- typeOptions?: import("./Interfaces").INodePropertyTypeOptions;
8
- default: import("./Interfaces").NodeParameterValue | import("./Interfaces").INodeParameters | import("./Interfaces").INodeParameters[] | import("./Interfaces").NodeParameterValue[];
9
- description?: string;
10
- hint?: string;
11
- options?: Array<import("./Interfaces").INodePropertyOptions | INodeProperties | import("./Interfaces").INodePropertyCollection>;
12
- placeholder?: string;
13
- isNodeSetting?: boolean;
14
- noDataExpression?: boolean;
15
- required?: boolean;
16
- routing?: import("./Interfaces").INodePropertyRouting;
17
- modes?: import("./Interfaces").INodePropertyMode[];
18
- validateType?: import("./Interfaces").FieldType;
19
- ignoreValidationDuringExecution?: boolean;
20
- disabledOptions?: {
21
- show?: {
22
- [key: string]: Array<import("./Interfaces").NodeParameterValue | import("./Interfaces").DisplayCondition> | import("./Interfaces").NodeParameterValue[] | undefined;
23
- };
24
- };
25
- }[];
26
- export declare function randomInt(max: number): number;
27
- export declare function randomInt(min: number, max: number): number;
28
- type MutuallyExclusive<T, U> = (T & {
29
- [k in Exclude<keyof U, keyof T>]?: never;
30
- }) | (U & {
31
- [k in Exclude<keyof T, keyof U>]?: never;
32
- });
33
- type JSONParseOptions<T> = {
34
- acceptJSObject?: boolean;
35
- } & MutuallyExclusive<{
36
- errorMessage?: string;
37
- }, {
38
- fallbackValue?: T;
39
- }>;
40
- export declare const jsonParse: <T>(jsonString: string, options?: JSONParseOptions<T>) => T;
41
- type JSONStringifyOptions = {
42
- replaceCircularRefs?: boolean;
43
- };
44
- export declare const replaceCircularReferences: <T>(value: T, knownObjects?: WeakSet<object>) => T;
45
- export declare const jsonStringify: (obj: unknown, options?: JSONStringifyOptions) => string;
46
- /**
47
- * Checks if a value is an object with a specific key and provides a type guard for the key.
48
- */
49
- export declare function hasKey<T extends PropertyKey>(value: unknown, key: T): value is Record<T, unknown>;
50
- export {};
@@ -1,110 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.jsonStringify = exports.replaceCircularReferences = exports.jsonParse = void 0;
4
- exports.updateDisplayOptions = updateDisplayOptions;
5
- exports.randomInt = randomInt;
6
- exports.hasKey = hasKey;
7
- const esprima_next_1 = require("esprima-next");
8
- const lodash_1 = require("lodash");
9
- function updateDisplayOptions(displayOptions, properties) {
10
- return properties.map((nodeProperty) => {
11
- return {
12
- ...nodeProperty,
13
- displayOptions: (0, lodash_1.merge)({}, nodeProperty.displayOptions, displayOptions),
14
- };
15
- });
16
- }
17
- /**
18
- * Generates a random integer within a specified range.
19
- *
20
- * @param {number} min - The lower bound of the range. If `max` is not provided, this value is used as the upper bound and the lower bound is set to 0.
21
- * @param {number} [max] - The upper bound of the range, not inclusive.
22
- * @returns {number} A random integer within the specified range.
23
- */
24
- function randomInt(min, max) {
25
- if (max === undefined) {
26
- max = min;
27
- min = 0;
28
- }
29
- return min + (crypto.getRandomValues(new Uint32Array(1))[0] % (max - min));
30
- }
31
- const jsonParse = (jsonString, options) => {
32
- try {
33
- return JSON.parse(jsonString);
34
- }
35
- catch (error) {
36
- if (options?.acceptJSObject) {
37
- try {
38
- const jsonStringCleaned = parseJSObject(jsonString);
39
- return jsonStringCleaned;
40
- }
41
- catch (e) {
42
- // Ignore this error and return the original error or the fallback value
43
- }
44
- }
45
- if (options?.fallbackValue !== undefined) {
46
- if (options.fallbackValue instanceof Function) {
47
- return options.fallbackValue();
48
- }
49
- return options.fallbackValue;
50
- }
51
- else if (options?.errorMessage) {
52
- // TODO REFACTOR: Use ApplicationError from offical @fsai-flow/workflow repo
53
- throw new Error(options.errorMessage);
54
- }
55
- throw error;
56
- }
57
- };
58
- exports.jsonParse = jsonParse;
59
- const replaceCircularReferences = (value, knownObjects = new WeakSet()) => {
60
- if (typeof value !== 'object' || value === null || value instanceof RegExp)
61
- return value;
62
- if ('toJSON' in value && typeof value.toJSON === 'function')
63
- return value.toJSON();
64
- if (knownObjects.has(value))
65
- return '[Circular Reference]';
66
- knownObjects.add(value);
67
- const copy = (Array.isArray(value) ? [] : {});
68
- for (const key in value) {
69
- copy[key] = (0, exports.replaceCircularReferences)(value[key], knownObjects);
70
- }
71
- knownObjects.delete(value);
72
- return copy;
73
- };
74
- exports.replaceCircularReferences = replaceCircularReferences;
75
- const jsonStringify = (obj, options = {}) => {
76
- return JSON.stringify(options?.replaceCircularRefs ? (0, exports.replaceCircularReferences)(obj) : obj);
77
- };
78
- exports.jsonStringify = jsonStringify;
79
- function syntaxNodeToValue(expression) {
80
- switch (expression?.type) {
81
- case esprima_next_1.Syntax.ObjectExpression:
82
- return Object.fromEntries(expression.properties
83
- .filter((prop) => prop.type === esprima_next_1.Syntax.Property)
84
- .map(({ key, value }) => [syntaxNodeToValue(key), syntaxNodeToValue(value)]));
85
- case esprima_next_1.Syntax.Identifier:
86
- return expression.name;
87
- case esprima_next_1.Syntax.Literal:
88
- return expression.value;
89
- case esprima_next_1.Syntax.ArrayExpression:
90
- return expression.elements.map((exp) => syntaxNodeToValue(exp));
91
- default:
92
- return undefined;
93
- }
94
- }
95
- /**
96
- * Parse any JavaScript ObjectExpression, including:
97
- * - single quoted keys
98
- * - unquoted keys
99
- */
100
- function parseJSObject(objectAsString) {
101
- const jsExpression = (0, esprima_next_1.parse)(`(${objectAsString})`).body.find((node) => node.type === esprima_next_1.Syntax.ExpressionStatement && node.expression.type === esprima_next_1.Syntax.ObjectExpression);
102
- return syntaxNodeToValue(jsExpression?.expression);
103
- }
104
- /**
105
- * Checks if a value is an object with a specific key and provides a type guard for the key.
106
- */
107
- function hasKey(value, key) {
108
- return value !== null && typeof value === 'object' && value.hasOwnProperty(key);
109
- }
110
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";;;AASA,oDAUC;AAUD,8BAMC;AA6FD,wBAEC;AAlID,+CAKsB;AAEtB,mCAA+B;AAE/B,SAAgB,oBAAoB,CACnC,cAA+B,EAC/B,UAA6B;IAE7B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;QACtC,OAAO;YACN,GAAG,YAAY;YACf,cAAc,EAAE,IAAA,cAAK,EAAC,EAAE,EAAE,YAAY,CAAC,cAAc,EAAE,cAAc,CAAC;SACtE,CAAC;IACH,CAAC,CAAC,CAAC;AACJ,CAAC;AAGD;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,GAAW,EAAE,GAAY;IAClD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACvB,GAAG,GAAG,GAAG,CAAC;QACV,GAAG,GAAG,CAAC,CAAC;IACT,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;AAC5E,CAAC;AAUM,MAAM,SAAS,GAAG,CAAI,UAAkB,EAAE,OAA6B,EAAK,EAAE;IACpF,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAM,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACJ,MAAM,iBAAiB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;gBACpD,OAAO,iBAAsB,CAAC;YAC/B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,wEAAwE;YACzE,CAAC;QACF,CAAC;QACD,IAAI,OAAO,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,aAAa,YAAY,QAAQ,EAAE,CAAC;gBAC/C,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC;YAChC,CAAC;YACD,OAAO,OAAO,CAAC,aAAa,CAAC;QAC9B,CAAC;aAAM,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAClC,4EAA4E;YAC5E,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC,CAAC;AAxBW,QAAA,SAAS,aAwBpB;AAMK,MAAM,yBAAyB,GAAG,CAAI,KAAQ,EAAE,YAAY,GAAG,IAAI,OAAO,EAAE,EAAK,EAAE;IACzF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,YAAY,MAAM;QAAE,OAAO,KAAK,CAAC;IACzF,IAAI,QAAQ,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC,MAAM,EAAO,CAAC;IACxF,IAAI,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,sBAA2B,CAAC;IAChE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxB,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAM,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAA,iCAAyB,EAAC,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IACD,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;AAXW,QAAA,yBAAyB,6BAWpC;AAEK,MAAM,aAAa,GAAG,CAAC,GAAY,EAAE,UAAgC,EAAE,EAAU,EAAE;IACzF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAA,iCAAyB,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5F,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB;AAEF,SAAS,iBAAiB,CAAC,UAA8B;IACxD,QAAQ,UAAU,EAAE,IAAI,EAAE,CAAC;QAC1B,KAAK,qBAAM,CAAC,gBAAgB;YAC3B,OAAO,MAAM,CAAC,WAAW,CACxB,UAAU,CAAC,UAAU;iBACnB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAM,CAAC,QAAQ,CAAC;iBAC/C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAC7E,CAAC;QACH,KAAK,qBAAM,CAAC,UAAU;YACrB,OAAO,UAAU,CAAC,IAAI,CAAC;QACxB,KAAK,qBAAM,CAAC,OAAO;YAClB,OAAO,UAAU,CAAC,KAAK,CAAC;QACzB,KAAK,qBAAM,CAAC,eAAe;YAC1B,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa,CAAC,cAAsB;IAC5C,MAAM,YAAY,GAAG,IAAA,oBAAY,EAAC,IAAI,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CACjE,CAAC,IAAI,EAA+B,EAAE,CACrC,IAAI,CAAC,IAAI,KAAK,qBAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,qBAAM,CAAC,gBAAgB,CAC7F,CAAC;IAEF,OAAO,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAW,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAwB,KAAc,EAAE,GAAM;IACnE,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACjF,CAAC"}