@n8n/workflow-sdk 0.2.0
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.
- package/LICENSE.md +88 -0
- package/README.md +30 -0
- package/dist/ast-interpreter/errors.d.ts +19 -0
- package/dist/ast-interpreter/errors.js +64 -0
- package/dist/ast-interpreter/errors.js.map +1 -0
- package/dist/ast-interpreter/index.d.ts +5 -0
- package/dist/ast-interpreter/index.js +18 -0
- package/dist/ast-interpreter/index.js.map +1 -0
- package/dist/ast-interpreter/interpreter.d.ts +2 -0
- package/dist/ast-interpreter/interpreter.js +471 -0
- package/dist/ast-interpreter/interpreter.js.map +1 -0
- package/dist/ast-interpreter/parser.d.ts +2 -0
- package/dist/ast-interpreter/parser.js +61 -0
- package/dist/ast-interpreter/parser.js.map +1 -0
- package/dist/ast-interpreter/validators.d.ts +13 -0
- package/dist/ast-interpreter/validators.js +243 -0
- package/dist/ast-interpreter/validators.js.map +1 -0
- package/dist/build.tsbuildinfo +1 -0
- package/dist/cli/code-to-json.d.ts +1 -0
- package/dist/cli/code-to-json.js +51 -0
- package/dist/cli/code-to-json.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +25 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/json-to-code.d.ts +1 -0
- package/dist/cli/json-to-code.js +60 -0
- package/dist/cli/json-to-code.js.map +1 -0
- package/dist/cli/utils.d.ts +1 -0
- package/dist/cli/utils.js +16 -0
- package/dist/cli/utils.js.map +1 -0
- package/dist/codegen/code-generator.d.ts +14 -0
- package/dist/codegen/code-generator.js +807 -0
- package/dist/codegen/code-generator.js.map +1 -0
- package/dist/codegen/composite-builder.d.ts +3 -0
- package/dist/codegen/composite-builder.js +718 -0
- package/dist/codegen/composite-builder.js.map +1 -0
- package/dist/codegen/composite-handlers/build-utils.d.ts +24 -0
- package/dist/codegen/composite-handlers/build-utils.js +79 -0
- package/dist/codegen/composite-handlers/build-utils.js.map +1 -0
- package/dist/codegen/composite-handlers/error-handler.d.ts +6 -0
- package/dist/codegen/composite-handlers/error-handler.js +51 -0
- package/dist/codegen/composite-handlers/error-handler.js.map +1 -0
- package/dist/codegen/composite-handlers/if-else-handler.d.ts +5 -0
- package/dist/codegen/composite-handlers/if-else-handler.js +57 -0
- package/dist/codegen/composite-handlers/if-else-handler.js.map +1 -0
- package/dist/codegen/composite-handlers/index.d.ts +1 -0
- package/dist/codegen/composite-handlers/index.js +17 -0
- package/dist/codegen/composite-handlers/index.js.map +1 -0
- package/dist/codegen/composite-handlers/merge-handler.d.ts +5 -0
- package/dist/codegen/composite-handlers/merge-handler.js +25 -0
- package/dist/codegen/composite-handlers/merge-handler.js.map +1 -0
- package/dist/codegen/composite-handlers/sib-handler.d.ts +5 -0
- package/dist/codegen/composite-handlers/sib-handler.js +57 -0
- package/dist/codegen/composite-handlers/sib-handler.js.map +1 -0
- package/dist/codegen/composite-handlers/switch-case-handler.d.ts +5 -0
- package/dist/codegen/composite-handlers/switch-case-handler.js +80 -0
- package/dist/codegen/composite-handlers/switch-case-handler.js.map +1 -0
- package/dist/codegen/composite-tree.d.ts +81 -0
- package/dist/codegen/composite-tree.js +3 -0
- package/dist/codegen/composite-tree.js.map +1 -0
- package/dist/codegen/config-builder.d.ts +7 -0
- package/dist/codegen/config-builder.js +22 -0
- package/dist/codegen/config-builder.js.map +1 -0
- package/dist/codegen/constants.d.ts +5 -0
- package/dist/codegen/constants.js +30 -0
- package/dist/codegen/constants.js.map +1 -0
- package/dist/codegen/deferred-connections.d.ts +20 -0
- package/dist/codegen/deferred-connections.js +46 -0
- package/dist/codegen/deferred-connections.js.map +1 -0
- package/dist/codegen/execution-schema-jsdoc.d.ts +3 -0
- package/dist/codegen/execution-schema-jsdoc.js +109 -0
- package/dist/codegen/execution-schema-jsdoc.js.map +1 -0
- package/dist/codegen/execution-status.d.ts +9 -0
- package/dist/codegen/execution-status.js +42 -0
- package/dist/codegen/execution-status.js.map +1 -0
- package/dist/codegen/expression-annotator.d.ts +2 -0
- package/dist/codegen/expression-annotator.js +38 -0
- package/dist/codegen/expression-annotator.js.map +1 -0
- package/dist/codegen/graph-annotator.d.ts +2 -0
- package/dist/codegen/graph-annotator.js +107 -0
- package/dist/codegen/graph-annotator.js.map +1 -0
- package/dist/codegen/index.d.ts +20 -0
- package/dist/codegen/index.js +60 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/merge-pattern.d.ts +12 -0
- package/dist/codegen/merge-pattern.js +119 -0
- package/dist/codegen/merge-pattern.js.map +1 -0
- package/dist/codegen/node-type-utils.d.ts +4 -0
- package/dist/codegen/node-type-utils.js +38 -0
- package/dist/codegen/node-type-utils.js.map +1 -0
- package/dist/codegen/output-utils.d.ts +9 -0
- package/dist/codegen/output-utils.js +68 -0
- package/dist/codegen/output-utils.js.map +1 -0
- package/dist/codegen/parse-workflow-code.d.ts +3 -0
- package/dist/codegen/parse-workflow-code.js +438 -0
- package/dist/codegen/parse-workflow-code.js.map +1 -0
- package/dist/codegen/semantic-graph.d.ts +3 -0
- package/dist/codegen/semantic-graph.js +216 -0
- package/dist/codegen/semantic-graph.js.map +1 -0
- package/dist/codegen/semantic-registry.d.ts +18 -0
- package/dist/codegen/semantic-registry.js +102 -0
- package/dist/codegen/semantic-registry.js.map +1 -0
- package/dist/codegen/sib-merge-handler.d.ts +20 -0
- package/dist/codegen/sib-merge-handler.js +92 -0
- package/dist/codegen/sib-merge-handler.js.map +1 -0
- package/dist/codegen/string-utils.d.ts +6 -0
- package/dist/codegen/string-utils.js +38 -0
- package/dist/codegen/string-utils.js.map +1 -0
- package/dist/codegen/subnode-generator.d.ts +17 -0
- package/dist/codegen/subnode-generator.js +219 -0
- package/dist/codegen/subnode-generator.js.map +1 -0
- package/dist/codegen/types.d.ts +40 -0
- package/dist/codegen/types.js +16 -0
- package/dist/codegen/types.js.map +1 -0
- package/dist/codegen/variable-names.d.ts +8 -0
- package/dist/codegen/variable-names.js +121 -0
- package/dist/codegen/variable-names.js.map +1 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +14 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/node-types.d.ts +19 -0
- package/dist/constants/node-types.js +46 -0
- package/dist/constants/node-types.js.map +1 -0
- package/dist/expression/index.d.ts +6 -0
- package/dist/expression/index.js +181 -0
- package/dist/expression/index.js.map +1 -0
- package/dist/expression.d.ts +1 -0
- package/dist/expression.js +10 -0
- package/dist/expression.js.map +1 -0
- package/dist/generate-types/generate-node-defs-cli.d.ts +7 -0
- package/dist/generate-types/generate-node-defs-cli.js +99 -0
- package/dist/generate-types/generate-node-defs-cli.js.map +1 -0
- package/dist/generate-types/generate-types.d.ts +163 -0
- package/dist/generate-types/generate-types.js +2569 -0
- package/dist/generate-types/generate-types.js.map +1 -0
- package/dist/generate-types/generate-zod-schemas.d.ts +41 -0
- package/dist/generate-types/generate-zod-schemas.js +1129 -0
- package/dist/generate-types/generate-zod-schemas.js.map +1 -0
- package/dist/generate-types/index.d.ts +3 -0
- package/dist/generate-types/index.js +62 -0
- package/dist/generate-types/index.js.map +1 -0
- package/dist/generate-types/zod-helpers.d.ts +189 -0
- package/dist/generate-types/zod-helpers.js +76 -0
- package/dist/generate-types/zod-helpers.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +87 -0
- package/dist/index.js.map +1 -0
- package/dist/types/aliases.d.ts +5 -0
- package/dist/types/aliases.js +3 -0
- package/dist/types/aliases.js.map +1 -0
- package/dist/types/base.d.ts +395 -0
- package/dist/types/base.js +22 -0
- package/dist/types/base.js.map +1 -0
- package/dist/utils/code-helpers.d.ts +7 -0
- package/dist/utils/code-helpers.js +47 -0
- package/dist/utils/code-helpers.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/safe-access.d.ts +3 -0
- package/dist/utils/safe-access.js +21 -0
- package/dist/utils/safe-access.js.map +1 -0
- package/dist/utils/trigger-detection.d.ts +1 -0
- package/dist/utils/trigger-detection.js +17 -0
- package/dist/utils/trigger-detection.js.map +1 -0
- package/dist/validation/display-options.d.ts +18 -0
- package/dist/validation/display-options.js +194 -0
- package/dist/validation/display-options.js.map +1 -0
- package/dist/validation/index.d.ts +34 -0
- package/dist/validation/index.js +428 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/input-resolver.d.ts +2 -0
- package/dist/validation/input-resolver.js +23 -0
- package/dist/validation/input-resolver.js.map +1 -0
- package/dist/validation/resolve-schema.d.ts +14 -0
- package/dist/validation/resolve-schema.js +105 -0
- package/dist/validation/resolve-schema.js.map +1 -0
- package/dist/validation/schema-helpers.d.ts +164 -0
- package/dist/validation/schema-helpers.js +51 -0
- package/dist/validation/schema-helpers.js.map +1 -0
- package/dist/validation/schema-validator.d.ts +22 -0
- package/dist/validation/schema-validator.js +402 -0
- package/dist/validation/schema-validator.js.map +1 -0
- package/dist/validation/test-schema-setup.d.ts +2 -0
- package/dist/validation/test-schema-setup.js +108 -0
- package/dist/validation/test-schema-setup.js.map +1 -0
- package/dist/validation.d.ts +1 -0
- package/dist/validation.js +9 -0
- package/dist/validation.js.map +1 -0
- package/dist/workflow-builder/connection-utils.d.ts +4 -0
- package/dist/workflow-builder/connection-utils.js +42 -0
- package/dist/workflow-builder/connection-utils.js.map +1 -0
- package/dist/workflow-builder/constants.d.ts +3 -0
- package/dist/workflow-builder/constants.js +7 -0
- package/dist/workflow-builder/constants.js.map +1 -0
- package/dist/workflow-builder/control-flow-builders/if-else.d.ts +2 -0
- package/dist/workflow-builder/control-flow-builders/if-else.js +3 -0
- package/dist/workflow-builder/control-flow-builders/if-else.js.map +1 -0
- package/dist/workflow-builder/control-flow-builders/next-batch.d.ts +2 -0
- package/dist/workflow-builder/control-flow-builders/next-batch.js +7 -0
- package/dist/workflow-builder/control-flow-builders/next-batch.js.map +1 -0
- package/dist/workflow-builder/control-flow-builders/split-in-batches.d.ts +27 -0
- package/dist/workflow-builder/control-flow-builders/split-in-batches.js +268 -0
- package/dist/workflow-builder/control-flow-builders/split-in-batches.js.map +1 -0
- package/dist/workflow-builder/control-flow-builders/switch-case.d.ts +2 -0
- package/dist/workflow-builder/control-flow-builders/switch-case.js +3 -0
- package/dist/workflow-builder/control-flow-builders/switch-case.js.map +1 -0
- package/dist/workflow-builder/layout-utils.d.ts +2 -0
- package/dist/workflow-builder/layout-utils.js +54 -0
- package/dist/workflow-builder/layout-utils.js.map +1 -0
- package/dist/workflow-builder/node-builders/index.d.ts +2 -0
- package/dist/workflow-builder/node-builders/index.js +29 -0
- package/dist/workflow-builder/node-builders/index.js.map +1 -0
- package/dist/workflow-builder/node-builders/node-builder.d.ts +26 -0
- package/dist/workflow-builder/node-builders/node-builder.js +596 -0
- package/dist/workflow-builder/node-builders/node-builder.js.map +1 -0
- package/dist/workflow-builder/node-builders/subnode-builders.d.ts +25 -0
- package/dist/workflow-builder/node-builders/subnode-builders.js +110 -0
- package/dist/workflow-builder/node-builders/subnode-builders.js.map +1 -0
- package/dist/workflow-builder/pin-data-utils.d.ts +5 -0
- package/dist/workflow-builder/pin-data-utils.js +54 -0
- package/dist/workflow-builder/pin-data-utils.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/branch-handler-utils.d.ts +9 -0
- package/dist/workflow-builder/plugins/composite-handlers/branch-handler-utils.js +162 -0
- package/dist/workflow-builder/plugins/composite-handlers/branch-handler-utils.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.d.ts +5 -0
- package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js +83 -0
- package/dist/workflow-builder/plugins/composite-handlers/if-else-handler.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/index.d.ts +3 -0
- package/dist/workflow-builder/plugins/composite-handlers/index.js +10 -0
- package/dist/workflow-builder/plugins/composite-handlers/index.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/split-in-batches-handler.d.ts +15 -0
- package/dist/workflow-builder/plugins/composite-handlers/split-in-batches-handler.js +216 -0
- package/dist/workflow-builder/plugins/composite-handlers/split-in-batches-handler.js.map +1 -0
- package/dist/workflow-builder/plugins/composite-handlers/switch-case-handler.d.ts +5 -0
- package/dist/workflow-builder/plugins/composite-handlers/switch-case-handler.js +91 -0
- package/dist/workflow-builder/plugins/composite-handlers/switch-case-handler.js.map +1 -0
- package/dist/workflow-builder/plugins/defaults.d.ts +2 -0
- package/dist/workflow-builder/plugins/defaults.js +53 -0
- package/dist/workflow-builder/plugins/defaults.js.map +1 -0
- package/dist/workflow-builder/plugins/index.d.ts +3 -0
- package/dist/workflow-builder/plugins/index.js +9 -0
- package/dist/workflow-builder/plugins/index.js.map +1 -0
- package/dist/workflow-builder/plugins/registry.d.ts +22 -0
- package/dist/workflow-builder/plugins/registry.js +98 -0
- package/dist/workflow-builder/plugins/registry.js.map +1 -0
- package/dist/workflow-builder/plugins/serializers/index.d.ts +1 -0
- package/dist/workflow-builder/plugins/serializers/index.js +6 -0
- package/dist/workflow-builder/plugins/serializers/index.js.map +1 -0
- package/dist/workflow-builder/plugins/serializers/json-serializer.d.ts +3 -0
- package/dist/workflow-builder/plugins/serializers/json-serializer.js +140 -0
- package/dist/workflow-builder/plugins/serializers/json-serializer.js.map +1 -0
- package/dist/workflow-builder/plugins/types.d.ts +76 -0
- package/dist/workflow-builder/plugins/types.js +29 -0
- package/dist/workflow-builder/plugins/types.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/agent-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/agent-validator.js +45 -0
- package/dist/workflow-builder/plugins/validators/agent-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/chain-llm-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/chain-llm-validator.js +39 -0
- package/dist/workflow-builder/plugins/validators/chain-llm-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/date-method-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/date-method-validator.js +28 -0
- package/dist/workflow-builder/plugins/validators/date-method-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/disconnected-node-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js +142 -0
- package/dist/workflow-builder/plugins/validators/disconnected-node-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/expression-path-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/expression-path-validator.js +155 -0
- package/dist/workflow-builder/plugins/validators/expression-path-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/expression-prefix-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/expression-prefix-validator.js +32 -0
- package/dist/workflow-builder/plugins/validators/expression-prefix-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/from-ai-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/from-ai-validator.js +30 -0
- package/dist/workflow-builder/plugins/validators/from-ai-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/http-request-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/http-request-validator.js +55 -0
- package/dist/workflow-builder/plugins/validators/http-request-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/index.d.ts +15 -0
- package/dist/workflow-builder/plugins/validators/index.js +34 -0
- package/dist/workflow-builder/plugins/validators/index.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/max-nodes-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/max-nodes-validator.js +40 -0
- package/dist/workflow-builder/plugins/validators/max-nodes-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/merge-node-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/merge-node-validator.js +54 -0
- package/dist/workflow-builder/plugins/validators/merge-node-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/missing-trigger-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/missing-trigger-validator.js +27 -0
- package/dist/workflow-builder/plugins/validators/missing-trigger-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/no-nodes-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/no-nodes-validator.js +23 -0
- package/dist/workflow-builder/plugins/validators/no-nodes-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/set-node-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/set-node-validator.js +41 -0
- package/dist/workflow-builder/plugins/validators/set-node-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/subnode-connection-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/subnode-connection-validator.js +64 -0
- package/dist/workflow-builder/plugins/validators/subnode-connection-validator.js.map +1 -0
- package/dist/workflow-builder/plugins/validators/tool-node-validator.d.ts +2 -0
- package/dist/workflow-builder/plugins/validators/tool-node-validator.js +37 -0
- package/dist/workflow-builder/plugins/validators/tool-node-validator.js.map +1 -0
- package/dist/workflow-builder/string-utils.d.ts +9 -0
- package/dist/workflow-builder/string-utils.js +237 -0
- package/dist/workflow-builder/string-utils.js.map +1 -0
- package/dist/workflow-builder/subnode-utils.d.ts +2 -0
- package/dist/workflow-builder/subnode-utils.js +180 -0
- package/dist/workflow-builder/subnode-utils.js.map +1 -0
- package/dist/workflow-builder/type-guards.d.ts +15 -0
- package/dist/workflow-builder/type-guards.js +48 -0
- package/dist/workflow-builder/type-guards.js.map +1 -0
- package/dist/workflow-builder/validation-helpers.d.ts +27 -0
- package/dist/workflow-builder/validation-helpers.js +195 -0
- package/dist/workflow-builder/validation-helpers.js.map +1 -0
- package/dist/workflow-builder/workflow-import.d.ts +15 -0
- package/dist/workflow-builder/workflow-import.js +102 -0
- package/dist/workflow-builder/workflow-import.js.map +1 -0
- package/dist/workflow-builder.d.ts +2 -0
- package/dist/workflow-builder.js +636 -0
- package/dist/workflow-builder.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RESERVED_KEYWORDS = void 0;
|
|
4
|
+
exports.toVarName = toVarName;
|
|
5
|
+
exports.getVarName = getVarName;
|
|
6
|
+
exports.getUniqueVarName = getUniqueVarName;
|
|
7
|
+
exports.RESERVED_KEYWORDS = new Set([
|
|
8
|
+
'break',
|
|
9
|
+
'case',
|
|
10
|
+
'catch',
|
|
11
|
+
'class',
|
|
12
|
+
'const',
|
|
13
|
+
'continue',
|
|
14
|
+
'debugger',
|
|
15
|
+
'default',
|
|
16
|
+
'delete',
|
|
17
|
+
'do',
|
|
18
|
+
'else',
|
|
19
|
+
'export',
|
|
20
|
+
'extends',
|
|
21
|
+
'finally',
|
|
22
|
+
'for',
|
|
23
|
+
'function',
|
|
24
|
+
'if',
|
|
25
|
+
'import',
|
|
26
|
+
'in',
|
|
27
|
+
'instanceof',
|
|
28
|
+
'let',
|
|
29
|
+
'new',
|
|
30
|
+
'return',
|
|
31
|
+
'static',
|
|
32
|
+
'super',
|
|
33
|
+
'switch',
|
|
34
|
+
'this',
|
|
35
|
+
'throw',
|
|
36
|
+
'try',
|
|
37
|
+
'typeof',
|
|
38
|
+
'var',
|
|
39
|
+
'void',
|
|
40
|
+
'while',
|
|
41
|
+
'with',
|
|
42
|
+
'yield',
|
|
43
|
+
'null',
|
|
44
|
+
'true',
|
|
45
|
+
'false',
|
|
46
|
+
'undefined',
|
|
47
|
+
'workflow',
|
|
48
|
+
'trigger',
|
|
49
|
+
'node',
|
|
50
|
+
'merge',
|
|
51
|
+
'ifElse',
|
|
52
|
+
'switchCase',
|
|
53
|
+
'splitInBatches',
|
|
54
|
+
'sticky',
|
|
55
|
+
'languageModel',
|
|
56
|
+
'tool',
|
|
57
|
+
'memory',
|
|
58
|
+
'outputParser',
|
|
59
|
+
'textSplitter',
|
|
60
|
+
'embeddings',
|
|
61
|
+
'vectorStore',
|
|
62
|
+
'retriever',
|
|
63
|
+
'document',
|
|
64
|
+
'eval',
|
|
65
|
+
'Function',
|
|
66
|
+
'require',
|
|
67
|
+
'process',
|
|
68
|
+
'global',
|
|
69
|
+
'globalThis',
|
|
70
|
+
'window',
|
|
71
|
+
'setTimeout',
|
|
72
|
+
'setInterval',
|
|
73
|
+
'setImmediate',
|
|
74
|
+
'clearTimeout',
|
|
75
|
+
'clearInterval',
|
|
76
|
+
'clearImmediate',
|
|
77
|
+
'module',
|
|
78
|
+
'exports',
|
|
79
|
+
'Buffer',
|
|
80
|
+
'Reflect',
|
|
81
|
+
'Proxy',
|
|
82
|
+
]);
|
|
83
|
+
function toVarName(nodeName) {
|
|
84
|
+
let varName = nodeName
|
|
85
|
+
.replace(/[^a-zA-Z0-9]/g, '_')
|
|
86
|
+
.replace(/_+/g, '_')
|
|
87
|
+
.replace(/_$/g, '')
|
|
88
|
+
.replace(/^([A-Z])/, (c) => c.toLowerCase());
|
|
89
|
+
if (/^\d/.test(varName)) {
|
|
90
|
+
varName = '_' + varName;
|
|
91
|
+
}
|
|
92
|
+
if (/^_[a-zA-Z]/.test(varName)) {
|
|
93
|
+
varName = varName.slice(1);
|
|
94
|
+
}
|
|
95
|
+
if (exports.RESERVED_KEYWORDS.has(varName)) {
|
|
96
|
+
varName = varName + '_node';
|
|
97
|
+
}
|
|
98
|
+
return varName;
|
|
99
|
+
}
|
|
100
|
+
function getVarName(nodeName, ctx) {
|
|
101
|
+
if (ctx.nodeNameToVarName.has(nodeName)) {
|
|
102
|
+
return ctx.nodeNameToVarName.get(nodeName);
|
|
103
|
+
}
|
|
104
|
+
return toVarName(nodeName);
|
|
105
|
+
}
|
|
106
|
+
function getUniqueVarName(nodeName, ctx) {
|
|
107
|
+
if (ctx.nodeNameToVarName.has(nodeName)) {
|
|
108
|
+
return ctx.nodeNameToVarName.get(nodeName);
|
|
109
|
+
}
|
|
110
|
+
const baseVarName = toVarName(nodeName);
|
|
111
|
+
let varName = baseVarName;
|
|
112
|
+
let counter = 1;
|
|
113
|
+
while (ctx.usedVarNames.has(varName)) {
|
|
114
|
+
varName = `${baseVarName}${counter}`;
|
|
115
|
+
counter++;
|
|
116
|
+
}
|
|
117
|
+
ctx.usedVarNames.add(varName);
|
|
118
|
+
ctx.nodeNameToVarName.set(nodeName, varName);
|
|
119
|
+
return varName;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=variable-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variable-names.js","sourceRoot":"","sources":["../../src/codegen/variable-names.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NODE_TYPES, type NodeTypeValue, isIfNodeType, isSwitchNodeType, isMergeNodeType, isStickyNoteType, isSplitInBatchesType, isHttpRequestType, isWebhookType, isDataTableType, } from './node-types';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isDataTableType = exports.isWebhookType = exports.isHttpRequestType = exports.isSplitInBatchesType = exports.isStickyNoteType = exports.isMergeNodeType = exports.isSwitchNodeType = exports.isIfNodeType = exports.NODE_TYPES = void 0;
|
|
4
|
+
var node_types_1 = require("./node-types");
|
|
5
|
+
Object.defineProperty(exports, "NODE_TYPES", { enumerable: true, get: function () { return node_types_1.NODE_TYPES; } });
|
|
6
|
+
Object.defineProperty(exports, "isIfNodeType", { enumerable: true, get: function () { return node_types_1.isIfNodeType; } });
|
|
7
|
+
Object.defineProperty(exports, "isSwitchNodeType", { enumerable: true, get: function () { return node_types_1.isSwitchNodeType; } });
|
|
8
|
+
Object.defineProperty(exports, "isMergeNodeType", { enumerable: true, get: function () { return node_types_1.isMergeNodeType; } });
|
|
9
|
+
Object.defineProperty(exports, "isStickyNoteType", { enumerable: true, get: function () { return node_types_1.isStickyNoteType; } });
|
|
10
|
+
Object.defineProperty(exports, "isSplitInBatchesType", { enumerable: true, get: function () { return node_types_1.isSplitInBatchesType; } });
|
|
11
|
+
Object.defineProperty(exports, "isHttpRequestType", { enumerable: true, get: function () { return node_types_1.isHttpRequestType; } });
|
|
12
|
+
Object.defineProperty(exports, "isWebhookType", { enumerable: true, get: function () { return node_types_1.isWebhookType; } });
|
|
13
|
+
Object.defineProperty(exports, "isDataTableType", { enumerable: true, get: function () { return node_types_1.isDataTableType; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":";;;AAAA,2CAWsB;AAVrB,wGAAA,UAAU,OAAA;AAEV,0GAAA,YAAY,OAAA;AACZ,8GAAA,gBAAgB,OAAA;AAChB,6GAAA,eAAe,OAAA;AACf,8GAAA,gBAAgB,OAAA;AAChB,kHAAA,oBAAoB,OAAA;AACpB,+GAAA,iBAAiB,OAAA;AACjB,2GAAA,aAAa,OAAA;AACb,6GAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const NODE_TYPES: {
|
|
2
|
+
readonly IF: "n8n-nodes-base.if";
|
|
3
|
+
readonly SWITCH: "n8n-nodes-base.switch";
|
|
4
|
+
readonly MERGE: "n8n-nodes-base.merge";
|
|
5
|
+
readonly STICKY_NOTE: "n8n-nodes-base.stickyNote";
|
|
6
|
+
readonly SPLIT_IN_BATCHES: "n8n-nodes-base.splitInBatches";
|
|
7
|
+
readonly HTTP_REQUEST: "n8n-nodes-base.httpRequest";
|
|
8
|
+
readonly WEBHOOK: "n8n-nodes-base.webhook";
|
|
9
|
+
readonly DATA_TABLE: "n8n-nodes-base.dataTable";
|
|
10
|
+
};
|
|
11
|
+
export type NodeTypeValue = (typeof NODE_TYPES)[keyof typeof NODE_TYPES];
|
|
12
|
+
export declare function isIfNodeType(type: string): type is typeof NODE_TYPES.IF;
|
|
13
|
+
export declare function isSwitchNodeType(type: string): type is typeof NODE_TYPES.SWITCH;
|
|
14
|
+
export declare function isMergeNodeType(type: string): type is typeof NODE_TYPES.MERGE;
|
|
15
|
+
export declare function isStickyNoteType(type: string): type is typeof NODE_TYPES.STICKY_NOTE;
|
|
16
|
+
export declare function isSplitInBatchesType(type: string): type is typeof NODE_TYPES.SPLIT_IN_BATCHES;
|
|
17
|
+
export declare function isHttpRequestType(type: string): type is typeof NODE_TYPES.HTTP_REQUEST;
|
|
18
|
+
export declare function isWebhookType(type: string): type is typeof NODE_TYPES.WEBHOOK;
|
|
19
|
+
export declare function isDataTableType(type: string): type is typeof NODE_TYPES.DATA_TABLE;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NODE_TYPES = void 0;
|
|
4
|
+
exports.isIfNodeType = isIfNodeType;
|
|
5
|
+
exports.isSwitchNodeType = isSwitchNodeType;
|
|
6
|
+
exports.isMergeNodeType = isMergeNodeType;
|
|
7
|
+
exports.isStickyNoteType = isStickyNoteType;
|
|
8
|
+
exports.isSplitInBatchesType = isSplitInBatchesType;
|
|
9
|
+
exports.isHttpRequestType = isHttpRequestType;
|
|
10
|
+
exports.isWebhookType = isWebhookType;
|
|
11
|
+
exports.isDataTableType = isDataTableType;
|
|
12
|
+
exports.NODE_TYPES = {
|
|
13
|
+
IF: 'n8n-nodes-base.if',
|
|
14
|
+
SWITCH: 'n8n-nodes-base.switch',
|
|
15
|
+
MERGE: 'n8n-nodes-base.merge',
|
|
16
|
+
STICKY_NOTE: 'n8n-nodes-base.stickyNote',
|
|
17
|
+
SPLIT_IN_BATCHES: 'n8n-nodes-base.splitInBatches',
|
|
18
|
+
HTTP_REQUEST: 'n8n-nodes-base.httpRequest',
|
|
19
|
+
WEBHOOK: 'n8n-nodes-base.webhook',
|
|
20
|
+
DATA_TABLE: 'n8n-nodes-base.dataTable',
|
|
21
|
+
};
|
|
22
|
+
function isIfNodeType(type) {
|
|
23
|
+
return type === exports.NODE_TYPES.IF;
|
|
24
|
+
}
|
|
25
|
+
function isSwitchNodeType(type) {
|
|
26
|
+
return type === exports.NODE_TYPES.SWITCH;
|
|
27
|
+
}
|
|
28
|
+
function isMergeNodeType(type) {
|
|
29
|
+
return type === exports.NODE_TYPES.MERGE;
|
|
30
|
+
}
|
|
31
|
+
function isStickyNoteType(type) {
|
|
32
|
+
return type === exports.NODE_TYPES.STICKY_NOTE;
|
|
33
|
+
}
|
|
34
|
+
function isSplitInBatchesType(type) {
|
|
35
|
+
return type === exports.NODE_TYPES.SPLIT_IN_BATCHES;
|
|
36
|
+
}
|
|
37
|
+
function isHttpRequestType(type) {
|
|
38
|
+
return type === exports.NODE_TYPES.HTTP_REQUEST;
|
|
39
|
+
}
|
|
40
|
+
function isWebhookType(type) {
|
|
41
|
+
return type === exports.NODE_TYPES.WEBHOOK;
|
|
42
|
+
}
|
|
43
|
+
function isDataTableType(type) {
|
|
44
|
+
return type === exports.NODE_TYPES.DATA_TABLE;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=node-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-types.js","sourceRoot":"","sources":["../../src/constants/node-types.ts"],"names":[],"mappings":";;;AAuBA,oCAEC;AAKD,4CAEC;AAKD,0CAEC;AAKD,4CAEC;AAKD,oDAEC;AAKD,8CAEC;AAKD,sCAEC;AAKD,0CAEC;AAtEY,QAAA,UAAU,GAAG;IACzB,EAAE,EAAE,mBAAmB;IACvB,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EAAE,2BAA2B;IACxC,gBAAgB,EAAE,+BAA+B;IACjD,YAAY,EAAE,4BAA4B;IAC1C,OAAO,EAAE,wBAAwB;IACjC,UAAU,EAAE,0BAA0B;CAC7B,CAAC;AAUX,SAAgB,YAAY,CAAC,IAAY;IACxC,OAAO,IAAI,KAAK,kBAAU,CAAC,EAAE,CAAC;AAC/B,CAAC;AAKD,SAAgB,gBAAgB,CAAC,IAAY;IAC5C,OAAO,IAAI,KAAK,kBAAU,CAAC,MAAM,CAAC;AACnC,CAAC;AAKD,SAAgB,eAAe,CAAC,IAAY;IAC3C,OAAO,IAAI,KAAK,kBAAU,CAAC,KAAK,CAAC;AAClC,CAAC;AAKD,SAAgB,gBAAgB,CAAC,IAAY;IAC5C,OAAO,IAAI,KAAK,kBAAU,CAAC,WAAW,CAAC;AACxC,CAAC;AAKD,SAAgB,oBAAoB,CAAC,IAAY;IAChD,OAAO,IAAI,KAAK,kBAAU,CAAC,gBAAgB,CAAC;AAC7C,CAAC;AAKD,SAAgB,iBAAiB,CAAC,IAAY;IAC7C,OAAO,IAAI,KAAK,kBAAU,CAAC,YAAY,CAAC;AACzC,CAAC;AAKD,SAAgB,aAAa,CAAC,IAAY;IACzC,OAAO,IAAI,KAAK,kBAAU,CAAC,OAAO,CAAC;AACpC,CAAC;AAKD,SAAgB,eAAe,CAAC,IAAY;IAC3C,OAAO,IAAI,KAAK,kBAAU,CAAC,UAAU,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Expression, FromAIArgumentType } from '../types/base';
|
|
2
|
+
export declare function parseExpression(expr: string): string;
|
|
3
|
+
export declare function isExpression(value: unknown): boolean;
|
|
4
|
+
export declare function serializeExpression<T>(fn: Expression<T>): string;
|
|
5
|
+
export declare function expr(expression: string): string;
|
|
6
|
+
export declare function createFromAIExpression(key: string, description?: string, type?: FromAIArgumentType, defaultValue?: string | number | boolean | object): string;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseExpression = parseExpression;
|
|
4
|
+
exports.isExpression = isExpression;
|
|
5
|
+
exports.serializeExpression = serializeExpression;
|
|
6
|
+
exports.expr = expr;
|
|
7
|
+
exports.createFromAIExpression = createFromAIExpression;
|
|
8
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
9
|
+
function parseExpression(expr) {
|
|
10
|
+
const match = expr.match(/^=\{\{\s*([\s\S]*?)\s*\}\}$/);
|
|
11
|
+
return match ? match[1] : expr;
|
|
12
|
+
}
|
|
13
|
+
function isExpression(value) {
|
|
14
|
+
return typeof value === 'string' && value.startsWith('={{') && value.endsWith('}}');
|
|
15
|
+
}
|
|
16
|
+
function createExpressionProxy(path = []) {
|
|
17
|
+
const handler = {
|
|
18
|
+
get(_target, prop) {
|
|
19
|
+
if (prop === Symbol.toPrimitive || prop === 'valueOf' || prop === 'toString') {
|
|
20
|
+
return () => buildPath(path);
|
|
21
|
+
}
|
|
22
|
+
if (prop === '__path__') {
|
|
23
|
+
return path;
|
|
24
|
+
}
|
|
25
|
+
if (typeof prop === 'symbol') {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
return createExpressionProxy([...path, String(prop)]);
|
|
29
|
+
},
|
|
30
|
+
apply(_target, _thisArg, args) {
|
|
31
|
+
const lastPart = path[path.length - 1];
|
|
32
|
+
const parentPath = path.slice(0, -1);
|
|
33
|
+
if (lastPart === 'keys' && parentPath.join('.') === 'binary') {
|
|
34
|
+
return { __path__: ['__SPECIAL__', 'Object.keys($binary)'] };
|
|
35
|
+
}
|
|
36
|
+
if (path.length === 1 && path[0] === '$') {
|
|
37
|
+
const nodeName = String(args[0]);
|
|
38
|
+
return createExpressionProxy(['$', `('${nodeName}')`, 'item']);
|
|
39
|
+
}
|
|
40
|
+
const argsStr = args.map((a) => JSON.stringify(a)).join(', ');
|
|
41
|
+
return createExpressionProxy([...parentPath, `${lastPart}(${argsStr})`]);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
return new Proxy(function () { }, handler);
|
|
45
|
+
}
|
|
46
|
+
const EXPRESSION_ROOT_MAPPINGS = {
|
|
47
|
+
json: '$json',
|
|
48
|
+
binary: '$binary',
|
|
49
|
+
env: '$env',
|
|
50
|
+
vars: '$vars',
|
|
51
|
+
secrets: '$secrets',
|
|
52
|
+
itemIndex: '$itemIndex',
|
|
53
|
+
runIndex: '$runIndex',
|
|
54
|
+
now: '$now',
|
|
55
|
+
today: '$today',
|
|
56
|
+
execution: '$execution',
|
|
57
|
+
workflow: '$workflow',
|
|
58
|
+
input: '$input',
|
|
59
|
+
$: '$',
|
|
60
|
+
};
|
|
61
|
+
function buildPath(path) {
|
|
62
|
+
if (path.length === 0)
|
|
63
|
+
return '';
|
|
64
|
+
if (path[0] === '__SPECIAL__') {
|
|
65
|
+
return path[1];
|
|
66
|
+
}
|
|
67
|
+
let result = '';
|
|
68
|
+
for (let i = 0; i < path.length; i++) {
|
|
69
|
+
const part = path[i];
|
|
70
|
+
if (i === 0) {
|
|
71
|
+
result = EXPRESSION_ROOT_MAPPINGS[part] ?? part;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if (part.startsWith('(')) {
|
|
75
|
+
result += part;
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
if (part.includes('(')) {
|
|
79
|
+
result += '.' + part;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
result += '.' + part;
|
|
83
|
+
}
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
function serializeExpression(fn) {
|
|
87
|
+
const proxy = createExpressionProxy([]);
|
|
88
|
+
const result = fn(proxy);
|
|
89
|
+
let exprPath;
|
|
90
|
+
if (result && typeof result === 'object' && '__path__' in result) {
|
|
91
|
+
const path = result.__path__;
|
|
92
|
+
exprPath = buildPath(path);
|
|
93
|
+
}
|
|
94
|
+
else if (typeof result === 'string') {
|
|
95
|
+
exprPath = String(result);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
exprPath = String(result);
|
|
99
|
+
}
|
|
100
|
+
return `={{ ${exprPath} }}`;
|
|
101
|
+
}
|
|
102
|
+
function isPlaceholderLike(value) {
|
|
103
|
+
return (typeof value === 'object' &&
|
|
104
|
+
value !== null &&
|
|
105
|
+
'__placeholder' in value &&
|
|
106
|
+
value.__placeholder === true &&
|
|
107
|
+
'hint' in value &&
|
|
108
|
+
typeof value.hint === 'string');
|
|
109
|
+
}
|
|
110
|
+
function isNewCredentialLike(value) {
|
|
111
|
+
return (typeof value === 'object' &&
|
|
112
|
+
value !== null &&
|
|
113
|
+
'__newCredential' in value &&
|
|
114
|
+
value.__newCredential === true &&
|
|
115
|
+
'name' in value &&
|
|
116
|
+
typeof value.name === 'string');
|
|
117
|
+
}
|
|
118
|
+
function expr(expression) {
|
|
119
|
+
if (typeof expression !== 'string') {
|
|
120
|
+
const value = expression;
|
|
121
|
+
if (isPlaceholderLike(value)) {
|
|
122
|
+
throw new Error(`expr(placeholder('${value.hint}')) is invalid. Use placeholder() directly as the value, not inside expr().`);
|
|
123
|
+
}
|
|
124
|
+
if (isNewCredentialLike(value)) {
|
|
125
|
+
throw new Error(`expr(newCredential('${value.name}')) is invalid. Use newCredential() directly in the credentials config, not inside expr().`);
|
|
126
|
+
}
|
|
127
|
+
throw new Error(`expr() requires a string argument, but received ${typeof value}.`);
|
|
128
|
+
}
|
|
129
|
+
const normalized = expression.startsWith('=') ? expression.slice(1) : expression;
|
|
130
|
+
return '=' + normalized;
|
|
131
|
+
}
|
|
132
|
+
function sanitizeFromAIKey(key) {
|
|
133
|
+
let sanitized = key.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
134
|
+
sanitized = sanitized.replace(/_+/g, '_');
|
|
135
|
+
sanitized = sanitized.replace(/^_+|_+$/g, '');
|
|
136
|
+
sanitized = sanitized.slice(0, 64);
|
|
137
|
+
return sanitized || 'param';
|
|
138
|
+
}
|
|
139
|
+
function escapeForQuote(str, quoteChar) {
|
|
140
|
+
return str.replace(/\\/g, '\\\\').replace(new RegExp(quoteChar, 'g'), `\\${quoteChar}`);
|
|
141
|
+
}
|
|
142
|
+
function getBestQuoteChar(str) {
|
|
143
|
+
const hasSingleQuote = str.includes("'");
|
|
144
|
+
const hasDoubleQuote = str.includes('"');
|
|
145
|
+
if (!hasSingleQuote)
|
|
146
|
+
return "'";
|
|
147
|
+
if (!hasDoubleQuote)
|
|
148
|
+
return '"';
|
|
149
|
+
return '`';
|
|
150
|
+
}
|
|
151
|
+
function escapeArg(arg) {
|
|
152
|
+
const quoteChar = getBestQuoteChar(arg);
|
|
153
|
+
return `${quoteChar}${escapeForQuote(arg, quoteChar)}${quoteChar}`;
|
|
154
|
+
}
|
|
155
|
+
function serializeDefaultValue(value) {
|
|
156
|
+
if (typeof value === 'string') {
|
|
157
|
+
return escapeArg(value);
|
|
158
|
+
}
|
|
159
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
160
|
+
return String(value);
|
|
161
|
+
}
|
|
162
|
+
return JSON.stringify(value);
|
|
163
|
+
}
|
|
164
|
+
function createFromAIExpression(key, description, type = 'string', defaultValue) {
|
|
165
|
+
const args = [];
|
|
166
|
+
const marker = n8n_workflow_1.FROM_AI_AUTO_GENERATED_MARKER;
|
|
167
|
+
const sanitizedKey = sanitizeFromAIKey(key);
|
|
168
|
+
args.push(escapeArg(sanitizedKey));
|
|
169
|
+
if (description !== undefined || type !== 'string' || defaultValue !== undefined) {
|
|
170
|
+
const desc = description ?? '';
|
|
171
|
+
args.push(escapeArg(desc));
|
|
172
|
+
}
|
|
173
|
+
if (type !== 'string' || defaultValue !== undefined) {
|
|
174
|
+
args.push(escapeArg(type));
|
|
175
|
+
}
|
|
176
|
+
if (defaultValue !== undefined) {
|
|
177
|
+
args.push(serializeDefaultValue(defaultValue));
|
|
178
|
+
}
|
|
179
|
+
return `={{ ${marker} $fromAI(${args.join(', ')}) }}`;
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expression/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { serializeExpression, parseExpression, isExpression, expr, createFromAIExpression, } from './expression/index';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createFromAIExpression = exports.expr = exports.isExpression = exports.parseExpression = exports.serializeExpression = void 0;
|
|
4
|
+
var index_1 = require("./expression/index");
|
|
5
|
+
Object.defineProperty(exports, "serializeExpression", { enumerable: true, get: function () { return index_1.serializeExpression; } });
|
|
6
|
+
Object.defineProperty(exports, "parseExpression", { enumerable: true, get: function () { return index_1.parseExpression; } });
|
|
7
|
+
Object.defineProperty(exports, "isExpression", { enumerable: true, get: function () { return index_1.isExpression; } });
|
|
8
|
+
Object.defineProperty(exports, "expr", { enumerable: true, get: function () { return index_1.expr; } });
|
|
9
|
+
Object.defineProperty(exports, "createFromAIExpression", { enumerable: true, get: function () { return index_1.createFromAIExpression; } });
|
|
10
|
+
//# sourceMappingURL=expression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":";;;AACA,4CAM4B;AAL3B,4GAAA,mBAAmB,OAAA;AACnB,wGAAA,eAAe,OAAA;AACf,qGAAA,YAAY,OAAA;AACZ,6FAAA,IAAI,OAAA;AACJ,+GAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface GenerateNodeDefinitionsOptions {
|
|
2
|
+
nodesJsonPath: string;
|
|
3
|
+
outputDir: string;
|
|
4
|
+
packageName?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function computeInputHash(content: string, sdkVersion: string): string;
|
|
7
|
+
export declare function generateNodeDefinitions(options: GenerateNodeDefinitionsOptions): Promise<void>;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.computeInputHash = computeInputHash;
|
|
37
|
+
exports.generateNodeDefinitions = generateNodeDefinitions;
|
|
38
|
+
const crypto_1 = require("crypto");
|
|
39
|
+
const fs = __importStar(require("fs"));
|
|
40
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const generate_types_1 = require("./generate-types");
|
|
43
|
+
const HASH_SENTINEL_FILE = '.nodes-hash';
|
|
44
|
+
function computeInputHash(content, sdkVersion) {
|
|
45
|
+
return (0, crypto_1.createHash)('sha256').update(content).update(sdkVersion).digest('hex');
|
|
46
|
+
}
|
|
47
|
+
function getSdkVersion() {
|
|
48
|
+
const sdkPackageJsonPath = path.join(__dirname, '..', '..', 'package.json');
|
|
49
|
+
try {
|
|
50
|
+
const pkg = JSON.parse(fs.readFileSync(sdkPackageJsonPath, 'utf-8'));
|
|
51
|
+
return pkg.version;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return 'unknown';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async function generateNodeDefinitions(options) {
|
|
58
|
+
const { nodesJsonPath, outputDir, packageName } = options;
|
|
59
|
+
if (!fs.existsSync(nodesJsonPath)) {
|
|
60
|
+
throw new Error(`nodes.json not found at ${nodesJsonPath}`);
|
|
61
|
+
}
|
|
62
|
+
const content = await fs.promises.readFile(nodesJsonPath, 'utf-8');
|
|
63
|
+
const sdkVersion = getSdkVersion();
|
|
64
|
+
const inputHash = computeInputHash(content, sdkVersion);
|
|
65
|
+
const hashFilePath = path.join(outputDir, HASH_SENTINEL_FILE);
|
|
66
|
+
try {
|
|
67
|
+
const existingHash = await fs.promises.readFile(hashFilePath, 'utf-8');
|
|
68
|
+
if (existingHash.trim() === inputHash) {
|
|
69
|
+
console.log('Node definitions up to date (hash match), skipping generation.');
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
}
|
|
75
|
+
const nodes = (0, n8n_workflow_1.jsonParse)(content);
|
|
76
|
+
if (packageName) {
|
|
77
|
+
for (const node of nodes) {
|
|
78
|
+
if (!node.name.includes('.')) {
|
|
79
|
+
node.name = `${packageName}.${node.name}`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const result = await (0, generate_types_1.orchestrateGeneration)({ nodes, outputDir });
|
|
84
|
+
await fs.promises.mkdir(outputDir, { recursive: true });
|
|
85
|
+
await fs.promises.writeFile(hashFilePath, inputHash);
|
|
86
|
+
console.log(`Generated node definitions for ${result.nodeCount} nodes in ${outputDir}`);
|
|
87
|
+
}
|
|
88
|
+
if (require.main === module) {
|
|
89
|
+
const cwd = process.cwd();
|
|
90
|
+
const nodesJsonPath = path.join(cwd, 'dist', 'types', 'nodes.json');
|
|
91
|
+
const outputDir = path.join(cwd, 'dist', 'node-definitions');
|
|
92
|
+
const packageJsonPath = path.join(cwd, 'package.json');
|
|
93
|
+
const packageJson = (0, n8n_workflow_1.jsonParse)(fs.readFileSync(packageJsonPath, 'utf-8'));
|
|
94
|
+
generateNodeDefinitions({ nodesJsonPath, outputDir, packageName: packageJson.name }).catch((error) => {
|
|
95
|
+
console.error('Node definition generation failed:', error);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=generate-node-defs-cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-node-defs-cli.js","sourceRoot":"","sources":["../../src/generate-types/generate-node-defs-cli.ts"],"names":[],"mappings":"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"}
|