codika 3.0.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 +21 -0
- package/README.md +68 -0
- package/dist/cli/commands/completion.d.ts +15 -0
- package/dist/cli/commands/completion.d.ts.map +1 -0
- package/dist/cli/commands/completion.js +810 -0
- package/dist/cli/commands/completion.js.map +1 -0
- package/dist/cli/commands/config/clear.d.ts +12 -0
- package/dist/cli/commands/config/clear.d.ts.map +1 -0
- package/dist/cli/commands/config/clear.js +35 -0
- package/dist/cli/commands/config/clear.js.map +1 -0
- package/dist/cli/commands/config/index.d.ts +15 -0
- package/dist/cli/commands/config/index.d.ts.map +1 -0
- package/dist/cli/commands/config/index.js +21 -0
- package/dist/cli/commands/config/index.js.map +1 -0
- package/dist/cli/commands/config/set.d.ts +41 -0
- package/dist/cli/commands/config/set.d.ts.map +1 -0
- package/dist/cli/commands/config/set.js +185 -0
- package/dist/cli/commands/config/set.js.map +1 -0
- package/dist/cli/commands/config/show.d.ts +12 -0
- package/dist/cli/commands/config/show.d.ts.map +1 -0
- package/dist/cli/commands/config/show.js +45 -0
- package/dist/cli/commands/config/show.js.map +1 -0
- package/dist/cli/commands/deploy/documents.d.ts +12 -0
- package/dist/cli/commands/deploy/documents.d.ts.map +1 -0
- package/dist/cli/commands/deploy/documents.js +217 -0
- package/dist/cli/commands/deploy/documents.js.map +1 -0
- package/dist/cli/commands/deploy/index.d.ts +14 -0
- package/dist/cli/commands/deploy/index.d.ts.map +1 -0
- package/dist/cli/commands/deploy/index.js +21 -0
- package/dist/cli/commands/deploy/index.js.map +1 -0
- package/dist/cli/commands/deploy/process-data-ingestion.d.ts +13 -0
- package/dist/cli/commands/deploy/process-data-ingestion.d.ts.map +1 -0
- package/dist/cli/commands/deploy/process-data-ingestion.js +226 -0
- package/dist/cli/commands/deploy/process-data-ingestion.js.map +1 -0
- package/dist/cli/commands/deploy/use-case.d.ts +9 -0
- package/dist/cli/commands/deploy/use-case.d.ts.map +1 -0
- package/dist/cli/commands/deploy/use-case.js +212 -0
- package/dist/cli/commands/deploy/use-case.js.map +1 -0
- package/dist/cli/commands/get/execution.d.ts +9 -0
- package/dist/cli/commands/get/execution.d.ts.map +1 -0
- package/dist/cli/commands/get/execution.js +159 -0
- package/dist/cli/commands/get/execution.js.map +1 -0
- package/dist/cli/commands/get/index.d.ts +13 -0
- package/dist/cli/commands/get/index.d.ts.map +1 -0
- package/dist/cli/commands/get/index.js +20 -0
- package/dist/cli/commands/get/index.js.map +1 -0
- package/dist/cli/commands/get/skills.d.ts +15 -0
- package/dist/cli/commands/get/skills.d.ts.map +1 -0
- package/dist/cli/commands/get/skills.js +135 -0
- package/dist/cli/commands/get/skills.js.map +1 -0
- package/dist/cli/commands/get/use-case.d.ts +9 -0
- package/dist/cli/commands/get/use-case.d.ts.map +1 -0
- package/dist/cli/commands/get/use-case.js +186 -0
- package/dist/cli/commands/get/use-case.js.map +1 -0
- package/dist/cli/commands/init.d.ts +14 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +347 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/integration/delete.d.ts +13 -0
- package/dist/cli/commands/integration/delete.d.ts.map +1 -0
- package/dist/cli/commands/integration/delete.js +140 -0
- package/dist/cli/commands/integration/delete.js.map +1 -0
- package/dist/cli/commands/integration/index.d.ts +13 -0
- package/dist/cli/commands/integration/index.d.ts.map +1 -0
- package/dist/cli/commands/integration/index.js +20 -0
- package/dist/cli/commands/integration/index.js.map +1 -0
- package/dist/cli/commands/integration/list.d.ts +13 -0
- package/dist/cli/commands/integration/list.d.ts.map +1 -0
- package/dist/cli/commands/integration/list.js +129 -0
- package/dist/cli/commands/integration/list.js.map +1 -0
- package/dist/cli/commands/integration/set.d.ts +13 -0
- package/dist/cli/commands/integration/set.d.ts.map +1 -0
- package/dist/cli/commands/integration/set.js +253 -0
- package/dist/cli/commands/integration/set.js.map +1 -0
- package/dist/cli/commands/list/executions.d.ts +12 -0
- package/dist/cli/commands/list/executions.d.ts.map +1 -0
- package/dist/cli/commands/list/executions.js +168 -0
- package/dist/cli/commands/list/executions.js.map +1 -0
- package/dist/cli/commands/list/index.d.ts +11 -0
- package/dist/cli/commands/list/index.d.ts.map +1 -0
- package/dist/cli/commands/list/index.js +14 -0
- package/dist/cli/commands/list/index.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +12 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +58 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/project/create.d.ts +8 -0
- package/dist/cli/commands/project/create.d.ts.map +1 -0
- package/dist/cli/commands/project/create.js +109 -0
- package/dist/cli/commands/project/create.js.map +1 -0
- package/dist/cli/commands/project/index.d.ts +12 -0
- package/dist/cli/commands/project/index.d.ts.map +1 -0
- package/dist/cli/commands/project/index.js +15 -0
- package/dist/cli/commands/project/index.js.map +1 -0
- package/dist/cli/commands/publish.d.ts +12 -0
- package/dist/cli/commands/publish.d.ts.map +1 -0
- package/dist/cli/commands/publish.js +152 -0
- package/dist/cli/commands/publish.js.map +1 -0
- package/dist/cli/commands/redeploy.d.ts +11 -0
- package/dist/cli/commands/redeploy.d.ts.map +1 -0
- package/dist/cli/commands/redeploy.js +166 -0
- package/dist/cli/commands/redeploy.js.map +1 -0
- package/dist/cli/commands/status.d.ts +63 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +290 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/trigger.d.ts +8 -0
- package/dist/cli/commands/trigger.d.ts.map +1 -0
- package/dist/cli/commands/trigger.js +247 -0
- package/dist/cli/commands/trigger.js.map +1 -0
- package/dist/cli/commands/use.d.ts +13 -0
- package/dist/cli/commands/use.d.ts.map +1 -0
- package/dist/cli/commands/use.js +92 -0
- package/dist/cli/commands/use.js.map +1 -0
- package/dist/cli/commands/verify/index.d.ts +13 -0
- package/dist/cli/commands/verify/index.d.ts.map +1 -0
- package/dist/cli/commands/verify/index.js +18 -0
- package/dist/cli/commands/verify/index.js.map +1 -0
- package/dist/cli/commands/verify/use-case.d.ts +23 -0
- package/dist/cli/commands/verify/use-case.d.ts.map +1 -0
- package/dist/cli/commands/verify/use-case.js +94 -0
- package/dist/cli/commands/verify/use-case.js.map +1 -0
- package/dist/cli/commands/verify/workflow.d.ts +22 -0
- package/dist/cli/commands/verify/workflow.d.ts.map +1 -0
- package/dist/cli/commands/verify/workflow.js +82 -0
- package/dist/cli/commands/verify/workflow.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts +13 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -0
- package/dist/cli/commands/whoami.js +126 -0
- package/dist/cli/commands/whoami.js.map +1 -0
- package/dist/cli/index.d.ts +24 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +90 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/templates/claude-md-template.d.ts +12 -0
- package/dist/cli/templates/claude-md-template.d.ts.map +1 -0
- package/dist/cli/templates/claude-md-template.js +162 -0
- package/dist/cli/templates/claude-md-template.js.map +1 -0
- package/dist/cli/templates/config-template.d.ts +18 -0
- package/dist/cli/templates/config-template.d.ts.map +1 -0
- package/dist/cli/templates/config-template.js +350 -0
- package/dist/cli/templates/config-template.js.map +1 -0
- package/dist/cli/templates/skill-templates.d.ts +24 -0
- package/dist/cli/templates/skill-templates.d.ts.map +1 -0
- package/dist/cli/templates/skill-templates.js +117 -0
- package/dist/cli/templates/skill-templates.js.map +1 -0
- package/dist/cli/templates/slug.d.ts +9 -0
- package/dist/cli/templates/slug.d.ts.map +1 -0
- package/dist/cli/templates/slug.js +17 -0
- package/dist/cli/templates/slug.js.map +1 -0
- package/dist/cli/templates/workflow-templates.d.ts +693 -0
- package/dist/cli/templates/workflow-templates.d.ts.map +1 -0
- package/dist/cli/templates/workflow-templates.js +516 -0
- package/dist/cli/templates/workflow-templates.js.map +1 -0
- package/dist/cli/utils/output.d.ts +65 -0
- package/dist/cli/utils/output.d.ts.map +1 -0
- package/dist/cli/utils/output.js +188 -0
- package/dist/cli/utils/output.js.map +1 -0
- package/dist/cli/utils/validation-output.d.ts +21 -0
- package/dist/cli/utils/validation-output.d.ts.map +1 -0
- package/dist/cli/utils/validation-output.js +204 -0
- package/dist/cli/utils/validation-output.js.map +1 -0
- package/dist/data/integration-fields.d.ts +27 -0
- package/dist/data/integration-fields.d.ts.map +1 -0
- package/dist/data/integration-fields.js +361 -0
- package/dist/data/integration-fields.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/types/process-types.d.ts +740 -0
- package/dist/types/process-types.d.ts.map +1 -0
- package/dist/types/process-types.js +22 -0
- package/dist/types/process-types.js.map +1 -0
- package/dist/utils/config.d.ts +127 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +315 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/data-ingestion-deploy-client.d.ts +53 -0
- package/dist/utils/data-ingestion-deploy-client.d.ts.map +1 -0
- package/dist/utils/data-ingestion-deploy-client.js +63 -0
- package/dist/utils/data-ingestion-deploy-client.js.map +1 -0
- package/dist/utils/data-ingestion-deployer.d.ts +78 -0
- package/dist/utils/data-ingestion-deployer.d.ts.map +1 -0
- package/dist/utils/data-ingestion-deployer.js +119 -0
- package/dist/utils/data-ingestion-deployer.js.map +1 -0
- package/dist/utils/deploy-client.d.ts +55 -0
- package/dist/utils/deploy-client.d.ts.map +1 -0
- package/dist/utils/deploy-client.js +73 -0
- package/dist/utils/deploy-client.js.map +1 -0
- package/dist/utils/deployment-archiver.d.ts +110 -0
- package/dist/utils/deployment-archiver.d.ts.map +1 -0
- package/dist/utils/deployment-archiver.js +158 -0
- package/dist/utils/deployment-archiver.js.map +1 -0
- package/dist/utils/document-deploy-client.d.ts +41 -0
- package/dist/utils/document-deploy-client.d.ts.map +1 -0
- package/dist/utils/document-deploy-client.js +46 -0
- package/dist/utils/document-deploy-client.js.map +1 -0
- package/dist/utils/encryption.d.ts +85 -0
- package/dist/utils/encryption.d.ts.map +1 -0
- package/dist/utils/encryption.js +162 -0
- package/dist/utils/encryption.js.map +1 -0
- package/dist/utils/execution-client.d.ts +71 -0
- package/dist/utils/execution-client.d.ts.map +1 -0
- package/dist/utils/execution-client.js +56 -0
- package/dist/utils/execution-client.js.map +1 -0
- package/dist/utils/integration-client.d.ts +134 -0
- package/dist/utils/integration-client.d.ts.map +1 -0
- package/dist/utils/integration-client.js +109 -0
- package/dist/utils/integration-client.js.map +1 -0
- package/dist/utils/list-executions-client.d.ts +47 -0
- package/dist/utils/list-executions-client.d.ts.map +1 -0
- package/dist/utils/list-executions-client.js +50 -0
- package/dist/utils/list-executions-client.js.map +1 -0
- package/dist/utils/metadata-client.d.ts +90 -0
- package/dist/utils/metadata-client.d.ts.map +1 -0
- package/dist/utils/metadata-client.js +66 -0
- package/dist/utils/metadata-client.js.map +1 -0
- package/dist/utils/project-client.d.ts +70 -0
- package/dist/utils/project-client.d.ts.map +1 -0
- package/dist/utils/project-client.js +63 -0
- package/dist/utils/project-client.js.map +1 -0
- package/dist/utils/project-json.d.ts +71 -0
- package/dist/utils/project-json.d.ts.map +1 -0
- package/dist/utils/project-json.js +129 -0
- package/dist/utils/project-json.js.map +1 -0
- package/dist/utils/publish-client.d.ts +53 -0
- package/dist/utils/publish-client.d.ts.map +1 -0
- package/dist/utils/publish-client.js +64 -0
- package/dist/utils/publish-client.js.map +1 -0
- package/dist/utils/redeploy-client.d.ts +39 -0
- package/dist/utils/redeploy-client.d.ts.map +1 -0
- package/dist/utils/redeploy-client.js +51 -0
- package/dist/utils/redeploy-client.js.map +1 -0
- package/dist/utils/skill-parser.d.ts +52 -0
- package/dist/utils/skill-parser.d.ts.map +1 -0
- package/dist/utils/skill-parser.js +127 -0
- package/dist/utils/skill-parser.js.map +1 -0
- package/dist/utils/skills-client.d.ts +39 -0
- package/dist/utils/skills-client.d.ts.map +1 -0
- package/dist/utils/skills-client.js +32 -0
- package/dist/utils/skills-client.js.map +1 -0
- package/dist/utils/trigger-client.d.ts +78 -0
- package/dist/utils/trigger-client.d.ts.map +1 -0
- package/dist/utils/trigger-client.js +81 -0
- package/dist/utils/trigger-client.js.map +1 -0
- package/dist/utils/use-case-deployer.d.ts +93 -0
- package/dist/utils/use-case-deployer.d.ts.map +1 -0
- package/dist/utils/use-case-deployer.js +270 -0
- package/dist/utils/use-case-deployer.js.map +1 -0
- package/dist/utils/version-manager.d.ts +63 -0
- package/dist/utils/version-manager.d.ts.map +1 -0
- package/dist/utils/version-manager.js +91 -0
- package/dist/utils/version-manager.js.map +1 -0
- package/dist/utils/workflow-encoding.d.ts +26 -0
- package/dist/utils/workflow-encoding.d.ts.map +1 -0
- package/dist/utils/workflow-encoding.js +41 -0
- package/dist/utils/workflow-encoding.js.map +1 -0
- package/dist/validation/fixer.d.ts +56 -0
- package/dist/validation/fixer.d.ts.map +1 -0
- package/dist/validation/fixer.js +168 -0
- package/dist/validation/fixer.js.map +1 -0
- package/dist/validation/rules/codika-init-required.d.ts +18 -0
- package/dist/validation/rules/codika-init-required.d.ts.map +1 -0
- package/dist/validation/rules/codika-init-required.js +70 -0
- package/dist/validation/rules/codika-init-required.js.map +1 -0
- package/dist/validation/rules/codika-submit-result.d.ts +22 -0
- package/dist/validation/rules/codika-submit-result.d.ts.map +1 -0
- package/dist/validation/rules/codika-submit-result.js +144 -0
- package/dist/validation/rules/codika-submit-result.js.map +1 -0
- package/dist/validation/rules/error-branch-required.d.ts +24 -0
- package/dist/validation/rules/error-branch-required.d.ts.map +1 -0
- package/dist/validation/rules/error-branch-required.js +103 -0
- package/dist/validation/rules/error-branch-required.js.map +1 -0
- package/dist/validation/rules/index.d.ts +18 -0
- package/dist/validation/rules/index.d.ts.map +1 -0
- package/dist/validation/rules/index.js +28 -0
- package/dist/validation/rules/index.js.map +1 -0
- package/dist/validation/rules/schedule-webhook-convergence.d.ts +24 -0
- package/dist/validation/rules/schedule-webhook-convergence.d.ts.map +1 -0
- package/dist/validation/rules/schedule-webhook-convergence.js +129 -0
- package/dist/validation/rules/schedule-webhook-convergence.js.map +1 -0
- package/dist/validation/rules/subworkflow-min-params.d.ts +21 -0
- package/dist/validation/rules/subworkflow-min-params.d.ts.map +1 -0
- package/dist/validation/rules/subworkflow-min-params.js +84 -0
- package/dist/validation/rules/subworkflow-min-params.js.map +1 -0
- package/dist/validation/runner.d.ts +43 -0
- package/dist/validation/runner.d.ts.map +1 -0
- package/dist/validation/runner.js +335 -0
- package/dist/validation/runner.js.map +1 -0
- package/dist/validation/types.d.ts +155 -0
- package/dist/validation/types.d.ts.map +1 -0
- package/dist/validation/types.js +8 -0
- package/dist/validation/types.js.map +1 -0
- package/dist/validation/use-case-scripts/calledby-consistency.d.ts +23 -0
- package/dist/validation/use-case-scripts/calledby-consistency.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/calledby-consistency.js +236 -0
- package/dist/validation/use-case-scripts/calledby-consistency.js.map +1 -0
- package/dist/validation/use-case-scripts/config-exports.d.ts +17 -0
- package/dist/validation/use-case-scripts/config-exports.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/config-exports.js +93 -0
- package/dist/validation/use-case-scripts/config-exports.js.map +1 -0
- package/dist/validation/use-case-scripts/custom-integration-schema.d.ts +21 -0
- package/dist/validation/use-case-scripts/custom-integration-schema.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/custom-integration-schema.js +378 -0
- package/dist/validation/use-case-scripts/custom-integration-schema.js.map +1 -0
- package/dist/validation/use-case-scripts/index.d.ts +27 -0
- package/dist/validation/use-case-scripts/index.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/index.js +52 -0
- package/dist/validation/use-case-scripts/index.js.map +1 -0
- package/dist/validation/use-case-scripts/integration-inheritance.d.ts +35 -0
- package/dist/validation/use-case-scripts/integration-inheritance.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/integration-inheritance.js +348 -0
- package/dist/validation/use-case-scripts/integration-inheritance.js.map +1 -0
- package/dist/validation/use-case-scripts/schema-types.d.ts +21 -0
- package/dist/validation/use-case-scripts/schema-types.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/schema-types.js +134 -0
- package/dist/validation/use-case-scripts/schema-types.js.map +1 -0
- package/dist/validation/use-case-scripts/skill-consistency.d.ts +21 -0
- package/dist/validation/use-case-scripts/skill-consistency.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/skill-consistency.js +180 -0
- package/dist/validation/use-case-scripts/skill-consistency.js.map +1 -0
- package/dist/validation/use-case-scripts/subworkflow-references.d.ts +22 -0
- package/dist/validation/use-case-scripts/subworkflow-references.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/subworkflow-references.js +139 -0
- package/dist/validation/use-case-scripts/subworkflow-references.js.map +1 -0
- package/dist/validation/use-case-scripts/trigger-type-consistency.d.ts +25 -0
- package/dist/validation/use-case-scripts/trigger-type-consistency.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/trigger-type-consistency.js +265 -0
- package/dist/validation/use-case-scripts/trigger-type-consistency.js.map +1 -0
- package/dist/validation/use-case-scripts/trigger-types.d.ts +20 -0
- package/dist/validation/use-case-scripts/trigger-types.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/trigger-types.js +177 -0
- package/dist/validation/use-case-scripts/trigger-types.js.map +1 -0
- package/dist/validation/use-case-scripts/triggers-required.d.ts +23 -0
- package/dist/validation/use-case-scripts/triggers-required.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/triggers-required.js +111 -0
- package/dist/validation/use-case-scripts/triggers-required.js.map +1 -0
- package/dist/validation/use-case-scripts/webhook-path-consistency.d.ts +28 -0
- package/dist/validation/use-case-scripts/webhook-path-consistency.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/webhook-path-consistency.js +288 -0
- package/dist/validation/use-case-scripts/webhook-path-consistency.js.map +1 -0
- package/dist/validation/use-case-scripts/workflow-imports.d.ts +16 -0
- package/dist/validation/use-case-scripts/workflow-imports.d.ts.map +1 -0
- package/dist/validation/use-case-scripts/workflow-imports.js +206 -0
- package/dist/validation/use-case-scripts/workflow-imports.js.map +1 -0
- package/dist/validation/workflow-scripts/credential-placeholders.d.ts +21 -0
- package/dist/validation/workflow-scripts/credential-placeholders.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/credential-placeholders.js +278 -0
- package/dist/validation/workflow-scripts/credential-placeholders.js.map +1 -0
- package/dist/validation/workflow-scripts/db-always-output.d.ts +16 -0
- package/dist/validation/workflow-scripts/db-always-output.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/db-always-output.js +95 -0
- package/dist/validation/workflow-scripts/db-always-output.js.map +1 -0
- package/dist/validation/workflow-scripts/exec-workflow-wait.d.ts +15 -0
- package/dist/validation/workflow-scripts/exec-workflow-wait.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/exec-workflow-wait.js +85 -0
- package/dist/validation/workflow-scripts/exec-workflow-wait.js.map +1 -0
- package/dist/validation/workflow-scripts/index.d.ts +31 -0
- package/dist/validation/workflow-scripts/index.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/index.js +58 -0
- package/dist/validation/workflow-scripts/index.js.map +1 -0
- package/dist/validation/workflow-scripts/instparm-quoting.d.ts +21 -0
- package/dist/validation/workflow-scripts/instparm-quoting.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/instparm-quoting.js +59 -0
- package/dist/validation/workflow-scripts/instparm-quoting.js.map +1 -0
- package/dist/validation/workflow-scripts/llm-model-id.d.ts +17 -0
- package/dist/validation/workflow-scripts/llm-model-id.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/llm-model-id.js +171 -0
- package/dist/validation/workflow-scripts/llm-model-id.js.map +1 -0
- package/dist/validation/workflow-scripts/llm-output-access.d.ts +23 -0
- package/dist/validation/workflow-scripts/llm-output-access.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/llm-output-access.js +274 -0
- package/dist/validation/workflow-scripts/llm-output-access.js.map +1 -0
- package/dist/validation/workflow-scripts/merge-before-terminal.d.ts +20 -0
- package/dist/validation/workflow-scripts/merge-before-terminal.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/merge-before-terminal.js +87 -0
- package/dist/validation/workflow-scripts/merge-before-terminal.js.map +1 -0
- package/dist/validation/workflow-scripts/placeholder-syntax.d.ts +29 -0
- package/dist/validation/workflow-scripts/placeholder-syntax.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/placeholder-syntax.js +154 -0
- package/dist/validation/workflow-scripts/placeholder-syntax.js.map +1 -0
- package/dist/validation/workflow-scripts/retry-backoff.d.ts +16 -0
- package/dist/validation/workflow-scripts/retry-backoff.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/retry-backoff.js +197 -0
- package/dist/validation/workflow-scripts/retry-backoff.js.map +1 -0
- package/dist/validation/workflow-scripts/webhook-id.d.ts +17 -0
- package/dist/validation/workflow-scripts/webhook-id.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/webhook-id.js +79 -0
- package/dist/validation/workflow-scripts/webhook-id.js.map +1 -0
- package/dist/validation/workflow-scripts/workflow-format.d.ts +16 -0
- package/dist/validation/workflow-scripts/workflow-format.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/workflow-format.js +51 -0
- package/dist/validation/workflow-scripts/workflow-format.js.map +1 -0
- package/dist/validation/workflow-scripts/workflow-sanitization.d.ts +21 -0
- package/dist/validation/workflow-scripts/workflow-sanitization.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/workflow-sanitization.js +78 -0
- package/dist/validation/workflow-scripts/workflow-sanitization.js.map +1 -0
- package/dist/validation/workflow-scripts/workflow-settings.d.ts +19 -0
- package/dist/validation/workflow-scripts/workflow-settings.d.ts.map +1 -0
- package/dist/validation/workflow-scripts/workflow-settings.js +131 -0
- package/dist/validation/workflow-scripts/workflow-settings.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CALLEDBY-CONSISTENCY Validation Script
|
|
3
|
+
*
|
|
4
|
+
* Validates that subworkflows have their callers correctly listed in calledBy.
|
|
5
|
+
* When workflow A calls subworkflow B via SUBWKFL placeholder,
|
|
6
|
+
* B's trigger config must include A in its calledBy array.
|
|
7
|
+
*
|
|
8
|
+
* @see .guides/specific/sub-workflows.md - "calledBy Array"
|
|
9
|
+
*/
|
|
10
|
+
import { readFileSync, readdirSync, existsSync } from 'fs';
|
|
11
|
+
import { join, basename } from 'path';
|
|
12
|
+
export const RULE_ID = 'CALLEDBY-CONSISTENCY';
|
|
13
|
+
export const metadata = {
|
|
14
|
+
id: RULE_ID,
|
|
15
|
+
name: 'calledby_consistency',
|
|
16
|
+
severity: 'should',
|
|
17
|
+
description: 'Subworkflow calledBy arrays must include all actual callers',
|
|
18
|
+
details: "When workflow A calls subworkflow B, B's trigger config must list A in calledBy",
|
|
19
|
+
fixable: true,
|
|
20
|
+
category: 'references',
|
|
21
|
+
guideRef: {
|
|
22
|
+
path: 'specific/sub-workflows.md',
|
|
23
|
+
section: 'calledBy Array',
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
// Regex to find SUBWKFL placeholders
|
|
27
|
+
const SUBWKFL_PATTERN = /\{\{SUBWKFL_([a-zA-Z0-9_-]+)_LFKWBUS\}\}/g;
|
|
28
|
+
// Regex to extract workflowTemplateId from config.ts
|
|
29
|
+
const TEMPLATE_ID_PATTERN = /workflowTemplateId:\s*['"]([^'"]+)['"]/g;
|
|
30
|
+
/**
|
|
31
|
+
* Extracts all SUBWKFL_ references from workflow content
|
|
32
|
+
*/
|
|
33
|
+
function extractSubworkflowCalls(content) {
|
|
34
|
+
const references = [];
|
|
35
|
+
let match;
|
|
36
|
+
// Reset regex state
|
|
37
|
+
SUBWKFL_PATTERN.lastIndex = 0;
|
|
38
|
+
while ((match = SUBWKFL_PATTERN.exec(content)) !== null) {
|
|
39
|
+
if (!references.includes(match[1])) {
|
|
40
|
+
references.push(match[1]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return references;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extracts calledBy mappings from config.ts content
|
|
47
|
+
*
|
|
48
|
+
* Returns a map of templateId -> { calledBy: [...], hasCalledByField: boolean }
|
|
49
|
+
*/
|
|
50
|
+
function extractCalledByMappings(configContent) {
|
|
51
|
+
const mappings = new Map();
|
|
52
|
+
// Find each workflowTemplateId
|
|
53
|
+
const templateIdPattern = /workflowTemplateId:\s*['"]([^'"]+)['"]/g;
|
|
54
|
+
let templateMatch;
|
|
55
|
+
while ((templateMatch = templateIdPattern.exec(configContent)) !== null) {
|
|
56
|
+
const templateId = templateMatch[1];
|
|
57
|
+
const templateIdEndPos = templateMatch.index + templateMatch[0].length;
|
|
58
|
+
// Look for the next workflow block or end of content
|
|
59
|
+
const nextTemplateMatch = /workflowTemplateId:/g;
|
|
60
|
+
nextTemplateMatch.lastIndex = templateIdEndPos;
|
|
61
|
+
const nextMatch = nextTemplateMatch.exec(configContent);
|
|
62
|
+
const blockEnd = nextMatch ? nextMatch.index : configContent.length;
|
|
63
|
+
// Extract the block for this workflow
|
|
64
|
+
const workflowBlock = configContent.slice(templateMatch.index, blockEnd);
|
|
65
|
+
// Check if this block has a subworkflow trigger with type: 'subworkflow'
|
|
66
|
+
if (!workflowBlock.includes("type: 'subworkflow'") && !workflowBlock.includes('type: "subworkflow"')) {
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
// Check if this trigger block has calledBy
|
|
70
|
+
const calledByMatch = workflowBlock.match(/calledBy:\s*\[([^\]]*)\]/);
|
|
71
|
+
if (calledByMatch) {
|
|
72
|
+
// Extract the callers from the calledBy array
|
|
73
|
+
const calledByContent = calledByMatch[1];
|
|
74
|
+
const callers = [];
|
|
75
|
+
// Match quoted strings in the array
|
|
76
|
+
const callerPattern = /['"]([^'"]+)['"]/g;
|
|
77
|
+
let callerMatch;
|
|
78
|
+
while ((callerMatch = callerPattern.exec(calledByContent)) !== null) {
|
|
79
|
+
callers.push(callerMatch[1]);
|
|
80
|
+
}
|
|
81
|
+
mappings.set(templateId, {
|
|
82
|
+
templateId,
|
|
83
|
+
calledBy: callers,
|
|
84
|
+
hasCalledByField: true,
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// Subworkflow trigger without calledBy field
|
|
89
|
+
mappings.set(templateId, {
|
|
90
|
+
templateId,
|
|
91
|
+
calledBy: [],
|
|
92
|
+
hasCalledByField: false,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return mappings;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Gets the workflow template ID from a workflow JSON filename
|
|
100
|
+
*
|
|
101
|
+
* By convention, the filename (without .json) matches the workflowTemplateId
|
|
102
|
+
*/
|
|
103
|
+
function getTemplateIdFromFilename(workflowFile) {
|
|
104
|
+
return basename(workflowFile, '.json');
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Creates a fix function that adds a missing caller to a subworkflow's calledBy array
|
|
108
|
+
*/
|
|
109
|
+
function createFixFunction(subworkflowId, missingCaller, hasCalledByField) {
|
|
110
|
+
return (content) => {
|
|
111
|
+
// Find the workflow block for this subworkflow
|
|
112
|
+
const workflowBlockPattern = new RegExp(`(workflowTemplateId:\\s*['"]${subworkflowId}['"][\\s\\S]*?triggers:\\s*\\[[\\s\\S]*?)` +
|
|
113
|
+
(hasCalledByField
|
|
114
|
+
? `(calledBy:\\s*\\[)([^\\]]*)\\]`
|
|
115
|
+
: `(inputSchema:\\s*\\[[^\\]]*\\],?)`), 'g');
|
|
116
|
+
if (hasCalledByField) {
|
|
117
|
+
// Add to existing calledBy array
|
|
118
|
+
return content.replace(workflowBlockPattern, (match, prefix, calledByStart, calledByContent) => {
|
|
119
|
+
const trimmedContent = calledByContent.trim();
|
|
120
|
+
if (trimmedContent === '') {
|
|
121
|
+
// Empty array
|
|
122
|
+
return `${prefix}${calledByStart}'${missingCaller}']`;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Non-empty array - add with comma
|
|
126
|
+
return `${prefix}${calledByStart}${calledByContent}, '${missingCaller}']`;
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// Add calledBy field after inputSchema
|
|
132
|
+
return content.replace(workflowBlockPattern, (match, prefix, inputSchema) => {
|
|
133
|
+
const needsComma = !inputSchema.trim().endsWith(',');
|
|
134
|
+
return `${prefix}${inputSchema}${needsComma ? ',' : ''}\n calledBy: ['${missingCaller}'],`;
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Validates that all workflow callers are listed in subworkflow calledBy arrays
|
|
141
|
+
*/
|
|
142
|
+
export async function checkCalledByConsistency(useCasePath) {
|
|
143
|
+
const findings = [];
|
|
144
|
+
// Check if config.ts exists
|
|
145
|
+
const configPath = join(useCasePath, 'config.ts');
|
|
146
|
+
if (!existsSync(configPath)) {
|
|
147
|
+
// Cannot validate without config.ts - this is handled by other rules
|
|
148
|
+
return findings;
|
|
149
|
+
}
|
|
150
|
+
// Read config.ts
|
|
151
|
+
let configContent;
|
|
152
|
+
try {
|
|
153
|
+
configContent = readFileSync(configPath, 'utf-8');
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
// Cannot read config.ts - this is handled by other rules
|
|
157
|
+
return findings;
|
|
158
|
+
}
|
|
159
|
+
// Extract calledBy mappings from config.ts
|
|
160
|
+
const calledByMappings = extractCalledByMappings(configContent);
|
|
161
|
+
// Check workflows folder
|
|
162
|
+
const workflowsPath = join(useCasePath, 'workflows');
|
|
163
|
+
if (!existsSync(workflowsPath)) {
|
|
164
|
+
// No workflows folder - nothing to validate
|
|
165
|
+
return findings;
|
|
166
|
+
}
|
|
167
|
+
// Get all workflow JSON files
|
|
168
|
+
let workflowFiles;
|
|
169
|
+
try {
|
|
170
|
+
workflowFiles = readdirSync(workflowsPath)
|
|
171
|
+
.filter(f => f.endsWith('.json'))
|
|
172
|
+
.map(f => join(workflowsPath, f));
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
// Cannot read workflows folder - this is handled by other rules
|
|
176
|
+
return findings;
|
|
177
|
+
}
|
|
178
|
+
// Build a map of which workflows call which subworkflows
|
|
179
|
+
// Map: subworkflowId -> [callerIds]
|
|
180
|
+
const actualCallers = new Map();
|
|
181
|
+
for (const workflowFile of workflowFiles) {
|
|
182
|
+
let content;
|
|
183
|
+
try {
|
|
184
|
+
content = readFileSync(workflowFile, 'utf-8');
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
continue; // Skip unreadable files
|
|
188
|
+
}
|
|
189
|
+
const callerTemplateId = getTemplateIdFromFilename(workflowFile);
|
|
190
|
+
const subworkflowCalls = extractSubworkflowCalls(content);
|
|
191
|
+
for (const subworkflowId of subworkflowCalls) {
|
|
192
|
+
const existingCallers = actualCallers.get(subworkflowId) || [];
|
|
193
|
+
if (!existingCallers.includes(callerTemplateId)) {
|
|
194
|
+
existingCallers.push(callerTemplateId);
|
|
195
|
+
}
|
|
196
|
+
actualCallers.set(subworkflowId, existingCallers);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Check each subworkflow that is being called
|
|
200
|
+
for (const [subworkflowId, callers] of actualCallers) {
|
|
201
|
+
const calledByInfo = calledByMappings.get(subworkflowId);
|
|
202
|
+
// Skip if this subworkflow doesn't have a trigger configuration
|
|
203
|
+
// (might not be a subworkflow-triggered workflow)
|
|
204
|
+
if (!calledByInfo) {
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
// Check each caller
|
|
208
|
+
for (const callerId of callers) {
|
|
209
|
+
if (!calledByInfo.calledBy.includes(callerId)) {
|
|
210
|
+
const hasCalledByField = calledByInfo.hasCalledByField;
|
|
211
|
+
findings.push({
|
|
212
|
+
rule: RULE_ID,
|
|
213
|
+
severity: 'should',
|
|
214
|
+
path: configPath,
|
|
215
|
+
message: hasCalledByField
|
|
216
|
+
? `Subworkflow "${subworkflowId}" is called by "${callerId}" but "${callerId}" is not listed in its calledBy array`
|
|
217
|
+
: `Subworkflow "${subworkflowId}" is called by "${callerId}" but has no calledBy field`,
|
|
218
|
+
raw_details: hasCalledByField
|
|
219
|
+
? `Add '${callerId}' to the calledBy array for subworkflow '${subworkflowId}' in config.ts. Current calledBy: [${calledByInfo.calledBy.map(c => `'${c}'`).join(', ')}]`
|
|
220
|
+
: `Add calledBy: ['${callerId}'] to the trigger configuration for subworkflow '${subworkflowId}' in config.ts`,
|
|
221
|
+
guideRef: metadata.guideRef,
|
|
222
|
+
fixable: true,
|
|
223
|
+
fix: {
|
|
224
|
+
description: hasCalledByField
|
|
225
|
+
? `Add '${callerId}' to calledBy array for '${subworkflowId}'`
|
|
226
|
+
: `Add calledBy field with '${callerId}' for '${subworkflowId}'`,
|
|
227
|
+
apply: createFixFunction(subworkflowId, callerId, hasCalledByField),
|
|
228
|
+
},
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
return findings;
|
|
234
|
+
}
|
|
235
|
+
export default checkCalledByConsistency;
|
|
236
|
+
//# sourceMappingURL=calledby-consistency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calledby-consistency.js","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/calledby-consistency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script: CONFIG-EXPORTS
|
|
3
|
+
*
|
|
4
|
+
* Validates that config.ts exports the required members:
|
|
5
|
+
* - WORKFLOW_FILES (array)
|
|
6
|
+
* - getConfiguration (function)
|
|
7
|
+
*
|
|
8
|
+
* Also checks that project.json exists in the use case folder.
|
|
9
|
+
*/
|
|
10
|
+
import type { Finding } from '../types.js';
|
|
11
|
+
import type { RuleMetadata } from '../types.js';
|
|
12
|
+
export declare const metadata: RuleMetadata;
|
|
13
|
+
/**
|
|
14
|
+
* Check that config.ts exports required members
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkConfigExports(useCasePath: string): Promise<Finding[]>;
|
|
17
|
+
//# sourceMappingURL=config-exports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-exports.d.ts","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/config-exports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,QAAQ,EAAE,YAOtB,CAAC;AAEF;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA2EhF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script: CONFIG-EXPORTS
|
|
3
|
+
*
|
|
4
|
+
* Validates that config.ts exports the required members:
|
|
5
|
+
* - WORKFLOW_FILES (array)
|
|
6
|
+
* - getConfiguration (function)
|
|
7
|
+
*
|
|
8
|
+
* Also checks that project.json exists in the use case folder.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, readFileSync } from 'fs';
|
|
11
|
+
import { join } from 'path';
|
|
12
|
+
export const metadata = {
|
|
13
|
+
id: 'CONFIG-EXPORTS',
|
|
14
|
+
name: 'config_exports',
|
|
15
|
+
severity: 'must',
|
|
16
|
+
description: 'config.ts must export WORKFLOW_FILES and getConfiguration, and project.json must exist',
|
|
17
|
+
details: 'Ensure your config.ts file exports all required members and project.json contains the target project ID',
|
|
18
|
+
category: 'config',
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Check that config.ts exports required members
|
|
22
|
+
*/
|
|
23
|
+
export async function checkConfigExports(useCasePath) {
|
|
24
|
+
const findings = [];
|
|
25
|
+
const configTsPath = join(useCasePath, 'config.ts');
|
|
26
|
+
const configJsPath = join(useCasePath, 'config.js');
|
|
27
|
+
// Check if config file exists
|
|
28
|
+
let configPath = null;
|
|
29
|
+
if (existsSync(configTsPath)) {
|
|
30
|
+
configPath = configTsPath;
|
|
31
|
+
}
|
|
32
|
+
else if (existsSync(configJsPath)) {
|
|
33
|
+
configPath = configJsPath;
|
|
34
|
+
}
|
|
35
|
+
if (!configPath) {
|
|
36
|
+
findings.push({
|
|
37
|
+
rule: metadata.id,
|
|
38
|
+
severity: 'must',
|
|
39
|
+
path: useCasePath,
|
|
40
|
+
message: 'Missing config.ts file',
|
|
41
|
+
raw_details: 'Create a config.ts file that exports WORKFLOW_FILES and getConfiguration()',
|
|
42
|
+
});
|
|
43
|
+
return findings;
|
|
44
|
+
}
|
|
45
|
+
// Read and analyze config file
|
|
46
|
+
let content;
|
|
47
|
+
try {
|
|
48
|
+
content = readFileSync(configPath, 'utf-8');
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
findings.push({
|
|
52
|
+
rule: metadata.id,
|
|
53
|
+
severity: 'must',
|
|
54
|
+
path: configPath,
|
|
55
|
+
message: `Cannot read config file: ${error.message}`,
|
|
56
|
+
});
|
|
57
|
+
return findings;
|
|
58
|
+
}
|
|
59
|
+
// Check for required exports using simple regex patterns
|
|
60
|
+
// (A full AST parser would be more robust but this covers common cases)
|
|
61
|
+
// Check for project.json
|
|
62
|
+
if (!existsSync(join(useCasePath, 'project.json'))) {
|
|
63
|
+
findings.push({
|
|
64
|
+
rule: metadata.id,
|
|
65
|
+
severity: 'should',
|
|
66
|
+
path: useCasePath,
|
|
67
|
+
message: 'Missing project.json — required before deployment',
|
|
68
|
+
raw_details: 'Create project.json with {"projectId": "..."} in the use case folder, or run: codika project create --name "..." --path .',
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// Check for WORKFLOW_FILES export
|
|
72
|
+
if (!/export\s+(const|let|var)\s+WORKFLOW_FILES\s*=/s.test(content)) {
|
|
73
|
+
findings.push({
|
|
74
|
+
rule: metadata.id,
|
|
75
|
+
severity: 'must',
|
|
76
|
+
path: configPath,
|
|
77
|
+
message: 'Missing export: WORKFLOW_FILES',
|
|
78
|
+
raw_details: 'Add: export const WORKFLOW_FILES = [join(__dirname, \'workflows/workflow.json\')];',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// Check for getConfiguration export
|
|
82
|
+
if (!/export\s+(function|const)\s+getConfiguration/s.test(content)) {
|
|
83
|
+
findings.push({
|
|
84
|
+
rule: metadata.id,
|
|
85
|
+
severity: 'must',
|
|
86
|
+
path: configPath,
|
|
87
|
+
message: 'Missing export: getConfiguration',
|
|
88
|
+
raw_details: 'Add: export function getConfiguration(): ProcessDeploymentConfigurationInput { ... }',
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return findings;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=config-exports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-exports.js","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/config-exports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Script: CUSTOM-INTEGRATION
|
|
3
|
+
*
|
|
4
|
+
* Validates custom integration schemas defined in config.ts:
|
|
5
|
+
* - All customIntegrations[].id must start with 'cstm_'
|
|
6
|
+
* - IDs must be snake_case (only lowercase letters, numbers, underscores)
|
|
7
|
+
* - No duplicate IDs within customIntegrations
|
|
8
|
+
* - n8nCredentialMapping keys must exist in secretFields or metadataFields
|
|
9
|
+
* - secretFields[].key must be UPPER_SNAKE_CASE
|
|
10
|
+
* - No duplicate field keys within an integration
|
|
11
|
+
* - If n8nCredentialType !== 'none', n8nCredentialMapping must be provided and non-empty
|
|
12
|
+
* - Custom integration IDs in integrationUids must have corresponding entries in customIntegrations
|
|
13
|
+
*/
|
|
14
|
+
import type { Finding, RuleMetadata } from '../types.js';
|
|
15
|
+
export declare const RULE_ID = "CUSTOM-INTEGRATION";
|
|
16
|
+
export declare const metadata: RuleMetadata;
|
|
17
|
+
/**
|
|
18
|
+
* Validate custom integration schemas in a use case config.ts
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkCustomIntegrationSchema(useCasePath: string): Promise<Finding[]>;
|
|
21
|
+
//# sourceMappingURL=custom-integration-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-integration-schema.d.ts","sourceRoot":"","sources":["../../../src/validation/use-case-scripts/custom-integration-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEzD,eAAO,MAAM,OAAO,uBAAuB,CAAC;AAE5C,eAAO,MAAM,QAAQ,EAAE,YAQtB,CAAC;AAmPF;;GAEG;AACH,wBAAsB,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAwJ1F"}
|