@powerhousedao/workflow 6.2.3-dev.11
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 +661 -0
- package/README.md +94 -0
- package/dist/browser/PieceMarkdown-CZYNY1qQ.js +21401 -0
- package/dist/browser/PieceMarkdown-CZYNY1qQ.js.map +1 -0
- package/dist/browser/ap-layout-DLTZBpE7.js +331 -0
- package/dist/browser/ap-layout-DLTZBpE7.js.map +1 -0
- package/dist/browser/assets/entry-4n9sWkpV.js +314 -0
- package/dist/browser/assets/projection-entry-Bzn-Fath.js +404 -0
- package/dist/browser/chunk-BoAXSpZd.js +33 -0
- package/dist/browser/connection-DEe5aDuU.js +90 -0
- package/dist/browser/connection-DEe5aDuU.js.map +1 -0
- package/dist/browser/connection-form-B_3_LFlh.js +453 -0
- package/dist/browser/connection-form-B_3_LFlh.js.map +1 -0
- package/dist/browser/document-models/connection/index.js +3 -0
- package/dist/browser/document-models/index.js +4 -0
- package/dist/browser/document-models/workflow/index.js +3 -0
- package/dist/browser/document-models-vmNTCrKx.js +51 -0
- package/dist/browser/document-models-vmNTCrKx.js.map +1 -0
- package/dist/browser/editor-BCxZ5i20.js +18978 -0
- package/dist/browser/editor-BCxZ5i20.js.map +1 -0
- package/dist/browser/editor-DJX9NpD5.js +134 -0
- package/dist/browser/editor-DJX9NpD5.js.map +1 -0
- package/dist/browser/editor-Hh1cyIIW.js +1550 -0
- package/dist/browser/editor-Hh1cyIIW.js.map +1 -0
- package/dist/browser/editors/connection-editor/module.js +15 -0
- package/dist/browser/editors/connection-editor/module.js.map +1 -0
- package/dist/browser/editors/index.js +4 -0
- package/dist/browser/editors/workflow-editor/module.js +15 -0
- package/dist/browser/editors/workflow-editor/module.js.map +1 -0
- package/dist/browser/editors/workflow-studio/module.js +15 -0
- package/dist/browser/editors/workflow-studio/module.js.map +1 -0
- package/dist/browser/index.js +330 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/module-12vI18HY.js +483 -0
- package/dist/browser/module-12vI18HY.js.map +1 -0
- package/dist/browser/module-CYQnNZWl.js +1141 -0
- package/dist/browser/module-CYQnNZWl.js.map +1 -0
- package/dist/browser/reactor/index.js +8 -0
- package/dist/browser/reactor/index.js.map +1 -0
- package/dist/browser/runtime-api-DQa04P3e.js +545 -0
- package/dist/browser/runtime-api-DQa04P3e.js.map +1 -0
- package/dist/browser/status-kpDX5CIA.js +11 -0
- package/dist/browser/status-kpDX5CIA.js.map +1 -0
- package/dist/browser/style.css +641 -0
- package/dist/browser/upgrade-manifests-Cnpfo6kC.js +8 -0
- package/dist/browser/upgrade-manifests-Cnpfo6kC.js.map +1 -0
- package/dist/browser/use-runtime-url-DzYskFkw.js +181 -0
- package/dist/browser/use-runtime-url-DzYskFkw.js.map +1 -0
- package/dist/browser/workflow-CFZUezoY.js +107 -0
- package/dist/browser/workflow-CFZUezoY.js.map +1 -0
- package/dist/node/PieceMarkdown-Q9C9CPGu.mjs +23249 -0
- package/dist/node/PieceMarkdown-Q9C9CPGu.mjs.map +1 -0
- package/dist/node/ap-layout-DDOX4Vxv.mjs +331 -0
- package/dist/node/ap-layout-DDOX4Vxv.mjs.map +1 -0
- package/dist/node/chunk-BSw8zbkd.mjs +37 -0
- package/dist/node/connection-DGsS2Db3.mjs +90 -0
- package/dist/node/connection-DGsS2Db3.mjs.map +1 -0
- package/dist/node/connection-form-CTNkgu_d.mjs +453 -0
- package/dist/node/connection-form-CTNkgu_d.mjs.map +1 -0
- package/dist/node/document-models/connection/index.mjs +3 -0
- package/dist/node/document-models/index.mjs +4 -0
- package/dist/node/document-models/workflow/index.mjs +3 -0
- package/dist/node/editor-CS8ttjKp.mjs +20351 -0
- package/dist/node/editor-CS8ttjKp.mjs.map +1 -0
- package/dist/node/editor-DQUie3HQ.mjs +1550 -0
- package/dist/node/editor-DQUie3HQ.mjs.map +1 -0
- package/dist/node/editor-DhgG3VOa.mjs +134 -0
- package/dist/node/editor-DhgG3VOa.mjs.map +1 -0
- package/dist/node/editors/connection-editor/module.mjs +15 -0
- package/dist/node/editors/connection-editor/module.mjs.map +1 -0
- package/dist/node/editors/index.mjs +4 -0
- package/dist/node/editors/workflow-editor/module.mjs +15 -0
- package/dist/node/editors/workflow-editor/module.mjs.map +1 -0
- package/dist/node/editors/workflow-studio/module.mjs +15 -0
- package/dist/node/editors/workflow-studio/module.mjs.map +1 -0
- package/dist/node/index.mjs +377 -0
- package/dist/node/index.mjs.map +1 -0
- package/dist/node/module-IA-Ay7ig.mjs +483 -0
- package/dist/node/module-IA-Ay7ig.mjs.map +1 -0
- package/dist/node/module-IRMgzJC1.mjs +1141 -0
- package/dist/node/module-IRMgzJC1.mjs.map +1 -0
- package/dist/node/pieces/index.mjs +10 -0
- package/dist/node/pieces/index.mjs.map +1 -0
- package/dist/node/pieces/reactor/index.mjs +2021 -0
- package/dist/node/pieces/reactor/index.mjs.map +1 -0
- package/dist/node/runtime-api-JQ6lSS1Y.mjs +545 -0
- package/dist/node/runtime-api-JQ6lSS1Y.mjs.map +1 -0
- package/dist/node/status-CDRcDUMS.mjs +11 -0
- package/dist/node/status-CDRcDUMS.mjs.map +1 -0
- package/dist/node/style.css +641 -0
- package/dist/node/upgrade-manifests-3VN0Bfcf.mjs +8 -0
- package/dist/node/upgrade-manifests-3VN0Bfcf.mjs.map +1 -0
- package/dist/node/use-runtime-url-C_adivge.mjs +181 -0
- package/dist/node/use-runtime-url-C_adivge.mjs.map +1 -0
- package/dist/node/workflow-fFvyypuu.mjs +107 -0
- package/dist/node/workflow-fFvyypuu.mjs.map +1 -0
- package/dist/powerhouse.manifest.json +47 -0
- package/dist/style.css +2324 -0
- package/dist/types/ai/runtime-url.d.ts +2 -0
- package/dist/types/ai/runtime-url.d.ts.map +1 -0
- package/dist/types/ai/runtime-url.test.d.ts +2 -0
- package/dist/types/ai/runtime-url.test.d.ts.map +1 -0
- package/dist/types/ai/tools.d.ts +59 -0
- package/dist/types/ai/tools.d.ts.map +1 -0
- package/dist/types/ai/tools.test.d.ts +2 -0
- package/dist/types/ai/tools.test.d.ts.map +1 -0
- package/dist/types/ai/workflow-tools.d.ts +9 -0
- package/dist/types/ai/workflow-tools.d.ts.map +1 -0
- package/dist/types/ai/workflow-tools.live.test.d.ts +2 -0
- package/dist/types/ai/workflow-tools.live.test.d.ts.map +1 -0
- package/dist/types/ai/workflow-tools.test.d.ts +2 -0
- package/dist/types/ai/workflow-tools.test.d.ts.map +1 -0
- package/dist/types/build.d.ts +2 -0
- package/dist/types/build.d.ts.map +1 -0
- package/dist/types/document-models/connection/index.d.ts +3 -0
- package/dist/types/document-models/connection/index.d.ts.map +1 -0
- package/dist/types/document-models/connection/upgrades/index.d.ts +3 -0
- package/dist/types/document-models/connection/upgrades/index.d.ts.map +1 -0
- package/dist/types/document-models/connection/upgrades/upgrade-manifest.d.ts +8 -0
- package/dist/types/document-models/connection/upgrades/upgrade-manifest.d.ts.map +1 -0
- package/dist/types/document-models/connection/upgrades/versions.d.ts +3 -0
- package/dist/types/document-models/connection/upgrades/versions.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/actions.d.ts +24 -0
- package/dist/types/document-models/connection/v1/actions.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/actions.d.ts +12 -0
- package/dist/types/document-models/connection/v1/gen/actions.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/config/actions.d.ts +20 -0
- package/dist/types/document-models/connection/v1/gen/config/actions.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/config/creators.d.ts +6 -0
- package/dist/types/document-models/connection/v1/gen/config/creators.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/config/error.d.ts +14 -0
- package/dist/types/document-models/connection/v1/gen/config/error.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/config/operations.d.ts +13 -0
- package/dist/types/document-models/connection/v1/gen/config/operations.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/connection/actions.d.ts +20 -0
- package/dist/types/document-models/connection/v1/gen/connection/actions.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/connection/creators.d.ts +6 -0
- package/dist/types/document-models/connection/v1/gen/connection/creators.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/connection/error.d.ts +2 -0
- package/dist/types/document-models/connection/v1/gen/connection/error.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/connection/operations.d.ts +13 -0
- package/dist/types/document-models/connection/v1/gen/connection/operations.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/controller.d.ts +8 -0
- package/dist/types/document-models/connection/v1/gen/controller.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/creators.d.ts +11 -0
- package/dist/types/document-models/connection/v1/gen/creators.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/document-model.d.ts +3 -0
- package/dist/types/document-models/connection/v1/gen/document-model.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/document-schema.d.ts +68 -0
- package/dist/types/document-models/connection/v1/gen/document-schema.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/document-type.d.ts +6 -0
- package/dist/types/document-models/connection/v1/gen/document-type.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/health/actions.d.ts +12 -0
- package/dist/types/document-models/connection/v1/gen/health/actions.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/health/creators.d.ts +4 -0
- package/dist/types/document-models/connection/v1/gen/health/creators.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/health/error.d.ts +2 -0
- package/dist/types/document-models/connection/v1/gen/health/error.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/health/operations.d.ts +11 -0
- package/dist/types/document-models/connection/v1/gen/health/operations.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/index.d.ts +19 -0
- package/dist/types/document-models/connection/v1/gen/index.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/ph-factories.d.ts +25 -0
- package/dist/types/document-models/connection/v1/gen/ph-factories.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/reducer.d.ts +4 -0
- package/dist/types/document-models/connection/v1/gen/reducer.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/schema/index.d.ts +7 -0
- package/dist/types/document-models/connection/v1/gen/schema/index.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/schema/types.d.ts +200 -0
- package/dist/types/document-models/connection/v1/gen/schema/types.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/schema/zod.d.ts +33 -0
- package/dist/types/document-models/connection/v1/gen/schema/zod.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/types.d.ts +16 -0
- package/dist/types/document-models/connection/v1/gen/types.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/gen/utils.d.ts +10 -0
- package/dist/types/document-models/connection/v1/gen/utils.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/hooks.d.ts +18 -0
- package/dist/types/document-models/connection/v1/hooks.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/index.d.ts +11 -0
- package/dist/types/document-models/connection/v1/index.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/module.d.ts +31 -0
- package/dist/types/document-models/connection/v1/module.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/src/index.d.ts +6 -0
- package/dist/types/document-models/connection/v1/src/index.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/src/reducers/config.d.ts +3 -0
- package/dist/types/document-models/connection/v1/src/reducers/config.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/src/reducers/connection.d.ts +3 -0
- package/dist/types/document-models/connection/v1/src/reducers/connection.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/src/reducers/health.d.ts +3 -0
- package/dist/types/document-models/connection/v1/src/reducers/health.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/src/utils.d.ts +2 -0
- package/dist/types/document-models/connection/v1/src/utils.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/tests/config.test.d.ts +2 -0
- package/dist/types/document-models/connection/v1/tests/config.test.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/tests/connection-scenarios.test.d.ts +2 -0
- package/dist/types/document-models/connection/v1/tests/connection-scenarios.test.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/tests/connection.test.d.ts +2 -0
- package/dist/types/document-models/connection/v1/tests/connection.test.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/tests/document-model.test.d.ts +10 -0
- package/dist/types/document-models/connection/v1/tests/document-model.test.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/tests/health.test.d.ts +2 -0
- package/dist/types/document-models/connection/v1/tests/health.test.d.ts.map +1 -0
- package/dist/types/document-models/connection/v1/utils.d.ts +9 -0
- package/dist/types/document-models/connection/v1/utils.d.ts.map +1 -0
- package/dist/types/document-models/document-models.d.ts +68 -0
- package/dist/types/document-models/document-models.d.ts.map +1 -0
- package/dist/types/document-models/index.d.ts +4 -0
- package/dist/types/document-models/index.d.ts.map +1 -0
- package/dist/types/document-models/upgrade-manifests.d.ts +7 -0
- package/dist/types/document-models/upgrade-manifests.d.ts.map +1 -0
- package/dist/types/document-models/workflow/index.d.ts +3 -0
- package/dist/types/document-models/workflow/index.d.ts.map +1 -0
- package/dist/types/document-models/workflow/upgrades/index.d.ts +3 -0
- package/dist/types/document-models/workflow/upgrades/index.d.ts.map +1 -0
- package/dist/types/document-models/workflow/upgrades/upgrade-manifest.d.ts +8 -0
- package/dist/types/document-models/workflow/upgrades/upgrade-manifest.d.ts.map +1 -0
- package/dist/types/document-models/workflow/upgrades/versions.d.ts +3 -0
- package/dist/types/document-models/workflow/upgrades/versions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/actions.d.ts +32 -0
- package/dist/types/document-models/workflow/v1/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/actions.d.ts +20 -0
- package/dist/types/document-models/workflow/v1/gen/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/controller.d.ts +8 -0
- package/dist/types/document-models/workflow/v1/gen/controller.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/creators.d.ts +19 -0
- package/dist/types/document-models/workflow/v1/gen/creators.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/document-model.d.ts +3 -0
- package/dist/types/document-models/workflow/v1/gen/document-model.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/document-schema.d.ts +74 -0
- package/dist/types/document-models/workflow/v1/gen/document-schema.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/document-type.d.ts +6 -0
- package/dist/types/document-models/workflow/v1/gen/document-type.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/edges/actions.d.ts +16 -0
- package/dist/types/document-models/workflow/v1/gen/edges/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/edges/creators.d.ts +5 -0
- package/dist/types/document-models/workflow/v1/gen/edges/creators.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/edges/error.d.ts +36 -0
- package/dist/types/document-models/workflow/v1/gen/edges/error.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/edges/operations.d.ts +12 -0
- package/dist/types/document-models/workflow/v1/gen/edges/operations.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/index.d.ts +23 -0
- package/dist/types/document-models/workflow/v1/gen/index.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/ph-factories.d.ts +25 -0
- package/dist/types/document-models/workflow/v1/gen/ph-factories.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/policy/actions.d.ts +12 -0
- package/dist/types/document-models/workflow/v1/gen/policy/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/policy/creators.d.ts +4 -0
- package/dist/types/document-models/workflow/v1/gen/policy/creators.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/policy/error.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/gen/policy/error.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/policy/operations.d.ts +11 -0
- package/dist/types/document-models/workflow/v1/gen/policy/operations.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/reducer.d.ts +4 -0
- package/dist/types/document-models/workflow/v1/gen/reducer.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/runtime/actions.d.ts +12 -0
- package/dist/types/document-models/workflow/v1/gen/runtime/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/runtime/creators.d.ts +4 -0
- package/dist/types/document-models/workflow/v1/gen/runtime/creators.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/runtime/error.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/gen/runtime/error.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/runtime/operations.d.ts +11 -0
- package/dist/types/document-models/workflow/v1/gen/runtime/operations.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/schema/index.d.ts +7 -0
- package/dist/types/document-models/workflow/v1/gen/schema/index.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/schema/types.d.ts +352 -0
- package/dist/types/document-models/workflow/v1/gen/schema/types.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/schema/zod.d.ts +67 -0
- package/dist/types/document-models/workflow/v1/gen/schema/zod.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/steps/actions.d.ts +24 -0
- package/dist/types/document-models/workflow/v1/gen/steps/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/steps/creators.d.ts +7 -0
- package/dist/types/document-models/workflow/v1/gen/steps/creators.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/steps/error.d.ts +45 -0
- package/dist/types/document-models/workflow/v1/gen/steps/error.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/steps/operations.d.ts +14 -0
- package/dist/types/document-models/workflow/v1/gen/steps/operations.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/trigger/actions.d.ts +16 -0
- package/dist/types/document-models/workflow/v1/gen/trigger/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/trigger/creators.d.ts +5 -0
- package/dist/types/document-models/workflow/v1/gen/trigger/creators.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/trigger/error.d.ts +14 -0
- package/dist/types/document-models/workflow/v1/gen/trigger/error.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/trigger/operations.d.ts +12 -0
- package/dist/types/document-models/workflow/v1/gen/trigger/operations.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/types.d.ts +16 -0
- package/dist/types/document-models/workflow/v1/gen/types.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/utils.d.ts +10 -0
- package/dist/types/document-models/workflow/v1/gen/utils.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/variables/actions.d.ts +16 -0
- package/dist/types/document-models/workflow/v1/gen/variables/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/variables/creators.d.ts +5 -0
- package/dist/types/document-models/workflow/v1/gen/variables/creators.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/variables/error.d.ts +14 -0
- package/dist/types/document-models/workflow/v1/gen/variables/error.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/variables/operations.d.ts +12 -0
- package/dist/types/document-models/workflow/v1/gen/variables/operations.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/workflow/actions.d.ts +20 -0
- package/dist/types/document-models/workflow/v1/gen/workflow/actions.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/workflow/creators.d.ts +6 -0
- package/dist/types/document-models/workflow/v1/gen/workflow/creators.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/workflow/error.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/gen/workflow/error.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/gen/workflow/operations.d.ts +13 -0
- package/dist/types/document-models/workflow/v1/gen/workflow/operations.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/hooks.d.ts +18 -0
- package/dist/types/document-models/workflow/v1/hooks.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/index.d.ts +11 -0
- package/dist/types/document-models/workflow/v1/index.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/module.d.ts +39 -0
- package/dist/types/document-models/workflow/v1/module.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/index.d.ts +6 -0
- package/dist/types/document-models/workflow/v1/src/index.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/reducers/edges.d.ts +3 -0
- package/dist/types/document-models/workflow/v1/src/reducers/edges.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/reducers/policy.d.ts +3 -0
- package/dist/types/document-models/workflow/v1/src/reducers/policy.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/reducers/runtime.d.ts +3 -0
- package/dist/types/document-models/workflow/v1/src/reducers/runtime.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/reducers/steps.d.ts +3 -0
- package/dist/types/document-models/workflow/v1/src/reducers/steps.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/reducers/trigger.d.ts +3 -0
- package/dist/types/document-models/workflow/v1/src/reducers/trigger.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/reducers/variables.d.ts +3 -0
- package/dist/types/document-models/workflow/v1/src/reducers/variables.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/reducers/workflow.d.ts +3 -0
- package/dist/types/document-models/workflow/v1/src/reducers/workflow.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/src/utils.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/src/utils.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/document-model.test.d.ts +10 -0
- package/dist/types/document-models/workflow/v1/tests/document-model.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/edges.test.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/tests/edges.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/policy.test.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/tests/policy.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/runtime.test.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/tests/runtime.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/steps.test.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/tests/steps.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/trigger.test.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/tests/trigger.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/variables.test.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/tests/variables.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/workflow-scenarios.test.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/tests/workflow-scenarios.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/tests/workflow.test.d.ts +2 -0
- package/dist/types/document-models/workflow/v1/tests/workflow.test.d.ts.map +1 -0
- package/dist/types/document-models/workflow/v1/utils.d.ts +9 -0
- package/dist/types/document-models/workflow/v1/utils.d.ts.map +1 -0
- package/dist/types/editors/connection-editor/ConnectionToolbar.d.ts +8 -0
- package/dist/types/editors/connection-editor/ConnectionToolbar.d.ts.map +1 -0
- package/dist/types/editors/connection-editor/connection-callbacks.d.ts +5 -0
- package/dist/types/editors/connection-editor/connection-callbacks.d.ts.map +1 -0
- package/dist/types/editors/connection-editor/connection-form.d.ts +15 -0
- package/dist/types/editors/connection-editor/connection-form.d.ts.map +1 -0
- package/dist/types/editors/connection-editor/editor.d.ts +2 -0
- package/dist/types/editors/connection-editor/editor.d.ts.map +1 -0
- package/dist/types/editors/connection-editor/module.d.ts +8 -0
- package/dist/types/editors/connection-editor/module.d.ts.map +1 -0
- package/dist/types/editors/connection-editor/piece-auth.d.ts +26 -0
- package/dist/types/editors/connection-editor/piece-auth.d.ts.map +1 -0
- package/dist/types/editors/connection-editor/piece-auth.test.d.ts +2 -0
- package/dist/types/editors/connection-editor/piece-auth.test.d.ts.map +1 -0
- package/dist/types/editors/connection-editor/status.d.ts +3 -0
- package/dist/types/editors/connection-editor/status.d.ts.map +1 -0
- package/dist/types/editors/editors.d.ts +7 -0
- package/dist/types/editors/editors.d.ts.map +1 -0
- package/dist/types/editors/index.d.ts +4 -0
- package/dist/types/editors/index.d.ts.map +1 -0
- package/dist/types/editors/shared/DocumentErrorBoundary.d.ts +35 -0
- package/dist/types/editors/shared/DocumentErrorBoundary.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/document/useWorkflowModel.d.ts +6 -0
- package/dist/types/editors/workflow-editor/document/useWorkflowModel.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/editor.d.ts +5 -0
- package/dist/types/editors/workflow-editor/editor.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/module.d.ts +8 -0
- package/dist/types/editors/workflow-editor/module.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/runtime-api.d.ts +134 -0
- package/dist/types/editors/workflow-editor/runtime-api.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/runtime-api.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/runtime-api.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/runtime-piece-source.d.ts +2 -0
- package/dist/types/editors/workflow-editor/runtime-piece-source.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/ActionListEditor.d.ts +6 -0
- package/dist/types/editors/workflow-editor/ui/ActionListEditor.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/Autocomplete.d.ts +19 -0
- package/dist/types/editors/workflow-editor/ui/Autocomplete.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/BlockSelector.d.ts +26 -0
- package/dist/types/editors/workflow-editor/ui/BlockSelector.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/CanvasContextMenu.d.ts +14 -0
- package/dist/types/editors/workflow-editor/ui/CanvasContextMenu.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/ConnectionField.d.ts +8 -0
- package/dist/types/editors/workflow-editor/ui/ConnectionField.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/CreateConnectionModal.d.ts +7 -0
- package/dist/types/editors/workflow-editor/ui/CreateConnectionModal.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/ExpressionPicker.d.ts +50 -0
- package/dist/types/editors/workflow-editor/ui/ExpressionPicker.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/PieceMarkdown.d.ts +4 -0
- package/dist/types/editors/workflow-editor/ui/PieceMarkdown.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/PropertyForm.d.ts +21 -0
- package/dist/types/editors/workflow-editor/ui/PropertyForm.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/StepPanel.d.ts +16 -0
- package/dist/types/editors/workflow-editor/ui/StepPanel.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/VariablesEditor.d.ts +8 -0
- package/dist/types/editors/workflow-editor/ui/VariablesEditor.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/WorkflowCanvas.d.ts +11 -0
- package/dist/types/editors/workflow-editor/ui/WorkflowCanvas.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/WorkflowEditorApp.d.ts +8 -0
- package/dist/types/editors/workflow-editor/ui/WorkflowEditorApp.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/action-template.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/action-template.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/action-template.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/action-template.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/ap-edge.d.ts +8 -0
- package/dist/types/editors/workflow-editor/ui/ap-edge.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/ap-layout.d.ts +18 -0
- package/dist/types/editors/workflow-editor/ui/ap-layout.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/ap-layout.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/ap-layout.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/ap-nodes.d.ts +39 -0
- package/dist/types/editors/workflow-editor/ui/ap-nodes.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/block-meta.d.ts +17 -0
- package/dist/types/editors/workflow-editor/ui/block-meta.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/block-meta.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/block-meta.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/block-selector-chips.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/block-selector-chips.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/blocks.d.ts +10 -0
- package/dist/types/editors/workflow-editor/ui/blocks.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/canvas-menu.d.ts +33 -0
- package/dist/types/editors/workflow-editor/ui/canvas-menu.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/canvas-menu.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/canvas-menu.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/connection-create.d.ts +18 -0
- package/dist/types/editors/workflow-editor/ui/connection-create.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/connection-create.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/connection-create.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/expression-scope.d.ts +29 -0
- package/dist/types/editors/workflow-editor/ui/expression-scope.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/expression-scope.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/expression-scope.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/expression-tokens.d.ts +18 -0
- package/dist/types/editors/workflow-editor/ui/expression-tokens.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/expression-tokens.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/expression-tokens.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/forms.d.ts +71 -0
- package/dist/types/editors/workflow-editor/ui/forms.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/model.d.ts +111 -0
- package/dist/types/editors/workflow-editor/ui/model.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/piece-placeholders.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/piece-placeholders.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/piece-source.d.ts +47 -0
- package/dist/types/editors/workflow-editor/ui/piece-source.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/reactor-piece-form.d.ts +5 -0
- package/dist/types/editors/workflow-editor/ui/reactor-piece-form.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/reactor-piece-form.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/reactor-piece-form.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/step-drag.d.ts +13 -0
- package/dist/types/editors/workflow-editor/ui/step-drag.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/step-drag.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/step-drag.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/trigger-strategy.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/trigger-strategy.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/validation.d.ts +6 -0
- package/dist/types/editors/workflow-editor/ui/validation.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/ui/validation.test.d.ts +2 -0
- package/dist/types/editors/workflow-editor/ui/validation.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-editor/use-runtime-url.d.ts +3 -0
- package/dist/types/editors/workflow-editor/use-runtime-url.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/ConnectionView.d.ts +7 -0
- package/dist/types/editors/workflow-studio/components/ConnectionView.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/EditorToolbar.d.ts +8 -0
- package/dist/types/editors/workflow-studio/components/EditorToolbar.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/RunsTable.d.ts +7 -0
- package/dist/types/editors/workflow-studio/components/RunsTable.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/RunsView.d.ts +10 -0
- package/dist/types/editors/workflow-studio/components/RunsView.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/Sidebar.d.ts +16 -0
- package/dist/types/editors/workflow-studio/components/Sidebar.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/WorkflowHeader.d.ts +8 -0
- package/dist/types/editors/workflow-studio/components/WorkflowHeader.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/WorkflowSteps.d.ts +8 -0
- package/dist/types/editors/workflow-studio/components/WorkflowSteps.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/WorkflowStudio.d.ts +6 -0
- package/dist/types/editors/workflow-studio/components/WorkflowStudio.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/connection-usage.d.ts +24 -0
- package/dist/types/editors/workflow-studio/components/connection-usage.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/connection-usage.test.d.ts +2 -0
- package/dist/types/editors/workflow-studio/components/connection-usage.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/run-format.d.ts +23 -0
- package/dist/types/editors/workflow-studio/components/run-format.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/step-outline.d.ts +25 -0
- package/dist/types/editors/workflow-studio/components/step-outline.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/step-outline.test.d.ts +2 -0
- package/dist/types/editors/workflow-studio/components/step-outline.test.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/use-hash-selection.d.ts +5 -0
- package/dist/types/editors/workflow-studio/components/use-hash-selection.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/components/useRuns.d.ts +8 -0
- package/dist/types/editors/workflow-studio/components/useRuns.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/config.d.ts +3 -0
- package/dist/types/editors/workflow-studio/config.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/editor.d.ts +4 -0
- package/dist/types/editors/workflow-studio/editor.d.ts.map +1 -0
- package/dist/types/editors/workflow-studio/module.d.ts +8 -0
- package/dist/types/editors/workflow-studio/module.d.ts.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/pieces/index.d.ts +4 -0
- package/dist/types/pieces/index.d.ts.map +1 -0
- package/dist/types/pieces/reactor/index.d.ts +3 -0
- package/dist/types/pieces/reactor/index.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/actions/document-create.d.ts +9 -0
- package/dist/types/pieces/reactor/lib/actions/document-create.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/actions/document-dispatch.d.ts +9 -0
- package/dist/types/pieces/reactor/lib/actions/document-dispatch.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/actions/document-find.d.ts +10 -0
- package/dist/types/pieces/reactor/lib/actions/document-find.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/actions/document-get.d.ts +5 -0
- package/dist/types/pieces/reactor/lib/actions/document-get.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/actions/document-schema.d.ts +6 -0
- package/dist/types/pieces/reactor/lib/actions/document-schema.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/actions/document-types.d.ts +2 -0
- package/dist/types/pieces/reactor/lib/actions/document-types.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/logo.d.ts +2 -0
- package/dist/types/pieces/reactor/lib/logo.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/parse.d.ts +22 -0
- package/dist/types/pieces/reactor/lib/parse.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/parse.test.d.ts +2 -0
- package/dist/types/pieces/reactor/lib/parse.test.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/reactor.d.ts +6 -0
- package/dist/types/pieces/reactor/lib/reactor.d.ts.map +1 -0
- package/dist/types/pieces/reactor/lib/triggers/document-event.d.ts +45 -0
- package/dist/types/pieces/reactor/lib/triggers/document-event.d.ts.map +1 -0
- package/dist/types/reactor/index.d.ts +5 -0
- package/dist/types/reactor/index.d.ts.map +1 -0
- package/dist/types/vitest.config.d.ts +3 -0
- package/dist/types/vitest.config.d.ts.map +1 -0
- package/package.json +109 -0
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
import { ambientRenownTokenProvider } from "@powerhousedao/reactor-browser/graphql-client";
|
|
2
|
+
//#region editors/connection-editor/piece-auth.ts
|
|
3
|
+
function isConfigValueMissing(value) {
|
|
4
|
+
return value === void 0 || value === null || value === "";
|
|
5
|
+
}
|
|
6
|
+
function isAuthComplete(plan, config, refs) {
|
|
7
|
+
const configOk = plan.configFields.every((field) => !field.required || !isConfigValueMissing(config[field.name]));
|
|
8
|
+
const secretsOk = plan.secretFields.every((field) => !field.required || Boolean(refs.get(field.name)));
|
|
9
|
+
return configOk && secretsOk;
|
|
10
|
+
}
|
|
11
|
+
function toField(name, prop) {
|
|
12
|
+
return {
|
|
13
|
+
name,
|
|
14
|
+
displayName: prop.displayName ?? name,
|
|
15
|
+
required: prop.required ?? false,
|
|
16
|
+
description: prop.description,
|
|
17
|
+
inputType: prop.type,
|
|
18
|
+
options: prop.options?.options?.filter((option) => option.value !== void 0).map((option) => ({
|
|
19
|
+
label: option.label ?? String(option.value),
|
|
20
|
+
value: option.value
|
|
21
|
+
}))
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function planFromAuth(auth) {
|
|
25
|
+
if (Array.isArray(auth)) {
|
|
26
|
+
const plans = auth.map(planFromAuth);
|
|
27
|
+
return plans.find((plan) => plan.supported && plan.authType !== "NONE") ?? plans.at(0) ?? planFromAuth(null);
|
|
28
|
+
}
|
|
29
|
+
const descriptor = auth ?? null;
|
|
30
|
+
const base = {
|
|
31
|
+
displayName: descriptor?.displayName,
|
|
32
|
+
description: descriptor?.description
|
|
33
|
+
};
|
|
34
|
+
switch (descriptor?.type) {
|
|
35
|
+
case "SECRET_TEXT": return {
|
|
36
|
+
...base,
|
|
37
|
+
authType: "SECRET_TEXT",
|
|
38
|
+
configFields: [],
|
|
39
|
+
secretFields: [{
|
|
40
|
+
name: "value",
|
|
41
|
+
displayName: descriptor.displayName ?? "Secret",
|
|
42
|
+
required: descriptor.required ?? true,
|
|
43
|
+
description: descriptor.description
|
|
44
|
+
}],
|
|
45
|
+
supported: true
|
|
46
|
+
};
|
|
47
|
+
case "BASIC_AUTH": {
|
|
48
|
+
const props = descriptor.props ?? {};
|
|
49
|
+
return {
|
|
50
|
+
...base,
|
|
51
|
+
authType: "BASIC_AUTH",
|
|
52
|
+
configFields: [toField("username", props.username ?? { displayName: "Username" })],
|
|
53
|
+
secretFields: [toField("password", props.password ?? { displayName: "Password" })],
|
|
54
|
+
supported: true
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
case "CUSTOM_AUTH": {
|
|
58
|
+
const entries = Object.entries(descriptor.props ?? {}).filter((entry) => entry[1] !== void 0);
|
|
59
|
+
return {
|
|
60
|
+
...base,
|
|
61
|
+
authType: "CUSTOM_AUTH",
|
|
62
|
+
configFields: entries.filter(([, prop]) => prop.type !== "SECRET_TEXT").map(([name, prop]) => toField(name, prop)),
|
|
63
|
+
secretFields: entries.filter(([, prop]) => prop.type === "SECRET_TEXT").map(([name, prop]) => toField(name, prop)),
|
|
64
|
+
supported: true
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
case "OAUTH2": return {
|
|
68
|
+
...base,
|
|
69
|
+
authType: "OAUTH2",
|
|
70
|
+
configFields: [],
|
|
71
|
+
secretFields: [],
|
|
72
|
+
supported: false
|
|
73
|
+
};
|
|
74
|
+
case "OIDC": return {
|
|
75
|
+
...base,
|
|
76
|
+
authType: "OIDC",
|
|
77
|
+
configFields: [],
|
|
78
|
+
secretFields: [],
|
|
79
|
+
supported: false
|
|
80
|
+
};
|
|
81
|
+
default: return {
|
|
82
|
+
...base,
|
|
83
|
+
authType: "NONE",
|
|
84
|
+
configFields: [],
|
|
85
|
+
secretFields: [],
|
|
86
|
+
supported: true
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function connectorIdForPiece(packageName) {
|
|
91
|
+
return `${packageName}#${packageName.split("/").pop()?.replace(/^piece-/, "") ?? packageName}`;
|
|
92
|
+
}
|
|
93
|
+
function packageFromConnectorId(connectorId) {
|
|
94
|
+
const separator = connectorId.lastIndexOf("#");
|
|
95
|
+
return separator > 0 ? connectorId.slice(0, separator) : connectorId;
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
//#region editors/workflow-editor/ui/reactor-piece-form.ts
|
|
99
|
+
const REACTOR_PIECE = "@powerhousedao/piece-reactor";
|
|
100
|
+
const AUTOCOMPLETE_PROPS = new Set([
|
|
101
|
+
"documentType",
|
|
102
|
+
"documentId",
|
|
103
|
+
"actionType",
|
|
104
|
+
"parentId",
|
|
105
|
+
"driveId"
|
|
106
|
+
]);
|
|
107
|
+
function isReactorPieceBlock(blockType) {
|
|
108
|
+
return blockType.startsWith(`@powerhousedao/piece-reactor#`) || blockType.startsWith(`@powerhousedao/piece-reactor@`);
|
|
109
|
+
}
|
|
110
|
+
function adaptReactorProps(props) {
|
|
111
|
+
const hasActionList = props.some((prop) => prop.name === "actions");
|
|
112
|
+
return props.flatMap((prop) => {
|
|
113
|
+
if (prop.name === "actions") return [{
|
|
114
|
+
...prop,
|
|
115
|
+
type: "PH_ACTIONS",
|
|
116
|
+
hasDynamicResolver: true
|
|
117
|
+
}];
|
|
118
|
+
if (prop.name === "actionType" && hasActionList) return [];
|
|
119
|
+
if (AUTOCOMPLETE_PROPS.has(prop.name)) return [{
|
|
120
|
+
...prop,
|
|
121
|
+
type: "PH_AUTOCOMPLETE",
|
|
122
|
+
hasDynamicResolver: true
|
|
123
|
+
}];
|
|
124
|
+
return [prop];
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
//#endregion
|
|
128
|
+
//#region editors/workflow-editor/ui/forms.ts
|
|
129
|
+
const POLL_INTERVAL_PROP = {
|
|
130
|
+
name: "pollEverySeconds",
|
|
131
|
+
displayName: "Poll every (seconds)",
|
|
132
|
+
type: "NUMBER",
|
|
133
|
+
required: false,
|
|
134
|
+
description: "How often the reactor checks this trigger; 60 at the least. Omit to follow the piece's own cadence."
|
|
135
|
+
};
|
|
136
|
+
const text = (name, displayName, required = false, description) => ({
|
|
137
|
+
name,
|
|
138
|
+
displayName,
|
|
139
|
+
type: "SHORT_TEXT",
|
|
140
|
+
required,
|
|
141
|
+
description
|
|
142
|
+
});
|
|
143
|
+
const secretRef = (name, displayName, required = false, description) => ({
|
|
144
|
+
name,
|
|
145
|
+
displayName,
|
|
146
|
+
type: "PH_SECRET_REF",
|
|
147
|
+
required,
|
|
148
|
+
description
|
|
149
|
+
});
|
|
150
|
+
const number = (name, displayName, required = false, description) => ({
|
|
151
|
+
name,
|
|
152
|
+
displayName,
|
|
153
|
+
type: "NUMBER",
|
|
154
|
+
required,
|
|
155
|
+
description
|
|
156
|
+
});
|
|
157
|
+
const advanced = (prop) => ({
|
|
158
|
+
...prop,
|
|
159
|
+
advanced: true
|
|
160
|
+
});
|
|
161
|
+
const shownWhen = (prop, sibling, oneOf) => ({
|
|
162
|
+
...prop,
|
|
163
|
+
showWhen: {
|
|
164
|
+
prop: sibling,
|
|
165
|
+
oneOf
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
const dropdown = (name, displayName, options, required = false, description) => ({
|
|
169
|
+
name,
|
|
170
|
+
displayName,
|
|
171
|
+
type: "STATIC_DROPDOWN",
|
|
172
|
+
required,
|
|
173
|
+
description,
|
|
174
|
+
staticOptions: options
|
|
175
|
+
});
|
|
176
|
+
const SIGNED_SCHEMES = [
|
|
177
|
+
"token",
|
|
178
|
+
"hmac",
|
|
179
|
+
"hmac-prefixed",
|
|
180
|
+
"hmac-timestamped"
|
|
181
|
+
];
|
|
182
|
+
const HMAC_SCHEMES = [
|
|
183
|
+
"hmac",
|
|
184
|
+
"hmac-prefixed",
|
|
185
|
+
"hmac-timestamped"
|
|
186
|
+
];
|
|
187
|
+
const CORE_FORMS = {
|
|
188
|
+
"core#manual": {
|
|
189
|
+
title: "Manual trigger",
|
|
190
|
+
requireAuth: false,
|
|
191
|
+
auth: "none",
|
|
192
|
+
props: []
|
|
193
|
+
},
|
|
194
|
+
"core#schedule": {
|
|
195
|
+
title: "Schedule",
|
|
196
|
+
requireAuth: false,
|
|
197
|
+
auth: "none",
|
|
198
|
+
props: [
|
|
199
|
+
dropdown("mode", "Mode", [{
|
|
200
|
+
label: "Cron expression",
|
|
201
|
+
value: "cron"
|
|
202
|
+
}, {
|
|
203
|
+
label: "Fixed interval",
|
|
204
|
+
value: "interval"
|
|
205
|
+
}], true),
|
|
206
|
+
text("cron", "Cron expression", false, "Five fields, e.g. 0 9 * * 1-5 (09:00 on weekdays); cron mode only"),
|
|
207
|
+
number("every", "Every", false, "Interval mode only; at least one minute"),
|
|
208
|
+
dropdown("unit", "Unit", [
|
|
209
|
+
{
|
|
210
|
+
label: "Minutes",
|
|
211
|
+
value: "minutes"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
label: "Hours",
|
|
215
|
+
value: "hours"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
label: "Days",
|
|
219
|
+
value: "days"
|
|
220
|
+
}
|
|
221
|
+
]),
|
|
222
|
+
text("timezone", "Timezone", false, "IANA name, e.g. Europe/Lisbon; defaults to UTC")
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
"core#webhook": {
|
|
226
|
+
title: "Webhook",
|
|
227
|
+
requireAuth: false,
|
|
228
|
+
auth: "none",
|
|
229
|
+
props: [
|
|
230
|
+
dropdown("methods", "Method", [
|
|
231
|
+
{
|
|
232
|
+
label: "POST",
|
|
233
|
+
value: "POST"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
label: "Any",
|
|
237
|
+
value: "ANY"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
label: "GET",
|
|
241
|
+
value: "GET"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
label: "PUT",
|
|
245
|
+
value: "PUT"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
label: "PATCH",
|
|
249
|
+
value: "PATCH"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
label: "DELETE",
|
|
253
|
+
value: "DELETE"
|
|
254
|
+
}
|
|
255
|
+
], true),
|
|
256
|
+
dropdown("scheme", "Verification", [
|
|
257
|
+
{
|
|
258
|
+
label: "None — the URL's token only",
|
|
259
|
+
value: "none"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
label: "Shared token in a header",
|
|
263
|
+
value: "token"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
label: "HMAC digest",
|
|
267
|
+
value: "hmac"
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
label: "HMAC digest with a label (sha256=…)",
|
|
271
|
+
value: "hmac-prefixed"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
label: "HMAC digest, timestamped (t=…,v1=…)",
|
|
275
|
+
value: "hmac-timestamped"
|
|
276
|
+
}
|
|
277
|
+
], true),
|
|
278
|
+
shownWhen(secretRef("secretRef", "Secret", true, "The shared secret: the value the header must equal, or the key the sender signs with"), "scheme", SIGNED_SCHEMES),
|
|
279
|
+
advanced(shownWhen(text("header", "Header", false, "Where the token or signature is read from. Defaults to the header the chosen scheme conventionally uses; set it only if the sender differs"), "scheme", SIGNED_SCHEMES)),
|
|
280
|
+
advanced(shownWhen(number("toleranceSeconds", "Replay window (seconds)", false, "Rejects a delivery signed longer ago than this, so a captured request expires. Default 300"), "scheme", ["hmac-timestamped"])),
|
|
281
|
+
advanced(shownWhen(dropdown("algorithm", "Hash", [
|
|
282
|
+
{
|
|
283
|
+
label: "SHA-256 (default)",
|
|
284
|
+
value: "sha256"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
label: "SHA-1",
|
|
288
|
+
value: "sha1"
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
label: "SHA-512",
|
|
292
|
+
value: "sha512"
|
|
293
|
+
}
|
|
294
|
+
]), "scheme", HMAC_SCHEMES)),
|
|
295
|
+
advanced(shownWhen(dropdown("encoding", "Digest encoding", [{
|
|
296
|
+
label: "Hexadecimal (default)",
|
|
297
|
+
value: "hex"
|
|
298
|
+
}, {
|
|
299
|
+
label: "Base64",
|
|
300
|
+
value: "base64"
|
|
301
|
+
}]), "scheme", HMAC_SCHEMES)),
|
|
302
|
+
advanced(shownWhen(text("prefix", "Signature label", false, "The literal before the digest. Defaults to the hash and an equals sign, e.g. sha256=. Leave blank for a sender that sends the digest with no label"), "scheme", ["hmac-prefixed"])),
|
|
303
|
+
advanced(text("dedupeField", "Event id field", false, "Where the sender puts its own event id, so a redelivery is accepted without a second run. A bare name reads a query param or a top-level body field; prefix with header: or body: to read a header or a nested path (header:x-delivery-id, body:data.object.id)")),
|
|
304
|
+
advanced(number("dedupeTtlSeconds", "Dedupe window (seconds)", false, "How long an event id is remembered. Default 300")),
|
|
305
|
+
advanced(text("challengeField", "Challenge field", false, "Echo this field back instead of running, for senders that verify the endpoint before registering it. Same header:/body: prefixes as the event id field")),
|
|
306
|
+
advanced(dropdown("responseMode", "Response", [{
|
|
307
|
+
label: "Answer immediately (202)",
|
|
308
|
+
value: "async"
|
|
309
|
+
}, {
|
|
310
|
+
label: "Wait for the run (200)",
|
|
311
|
+
value: "sync"
|
|
312
|
+
}], false, "Waiting holds the sender's socket open for the whole run")),
|
|
313
|
+
advanced(number("responseStatus", "Success status", false, "Status returned on acceptance. Default 202 async, 200 sync"))
|
|
314
|
+
]
|
|
315
|
+
},
|
|
316
|
+
"core#branch": {
|
|
317
|
+
title: "Branch",
|
|
318
|
+
requireAuth: false,
|
|
319
|
+
auth: "none",
|
|
320
|
+
props: [text("condition", "Condition", true, "e.g. {{steps.fetch.output.body.ok}}"), text("equals", "Equals", false, "Take the true port only when the condition matches this; omit for truthiness")]
|
|
321
|
+
},
|
|
322
|
+
"core#assert": {
|
|
323
|
+
title: "Assert",
|
|
324
|
+
requireAuth: false,
|
|
325
|
+
auth: "none",
|
|
326
|
+
props: [
|
|
327
|
+
text("value", "Value", true, "e.g. {{steps.describe.output}} - the run fails when it is blank"),
|
|
328
|
+
{
|
|
329
|
+
name: "rejectValues",
|
|
330
|
+
displayName: "Rejected values",
|
|
331
|
+
type: "ARRAY",
|
|
332
|
+
required: false,
|
|
333
|
+
description: "One per line; the run fails when the value matches any of them"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
name: "allowValues",
|
|
337
|
+
displayName: "Allowed values",
|
|
338
|
+
type: "ARRAY",
|
|
339
|
+
required: false,
|
|
340
|
+
description: "One per line; when set, anything else fails. Safer than a reject list for model output"
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
name: "allowEmpty",
|
|
344
|
+
displayName: "Allow empty",
|
|
345
|
+
type: "CHECKBOX",
|
|
346
|
+
required: false,
|
|
347
|
+
description: "Accept a blank value instead of failing"
|
|
348
|
+
},
|
|
349
|
+
text("message", "Failure message", false, "Replaces the default error")
|
|
350
|
+
]
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
//#endregion
|
|
354
|
+
//#region editors/workflow-editor/runtime-api.ts
|
|
355
|
+
const DEFAULT_RUNTIME_URL = "http://localhost:4001/graphql/workflow-runtime";
|
|
356
|
+
let currentRuntimeUrl;
|
|
357
|
+
function setRuntimeUrl(url) {
|
|
358
|
+
if (url === currentRuntimeUrl) return;
|
|
359
|
+
currentRuntimeUrl = url;
|
|
360
|
+
formCache.clear();
|
|
361
|
+
outputTreeCache.clear();
|
|
362
|
+
catalogCache = void 0;
|
|
363
|
+
}
|
|
364
|
+
function runtimeUrl() {
|
|
365
|
+
return currentRuntimeUrl ?? "http://localhost:4001/graphql/workflow-runtime";
|
|
366
|
+
}
|
|
367
|
+
async function gql(query, variables) {
|
|
368
|
+
const token = await ambientRenownTokenProvider();
|
|
369
|
+
const body = await (await fetch(runtimeUrl(), {
|
|
370
|
+
method: "POST",
|
|
371
|
+
headers: {
|
|
372
|
+
"content-type": "application/json",
|
|
373
|
+
...token ? { authorization: `Bearer ${token}` } : {}
|
|
374
|
+
},
|
|
375
|
+
body: JSON.stringify({
|
|
376
|
+
query,
|
|
377
|
+
variables
|
|
378
|
+
})
|
|
379
|
+
})).json();
|
|
380
|
+
if (body.errors?.length) throw new Error(body.errors[0].message);
|
|
381
|
+
if (!body.data) throw new Error("Empty GraphQL response");
|
|
382
|
+
return body.data;
|
|
383
|
+
}
|
|
384
|
+
const formCache = /* @__PURE__ */ new Map();
|
|
385
|
+
function getBlockForm(blockType) {
|
|
386
|
+
const core = CORE_FORMS[blockType];
|
|
387
|
+
if (core) return Promise.resolve(core);
|
|
388
|
+
let cached = formCache.get(blockType);
|
|
389
|
+
if (!cached) {
|
|
390
|
+
cached = gql(`query Descriptor($blockType: String!) {
|
|
391
|
+
workflowRuntime { blockDescriptor(blockType: $blockType) }
|
|
392
|
+
}`, { blockType }).then((data) => {
|
|
393
|
+
const descriptor = data.workflowRuntime.blockDescriptor;
|
|
394
|
+
const entry = descriptor?.action ?? descriptor?.trigger;
|
|
395
|
+
if (!descriptor || !entry) return null;
|
|
396
|
+
const isTrigger = !descriptor.action && Boolean(descriptor.trigger);
|
|
397
|
+
const reactorPiece = isReactorPieceBlock(blockType);
|
|
398
|
+
const polled = isTrigger && entry.strategy !== "WEBHOOK" && !reactorPiece;
|
|
399
|
+
const props = reactorPiece ? adaptReactorProps(entry.props) : entry.props;
|
|
400
|
+
return {
|
|
401
|
+
title: `${descriptor.displayName} · ${entry.displayName}`,
|
|
402
|
+
requireAuth: entry.requireAuth,
|
|
403
|
+
auth: !descriptor.auth ? "none" : entry.requireAuth ? "required" : "optional",
|
|
404
|
+
props: polled ? [...props, POLL_INTERVAL_PROP] : props,
|
|
405
|
+
triggerStrategy: isTrigger ? entry.strategy : void 0
|
|
406
|
+
};
|
|
407
|
+
});
|
|
408
|
+
formCache.set(blockType, cached);
|
|
409
|
+
cached.catch(() => formCache.delete(blockType));
|
|
410
|
+
}
|
|
411
|
+
return cached;
|
|
412
|
+
}
|
|
413
|
+
let catalogCache;
|
|
414
|
+
function fetchPieceCatalog() {
|
|
415
|
+
catalogCache ??= gql(`query Catalog { workflowRuntime { pieceCatalog } }`, {}).then((data) => data.workflowRuntime.pieceCatalog);
|
|
416
|
+
catalogCache.catch(() => catalogCache = void 0);
|
|
417
|
+
return catalogCache;
|
|
418
|
+
}
|
|
419
|
+
async function fetchPieceActions(packageName) {
|
|
420
|
+
return (await gql(`query Actions($packageName: String!) {
|
|
421
|
+
workflowRuntime { pieceActions(packageName: $packageName) }
|
|
422
|
+
}`, { packageName })).workflowRuntime.pieceActions.actions;
|
|
423
|
+
}
|
|
424
|
+
async function fetchPieceTriggers(packageName) {
|
|
425
|
+
return (await gql(`query Triggers($packageName: String!) {
|
|
426
|
+
workflowRuntime { pieceTriggers(packageName: $packageName) }
|
|
427
|
+
}`, { packageName })).workflowRuntime.pieceTriggers.triggers;
|
|
428
|
+
}
|
|
429
|
+
async function searchBlocks(query, limit = 30) {
|
|
430
|
+
return (await gql(`query SearchBlocks($query: String!, $limit: Int) {
|
|
431
|
+
workflowRuntime { searchBlocks(query: $query, limit: $limit) {
|
|
432
|
+
status indexedPieces error
|
|
433
|
+
hits { blockType pieceName pieceDisplayName logoUrl displayName description kind strategy }
|
|
434
|
+
} }
|
|
435
|
+
}`, {
|
|
436
|
+
query,
|
|
437
|
+
limit
|
|
438
|
+
})).workflowRuntime.searchBlocks;
|
|
439
|
+
}
|
|
440
|
+
const outputTreeCache = /* @__PURE__ */ new Map();
|
|
441
|
+
function fetchBlockOutputTree(blockType, config) {
|
|
442
|
+
const key = `${blockType}:${JSON.stringify(config ?? {})}`;
|
|
443
|
+
let cached = outputTreeCache.get(key);
|
|
444
|
+
if (!cached) {
|
|
445
|
+
cached = gql(`query OutputTree($blockType: String!, $config: Unknown) {
|
|
446
|
+
workflowRuntime { blockOutputTree(blockType: $blockType, config: $config) }
|
|
447
|
+
}`, {
|
|
448
|
+
blockType,
|
|
449
|
+
config: config ?? {}
|
|
450
|
+
}).then((data) => data.workflowRuntime.blockOutputTree);
|
|
451
|
+
outputTreeCache.set(key, cached);
|
|
452
|
+
cached.catch(() => outputTreeCache.delete(key));
|
|
453
|
+
}
|
|
454
|
+
return cached;
|
|
455
|
+
}
|
|
456
|
+
function fetchConnections() {
|
|
457
|
+
return gql(`query Connections { workflowRuntime { connections { id name connectorId authType status accountLabel } } }`, {}).then((data) => data.workflowRuntime.connections);
|
|
458
|
+
}
|
|
459
|
+
function invalidateConnections() {}
|
|
460
|
+
function checkConnection(connectionId) {
|
|
461
|
+
return gql(`mutation CheckConnection($connectionId: String!) {
|
|
462
|
+
workflowRuntime {
|
|
463
|
+
checkConnection(connectionId: $connectionId) {
|
|
464
|
+
ok
|
|
465
|
+
detail
|
|
466
|
+
accountLabel
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}`, { connectionId }).then((data) => data.workflowRuntime.checkConnection);
|
|
470
|
+
}
|
|
471
|
+
const SECRET_FIELDS = "ref label version status createdAt updatedAt";
|
|
472
|
+
async function createSecret(value, label) {
|
|
473
|
+
return (await gql(`mutation CreateSecret($value: String!, $label: String) {
|
|
474
|
+
workflowRuntime { createSecret(value: $value, label: $label) { ${SECRET_FIELDS} } }
|
|
475
|
+
}`, {
|
|
476
|
+
value,
|
|
477
|
+
label: label ?? null
|
|
478
|
+
})).workflowRuntime.createSecret;
|
|
479
|
+
}
|
|
480
|
+
async function rotateSecret(ref, value) {
|
|
481
|
+
return (await gql(`mutation RotateSecret($ref: String!, $value: String!) {
|
|
482
|
+
workflowRuntime { rotateSecret(ref: $ref, value: $value) { ${SECRET_FIELDS} } }
|
|
483
|
+
}`, {
|
|
484
|
+
ref,
|
|
485
|
+
value
|
|
486
|
+
})).workflowRuntime.rotateSecret;
|
|
487
|
+
}
|
|
488
|
+
async function fetchSecretStat(ref) {
|
|
489
|
+
return (await gql(`query Secret($ref: String!) {
|
|
490
|
+
workflowRuntime { secret(ref: $ref) { ${SECRET_FIELDS} } }
|
|
491
|
+
}`, { ref })).workflowRuntime.secret;
|
|
492
|
+
}
|
|
493
|
+
async function fetchWebhookEndpoint(workflowId) {
|
|
494
|
+
return (await gql(`query WebhookEndpoint($workflowId: String!) {
|
|
495
|
+
workflowRuntime {
|
|
496
|
+
webhookEndpoint(workflowId: $workflowId) {
|
|
497
|
+
workflowId url absoluteUrl armed createdAt
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}`, { workflowId })).workflowRuntime.webhookEndpoint;
|
|
501
|
+
}
|
|
502
|
+
async function testTrigger(workflowId) {
|
|
503
|
+
return (await gql(`mutation TestTrigger($workflowId: String!) {
|
|
504
|
+
workflowRuntime { testTrigger(workflowId: $workflowId) }
|
|
505
|
+
}`, { workflowId })).workflowRuntime.testTrigger;
|
|
506
|
+
}
|
|
507
|
+
const RUN_FIELDS = `id workflowId workflowName workflowVersion triggerKind
|
|
508
|
+
triggerPayload status error startedAt endedAt rerunOf
|
|
509
|
+
steps { stepId stepKey blockType status input output port error }`;
|
|
510
|
+
async function fetchRuns(scope = {}) {
|
|
511
|
+
return (await gql(`query Runs($workflowId: String, $driveId: String, $limit: Int) {
|
|
512
|
+
workflowRuntime { runs(workflowId: $workflowId, driveId: $driveId, limit: $limit) { ${RUN_FIELDS} } }
|
|
513
|
+
}`, {
|
|
514
|
+
workflowId: scope.workflowId ?? null,
|
|
515
|
+
driveId: scope.driveId ?? null,
|
|
516
|
+
limit: scope.limit ?? 30
|
|
517
|
+
})).workflowRuntime.runs;
|
|
518
|
+
}
|
|
519
|
+
async function fireWorkflow(workflowId, payload) {
|
|
520
|
+
return (await gql(`mutation Fire($workflowId: String!, $payload: Unknown) {
|
|
521
|
+
workflowRuntime { fire(workflowId: $workflowId, payload: $payload) { runId status error } }
|
|
522
|
+
}`, {
|
|
523
|
+
workflowId,
|
|
524
|
+
payload: payload ?? {}
|
|
525
|
+
})).workflowRuntime.fire;
|
|
526
|
+
}
|
|
527
|
+
async function rerunRun(runId) {
|
|
528
|
+
return (await gql(`mutation Rerun($runId: String!) {
|
|
529
|
+
workflowRuntime { rerun(runId: $runId) { runId status error } }
|
|
530
|
+
}`, { runId })).workflowRuntime.rerun;
|
|
531
|
+
}
|
|
532
|
+
async function loadBlockOptions(blockType, propName, input, connectionId) {
|
|
533
|
+
return (await gql(`query Options($blockType: String!, $propName: String!, $input: Unknown, $connectionId: String) {
|
|
534
|
+
workflowRuntime { blockOptions(blockType: $blockType, propName: $propName, input: $input, connectionId: $connectionId) }
|
|
535
|
+
}`, {
|
|
536
|
+
blockType,
|
|
537
|
+
propName,
|
|
538
|
+
input,
|
|
539
|
+
connectionId: connectionId ?? null
|
|
540
|
+
})).workflowRuntime.blockOptions;
|
|
541
|
+
}
|
|
542
|
+
//#endregion
|
|
543
|
+
export { connectorIdForPiece as C, planFromAuth as D, packageFromConnectorId as E, REACTOR_PIECE as S, isConfigValueMissing as T, rotateSecret as _, fetchConnections as a, testTrigger as b, fetchPieceTriggers as c, fetchWebhookEndpoint as d, fireWorkflow as f, rerunRun as g, loadBlockOptions as h, fetchBlockOutputTree as i, fetchRuns as l, invalidateConnections as m, checkConnection as n, fetchPieceActions as o, getBlockForm as p, createSecret as r, fetchPieceCatalog as s, DEFAULT_RUNTIME_URL as t, fetchSecretStat as u, searchBlocks as v, isAuthComplete as w, CORE_FORMS as x, setRuntimeUrl as y };
|
|
544
|
+
|
|
545
|
+
//# sourceMappingURL=runtime-api-JQ6lSS1Y.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-api-JQ6lSS1Y.mjs","names":[],"sources":["../../editors/connection-editor/piece-auth.ts","../../editors/workflow-editor/ui/reactor-piece-form.ts","../../editors/workflow-editor/ui/forms.ts","../../editors/workflow-editor/runtime-api.ts"],"sourcesContent":["// Turns a piece's PieceAuth descriptor into a concrete field plan that maps\n// onto powerhouse/connection state: config fields vs secret refs.\nimport type { ConnectionAuthType } from \"document-models/connection\";\n\nexport interface AuthField {\n name: string;\n displayName: string;\n required: boolean;\n description?: string;\n // Non-secret fields only: SHORT_TEXT | NUMBER | CHECKBOX | STATIC_DROPDOWN.\n inputType?: string;\n options?: { label: string; value: unknown }[];\n}\n\nexport interface AuthPlan {\n authType: ConnectionAuthType;\n displayName?: string;\n description?: string;\n configFields: AuthField[];\n secretFields: AuthField[];\n // OAUTH2 / OIDC are declared but not executable by the runtime yet.\n supported: boolean;\n}\n\n// Missing means unset, explicitly null, or emptied to \"\" - not `false`/`0`.\nexport function isConfigValueMissing(value: unknown): boolean {\n return value === undefined || value === null || value === \"\";\n}\n\n// Whether every required config/secret field of the plan is filled; pure so\n// it can drive a live re-check as the user edits, not just a one-time mark.\nexport function isAuthComplete(\n plan: AuthPlan,\n config: Record<string, unknown>,\n refs: Map<string, string>,\n): boolean {\n const configOk = plan.configFields.every(\n (field) => !field.required || !isConfigValueMissing(config[field.name]),\n );\n const secretsOk = plan.secretFields.every(\n (field) => !field.required || Boolean(refs.get(field.name)),\n );\n return configOk && secretsOk;\n}\n\ninterface AuthPropDescriptor {\n displayName?: string;\n description?: string;\n required?: boolean;\n type?: string;\n options?: { options?: { label?: string; value?: unknown }[] };\n}\n\ninterface PieceAuthDescriptor {\n type?: string;\n displayName?: string;\n description?: string;\n required?: boolean;\n props?: Partial<Record<string, AuthPropDescriptor>>;\n}\n\nfunction toField(name: string, prop: AuthPropDescriptor): AuthField {\n return {\n name,\n displayName: prop.displayName ?? name,\n required: prop.required ?? false,\n description: prop.description,\n inputType: prop.type,\n options: prop.options?.options\n ?.filter((option) => option.value !== undefined)\n .map((option) => ({\n label: option.label ?? String(option.value as string),\n value: option.value,\n })),\n };\n}\n\nexport function planFromAuth(auth: unknown): AuthPlan {\n // Some pieces declare multiple auth methods; prefer one the runtime supports.\n if (Array.isArray(auth)) {\n const plans = auth.map(planFromAuth);\n return (\n plans.find((plan) => plan.supported && plan.authType !== \"NONE\") ??\n plans.at(0) ??\n planFromAuth(null)\n );\n }\n const descriptor = (auth ?? null) as PieceAuthDescriptor | null;\n const base = {\n displayName: descriptor?.displayName,\n description: descriptor?.description,\n };\n switch (descriptor?.type) {\n case \"SECRET_TEXT\":\n return {\n ...base,\n authType: \"SECRET_TEXT\",\n configFields: [],\n secretFields: [\n {\n name: \"value\",\n displayName: descriptor.displayName ?? \"Secret\",\n required: descriptor.required ?? true,\n description: descriptor.description,\n },\n ],\n supported: true,\n };\n case \"BASIC_AUTH\": {\n const props = descriptor.props ?? {};\n return {\n ...base,\n authType: \"BASIC_AUTH\",\n configFields: [\n toField(\"username\", props.username ?? { displayName: \"Username\" }),\n ],\n secretFields: [\n toField(\"password\", props.password ?? { displayName: \"Password\" }),\n ],\n supported: true,\n };\n }\n case \"CUSTOM_AUTH\": {\n const entries = Object.entries(descriptor.props ?? {}).filter(\n (entry): entry is [string, AuthPropDescriptor] =>\n entry[1] !== undefined,\n );\n return {\n ...base,\n authType: \"CUSTOM_AUTH\",\n configFields: entries\n .filter(([, prop]) => prop.type !== \"SECRET_TEXT\")\n .map(([name, prop]) => toField(name, prop)),\n secretFields: entries\n .filter(([, prop]) => prop.type === \"SECRET_TEXT\")\n .map(([name, prop]) => toField(name, prop)),\n supported: true,\n };\n }\n case \"OAUTH2\":\n return {\n ...base,\n authType: \"OAUTH2\",\n configFields: [],\n secretFields: [],\n supported: false,\n };\n case \"OIDC\":\n return {\n ...base,\n authType: \"OIDC\",\n configFields: [],\n secretFields: [],\n supported: false,\n };\n default:\n return {\n ...base,\n authType: \"NONE\",\n configFields: [],\n secretFields: [],\n supported: true,\n };\n }\n}\n\n// \"@activepieces/piece-gotify\" -> \"@activepieces/piece-gotify#gotify\"\nexport function connectorIdForPiece(packageName: string): string {\n const short =\n packageName\n .split(\"/\")\n .pop()\n ?.replace(/^piece-/, \"\") ?? packageName;\n return `${packageName}#${short}`;\n}\n\nexport function packageFromConnectorId(connectorId: string): string {\n const separator = connectorId.lastIndexOf(\"#\");\n return separator > 0 ? connectorId.slice(0, separator) : connectorId;\n}\n","// How this editor renders the reactor piece's props.\n\n// The piece declares what any host could serve: DROPDOWNs with options() and\n// a JSON list of actions. This editor has richer controls for both — an\n// autocomplete that also takes an expression, and a per-action editor — so it\n// substitutes them by prop name. The piece stays portable; the mapping is the\n// one place that knows this editor can do better.\nimport type { BlockFormProp } from \"./forms.js\";\n\n// The piece this package ships, named as pieces/index.ts declares it.\nexport const REACTOR_PIECE = \"@powerhousedao/piece-reactor\";\n\n// Values that name a document or a model: a step is as likely to feed one\n// from an upstream expression as to pick it, which a select cannot express.\nconst AUTOCOMPLETE_PROPS = new Set([\n \"documentType\",\n \"documentId\",\n \"actionType\",\n \"parentId\",\n \"driveId\",\n]);\n\nexport function isReactorPieceBlock(blockType: string): boolean {\n return (\n blockType.startsWith(`${REACTOR_PIECE}#`) ||\n blockType.startsWith(`${REACTOR_PIECE}@`)\n );\n}\n\nexport function adaptReactorProps(props: BlockFormProp[]): BlockFormProp[] {\n const hasActionList = props.some((prop) => prop.name === \"actions\");\n return props.flatMap((prop): BlockFormProp[] => {\n if (prop.name === \"actions\") {\n return [{ ...prop, type: \"PH_ACTIONS\", hasDynamicResolver: true }];\n }\n // Beside an action list this prop is not a field of its own: it is where\n // the list's action types come from.\n if (prop.name === \"actionType\" && hasActionList) return [];\n if (AUTOCOMPLETE_PROPS.has(prop.name)) {\n return [{ ...prop, type: \"PH_AUTOCOMPLETE\", hasDynamicResolver: true }];\n }\n return [prop];\n });\n}\n","// Form descriptors driving property panels; pure data, mirrors the\n// ConnectorPropDescriptor shape from the workflow runtime.\n\nexport interface BlockFormProp {\n name: string;\n displayName: string;\n type: string;\n required: boolean;\n defaultValue?: unknown;\n staticOptions?: { label: string; value: unknown }[];\n hasDynamicResolver?: boolean;\n description?: string;\n placeholder?: string;\n // Sibling prop names whose values feed the resolver; a change re-runs it.\n refreshers?: string[];\n // Nested shape: ARRAY item fields, or what a DYNAMIC resolver produced.\n properties?: BlockFormProp[];\n // Folded behind \"Advanced\": fields with a working default, so the common\n // case is short. Opens expanded when set, else live config would be hidden.\n advanced?: boolean;\n // Shown only while a sibling prop holds one of these values; data, not a\n // predicate, so a piece form arriving as JSON can express it too.\n showWhen?: { prop: string; oneOf: unknown[] };\n}\n\nexport interface BlockForm {\n title: string;\n requireAuth: boolean;\n // Whether the block takes a connection: none hides the field entirely.\n auth?: \"none\" | \"optional\" | \"required\";\n props: BlockFormProp[];\n // Piece triggers only: POLLING | WEBHOOK | APP_WEBHOOK. WEBHOOK triggers\n // are fed by a request, so the panel shows their endpoint URL.\n triggerStrategy?: string;\n}\n\nexport interface ConnectionSummary {\n id: string;\n name: string;\n connectorId: string;\n authType: string;\n status: string;\n accountLabel: string | null;\n}\n\nexport interface SecretStat {\n ref: string;\n label: string | null;\n version: number;\n status: string;\n createdAt: string;\n updatedAt: string;\n}\n\n// Minting seam for PH_SECRET_REF props: the field takes a value and the\n// document only ever receives the ref that comes back.\nexport interface SecretFormService {\n save: (input: {\n ref?: string;\n value: string;\n label: string;\n }) => Promise<SecretStat>;\n stat: (ref: string) => Promise<SecretStat | null>;\n}\n\nexport interface WebhookEndpoint {\n workflowId: string;\n url: string;\n // False when `url` is a bare path because the reactor has no public origin.\n absoluteUrl: boolean;\n armed: boolean;\n createdAt: string;\n}\n\nexport interface DesignTimeService {\n getBlockForm: (blockType: string) => Promise<BlockForm | null>;\n loadOptions: (\n blockType: string,\n propName: string,\n input: Record<string, unknown>,\n connectionId?: string,\n ) => Promise<unknown>;\n // Runs the current workflow's piece trigger test hook; sample items back.\n testTrigger?: () => Promise<unknown>;\n // The current workflow's webhook endpoint, for core#webhook triggers.\n webhookEndpoint?: () => Promise<WebhookEndpoint | null>;\n // Backs PH_SECRET_REF props; absent when the runtime refuses secret writes.\n secrets?: SecretFormService;\n // powerhouse/connection documents for the connection picker.\n listConnections?: () => Promise<ConnectionSummary[]>;\n // Drops the cached listing after the picker creates a connection.\n refreshConnections?: () => void;\n}\n\n// Ours, not the piece's: the reactor's poll cadence for a piece trigger.\n// Appended to every piece trigger's form; see splitPollInterval in the runtime.\nexport const POLL_INTERVAL_PROP: BlockFormProp = {\n name: \"pollEverySeconds\",\n displayName: \"Poll every (seconds)\",\n type: \"NUMBER\",\n required: false,\n description:\n \"How often the reactor checks this trigger; 60 at the least. Omit to follow the piece's own cadence.\",\n};\n\nconst text = (\n name: string,\n displayName: string,\n required = false,\n description?: string,\n): BlockFormProp => ({\n name,\n displayName,\n type: \"SHORT_TEXT\",\n required,\n description,\n});\n\n// Takes a secret VALUE and commits only the minted ref, the way the\n// connection editor's SecretField does; the document never holds the value.\nconst secretRef = (\n name: string,\n displayName: string,\n required = false,\n description?: string,\n): BlockFormProp => ({\n name,\n displayName,\n type: \"PH_SECRET_REF\",\n required,\n description,\n});\n\nconst number = (\n name: string,\n displayName: string,\n required = false,\n description?: string,\n): BlockFormProp => ({\n name,\n displayName,\n type: \"NUMBER\",\n required,\n description,\n});\n\n// Marks a prop for the \"Advanced\" section without repeating the builders.\nconst advanced = (prop: BlockFormProp): BlockFormProp => ({\n ...prop,\n advanced: true,\n});\n\n// Hides a prop until a sibling holds one of `oneOf`.\nconst shownWhen = (\n prop: BlockFormProp,\n sibling: string,\n oneOf: unknown[],\n): BlockFormProp => ({ ...prop, showWhen: { prop: sibling, oneOf } });\n\nconst dropdown = (\n name: string,\n displayName: string,\n options: { label: string; value: unknown }[],\n required = false,\n description?: string,\n): BlockFormProp => ({\n name,\n displayName,\n type: \"STATIC_DROPDOWN\",\n required,\n description,\n staticOptions: options,\n});\n\n// Every scheme that verifies a signature, and so needs a secret.\nconst SIGNED_SCHEMES = [\"token\", \"hmac\", \"hmac-prefixed\", \"hmac-timestamped\"];\n\n// Schemes that compute a digest, and so take a hash and an encoding. `token`\n// presents the secret verbatim, so none of that applies to it.\nconst HMAC_SCHEMES = [\"hmac\", \"hmac-prefixed\", \"hmac-timestamped\"];\n\n// Hand-written forms for core blocks and triggers.\nexport const CORE_FORMS: Record<string, BlockForm> = {\n \"core#manual\": {\n title: \"Manual trigger\",\n requireAuth: false,\n auth: \"none\",\n props: [],\n },\n \"core#schedule\": {\n title: \"Schedule\",\n requireAuth: false,\n auth: \"none\",\n props: [\n dropdown(\n \"mode\",\n \"Mode\",\n [\n { label: \"Cron expression\", value: \"cron\" },\n { label: \"Fixed interval\", value: \"interval\" },\n ],\n true,\n ),\n text(\n \"cron\",\n \"Cron expression\",\n false,\n \"Five fields, e.g. 0 9 * * 1-5 (09:00 on weekdays); cron mode only\",\n ),\n number(\n \"every\",\n \"Every\",\n false,\n \"Interval mode only; at least one minute\",\n ),\n dropdown(\"unit\", \"Unit\", [\n { label: \"Minutes\", value: \"minutes\" },\n { label: \"Hours\", value: \"hours\" },\n { label: \"Days\", value: \"days\" },\n ]),\n text(\n \"timezone\",\n \"Timezone\",\n false,\n \"IANA name, e.g. Europe/Lisbon; defaults to UTC\",\n ),\n ],\n },\n \"core#webhook\": {\n title: \"Webhook\",\n requireAuth: false,\n auth: \"none\",\n props: [\n dropdown(\n \"methods\",\n \"Method\",\n [\n { label: \"POST\", value: \"POST\" },\n { label: \"Any\", value: \"ANY\" },\n { label: \"GET\", value: \"GET\" },\n { label: \"PUT\", value: \"PUT\" },\n { label: \"PATCH\", value: \"PATCH\" },\n { label: \"DELETE\", value: \"DELETE\" },\n ],\n true,\n ),\n // Named by wire format, not by sender: authors match these against their\n // sender's docs, and one brand name would mislead about every other.\n dropdown(\n \"scheme\",\n \"Verification\",\n [\n { label: \"None — the URL's token only\", value: \"none\" },\n { label: \"Shared token in a header\", value: \"token\" },\n { label: \"HMAC digest\", value: \"hmac\" },\n {\n label: \"HMAC digest with a label (sha256=…)\",\n value: \"hmac-prefixed\",\n },\n {\n label: \"HMAC digest, timestamped (t=…,v1=…)\",\n value: \"hmac-timestamped\",\n },\n ],\n true,\n ),\n // Hidden while the scheme is None: a visible secret field on an\n // unverified endpoint invites a secret that is never checked.\n shownWhen(\n secretRef(\n \"secretRef\",\n \"Secret\",\n true,\n \"The shared secret: the value the header must equal, or the key the sender signs with\",\n ),\n \"scheme\",\n SIGNED_SCHEMES,\n ),\n advanced(\n shownWhen(\n text(\n \"header\",\n \"Header\",\n false,\n \"Where the token or signature is read from. Defaults to the header the chosen scheme conventionally uses; set it only if the sender differs\",\n ),\n \"scheme\",\n SIGNED_SCHEMES,\n ),\n ),\n advanced(\n shownWhen(\n number(\n \"toleranceSeconds\",\n \"Replay window (seconds)\",\n false,\n \"Rejects a delivery signed longer ago than this, so a captured request expires. Default 300\",\n ),\n \"scheme\",\n [\"hmac-timestamped\"],\n ),\n ),\n // The layout frames the signature; these say how its digest was computed.\n // Senders pick them independently, so they are fields, not scheme names.\n advanced(\n shownWhen(\n dropdown(\"algorithm\", \"Hash\", [\n { label: \"SHA-256 (default)\", value: \"sha256\" },\n { label: \"SHA-1\", value: \"sha1\" },\n { label: \"SHA-512\", value: \"sha512\" },\n ]),\n \"scheme\",\n HMAC_SCHEMES,\n ),\n ),\n advanced(\n shownWhen(\n dropdown(\"encoding\", \"Digest encoding\", [\n { label: \"Hexadecimal (default)\", value: \"hex\" },\n { label: \"Base64\", value: \"base64\" },\n ]),\n \"scheme\",\n HMAC_SCHEMES,\n ),\n ),\n advanced(\n shownWhen(\n text(\n \"prefix\",\n \"Signature label\",\n false,\n \"The literal before the digest. Defaults to the hash and an equals sign, e.g. sha256=. Leave blank for a sender that sends the digest with no label\",\n ),\n \"scheme\",\n [\"hmac-prefixed\"],\n ),\n ),\n advanced(\n text(\n \"dedupeField\",\n \"Event id field\",\n false,\n \"Where the sender puts its own event id, so a redelivery is accepted without a second run. A bare name reads a query param or a top-level body field; prefix with header: or body: to read a header or a nested path (header:x-delivery-id, body:data.object.id)\",\n ),\n ),\n advanced(\n number(\n \"dedupeTtlSeconds\",\n \"Dedupe window (seconds)\",\n false,\n \"How long an event id is remembered. Default 300\",\n ),\n ),\n advanced(\n text(\n \"challengeField\",\n \"Challenge field\",\n false,\n \"Echo this field back instead of running, for senders that verify the endpoint before registering it. Same header:/body: prefixes as the event id field\",\n ),\n ),\n advanced(\n dropdown(\n \"responseMode\",\n \"Response\",\n [\n { label: \"Answer immediately (202)\", value: \"async\" },\n { label: \"Wait for the run (200)\", value: \"sync\" },\n ],\n false,\n \"Waiting holds the sender's socket open for the whole run\",\n ),\n ),\n advanced(\n number(\n \"responseStatus\",\n \"Success status\",\n false,\n \"Status returned on acceptance. Default 202 async, 200 sync\",\n ),\n ),\n ],\n },\n \"core#branch\": {\n title: \"Branch\",\n requireAuth: false,\n auth: \"none\",\n props: [\n text(\n \"condition\",\n \"Condition\",\n true,\n \"e.g. {{steps.fetch.output.body.ok}}\",\n ),\n text(\n \"equals\",\n \"Equals\",\n false,\n \"Take the true port only when the condition matches this; omit for truthiness\",\n ),\n ],\n },\n \"core#assert\": {\n title: \"Assert\",\n requireAuth: false,\n auth: \"none\",\n props: [\n text(\n \"value\",\n \"Value\",\n true,\n \"e.g. {{steps.describe.output}} - the run fails when it is blank\",\n ),\n {\n name: \"rejectValues\",\n displayName: \"Rejected values\",\n type: \"ARRAY\",\n required: false,\n description:\n \"One per line; the run fails when the value matches any of them\",\n },\n {\n name: \"allowValues\",\n displayName: \"Allowed values\",\n type: \"ARRAY\",\n required: false,\n description:\n \"One per line; when set, anything else fails. Safer than a reject list for model output\",\n },\n {\n name: \"allowEmpty\",\n displayName: \"Allow empty\",\n type: \"CHECKBOX\",\n required: false,\n description: \"Accept a blank value instead of failing\",\n },\n text(\"message\", \"Failure message\", false, \"Replaces the default error\"),\n ],\n },\n};\n","// Design-time channel to the workflow-runtime subgraph: piece descriptors\n// and dynamic option resolution. Not document-model coupled.\nimport { ambientRenownTokenProvider } from \"@powerhousedao/reactor-browser/graphql-client\";\nimport {\n adaptReactorProps,\n isReactorPieceBlock,\n} from \"./ui/reactor-piece-form.js\";\nimport {\n CORE_FORMS,\n POLL_INTERVAL_PROP,\n type BlockForm,\n type BlockFormProp,\n} from \"./ui/forms.js\";\n\nexport const DEFAULT_RUNTIME_URL =\n \"http://localhost:4001/graphql/workflow-runtime\";\n\nlet currentRuntimeUrl: string | undefined;\n\n// Set by useSyncWorkflowRuntimeUrl from the drive's resolved switchboard URL.\nexport function setRuntimeUrl(url: string): void {\n if (url === currentRuntimeUrl) return;\n currentRuntimeUrl = url;\n // Cached design-time results belong to the previous switchboard.\n formCache.clear();\n outputTreeCache.clear();\n catalogCache = undefined;\n}\n\nfunction runtimeUrl(): string {\n return currentRuntimeUrl ?? DEFAULT_RUNTIME_URL;\n}\n\nasync function gql<T>(\n query: string,\n variables: Record<string, unknown>,\n): Promise<T> {\n // Mirrors the reactor-browser switchboard AI tool's auth: attach the\n // Renown bearer token when one is available, else go out anonymously.\n const token = await ambientRenownTokenProvider();\n const response = await fetch(runtimeUrl(), {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n ...(token ? { authorization: `Bearer ${token}` } : {}),\n },\n body: JSON.stringify({ query, variables }),\n });\n const body = (await response.json()) as {\n data?: T;\n errors?: { message: string }[];\n };\n if (body.errors?.length) throw new Error(body.errors[0].message);\n if (!body.data) throw new Error(\"Empty GraphQL response\");\n return body.data;\n}\n\ninterface BlockEntryDescriptor {\n displayName: string;\n requireAuth: boolean;\n props: BlockFormProp[];\n // Triggers only: POLLING | WEBHOOK | APP_WEBHOOK.\n strategy?: string;\n}\n\ninterface BlockDescriptorResult {\n workflowRuntime: {\n blockDescriptor: {\n displayName: string;\n auth?: unknown;\n action?: BlockEntryDescriptor;\n trigger?: BlockEntryDescriptor;\n } | null;\n };\n}\n\nconst formCache = new Map<string, Promise<BlockForm | null>>();\n\nexport function getBlockForm(blockType: string): Promise<BlockForm | null> {\n const core = CORE_FORMS[blockType] as BlockForm | undefined;\n if (core) return Promise.resolve(core);\n let cached = formCache.get(blockType);\n if (!cached) {\n cached = gql<BlockDescriptorResult>(\n `query Descriptor($blockType: String!) {\n workflowRuntime { blockDescriptor(blockType: $blockType) }\n }`,\n { blockType },\n ).then((data) => {\n const descriptor = data.workflowRuntime.blockDescriptor;\n const entry = descriptor?.action ?? descriptor?.trigger;\n if (!descriptor || !entry) return null;\n const isTrigger = !descriptor.action && Boolean(descriptor.trigger);\n // A poll cadence is meaningless for a trigger the provider pushes to,\n // or for one this reactor fires itself, so the prop is only offered\n // where it actually applies.\n const reactorPiece = isReactorPieceBlock(blockType);\n const polled = isTrigger && entry.strategy !== \"WEBHOOK\" && !reactorPiece;\n const props = reactorPiece ? adaptReactorProps(entry.props) : entry.props;\n return {\n title: `${descriptor.displayName} · ${entry.displayName}`,\n requireAuth: entry.requireAuth,\n auth: !descriptor.auth\n ? (\"none\" as const)\n : entry.requireAuth\n ? (\"required\" as const)\n : (\"optional\" as const),\n props: polled ? [...props, POLL_INTERVAL_PROP] : props,\n triggerStrategy: isTrigger ? entry.strategy : undefined,\n };\n });\n formCache.set(blockType, cached);\n cached.catch(() => formCache.delete(blockType));\n }\n return cached;\n}\n\nexport interface PieceSummary {\n name: string;\n displayName: string;\n description: string;\n logoUrl: string;\n version: string;\n actionCount: number;\n triggerCount: number;\n // Activepieces category ids, e.g. ARTIFICIAL_INTELLIGENCE, SALES_AND_CRM.\n categories: string[];\n // PieceAuth descriptor, verbatim from the piece; null when authless.\n auth?: unknown;\n}\n\nexport interface PieceActionEntry {\n name: string;\n displayName: string;\n description: string;\n blockType: string;\n}\n\nlet catalogCache: Promise<PieceSummary[]> | undefined;\n\nexport function fetchPieceCatalog(): Promise<PieceSummary[]> {\n catalogCache ??= gql<{ workflowRuntime: { pieceCatalog: PieceSummary[] } }>(\n `query Catalog { workflowRuntime { pieceCatalog } }`,\n {},\n ).then((data) => data.workflowRuntime.pieceCatalog);\n catalogCache.catch(() => (catalogCache = undefined));\n return catalogCache;\n}\n\nexport async function fetchPieceActions(\n packageName: string,\n): Promise<PieceActionEntry[]> {\n const data = await gql<{\n workflowRuntime: { pieceActions: { actions: PieceActionEntry[] } };\n }>(\n `query Actions($packageName: String!) {\n workflowRuntime { pieceActions(packageName: $packageName) }\n }`,\n { packageName },\n );\n return data.workflowRuntime.pieceActions.actions;\n}\n\nexport interface PieceTriggerEntry {\n name: string;\n displayName: string;\n description: string;\n strategy: string;\n blockType: string;\n}\n\nexport async function fetchPieceTriggers(\n packageName: string,\n): Promise<PieceTriggerEntry[]> {\n const data = await gql<{\n workflowRuntime: { pieceTriggers: { triggers: PieceTriggerEntry[] } };\n }>(\n `query Triggers($packageName: String!) {\n workflowRuntime { pieceTriggers(packageName: $packageName) }\n }`,\n { packageName },\n );\n return data.workflowRuntime.pieceTriggers.triggers;\n}\n\nexport interface BlockSearchHit {\n blockType: string;\n pieceName: string;\n pieceDisplayName: string;\n logoUrl: string;\n displayName: string;\n description: string;\n kind: \"action\" | \"trigger\";\n strategy: string | null;\n}\n\nexport interface BlockSearchResult {\n status: \"ready\" | \"indexing\" | \"error\";\n hits: BlockSearchHit[];\n indexedPieces: number;\n error: string | null;\n}\n\n// Catalog-wide action/trigger search; \"indexing\" on the very first calls.\nexport async function searchBlocks(\n query: string,\n limit = 30,\n): Promise<BlockSearchResult> {\n const data = await gql<{\n workflowRuntime: { searchBlocks: BlockSearchResult };\n }>(\n `query SearchBlocks($query: String!, $limit: Int) {\n workflowRuntime { searchBlocks(query: $query, limit: $limit) {\n status indexedPieces error\n hits { blockType pieceName pieceDisplayName logoUrl displayName description kind strategy }\n } }\n }`,\n { query, limit },\n );\n return data.workflowRuntime.searchBlocks;\n}\n\nexport interface OutputTreeNode {\n name: string;\n type: string;\n description?: string;\n children?: OutputTreeNode[];\n}\n\nexport interface OutputTree {\n source: \"schema\" | \"sample\" | \"static\" | \"none\";\n nodes: OutputTreeNode[];\n}\n\nconst outputTreeCache = new Map<string, Promise<OutputTree>>();\n\nexport function fetchBlockOutputTree(\n blockType: string,\n config: unknown,\n): Promise<OutputTree> {\n const key = `${blockType}:${JSON.stringify(config ?? {})}`;\n let cached = outputTreeCache.get(key);\n if (!cached) {\n cached = gql<{ workflowRuntime: { blockOutputTree: OutputTree } }>(\n `query OutputTree($blockType: String!, $config: Unknown) {\n workflowRuntime { blockOutputTree(blockType: $blockType, config: $config) }\n }`,\n { blockType, config: config ?? {} },\n ).then((data) => data.workflowRuntime.blockOutputTree);\n outputTreeCache.set(key, cached);\n cached.catch(() => outputTreeCache.delete(key));\n }\n return cached;\n}\n\nexport interface ConnectionSummary {\n id: string;\n name: string;\n connectorId: string;\n authType: string;\n status: string;\n accountLabel: string | null;\n}\n\n// Deliberately uncached. The server scopes this list to the caller's read\n// access, and nothing here identifies the caller to key a cache on.\nexport function fetchConnections(): Promise<ConnectionSummary[]> {\n return gql<{\n workflowRuntime: { connections: ConnectionSummary[] };\n }>(\n `query Connections { workflowRuntime { connections { id name connectorId authType status accountLabel } } }`,\n {},\n ).then((data) => data.workflowRuntime.connections);\n}\n\n// Kept for the picker, which creates connections and then refreshes; there is\n// no longer a cache for it to drop.\nexport function invalidateConnections(): void {}\n\nexport interface ConnectionCheckResult {\n ok: boolean;\n detail: string;\n accountLabel: string | null;\n}\n\n// Runs the piece's own connection check against a document's stored credentials.\n// No secrets cross this boundary: the subgraph resolves refs server-side.\nexport function checkConnection(\n connectionId: string,\n): Promise<ConnectionCheckResult> {\n return gql<{\n workflowRuntime: { checkConnection: ConnectionCheckResult };\n }>(\n `mutation CheckConnection($connectionId: String!) {\n workflowRuntime {\n checkConnection(connectionId: $connectionId) {\n ok\n detail\n accountLabel\n }\n }\n }`,\n { connectionId },\n ).then((data) => data.workflowRuntime.checkConnection);\n}\n\nexport interface SecretStat {\n ref: string;\n label: string | null;\n version: number;\n status: \"ACTIVE\" | \"DELETED\";\n createdAt: string;\n updatedAt: string;\n}\n\nconst SECRET_FIELDS = \"ref label version status createdAt updatedAt\";\n\n// Mints a managed secret; only the returned ref ever enters a document.\nexport async function createSecret(\n value: string,\n label?: string,\n): Promise<SecretStat> {\n const data = await gql<{ workflowRuntime: { createSecret: SecretStat } }>(\n `mutation CreateSecret($value: String!, $label: String) {\n workflowRuntime { createSecret(value: $value, label: $label) { ${SECRET_FIELDS} } }\n }`,\n { value, label: label ?? null },\n );\n return data.workflowRuntime.createSecret;\n}\n\n// Same ref, version+1; referencing documents stay untouched.\nexport async function rotateSecret(\n ref: string,\n value: string,\n): Promise<SecretStat> {\n const data = await gql<{ workflowRuntime: { rotateSecret: SecretStat } }>(\n `mutation RotateSecret($ref: String!, $value: String!) {\n workflowRuntime { rotateSecret(ref: $ref, value: $value) { ${SECRET_FIELDS} } }\n }`,\n { ref, value },\n );\n return data.workflowRuntime.rotateSecret;\n}\n\n// Metadata only; null for unknown or legacy refs.\nexport async function fetchSecretStat(ref: string): Promise<SecretStat | null> {\n const data = await gql<{ workflowRuntime: { secret: SecretStat | null } }>(\n `query Secret($ref: String!) {\n workflowRuntime { secret(ref: $ref) { ${SECRET_FIELDS} } }\n }`,\n { ref },\n );\n return data.workflowRuntime.secret;\n}\n\nexport interface WebhookEndpointRecord {\n workflowId: string;\n url: string;\n // False when `url` is a bare path because the reactor has no public origin.\n absoluteUrl: boolean;\n armed: boolean;\n createdAt: string;\n}\n\n// Never cached: the runtime mints the endpoint on the first call and `armed`\n// tracks the workflow's status.\nexport async function fetchWebhookEndpoint(\n workflowId: string,\n): Promise<WebhookEndpointRecord | null> {\n const data = await gql<{\n workflowRuntime: { webhookEndpoint: WebhookEndpointRecord | null };\n }>(\n `query WebhookEndpoint($workflowId: String!) {\n workflowRuntime {\n webhookEndpoint(workflowId: $workflowId) {\n workflowId url absoluteUrl armed createdAt\n }\n }\n }`,\n { workflowId },\n );\n return data.workflowRuntime.webhookEndpoint;\n}\n\nexport async function testTrigger(workflowId: string): Promise<unknown> {\n const data = await gql<{ workflowRuntime: { testTrigger: unknown } }>(\n `mutation TestTrigger($workflowId: String!) {\n workflowRuntime { testTrigger(workflowId: $workflowId) }\n }`,\n { workflowId },\n );\n return data.workflowRuntime.testTrigger;\n}\n\nexport interface RunStepRecord {\n stepId: string;\n stepKey: string;\n blockType: string;\n status: string;\n input: unknown;\n output: unknown;\n port: string | null;\n error: string | null;\n}\n\nexport interface RunRecord {\n id: string;\n workflowId: string;\n workflowName: string;\n workflowVersion: number;\n triggerKind: string;\n triggerPayload: unknown;\n status: string;\n error: string | null;\n startedAt: string;\n endedAt: string | null;\n rerunOf: string | null;\n steps: RunStepRecord[];\n}\n\nconst RUN_FIELDS = `id workflowId workflowName workflowVersion triggerKind\n triggerPayload status error startedAt endedAt rerunOf\n steps { stepId stepKey blockType status input output port error }`;\n\nexport interface RunsScope {\n workflowId?: string;\n // Scopes runs to the workflows the drive holds; ignored alongside workflowId.\n driveId?: string;\n limit?: number;\n}\n\nexport async function fetchRuns(scope: RunsScope = {}): Promise<RunRecord[]> {\n const data = await gql<{ workflowRuntime: { runs: RunRecord[] } }>(\n `query Runs($workflowId: String, $driveId: String, $limit: Int) {\n workflowRuntime { runs(workflowId: $workflowId, driveId: $driveId, limit: $limit) { ${RUN_FIELDS} } }\n }`,\n {\n workflowId: scope.workflowId ?? null,\n driveId: scope.driveId ?? null,\n limit: scope.limit ?? 30,\n },\n );\n return data.workflowRuntime.runs;\n}\n\nexport interface FireResult {\n runId: string | null;\n status: string;\n error: string | null;\n}\n\nexport async function fireWorkflow(\n workflowId: string,\n payload?: unknown,\n): Promise<FireResult> {\n const data = await gql<{ workflowRuntime: { fire: FireResult } }>(\n `mutation Fire($workflowId: String!, $payload: Unknown) {\n workflowRuntime { fire(workflowId: $workflowId, payload: $payload) { runId status error } }\n }`,\n { workflowId, payload: payload ?? {} },\n );\n return data.workflowRuntime.fire;\n}\n\n// Resume a FAILED run: succeeded steps replay, execution restarts at the\n// failure. Returns the new run.\nexport async function rerunRun(runId: string): Promise<FireResult> {\n const data = await gql<{ workflowRuntime: { rerun: FireResult } }>(\n `mutation Rerun($runId: String!) {\n workflowRuntime { rerun(runId: $runId) { runId status error } }\n }`,\n { runId },\n );\n return data.workflowRuntime.rerun;\n}\n\ninterface BlockOptionsResult {\n workflowRuntime: { blockOptions: unknown };\n}\n\nexport async function loadBlockOptions(\n blockType: string,\n propName: string,\n input: Record<string, unknown>,\n connectionId?: string,\n): Promise<unknown> {\n const data = await gql<BlockOptionsResult>(\n `query Options($blockType: String!, $propName: String!, $input: Unknown, $connectionId: String) {\n workflowRuntime { blockOptions(blockType: $blockType, propName: $propName, input: $input, connectionId: $connectionId) }\n }`,\n { blockType, propName, input, connectionId: connectionId ?? null },\n );\n return data.workflowRuntime.blockOptions;\n}\n"],"mappings":"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OAAO;GACL,SACE,WACA,UACA;IACE;KAAE,OAAO;KAAQ,OAAO;KAAQ;IAChC;KAAE,OAAO;KAAO,OAAO;KAAO;IAC9B;KAAE,OAAO;KAAO,OAAO;KAAO;IAC9B;KAAE,OAAO;KAAO,OAAO;KAAO;IAC9B;KAAE,OAAO;KAAS,OAAO;KAAS;IAClC;KAAE,OAAO;KAAU,OAAO;KAAU;IACrC,EACD,KACD;GAGD,SACE,UACA,gBACA;IACE;KAAE,OAAO;KAA+B,OAAO;KAAQ;IACvD;KAAE,OAAO;KAA4B,OAAO;KAAS;IACrD;KAAE,OAAO;KAAe,OAAO;KAAQ;IACvC;KACE,OAAO;KACP,OAAO;KACR;IACD;KACE,OAAO;KACP,OAAO;KACR;IACF,EACD,KACD;GAGD,UACE,UACE,aACA,UACA,MACA,uFACD,EACD,UACA,eACD;GACD,SACE,UACE,KACE,UACA,UACA,OACA,6IACD,EACD,UACA,eACD,CACF;GACD,SACE,UACE,OACE,oBACA,2BACA,OACA,6FACD,EACD,UACA,CAAC,mBAAmB,CACrB,CACF;GAGD,SACE,UACE,SAAS,aAAa,QAAQ;IAC5B;KAAE,OAAO;KAAqB,OAAO;KAAU;IAC/C;KAAE,OAAO;KAAS,OAAO;KAAQ;IACjC;KAAE,OAAO;KAAW,OAAO;KAAU;IACtC,CAAC,EACF,UACA,aACD,CACF;GACD,SACE,UACE,SAAS,YAAY,mBAAmB,CACtC;IAAE,OAAO;IAAyB,OAAO;IAAO,EAChD;IAAE,OAAO;IAAU,OAAO;IAAU,CACrC,CAAC,EACF,UACA,aACD,CACF;GACD,SACE,UACE,KACE,UACA,mBACA,OACA,qJACD,EACD,UACA,CAAC,gBAAgB,CAClB,CACF;GACD,SACE,KACE,eACA,kBACA,OACA,kQACD,CACF;GACD,SACE,OACE,oBACA,2BACA,OACA,kDACD,CACF;GACD,SACE,KACE,kBACA,mBACA,OACA,yJACD,CACF;GACD,SACE,SACE,gBACA,YACA,CACE;IAAE,OAAO;IAA4B,OAAO;IAAS,EACrD;IAAE,OAAO;IAA0B,OAAO;IAAQ,CACnD,EACD,OACA,2DACD,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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region editors/connection-editor/status.ts
|
|
2
|
+
const CONNECTION_STATUS_STYLES = {
|
|
3
|
+
OK: "bg-green-100 text-green-700",
|
|
4
|
+
ERROR: "bg-red-100 text-red-700",
|
|
5
|
+
REVOKED: "bg-slate-200 text-slate-500",
|
|
6
|
+
UNCONFIGURED: "bg-amber-100 text-amber-700"
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { CONNECTION_STATUS_STYLES as t };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=status-CDRcDUMS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-CDRcDUMS.mjs","names":[],"sources":["../../editors/connection-editor/status.ts"],"sourcesContent":["// Shared by the connection toolbar and the form, so a connection's status\n// looks the same wherever it appears.\nimport type { ConnectionStatus } from \"document-models/connection\";\n\nexport const CONNECTION_STATUS_STYLES: Record<ConnectionStatus, string> = {\n OK: \"bg-green-100 text-green-700\",\n ERROR: \"bg-red-100 text-red-700\",\n REVOKED: \"bg-slate-200 text-slate-500\",\n UNCONFIGURED: \"bg-amber-100 text-amber-700\",\n};\n"],"mappings":";AAIA,MAAa,2BAA6D;CACxE,IAAI;CACJ,OAAO;CACP,SAAS;CACT,cAAc;CACf"}
|