@pgflow/dsl 0.0.5 → 0.0.6
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/package.json +4 -1
- package/CHANGELOG.md +0 -7
- package/__tests__/runtime/flow.test.ts +0 -121
- package/__tests__/runtime/steps.test.ts +0 -183
- package/__tests__/runtime/utils.test.ts +0 -149
- package/__tests__/types/dsl-types.test-d.ts +0 -103
- package/__tests__/types/example-flow.test-d.ts +0 -76
- package/__tests__/types/extract-flow-input.test-d.ts +0 -71
- package/__tests__/types/extract-flow-steps.test-d.ts +0 -74
- package/__tests__/types/getStepDefinition.test-d.ts +0 -65
- package/__tests__/types/step-input.test-d.ts +0 -212
- package/__tests__/types/step-output.test-d.ts +0 -55
- package/brainstorming/condition/condition-alternatives.md +0 -219
- package/brainstorming/condition/condition-with-flexibility.md +0 -303
- package/brainstorming/condition/condition.md +0 -139
- package/brainstorming/condition/implementation-plan.md +0 -372
- package/brainstorming/dsl/cli-json-schema.md +0 -225
- package/brainstorming/dsl/cli.md +0 -179
- package/brainstorming/dsl/create-compilator.md +0 -25
- package/brainstorming/dsl/dsl-analysis-2.md +0 -166
- package/brainstorming/dsl/dsl-analysis.md +0 -512
- package/brainstorming/dsl/dsl-critique.md +0 -41
- package/brainstorming/fanouts/fanout-subflows-flattened-vs-subruns.md +0 -213
- package/brainstorming/fanouts/fanouts-task-index.md +0 -150
- package/brainstorming/fanouts/fanouts-with-conditions-and-subflows.md +0 -239
- package/brainstorming/subflows/branching.ts.md +0 -38
- package/brainstorming/subflows/subflows-callbacks.ts.md +0 -124
- package/brainstorming/subflows/subflows-classes.ts.md +0 -83
- package/brainstorming/subflows/subflows-flattening-versioned.md +0 -119
- package/brainstorming/subflows/subflows-flattening.md +0 -138
- package/brainstorming/subflows/subflows.md +0 -118
- package/brainstorming/subflows/subruns-table.md +0 -282
- package/brainstorming/subflows/subruns.md +0 -315
- package/brainstorming/versioning/breaking-and-non-breaking-flow-changes.md +0 -259
- package/docs/refactor-edge-worker.md +0 -146
- package/docs/versioning.md +0 -19
- package/eslint.config.cjs +0 -22
- package/out-tsc/vitest/__tests__/runtime/flow.test.d.ts +0 -2
- package/out-tsc/vitest/__tests__/runtime/flow.test.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/runtime/steps.test.d.ts +0 -2
- package/out-tsc/vitest/__tests__/runtime/steps.test.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/runtime/utils.test.d.ts +0 -2
- package/out-tsc/vitest/__tests__/runtime/utils.test.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/types/dsl-types.test-d.d.ts +0 -2
- package/out-tsc/vitest/__tests__/types/dsl-types.test-d.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/types/example-flow.test-d.d.ts +0 -2
- package/out-tsc/vitest/__tests__/types/example-flow.test-d.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/types/extract-flow-input.test-d.d.ts +0 -2
- package/out-tsc/vitest/__tests__/types/extract-flow-input.test-d.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/types/extract-flow-steps.test-d.d.ts +0 -2
- package/out-tsc/vitest/__tests__/types/extract-flow-steps.test-d.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/types/getStepDefinition.test-d.d.ts +0 -2
- package/out-tsc/vitest/__tests__/types/getStepDefinition.test-d.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/types/step-input.test-d.d.ts +0 -2
- package/out-tsc/vitest/__tests__/types/step-input.test-d.d.ts.map +0 -1
- package/out-tsc/vitest/__tests__/types/step-output.test-d.d.ts +0 -2
- package/out-tsc/vitest/__tests__/types/step-output.test-d.d.ts.map +0 -1
- package/out-tsc/vitest/tsconfig.spec.tsbuildinfo +0 -1
- package/out-tsc/vitest/vite.config.d.ts +0 -3
- package/out-tsc/vitest/vite.config.d.ts.map +0 -1
- package/project.json +0 -28
- package/prompts/edge-worker-refactor.md +0 -105
- package/src/dsl.ts +0 -318
- package/src/example-flow.ts +0 -67
- package/src/index.ts +0 -1
- package/src/utils.ts +0 -84
- package/tsconfig.json +0 -13
- package/tsconfig.lib.json +0 -26
- package/tsconfig.spec.json +0 -35
- package/typecheck.log +0 -120
- package/vite.config.ts +0 -57
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/types.d.ts","../../../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/helpers.d.ts","../../../../node_modules/.pnpm/@sinclair+typebox@0.27.8/node_modules/@sinclair/typebox/typebox.d.ts","../../../../node_modules/.pnpm/@jest+schemas@29.6.3/node_modules/@jest/schemas/build/index.d.ts","../../../../node_modules/.pnpm/pretty-format@29.7.0/node_modules/pretty-format/build/index.d.ts","../../../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/index.d.ts","../../../../node_modules/.pnpm/@vitest+runner@1.6.0/node_modules/@vitest/runner/dist/tasks-K5XERDtv.d.ts","../../../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/types-9l4niLY8.d.ts","../../../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/diff.d.ts","../../../../node_modules/.pnpm/@vitest+runner@1.6.0/node_modules/@vitest/runner/dist/types.d.ts","../../../../node_modules/.pnpm/@vitest+utils@1.6.0/node_modules/@vitest/utils/dist/error.d.ts","../../../../node_modules/.pnpm/@vitest+runner@1.6.0/node_modules/@vitest/runner/dist/index.d.ts","../../../../node_modules/.pnpm/@vitest+runner@1.6.0/node_modules/@vitest/runner/dist/utils.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/assert.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/globals.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/buffer.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/child_process.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/cluster.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/console.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/constants.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/crypto.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/dgram.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/dns.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/domain.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/dom-events.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/events.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/fs.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/http.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/http2.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/https.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/inspector.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/module.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/net.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/os.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/path.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/process.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/punycode.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/querystring.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/readline.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/repl.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/stream.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/stream/web.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/test.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/timers.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/tls.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/trace_events.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/tty.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/url.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/util.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/v8.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/vm.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/wasi.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/zlib.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/globals.global.d.ts","../../../../node_modules/.pnpm/@types+node@18.16.20/node_modules/@types/node/index.d.ts","../../../../node_modules/.pnpm/@types+estree@1.0.6/node_modules/@types/estree/index.d.ts","../../../../node_modules/.pnpm/rollup@4.30.0/node_modules/rollup/dist/rollup.d.ts","../../../../node_modules/.pnpm/rollup@4.30.0/node_modules/rollup/dist/parseAst.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/types/hmrPayload.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/types/customEvent.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/types/hot.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/dist/node/types.d-aGj9QkWt.d.ts","../../../../node_modules/.pnpm/esbuild@0.21.5/node_modules/esbuild/lib/main.d.ts","../../../../node_modules/.pnpm/source-map-js@1.2.1/node_modules/source-map-js/source-map.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/previous-map.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/input.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/css-syntax-error.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/declaration.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/root.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/warning.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/lazy-result.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/no-work-result.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/processor.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/result.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/document.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/rule.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/node.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/comment.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/container.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/at-rule.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/list.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/postcss.d.ts","../../../../node_modules/.pnpm/postcss@8.4.49/node_modules/postcss/lib/postcss.d.mts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/dist/node/runtime.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/types/importGlob.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/types/metadata.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/dist/node/index.d.ts","../../../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.16.20/node_modules/vite-node/dist/trace-mapping.d-xyIfZtPm.d.ts","../../../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.16.20/node_modules/vite-node/dist/index-O2IrwHKf.d.ts","../../../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.16.20/node_modules/vite-node/dist/index.d.ts","../../../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/environment-cMiGIVXz.d.ts","../../../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/index-S94ASl6q.d.ts","../../../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/index.d.ts","../../../../node_modules/.pnpm/@vitest+expect@1.6.0/node_modules/@vitest/expect/dist/chai.d.cts","../../../../node_modules/.pnpm/@vitest+expect@1.6.0/node_modules/@vitest/expect/dist/index.d.ts","../../../../node_modules/.pnpm/@vitest+expect@1.6.0/node_modules/@vitest/expect/index.d.ts","../../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.16.20/node_modules/vite-node/dist/client.d.ts","../../../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/manager.d.ts","../../../../node_modules/.pnpm/vite-node@1.6.0_@types+node@18.16.20/node_modules/vite-node/dist/server.d.ts","../../../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.16.20_@vitest+ui@1.6.0_jsdom@22.1.0/node_modules/vitest/dist/reporters-yx5ZTtEV.d.ts","../../../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.16.20_@vitest+ui@1.6.0_jsdom@22.1.0/node_modules/vitest/dist/suite-IbNSsUWN.d.ts","../../../../node_modules/.pnpm/@vitest+spy@1.6.0/node_modules/@vitest/spy/dist/index.d.ts","../../../../node_modules/.pnpm/@vitest+snapshot@1.6.0/node_modules/@vitest/snapshot/dist/environment.d.ts","../../../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.16.20_@vitest+ui@1.6.0_jsdom@22.1.0/node_modules/vitest/dist/index.d.ts","../../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.d.ts","../../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/modules/index.d.ts","../../../../node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/lib/typescript.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib-commonjs/beta/DeclarationReference.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/details/Standardization.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/configuration/TSDocTagDefinition.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/configuration/TSDocValidationConfiguration.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/parser/TSDocMessageId.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/configuration/TSDocConfiguration.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocNode.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/configuration/DocNodeManager.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/details/StandardTags.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/parser/TextRange.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/parser/Token.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocNodeContainer.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocSection.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocBlock.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocCodeSpan.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocMemberIdentifier.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocMemberSymbol.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocMemberSelector.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocMemberReference.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocDeclarationReference.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocInlineTagBase.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocInheritDocTag.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocParamBlock.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocParamCollection.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocComment.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocErrorText.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocEscapedText.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocExcerpt.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocFencedCode.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocHtmlAttribute.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocHtmlEndTag.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocHtmlStartTag.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocInlineTag.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocLinkTag.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocParagraph.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocPlainText.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocSoftBreak.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/index.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/parser/ParserMessage.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/parser/ParserMessageLog.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/parser/ParserContext.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/parser/TokenSequence.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/nodes/DocBlockTag.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/details/ModifierTagSet.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/details/StandardModifierTagSet.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/emitters/PlainTextEmitter.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/emitters/StringBuilder.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/emitters/TSDocEmitter.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/parser/TSDocParser.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/transforms/DocNodeTransforms.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc@0.14.2/node_modules/@microsoft/tsdoc/lib/index.d.ts","../../../../node_modules/.pnpm/@rushstack+node-core-library@4.0.2_@types+node@18.16.20/node_modules/@rushstack/node-core-library/dist/node-core-library.d.ts","../../../../node_modules/.pnpm/@microsoft+api-extractor-model@7.28.13_@types+node@18.16.20/node_modules/@microsoft/api-extractor-model/dist/rollup.d.ts","../../../../node_modules/.pnpm/@rushstack+rig-package@0.5.2/node_modules/@rushstack/rig-package/dist/rig-package.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc-config@0.16.2/node_modules/@microsoft/tsdoc-config/lib/TSDocConfigFile.d.ts","../../../../node_modules/.pnpm/@microsoft+tsdoc-config@0.16.2/node_modules/@microsoft/tsdoc-config/lib/index.d.ts","../../../../node_modules/.pnpm/@microsoft+api-extractor@7.43.0_@types+node@18.16.20/node_modules/@microsoft/api-extractor/dist/rollup.d.ts","../../../../node_modules/.pnpm/vite-plugin-dts@3.8.3_@types+node@18.16.20_typescript@5.6.3_vite@5.4.11/node_modules/vite-plugin-dts/dist/index.d.ts","../../../../node_modules/.pnpm/vite-tsconfig-paths@5.1.4_typescript@5.6.3_vite@5.4.11/node_modules/vite-tsconfig-paths/dist/index.d.ts","../../vite.config.ts","../../dist/src/dsl.d.ts","../../dist/src/utils.d.ts","../../__tests__/runtime/flow.test.ts","../../__tests__/runtime/steps.test.ts","../../__tests__/runtime/utils.test.ts","../../dist/src/index.d.ts","../../__tests__/types/dsl-types.test-d.ts","../../dist/src/example-flow.d.ts","../../__tests__/types/example-flow.test-d.ts","../../__tests__/types/extract-flow-input.test-d.ts","../../__tests__/types/extract-flow-steps.test-d.ts","../../__tests__/types/getStepDefinition.test-d.ts","../../__tests__/types/step-input.test-d.ts","../../__tests__/types/step-output.test-d.ts","../../../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.16.20_@vitest+ui@1.6.0_jsdom@22.1.0/node_modules/vitest/globals.d.ts","../../../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.16.20_@vitest+ui@1.6.0_jsdom@22.1.0/node_modules/vitest/importMeta.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/types/importMeta.d.ts","../../../../node_modules/.pnpm/vite@5.4.11_@types+node@18.16.20/node_modules/vite/client.d.ts","../../../../node_modules/.pnpm/vitest@1.6.0_@types+node@18.16.20_@vitest+ui@1.6.0_jsdom@22.1.0/node_modules/vitest/index.d.cts"],"fileIdsList":[[61,118],[118,179,229,230],[118,229,230,231,232,234],[118,229],[118,233],[118],[118,185],[118,181,182,183,186],[118,180],[118,181,221],[118,222],[118,181],[118,216],[118,216,225],[118,180,181,182,183,184,186,187,188,189,216,217,218,219,220,222,223,224,225,226,227,228],[118,185,191,221],[118,185,220],[118,185,191,192,200,202,223],[118,185,197,220],[118,183,185,220],[118,185,208,220],[118,185,198,199],[118,185,199,220],[118,185,198,199,220],[118,185,194,195,196,220],[118,185,198,220],[118,184],[118,185,190],[118,185,192,220],[118,185,201],[118,185,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,221],[118,184,188,189,216,218],[118,183,185,188,220],[118,183,185,188,204,217,220],[118,184,188,219],[118,188],[118,188,189,219],[77,89,118,125],[72,118],[75,118],[76,81,109,118],[77,88,89,96,106,117,118],[77,78,88,96,118],[79,118],[80,81,89,97,118],[81,106,114,118],[82,84,88,96,118],[83,118],[84,85,118],[88,118],[86,88,118],[88,89,90,106,117,118],[88,89,90,103,106,109,118],[118,122],[84,88,91,96,106,117,118],[88,89,91,92,96,106,114,117,118],[91,93,106,114,117,118],[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124],[88,94,118],[95,117,118],[84,88,96,106,118],[97,118],[98,118],[75,99,118],[100,116,118,122],[101,118],[102,118],[88,103,104,118],[103,105,118,120],[76,88,106,107,108,109,118],[76,106,108,118],[106,107,118],[109,118],[110,118],[88,112,113,118],[112,113,118],[81,96,106,114,118],[115,118],[96,116,118],[76,91,102,117,118],[81,118],[106,118,119],[118,120],[118,121],[76,81,88,90,99,106,117,118,120,122],[106,118,123],[64,67,118],[118,165],[64,65,67,68,69,118],[64,118],[64,65,67,118],[64,65,118],[118,161],[63,118,161],[63,118,161,162],[63,66,118],[59,118],[59,60,63,118],[63,118],[118,149],[118,147,149],[118,138,146,147,148,150],[118,136],[118,139,144,149,152],[118,135,152],[118,139,140,143,144,145,152],[118,139,140,141,143,144,152],[118,136,137,138,139,140,144,145,146,148,149,150,152],[118,152],[118,134,136,137,138,139,140,141,143,144,145,146,147,148,149,150,151],[118,134,152],[118,139,141,142,144,145,152],[118,143,152],[118,144,145,149,152],[118,137,147],[62,118],[118,127,156],[118,126,127],[118,176],[118,158,159],[118,158],[118,157,158,159,171],[118,157,171,178,235],[118,157,171],[118,255],[88,89,91,92,93,96,106,114,117,118,123,125,127,128,129,130,131,132,133,153,154,155,156],[118,129,130,131,132],[118,129,130,131],[118,129],[118,130],[118,131,155],[118,127],[64,67,70,71,89,106,118,122,157,160,163,164,166,167,168,169,170,171,172,173,174],[64,70,71,89,106,118,122,157,160,163,164,166,167,168,169,170,171],[70,71,118,167,171],[118,175],[118,175,177,239,240],[118,175,177,240],[118,175,177,244],[118,175,177,246],[118,239],[98,118,157,171,175,177,236,237]],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","impliedFormat":1},{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"45d8ccb3dfd57355eb29749919142d4321a0aa4df6acdfc54e30433d7176600a","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1a94697425a99354df73d9c8291e2ecd4dddd370aed4023c2d6dee6cccb32666","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3f9fc0ec0b96a9e642f11eda09c0be83a61c7b336977f8b9fdb1e9788e925fe","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3d7b04b45033f57351c8434f60b6be1ea71a2dfec2d0a0c3c83badbb0e3e693","affectsGlobalScope":true,"impliedFormat":1},{"version":"956d27abdea9652e8368ce029bb1e0b9174e9678a273529f426df4b3d90abd60","affectsGlobalScope":true,"impliedFormat":1},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true,"impliedFormat":1},{"version":"15c1c3d7b2e46e0025417ed6d5f03f419e57e6751f87925ca19dc88297053fe6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"3deed5e2a5f1e7590d44e65a5b61900158a3c38bac9048462d38b1bc8098bb2e","impliedFormat":99},{"version":"d435a43f89ed8794744c59d72ce71e43c1953338303f6be9ef99086faa8591d7","impliedFormat":99},{"version":"c085e9aa62d1ae1375794c1fb927a445fa105fed891a7e24edbb1c3300f7384a","impliedFormat":1},{"version":"f315e1e65a1f80992f0509e84e4ae2df15ecd9ef73df975f7c98813b71e4c8da","impliedFormat":1},{"version":"5b9586e9b0b6322e5bfbd2c29bd3b8e21ab9d871f82346cb71020e3d84bae73e","impliedFormat":1},{"version":"a4f64e674903a21e1594a24c3fc8583f3a587336d17d41ade46aa177a8ab889b","impliedFormat":99},{"version":"b6f69984ffcd00a7cbcef9c931b815e8872c792ed85d9213cb2e2c14c50ca63a","impliedFormat":99},{"version":"2bbc5abe5030aa07a97aabd6d3932ed2e8b7a241cf3923f9f9bf91a0addbe41f","impliedFormat":99},{"version":"1e5e5592594e16bcf9544c065656293374120eb8e78780fb6c582cc710f6db11","impliedFormat":99},{"version":"4abf1e884eecb0bf742510d69d064e33d53ac507991d6c573958356f920c3de4","impliedFormat":99},{"version":"44f1d2dd522c849ca98c4f95b8b2bc84b64408d654f75eb17ec78b8ceb84da11","impliedFormat":99},{"version":"89edc5e1739692904fdf69edcff9e1023d2213e90372ec425b2f17e3aecbaa4a","impliedFormat":99},{"version":"e7d5bcffc98eded65d620bc0b6707c307b79c21d97a5fb8601e8bdf2296026b6","impliedFormat":99},{"version":"ba8691cf6bea9d53e6bf6cbc22af964a9633a21793981a1be3dce65e7a714d8b","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"bce910d9164785c9f0d4dcea4be359f5f92130c7c7833dea6138ab1db310a1f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"7d2e3fea24c712c99c03ad8f556abedbfe105f87f1be10b95dbd409d24bc05a3","impliedFormat":1},{"version":"7c387a02bf156d8d45667134d32518ac3ca1b99ca50ca9deff2c1a03eb6d1a81","affectsGlobalScope":true,"impliedFormat":1},{"version":"3719525a8f6ab731e3dfd585d9f87df55ec7d50d461df84f74eb4d68bb165244","impliedFormat":1},{"version":"f993522fd7d01ae1ead930091fe35130b8415720d6c2123dc2a7e8eb11bb3cba","impliedFormat":1},{"version":"d5135ad93b33adcce80b18f8065087934cdc1730d63db58562edcf017e1aad9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"b787b5b54349a24f07d089b612a9fb8ff024dbbe991ff52ea2b188a6b1230644","impliedFormat":1},{"version":"bb9c4ffa5e6290c6980b63c815cdd1625876dadb2efaf77edbe82984be93e55e","impliedFormat":1},{"version":"1cdcfc1f624d6c08aa12c73935f6e13f095919cd99edf95752951796eb225729","impliedFormat":1},{"version":"4eaff3d8e10676fd7913d8c108890e71c688e1e7d52f6d1d55c39514f493dc47","impliedFormat":1},{"version":"14b5aa23c5d0ae1907bc696ac7b6915d88f7d85799cc0dc2dcf98fbce2c5a67c","impliedFormat":1},{"version":"5c439dafdc09abe4d6c260a96b822fa0ba5be7203c71a63ab1f1423cd9e838ea","impliedFormat":1},{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true,"impliedFormat":1},{"version":"00dee7cdca8b8420c47ea4a31a34b8e8294013ebc4f463fd941e867e7bf05029","affectsGlobalScope":true,"impliedFormat":1},{"version":"7abd2623cdd8148233c0c6b9da0289e124f1718bc58dcb8da4262432e9ce0f0a","impliedFormat":1},{"version":"f4a3088770ba56a4c72e9907bc9798706ab1575097cd024503f57966df2d3d3a","impliedFormat":1},{"version":"7f138842074d0a40681775af008c8452093b68c383c94de31759e853c6d06b5c","impliedFormat":1},{"version":"9503113febdd737095465792cc074d541902c82c0aea3922f940de18784812ad","impliedFormat":1},{"version":"8d3c583a07e0c37e876908c2d5da575019f689df8d9fa4c081d99119d53dba22","impliedFormat":1},{"version":"2c828a5405191d006115ab34e191b8474bc6c86ffdc401d1a9864b1b6e088a58","impliedFormat":1},{"version":"e630e5528e899219ae319e83bef54bf3bcb91b01d76861ecf881e8e614b167f0","affectsGlobalScope":true,"impliedFormat":1},{"version":"bcebb922784739bdb34c18ee51095d25a92b560c78ccd2eaacd6bd00f7443d83","impliedFormat":1},{"version":"7ee6ed878c4528215c82b664fe0cfe80e8b4da6c0d4cc80869367868774db8b1","impliedFormat":1},{"version":"b0973c3cbcdc59b37bf477731d468696ecaf442593ec51bab497a613a580fe30","impliedFormat":1},{"version":"4989e92ba5b69b182d2caaea6295af52b7dc73a4f7a2e336a676722884e7139d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0715e4cd28ad471b2a93f3e552ff51a3ae423417a01a10aa1d3bc7c6b95059d6","affectsGlobalScope":true,"impliedFormat":1},{"version":"5153a2fd150e46ce57bb3f8db1318d33f6ad3261ed70ceeff92281c0608c74a3","impliedFormat":1},{"version":"210d54cd652ec0fec8c8916e4af59bb341065576ecda039842f9ffb2e908507c","impliedFormat":1},{"version":"36b03690b628eab08703d63f04eaa89c5df202e5f1edf3989f13ad389cd2c091","impliedFormat":1},{"version":"0effadd232a20498b11308058e334d3339cc5bf8c4c858393e38d9d4c0013dcf","impliedFormat":1},{"version":"25846d43937c672bab7e8195f3d881f93495df712ee901860effc109918938cc","impliedFormat":1},{"version":"4f3fdeba4e28e21aa719c081b8dc8f91d47e12e773389b9d35679c08151c9d37","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"69ee23dd0d215b09907ad30d23f88b7790c93329d1faf31d7835552a10cf7cbf","impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"23b89798789dffbd437c0c423f5d02d11f9736aea73d6abf16db4f812ff36eda","impliedFormat":1},{"version":"5629c03c44d1e07698c31d04318c9950d78940461269c0f692a42091cedea142","impliedFormat":1},{"version":"3c4ba1dd9b12ffa284b565063108f2f031d150ea15b8fafbdc17f5d2a07251f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"e10177274a35a9d07c825615340b2fcde2f610f53f3fb40269fd196b4288dda6","impliedFormat":1},{"version":"1422cd9e705adcc09088fda85a900c2b70e3ad36ea85846f68bd1a884cdf4e2b","impliedFormat":1},{"version":"3c13ef48634e7b5012fcf7e8fce7496352c2d779a7201389ca96a2a81ee4314d","impliedFormat":1},{"version":"5d0a25ec910fa36595f85a67ac992d7a53dd4064a1ba6aea1c9f14ab73a023f2","impliedFormat":1},{"version":"c6b124041039647ff446e19ea0e90a7a83256593d64f23c66b4fda6e0c5b968e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a9fc1469744055a3435f203123246b96c094e7ff8c4e1c3863829d9b705b7a34","affectsGlobalScope":true,"impliedFormat":1},{"version":"868831cab82b65dfe1d68180e898af1f2101e89ba9b754d1db6fb8cc2fac1921","impliedFormat":1},{"version":"0fe8985a28f82c450a04a6edf1279d7181c0893f37da7d2a27f8efd4fd5edb03","impliedFormat":1},{"version":"e59a892d87e72733e2a9ca21611b9beb52977be2696c7ba4b216cbbb9a48f5aa","impliedFormat":1},{"version":"52120bb7e4583612225bdf08e7c12559548170f11e660d33a33623bae9bbdbba","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a300fa9b698845a1f9c41ecbe2c5966634582a8e2020d51abcace9b55aa959e","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6dd3dba8e665ac43d279e0fdf5219edda0eed69b5e9a5061f46cd6a65c4f7a1","impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"068edc96705c11c7ff5adb82c57ee2212d2379bf52f088542abcdcecfcc7b500","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"8b96046bf5fb0a815cba6b0880d9f97b7f3a93cf187e8dcfe8e2792e97f38f87","impliedFormat":99},{"version":"bacf2c84cf448b2cd02c717ad46c3d7fd530e0c91282888c923ad64810a4d511","affectsGlobalScope":true,"impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"4d979e3c12ffb6497d2b1dc5613130196d986fff764c4526360c0716a162e7e7","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"80781460eca408fe8d2937d9fdbbb780d6aac35f549621e6200c9bee1da5b8fe","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"b9261ac3e9944d3d72c5ee4cf888ad35d9743a5563405c6963c4e43ee3708ca4","impliedFormat":1},{"version":"c84fd54e8400def0d1ef1569cafd02e9f39a622df9fa69b57ccc82128856b916","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"2ed6489ef46eb61442d067c08e87e3db501c0bfb2837eee4041a27bf3e792bb0","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"d60fe6d59d4e19ecc65359490b8535e359ca4b760d2cdb56897ca75d09d41ba3","impliedFormat":1},{"version":"f45a2a8b1777ecb50ed65e1a04bb899d4b676529b7921bd5d69b08573a00c832","impliedFormat":1},{"version":"774b783046ba3d473948132d28a69f52a295b2f378f2939304118ba571b1355e","impliedFormat":1},{"version":"b5734e05c787a40e4f9efe71f16683c5f7dc3bdb0de7c04440c855bd000f8fa7","impliedFormat":1},{"version":"14ba97f0907144771331e1349fdccb5a13526eba0647e6b447e572376d811b6f","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"7165050eddaed878c2d2cd3cafcaf171072ac39e586a048c0603712b5555f536","impliedFormat":1},{"version":"26e629be9bbd94ea1d465af83ce5a3306890520695f07be6eb016f8d734d02be","impliedFormat":99},{"version":"82e687ebd99518bc63ea04b0c3810fb6e50aa6942decd0ca6f7a56d9b9a212a6","impliedFormat":99},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"8f07f2b6514744ac96e51d7cb8518c0f4de319471237ea10cf688b8d0e9d0225","impliedFormat":1},{"version":"9ae0ca65717af0d3b554a26fd333ad9c78ad3910ad4b22140ff02acb63076927","impliedFormat":99},{"version":"4a27c79c57a6692abb196711f82b8b07a27908c94652148d5469887836390116","impliedFormat":99},{"version":"f42400484f181c2c2d7557c0ed3b8baaace644a9e943511f3d35ac6be6eb5257","impliedFormat":99},{"version":"54b381d36b35df872159a8d3b52e8d852659ee805695a867a388c8ccbf57521b","impliedFormat":99},{"version":"c67b4c864ec9dcde25f7ad51b90ae9fe1f6af214dbd063d15db81194fe652223","impliedFormat":99},{"version":"7a4aa00aaf2160278aeae3cf0d2fc6820cf22b86374efa7a00780fbb965923ff","impliedFormat":99},{"version":"66e3ee0a655ff3698be0aef05f7b76ac34c349873e073cde46d43db795b79f04","impliedFormat":99},{"version":"48c411efce1848d1ed55de41d7deb93cbf7c04080912fd87aa517ed25ef42639","affectsGlobalScope":true,"impliedFormat":1},{"version":"28e065b6fb60a04a538b5fbf8c003d7dac3ae9a49eddc357c2a14f2ffe9b3185","affectsGlobalScope":true,"impliedFormat":99},{"version":"fe2d63fcfdde197391b6b70daf7be8c02a60afa90754a5f4a04bdc367f62793d","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"0d87708dafcde5468a130dfe64fac05ecad8328c298a4f0f2bd86603e5fd002e","impliedFormat":99},{"version":"a3f2554ba6726d0da0ffdc15b675b8b3de4aea543deebbbead845680b740a7fd","impliedFormat":99},{"version":"93dda0982b139b27b85dd2924d23e07ee8b4ca36a10be7bdf361163e4ffcc033","impliedFormat":99},{"version":"31af4e44d2d576ba81551894367493d444a24b72206fa9d4938b773085588cce","affectsGlobalScope":true,"impliedFormat":99},{"version":"18b47d2b019adf661fa363a2fc7a63b5bff55406a689e7e312934f8d57c41065","impliedFormat":99},{"version":"dfa6bb848807bc5e01e84214d4ec13ee8ffe5e1142546dcbb32065783a5db468","impliedFormat":99},{"version":"2f1ffc29f9ba7b005c0c48e6389536a245837264c99041669e0b768cfab6711d","impliedFormat":99},{"version":"e0ec9121996450da52ed36b694b198b0e40fc8531bcddb7c0296a158ff65ab94","impliedFormat":99},{"version":"a6a5253138c5432c68a1510c70fe78a644fe2e632111ba778e1978010d6edfec","impliedFormat":1},{"version":"b8f34dd1757f68e03262b1ca3ddfa668a855b872f8bdd5224d6f993a7b37dc2c","impliedFormat":99},{"version":"c66ffde3b8ce430c9cbfe345ea0418892b37f3258a67dd8dd6dec81be1a49eb7","impliedFormat":1},{"version":"0b05b97c19b0ec329a40864a2d1379c9a7dc56f4cc46b1e8826b12d6433ba806","impliedFormat":1},{"version":"9f706fec5e44b5498bd6498c920137abacf6bb59442510e2f36135194adbda50","impliedFormat":1},{"version":"fc953ba36f518eb973156ae6b6ccc0f9172e6f69c2e24299b2cf4ba184b2f3cd","impliedFormat":1},{"version":"5bb43fb4160f799f08d8a169a6b74ba04cbdab6dbc9d5889b11df0fd0a1cc37d","impliedFormat":1},{"version":"0a9b34d41f06ca0707200e74ab563190a0f3bcf57e250b63fd0bd12b035bc68e","impliedFormat":1},{"version":"68016cb110b03b39d0d4b34219821a86ac3a15b09b929fbf0eeb56fb0eb903e4","impliedFormat":1},{"version":"57a459d91b59b930ec40b763792bc82f18059c5fc159166c56e2c207918215d7","impliedFormat":1},{"version":"42a1402970f30963d2e2932a6b6bc388f9a4499bebb8ca4ca4660e71c893773a","impliedFormat":1},{"version":"06401c590494ee3b3a52ee3a31d8f63a997a1df9eeb70ac9cdce58b0a166959b","impliedFormat":1},{"version":"f409abec25c2a03294cf9cd419e73ff67ce0d6706a77a55cf31d0c6aef4b7814","impliedFormat":1},{"version":"99ada98a8d7a0c8af4846d7517961f9a2790df84833171fc3004114cfa8042a7","impliedFormat":1},{"version":"937823c46e65fa2bc6ffb52d6eda21eacceaa16e4f5e09299a832be34fd07d9a","impliedFormat":1},{"version":"ed5a706d615f0af0237db707217c1c770096ab8dac4a6e843caa208a6de97300","impliedFormat":1},{"version":"330b8cb746c9c6826dd6f1c0da10861e6232d87e11d6f9f6bbb5cfcce6c67ed0","impliedFormat":1},{"version":"355d3819b44d73ffb62e7b2077228338c116fd818565c14c38b4077211d44fde","impliedFormat":1},{"version":"5c8ffd091921592d634988bf339bde4099232d06e3918940c821649ec7c6545a","impliedFormat":1},{"version":"df9694a6a1d98a2916a880c980e7949288f404ddaafe8fb2c45da7bb7655ce82","impliedFormat":1},{"version":"48af6ba90d4ce95a697dbe5efe059ab8f481c0569de7bdb07bf395d32707ae76","impliedFormat":1},{"version":"b6b1c36453ec2ff59f80b5c0a651cf595162968e30fec80731b37a3e29eb6067","impliedFormat":1},{"version":"27d0b2169955b0c811f99fce2b5c9946b168300b510fa1596f57fac26351e0a8","impliedFormat":1},{"version":"c5c420b6e7250dd4294d53f70e0cfc78465a7f8e78e42b60e26a22d1e3dd73a3","impliedFormat":1},{"version":"00a5f93e8c68aaf24404b5d8ec2662e1d0462d24261092bb911aad8ef63acceb","impliedFormat":1},{"version":"ffd94f42dc4adf5f0b7e4c91d42298347abbc81e9ba2a0613f1f2bd79c07d104","impliedFormat":1},{"version":"145f590633fb2ea71e54673cf667954ee2150b109c22b11850e3a6552276c7cd","impliedFormat":1},{"version":"66cc36077f3505e522876e7614e2fc36cb6d0f347a45a0a26ab79c956dc565f2","impliedFormat":1},{"version":"2c11983289b97b8e9a06ffc2f1329e44ae6d311a29e3d030969bce1979fbeb7b","impliedFormat":1},{"version":"05867a066b5104262dd84485bc8819ef740912f1f856a24e5514ed193d94906c","impliedFormat":1},{"version":"7289c2be2edbd9fb721f0889fed3a3f548226eb6d657de0b0113c6d40da32323","impliedFormat":1},{"version":"9a089635170c0f9be7495929165205c278ee6091d908042979b788ebd733c35a","impliedFormat":1},{"version":"9dac680df5ecaadf5f6aa7bbb5f381a6accd82392f53829a6b4ce76e884ce5fe","impliedFormat":1},{"version":"2b9ce93c03ba978d8effd769646e653fdce747d0d77723b9a67395e3f8d36dc7","impliedFormat":1},{"version":"b0b74616de751a2fd232cd366a42f3e551ba7fd25d558e21f91970e99cb0aa20","impliedFormat":1},{"version":"935e484e551b289a0eb8627da1f6d7d23b241bbe57a772aea820cf089395b9d8","impliedFormat":1},{"version":"0c0594bfe0048acffc770014fffee79dd597006788ea6d7be35574ffb0abf30a","impliedFormat":1},{"version":"268667eb87b3a9d258ebf44ee7ee912af7080a512caf332d7de01d3b130fbf52","impliedFormat":1},{"version":"2d9c54d5ddae876866f61f7769fabf2dfc88a72bcb6c8111877e5fd9a0d3c6ac","impliedFormat":1},{"version":"9e55c95c595728c3aa9aeb8d02684f3f14188173fb99b1e07b34f4b2ae336e7a","impliedFormat":1},{"version":"291cc4d81c80a5800fced2528f2354eb5e2d1696a55f4dbf753b82a816460ce5","impliedFormat":1},{"version":"32eea73b5d2c00b0abc6603a732d4c984c1fdf7ca6d689c1d9b3aa876ae8e2b5","impliedFormat":1},{"version":"8d77d61b81750f7f1edd1ff09ce5cdf68dcaf24812602a41ba96eae6236b6580","impliedFormat":1},{"version":"b3333dcd2af47b14f1519964d4cf19581072ad0fe91a7e3f70a226e5b6a59444","impliedFormat":1},{"version":"e37f838988e8e650a300abce99efd8e68f77788ebce49688c3c620fb235793c9","impliedFormat":1},{"version":"f32e11d3e7c04f88883fb7152a2de951a6fdf4a0774893766ad14e5ce5f8a450","impliedFormat":1},{"version":"37b2c78e85b2108500ebbe0732eab587a1679fad2aa218b6490748b0bc0ee5ec","impliedFormat":1},{"version":"0875eaa2a1908045c6d6f44b5d77a4ba9ac7b4a0edf49b8f7dea65149c89e0ce","impliedFormat":1},{"version":"7fa2766758660a92585c52d84bbe62ecebb8ac431abfbcf4e928634e74bd30be","impliedFormat":1},{"version":"87ee8911c717a13a0a72d6ff64f100c7b7f11625be74f61ee6b0bf3b52a7d7f2","impliedFormat":1},{"version":"b4f6aa3d2a1fdeaafccc41b9b496db44209be373cb84a0c31baf5fed052fc149","impliedFormat":1},{"version":"eac40c9899be21194a9aa098ccddaa38ae017dd16f5fa0d4e7bb44a5ac66a485","impliedFormat":1},{"version":"2007d224b83f0759d61d9b6a31fd597328858650ad59e8d6e1dda8180704f449","impliedFormat":1},{"version":"5b8d619a687847930ee691e74537fa93b1d2870209d862fafb43f82fadea0811","impliedFormat":1},{"version":"b8f34d5a61c4d40d5b8eee6ca01a01151110b765e3c146d523df75e124c273f3","impliedFormat":1},{"version":"a1935ab9d13167b4707c1250cefcfc6f23a40790312b13fb15bd0af3635119fa","impliedFormat":1},{"version":"56da97aa09737418e2bf14e49b94b54f1f8853fe6edb7a287fcd5830ac99959d","impliedFormat":1},{"version":"ed6a8d3ef96f7c499252aa3013c7b7cac898d336026daed9c3fa61afb9d59659","impliedFormat":1},{"version":"7d8b1339d4b274024d7f77bc7ca26a713726849565d9fc9a52dab7c45f64a5f8","impliedFormat":1},{"version":"6d8207163c35e5b131a193462eb2d8c7e09213391f1a8d09bba4dd3471c75fac","impliedFormat":1},{"version":"b265c4c4919ca843bf7dcd2bae93658f9842b467f047cddb0e1ab687e399ee8f","impliedFormat":99},{"version":"cadf7a128bda2a4937411ad8fc659c08142ae7b53a7559eada72e8c34a5ea273","impliedFormat":99},{"version":"de2bdd09b2119e56c26efbb666018367fe38f2806c0a6c62887dafed9db21fb6","signature":"4b96dd19fd2949d28ce80e913412b0026dc421e5bf6c31d87c7b5eb11b5753b4","impliedFormat":99},{"version":"d7e9705b273c69ef8dc00b8b0a6d4b17dc1110e59d363ec92b5c3fbb5caa792e","impliedFormat":99},{"version":"1b21dacc2f99b437309e4076d6c378bafb5edc7907bbc0f694cc23889106dabf","impliedFormat":99},{"version":"e35b1dca7b74c18b88c3220826b9081e15df9b8387b8341e1dd1b3e0dff69acf","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"f6cc47c6e59cfb7ed5fd604c317df88f403153757a8428d8d6575c9add4ad74d","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"5c6e229296b8dea78bc9b7a591080380b7b6f0c5ee720e544c85489ddae6feaa","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"ecd962eabb64690dd1be33a97fe0f619b79ef4aed0b07992a4c8f97b6f371e5b","impliedFormat":99},{"version":"94a9b8ba9d5fff056f5039014ec3c0c641b3df17c581d4daa619afbd09544461","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"4bd6c7b66b07415b7486fc604f12fce24a6012fa408dc06da7ad063642fc3389","impliedFormat":99},{"version":"d0681922358b77914818ea91b2c4ba72145aed1a27716d6273383fae14b71357","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"b8c72105b94d7f21c4679cd3851d97935eaa47a523cca8056d80a53d988a24c8","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"6abb591d94f26b2e7d0a90b6583b07162a7a47a1588f0cea0256778445d7bac9","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"5bcd491d5da0fa2e67cf0612ff28758e35e0a959025bc84fcceb1bf7bf9e0d9e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"830dc2d3f741815356cd14751995ac9ba5fcf854236624d640bb3d73279cfc38","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"df0462f3e3d1382c8145ac20f17554668625ab2f0466e961e0e6a8aacd6c94e2","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":99},{"version":"381d27c35f5a5bf6c09dd238ec26fef30a03d12ea84589c621ebc208d7dc8378","affectsGlobalScope":true,"impliedFormat":99},{"version":"13d43666c55b9153815a92c4d3f807833df3491ebe4009cd46c3879b9a3f5d1a","affectsGlobalScope":true,"impliedFormat":99},{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true,"impliedFormat":1},{"version":"984c09345059b76fc4221c2c54e53511f4c27a0794dfd6e9f81dc60f0b564e05","affectsGlobalScope":true,"impliedFormat":99},{"version":"db8e26b83e6708b250200435440c326d84dd9f07114c72b33775569486bebd0b","impliedFormat":1}],"root":[238,[241,243],245,[247,252]],"options":{"allowImportingTsExtensions":true,"allowJs":false,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"emitDecoratorMetadata":false,"esModuleInterop":true,"experimentalDecorators":false,"importHelpers":true,"module":199,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUnusedLocals":true,"outDir":"./","removeComments":false,"skipDefaultLibCheck":false,"skipLibCheck":true,"sourceMap":false,"strict":true,"target":9,"verbatimModuleSyntax":false},"referencedMap":[[62,1],[231,2],[235,3],[233,4],[234,5],[179,6],[186,7],[184,8],[181,9],[182,6],[222,10],[223,11],[187,12],[180,6],[224,13],[225,6],[226,14],[229,15],[192,16],[221,17],[193,17],[203,18],[198,19],[204,20],[205,17],[206,17],[207,17],[208,17],[209,17],[210,21],[200,22],[211,23],[199,17],[212,24],[194,17],[197,25],[196,17],[195,26],[185,27],[190,7],[213,28],[201,29],[202,30],[214,17],[191,28],[215,17],[216,31],[219,32],[217,33],[218,34],[183,6],[227,35],[188,6],[189,36],[220,37],[228,13],[230,38],[232,6],[61,6],[126,6],[72,39],[73,39],[75,40],[76,41],[77,42],[78,43],[79,44],[80,45],[81,46],[82,47],[83,48],[84,49],[85,49],[87,50],[86,51],[88,50],[89,52],[90,53],[74,54],[124,6],[91,55],[92,56],[93,57],[125,58],[94,59],[95,60],[96,61],[97,62],[98,63],[99,64],[100,65],[101,66],[102,67],[103,68],[104,68],[105,69],[106,70],[108,71],[107,72],[109,73],[110,74],[111,6],[112,75],[113,76],[114,77],[115,78],[116,79],[117,80],[118,81],[119,82],[120,83],[121,84],[122,85],[123,86],[164,6],[165,87],[166,88],[70,89],[65,90],[68,91],[71,92],[161,6],[174,93],[162,94],[163,95],[169,95],[173,6],[67,96],[69,96],[60,97],[64,98],[66,99],[59,6],[133,6],[150,100],[148,101],[149,102],[137,103],[138,101],[145,104],[136,105],[141,106],[151,6],[142,107],[147,108],[153,109],[152,110],[135,111],[143,112],[144,113],[139,114],[146,100],[140,115],[63,116],[128,117],[127,118],[134,6],[167,6],[177,119],[176,6],[57,6],[58,6],[11,6],[10,6],[2,6],[12,6],[13,6],[14,6],[15,6],[16,6],[17,6],[18,6],[19,6],[3,6],[20,6],[4,6],[21,6],[25,6],[22,6],[23,6],[24,6],[26,6],[27,6],[28,6],[5,6],[29,6],[30,6],[31,6],[32,6],[6,6],[36,6],[33,6],[34,6],[35,6],[37,6],[7,6],[38,6],[43,6],[44,6],[39,6],[40,6],[41,6],[42,6],[8,6],[48,6],[45,6],[46,6],[47,6],[49,6],[9,6],[50,6],[51,6],[52,6],[55,6],[53,6],[54,6],[1,6],[56,6],[178,6],[168,120],[159,121],[160,120],[170,122],[158,6],[236,123],[237,124],[256,125],[157,126],[154,127],[132,128],[130,129],[129,6],[131,130],[155,6],[255,131],[156,132],[175,133],[171,134],[172,135],[253,136],[254,136],[257,136],[241,137],[242,137],[243,138],[245,139],[247,140],[248,139],[249,139],[250,139],[251,139],[252,139],[239,6],[246,141],[244,141],[240,6],[238,142]],"latestChangedDtsFile":"./__tests__/types/step-output.test-d.d.ts","version":"5.6.3"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vite.config.d.ts","sourceRoot":"","sources":["../../vite.config.ts"],"names":[],"mappings":";AAMA,wBAkDG"}
|
package/project.json
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dsl",
|
|
3
|
-
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
4
|
-
"sourceRoot": "pkgs/dsl/src",
|
|
5
|
-
"projectType": "library",
|
|
6
|
-
"tags": [],
|
|
7
|
-
"// targets": "to see all targets run: nx show project @pgflow/dsl --web",
|
|
8
|
-
"targets": {
|
|
9
|
-
"build": {
|
|
10
|
-
"executor": "@nx/esbuild:esbuild",
|
|
11
|
-
"outputs": ["{options.outputPath}"],
|
|
12
|
-
"options": {
|
|
13
|
-
"outputPath": "pkgs/dsl/dist",
|
|
14
|
-
"main": "pkgs/dsl/src/index.ts",
|
|
15
|
-
"tsConfig": "pkgs/dsl/tsconfig.lib.json",
|
|
16
|
-
"assets": ["pkgs/dsl/*.md"]
|
|
17
|
-
}
|
|
18
|
-
},
|
|
19
|
-
"test": {
|
|
20
|
-
"executor": "@nx/vite:test",
|
|
21
|
-
"outputs": ["{workspaceRoot}/coverage/{projectRoot}"],
|
|
22
|
-
"options": {
|
|
23
|
-
"passWithNoTests": true,
|
|
24
|
-
"reportsDirectory": "{workspaceRoot}/coverage/{projectRoot}"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
## Edge Worker Refactor
|
|
2
|
-
|
|
3
|
-
The Edge Worker exposes more configuration options that we need in pgflow.
|
|
4
|
-
This configuration object is not organized.
|
|
5
|
-
|
|
6
|
-
### Differences
|
|
7
|
-
|
|
8
|
-
Worker currently manages the retry logic, but in SQL Core it was moved to SQL.
|
|
9
|
-
|
|
10
|
-
Now worker is only supposed to:
|
|
11
|
-
|
|
12
|
-
- call `poll_for_tasks` in the main loop, instead of `read_with_poll`
|
|
13
|
-
|
|
14
|
-
```sql
|
|
15
|
-
create or replace function pgflow.poll_for_tasks(
|
|
16
|
-
queue_name text,
|
|
17
|
-
vt integer,
|
|
18
|
-
qty integer,
|
|
19
|
-
max_poll_seconds integer default 5,
|
|
20
|
-
poll_interval_ms integer default 100
|
|
21
|
-
)
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
- gets returned array of `pgflow.worker_task` records
|
|
25
|
-
|
|
26
|
-
```sql
|
|
27
|
-
create type pgflow.worker_task as (
|
|
28
|
-
flow_slug TEXT,
|
|
29
|
-
run_id UUID,
|
|
30
|
-
step_slug TEXT,
|
|
31
|
-
input JSONB
|
|
32
|
-
);
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
- should use `flow_slug` and `step_slug` to find appropriate step from connected Flow definition
|
|
36
|
-
- should call the handler with `input` from `worker_task`
|
|
37
|
-
- should call `complete_task` or `fail_task` when appropriate, no need to manage any retry logic at all
|
|
38
|
-
|
|
39
|
-
### Required changes
|
|
40
|
-
|
|
41
|
-
We need a way to customize the bahviour of the worker via the factory pattern and updated configuration
|
|
42
|
-
object:
|
|
43
|
-
|
|
44
|
-
- `ReadWithPollPoller` must be swappable for a new implementation that will support `poll_for_tasks`
|
|
45
|
-
so, which object is passed should be configurable
|
|
46
|
-
- `ExecutionController` mostly stays the same, but it needs to spawn new class `TaskExecutor` that will
|
|
47
|
-
be very similar to `MessageExecutor` but will know to how execute the `pgflow.worker_task`
|
|
48
|
-
based on the `flow_slug` and `step_slug`
|
|
49
|
-
- this new `TaskExecutor` class should have configurable `flow` option, which will accept objects of `Flow` class,
|
|
50
|
-
so it can find appropriate handler function and call it with `input` from `worker_task`
|
|
51
|
-
- this class should also use `complete_task` or `fail_task` instead of `archive` when appropriate
|
|
52
|
-
- `handleExecutionError` should not be responsible for any retry logic, in fact, any retry configuration should
|
|
53
|
-
not be available when setting up the worker for handling pgflow tasks
|
|
54
|
-
|
|
55
|
-
### Configuration validation
|
|
56
|
-
|
|
57
|
-
We need to validate configuration options and i think this responsibility should
|
|
58
|
-
be either in each final object that consumes particular configuration fragment
|
|
59
|
-
or in the factory/builder itself.
|
|
60
|
-
|
|
61
|
-
### Flow DSL compatibility
|
|
62
|
-
|
|
63
|
-
`Worker` or one of its components (existing or new, if you decide to create new one)
|
|
64
|
-
needs to be able to use provided `Flow` class (it must be "configurable" - users must be able
|
|
65
|
-
to just pass the `Flow` instance to the `Worker` constructor or to the pgflow's version
|
|
66
|
-
of `EdgeWorker.start()` methot) and store it for the lifeitme of the worker.
|
|
67
|
-
|
|
68
|
-
It should be able to find appropriate handler function based on the `flow_slug` and `step_slug`
|
|
69
|
-
that are included in the `worker_task` object.
|
|
70
|
-
|
|
71
|
-
#### Verification of flwo shape
|
|
72
|
-
|
|
73
|
-
`Worker` or new class that you create will need to be able to get the `Flow` instance,
|
|
74
|
-
check if it is already in the database, check if it contains same amount of steps and deps
|
|
75
|
-
as the one in database (if present), and throw an error if it does not match.
|
|
76
|
-
|
|
77
|
-
In development mode, it should instead drop the flow and all its dependent rows
|
|
78
|
-
and recreate a new one using provided `Flow` instance.
|
|
79
|
-
|
|
80
|
-
We should define which parts of `Flow` instance break the compatibility and need
|
|
81
|
-
a new `flow_slug` (so, when to throw in production and recreate in development mode).
|
|
82
|
-
|
|
83
|
-
The parts, that does not break the compatibility should be just ignored for now:
|
|
84
|
-
|
|
85
|
-
- timeout
|
|
86
|
-
- baseDelay
|
|
87
|
-
- maxAttempts
|
|
88
|
-
|
|
89
|
-
### Proposed approach
|
|
90
|
-
|
|
91
|
-
Approach this refactoring like this:
|
|
92
|
-
|
|
93
|
-
- identify which options passed to `Worker` constructor are going always together
|
|
94
|
-
- then idenfity, if those options are used in other places than to instantiate
|
|
95
|
-
the classess that we need to make swappable
|
|
96
|
-
(poller, message executor + way to customize them for ExecutionController and BatchProcessor)
|
|
97
|
-
- clustor options into few logical groups, probably mapping the responsibilities that various
|
|
98
|
-
classes have, like: polling, execution, error handling (etc, example groups, try to figure out
|
|
99
|
-
the most important ones without splitting too much, must be usable without pgflow extensions)
|
|
100
|
-
- we need to keep in mind, that we want to allow users to use Edge Worker with a single
|
|
101
|
-
message handler function, like it is possible with current implementation
|
|
102
|
-
- ideally, users not using pgflow would not be exposed to any pgflow-related options and methods at all
|
|
103
|
-
- ideally, the `Worker` class will be open to extension but not modification, so it is possible
|
|
104
|
-
to configure how it behaves completely by using different configuration object
|
|
105
|
-
|
package/src/dsl.ts
DELETED
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
import { validateRuntimeOptions, validateSlug } from './utils.ts';
|
|
2
|
-
|
|
3
|
-
// ========================
|
|
4
|
-
// CORE TYPE DEFINITIONS
|
|
5
|
-
// ========================
|
|
6
|
-
|
|
7
|
-
// JSON type enforcement so we can serialize the results to JSONB columns
|
|
8
|
-
export type Json =
|
|
9
|
-
| string
|
|
10
|
-
| number
|
|
11
|
-
| boolean
|
|
12
|
-
| null
|
|
13
|
-
| Json[]
|
|
14
|
-
| { [key: string]: Json | undefined };
|
|
15
|
-
|
|
16
|
-
// Used to flatten the types of a union of objects for readability
|
|
17
|
-
export type Simplify<T> = { [KeyType in keyof T]: T[KeyType] } & {};
|
|
18
|
-
|
|
19
|
-
// ========================
|
|
20
|
-
// FLOW COMPONENT TYPES
|
|
21
|
-
// ========================
|
|
22
|
-
|
|
23
|
-
// Input Types
|
|
24
|
-
export type AnyInput = Json;
|
|
25
|
-
export type AnyOutput = Json;
|
|
26
|
-
|
|
27
|
-
// Step Types
|
|
28
|
-
export type EmptySteps = Record<never, never>;
|
|
29
|
-
export type AnySteps = Record<string, AnyOutput>; // Could use unknown if needed
|
|
30
|
-
|
|
31
|
-
// Dependency Types
|
|
32
|
-
export type EmptyDeps = Record<never, never[]>;
|
|
33
|
-
export type DefaultDeps = Record<string, string[]>;
|
|
34
|
-
export type AnyDeps = Record<string, string[]>;
|
|
35
|
-
|
|
36
|
-
// ========================
|
|
37
|
-
// FLOW TYPE VARIANTS
|
|
38
|
-
// ========================
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Represents a Flow that has not steps nor deps defined yet
|
|
42
|
-
*/
|
|
43
|
-
export type EmptyFlow = Flow<AnyInput, EmptySteps, EmptyDeps>;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Represents any Flow with flexible input, steps, and dependencies.
|
|
47
|
-
* This type is intentionally more permissive to allow for better type inference
|
|
48
|
-
* in utility types like StepOutput.
|
|
49
|
-
*/
|
|
50
|
-
export type AnyFlow = Flow<any, any, any>;
|
|
51
|
-
|
|
52
|
-
// ========================
|
|
53
|
-
// UTILITY TYPES (with proper constraints)
|
|
54
|
-
// ========================
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Extracts the input type from a Flow
|
|
58
|
-
* @template TFlow - The Flow type to extract from
|
|
59
|
-
*/
|
|
60
|
-
export type ExtractFlowInput<TFlow extends AnyFlow> = TFlow extends Flow<
|
|
61
|
-
infer TI,
|
|
62
|
-
infer _TS,
|
|
63
|
-
infer _TD
|
|
64
|
-
>
|
|
65
|
-
? TI
|
|
66
|
-
: never;
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Extracts the steps type from a Flow
|
|
70
|
-
* @template TFlow - The Flow type to extract from
|
|
71
|
-
*/
|
|
72
|
-
export type ExtractFlowSteps<TFlow extends AnyFlow> = TFlow extends Flow<
|
|
73
|
-
infer _TI,
|
|
74
|
-
infer TS,
|
|
75
|
-
infer _TD
|
|
76
|
-
>
|
|
77
|
-
? TS
|
|
78
|
-
: never;
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Extracts the dependencies type from a Flow
|
|
82
|
-
* @template TFlow - The Flow type to extract from
|
|
83
|
-
*/
|
|
84
|
-
export type ExtractFlowDeps<TFlow extends AnyFlow> = TFlow extends Flow<
|
|
85
|
-
infer _TI,
|
|
86
|
-
infer _TS,
|
|
87
|
-
infer TD
|
|
88
|
-
>
|
|
89
|
-
? TD
|
|
90
|
-
: never;
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Extracts the dependencies type from a Flow
|
|
94
|
-
* @template TFlow - The Flow type to extract from
|
|
95
|
-
*/
|
|
96
|
-
type StepDepsOf<
|
|
97
|
-
TFlow extends AnyFlow,
|
|
98
|
-
TStepSlug extends string
|
|
99
|
-
> = TStepSlug extends keyof ExtractFlowDeps<TFlow>
|
|
100
|
-
? ExtractFlowDeps<TFlow>[TStepSlug][number] // The string slugs that TStepSlug depends on
|
|
101
|
-
: never;
|
|
102
|
-
|
|
103
|
-
// Utility type to extract the output type of a step handler from a Flow
|
|
104
|
-
// Usage:
|
|
105
|
-
// StepOutput<typeof flow, 'step1'>
|
|
106
|
-
export type StepOutput<
|
|
107
|
-
TFlow extends AnyFlow,
|
|
108
|
-
TStepSlug extends string
|
|
109
|
-
> = TStepSlug extends keyof ExtractFlowSteps<TFlow>
|
|
110
|
-
? ExtractFlowSteps<TFlow>[TStepSlug]
|
|
111
|
-
: never;
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* This ensures that:
|
|
115
|
-
* 1. The run input is always included
|
|
116
|
-
* 2. Only declared dependencies are included
|
|
117
|
-
* 3. No extra properties are allowed
|
|
118
|
-
* Utility type to extract the input type for a specific step in a flow
|
|
119
|
-
*/
|
|
120
|
-
export type StepInput<TFlow extends AnyFlow, TStepSlug extends string> = {
|
|
121
|
-
run: ExtractFlowInput<TFlow>;
|
|
122
|
-
} & {
|
|
123
|
-
[K in Extract<
|
|
124
|
-
keyof ExtractFlowSteps<TFlow>,
|
|
125
|
-
StepDepsOf<TFlow, TStepSlug>
|
|
126
|
-
>]: ExtractFlowSteps<TFlow>[K];
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
// Runtime options interface
|
|
130
|
-
export interface RuntimeOptions {
|
|
131
|
-
maxAttempts?: number;
|
|
132
|
-
baseDelay?: number;
|
|
133
|
-
timeout?: number;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Define the StepDefinition interface with integrated options
|
|
137
|
-
export interface StepDefinition<
|
|
138
|
-
TInput extends AnyInput,
|
|
139
|
-
TOutput extends AnyOutput
|
|
140
|
-
> {
|
|
141
|
-
slug: string;
|
|
142
|
-
handler: (input: TInput) => TOutput | Promise<TOutput>;
|
|
143
|
-
dependencies: string[];
|
|
144
|
-
options: RuntimeOptions;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// Utility type to merge two object types and preserve required properties
|
|
148
|
-
type MergeObjects<T1 extends object, T2 extends object> = T1 & T2;
|
|
149
|
-
|
|
150
|
-
// Flow class definition
|
|
151
|
-
export class Flow<
|
|
152
|
-
TFlowInput extends AnyInput = AnyInput,
|
|
153
|
-
Steps extends AnySteps = EmptySteps,
|
|
154
|
-
StepDependencies extends AnyDeps = EmptyDeps
|
|
155
|
-
> {
|
|
156
|
-
/**
|
|
157
|
-
* Store step definitions with their proper types
|
|
158
|
-
*
|
|
159
|
-
* This is typed as a generic record because TypeScript cannot track the exact relationship
|
|
160
|
-
* between step slugs and their corresponding input/output types at the container level.
|
|
161
|
-
* Type safety is enforced at the method level when adding or retrieving steps.
|
|
162
|
-
*/
|
|
163
|
-
private stepDefinitions: Record<string, StepDefinition<AnyInput, AnyOutput>>;
|
|
164
|
-
private stepOrder: string[];
|
|
165
|
-
public readonly slug: string;
|
|
166
|
-
public readonly options: RuntimeOptions;
|
|
167
|
-
|
|
168
|
-
constructor(
|
|
169
|
-
config: Simplify<{ slug: string } & RuntimeOptions>,
|
|
170
|
-
stepDefinitions: Record<string, StepDefinition<AnyInput, AnyOutput>> = {},
|
|
171
|
-
stepOrder: string[] = []
|
|
172
|
-
) {
|
|
173
|
-
// Extract slug and options separately
|
|
174
|
-
const { slug, ...options } = config;
|
|
175
|
-
|
|
176
|
-
// Validate the slug
|
|
177
|
-
validateSlug(slug);
|
|
178
|
-
|
|
179
|
-
// Validate runtime options (optional for Flow level)
|
|
180
|
-
validateRuntimeOptions(options, { optional: true });
|
|
181
|
-
|
|
182
|
-
this.slug = slug;
|
|
183
|
-
this.options = options;
|
|
184
|
-
this.stepDefinitions = stepDefinitions;
|
|
185
|
-
// Defensive copy of stepOrder
|
|
186
|
-
this.stepOrder = [...stepOrder];
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Get a specific step definition by slug with proper typing
|
|
191
|
-
* @throws Error if the step with the given slug doesn't exist
|
|
192
|
-
*/
|
|
193
|
-
getStepDefinition<SlugType extends keyof Steps & keyof StepDependencies>(
|
|
194
|
-
slug: SlugType
|
|
195
|
-
): StepDefinition<
|
|
196
|
-
Simplify<
|
|
197
|
-
{
|
|
198
|
-
run: TFlowInput;
|
|
199
|
-
} & {
|
|
200
|
-
[K in StepDependencies[SlugType][number]]: K extends keyof Steps
|
|
201
|
-
? Steps[K]
|
|
202
|
-
: never;
|
|
203
|
-
}
|
|
204
|
-
>,
|
|
205
|
-
Steps[SlugType]
|
|
206
|
-
> {
|
|
207
|
-
// Check if the slug exists in stepDefinitions using a more explicit pattern
|
|
208
|
-
if (!(slug in this.stepDefinitions)) {
|
|
209
|
-
throw new Error(
|
|
210
|
-
`Step "${String(slug)}" does not exist in flow "${this.slug}"`
|
|
211
|
-
);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// Use a type assertion directive to tell TypeScript that this is safe
|
|
215
|
-
// @ts-expect-error The type system cannot track that this.stepDefinitions[slug] has the correct type
|
|
216
|
-
// but we know it's safe because we only add steps through the strongly-typed `step` method
|
|
217
|
-
return this.stepDefinitions[slug as string];
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// SlugType extends keyof Steps & keyof StepDependencies
|
|
221
|
-
step<
|
|
222
|
-
Slug extends string,
|
|
223
|
-
Deps extends Extract<keyof Steps, string> = never,
|
|
224
|
-
RetType extends AnyOutput = AnyOutput
|
|
225
|
-
>(
|
|
226
|
-
opts: Simplify<{ slug: Slug; dependsOn?: Deps[] } & RuntimeOptions>,
|
|
227
|
-
handler: (
|
|
228
|
-
input: Simplify<
|
|
229
|
-
{
|
|
230
|
-
run: TFlowInput;
|
|
231
|
-
} & {
|
|
232
|
-
[K in Deps]: K extends keyof Steps ? Steps[K] : never;
|
|
233
|
-
}
|
|
234
|
-
>
|
|
235
|
-
) => RetType | Promise<RetType>
|
|
236
|
-
): Flow<
|
|
237
|
-
TFlowInput,
|
|
238
|
-
Steps & { [K in Slug]: Awaited<RetType> },
|
|
239
|
-
StepDependencies & { [K in Slug]: Deps[] }
|
|
240
|
-
> {
|
|
241
|
-
type NewSteps = MergeObjects<Steps, { [K in Slug]: Awaited<RetType> }>;
|
|
242
|
-
type NewDependencies = MergeObjects<
|
|
243
|
-
StepDependencies,
|
|
244
|
-
{ [K in Slug]: Deps[] }
|
|
245
|
-
>;
|
|
246
|
-
|
|
247
|
-
const slug = opts.slug as Slug;
|
|
248
|
-
|
|
249
|
-
// Validate the step slug
|
|
250
|
-
validateSlug(slug);
|
|
251
|
-
|
|
252
|
-
if (this.stepDefinitions[slug]) {
|
|
253
|
-
throw new Error(`Step "${slug}" already exists in flow "${this.slug}"`);
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
const dependencies = opts.dependsOn || [];
|
|
257
|
-
// Validate dependencies - check if all referenced steps exist
|
|
258
|
-
if (dependencies.length > 0) {
|
|
259
|
-
for (const dep of dependencies) {
|
|
260
|
-
if (!this.stepDefinitions[dep as string]) {
|
|
261
|
-
throw new Error(`Step "${slug}" depends on undefined step "${dep}"`);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
// Extract RuntimeOptions from opts
|
|
267
|
-
const options: RuntimeOptions = {};
|
|
268
|
-
if (opts.maxAttempts !== undefined) options.maxAttempts = opts.maxAttempts;
|
|
269
|
-
if (opts.baseDelay !== undefined) options.baseDelay = opts.baseDelay;
|
|
270
|
-
if (opts.timeout !== undefined) options.timeout = opts.timeout;
|
|
271
|
-
|
|
272
|
-
// Validate runtime options (optional for step level)
|
|
273
|
-
validateRuntimeOptions(options, { optional: true });
|
|
274
|
-
|
|
275
|
-
// Preserve the exact type of the handler
|
|
276
|
-
const newStepDefinition: StepDefinition<
|
|
277
|
-
Simplify<
|
|
278
|
-
{
|
|
279
|
-
run: TFlowInput;
|
|
280
|
-
} & {
|
|
281
|
-
[K in Deps]: K extends keyof Steps ? Steps[K] : never;
|
|
282
|
-
}
|
|
283
|
-
>,
|
|
284
|
-
RetType
|
|
285
|
-
> = {
|
|
286
|
-
slug,
|
|
287
|
-
handler: handler as (
|
|
288
|
-
input: Simplify<
|
|
289
|
-
{
|
|
290
|
-
run: TFlowInput;
|
|
291
|
-
} & {
|
|
292
|
-
[K in Deps]: K extends keyof Steps ? Steps[K] : never;
|
|
293
|
-
}
|
|
294
|
-
>
|
|
295
|
-
) => RetType | Promise<RetType>,
|
|
296
|
-
dependencies: dependencies as string[],
|
|
297
|
-
options,
|
|
298
|
-
};
|
|
299
|
-
|
|
300
|
-
const newStepDefinitions = {
|
|
301
|
-
...this.stepDefinitions,
|
|
302
|
-
[slug]: newStepDefinition,
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
// Create a new stepOrder array with the new slug appended
|
|
306
|
-
const newStepOrder = [...this.stepOrder, slug];
|
|
307
|
-
|
|
308
|
-
// Create a new flow with the same slug and options but with updated type parameters
|
|
309
|
-
// We need to use type assertions here because TypeScript cannot track the exact relationship
|
|
310
|
-
// between the specific step definition types and the generic Flow type parameters
|
|
311
|
-
// This is safe because we're constructing the newStepDefinitions in a type-safe way above
|
|
312
|
-
return new Flow<TFlowInput, NewSteps, NewDependencies>(
|
|
313
|
-
{ slug: this.slug, ...this.options },
|
|
314
|
-
newStepDefinitions as Record<string, StepDefinition<AnyInput, AnyOutput>>,
|
|
315
|
-
newStepOrder
|
|
316
|
-
) as Flow<TFlowInput, NewSteps, NewDependencies>;
|
|
317
|
-
}
|
|
318
|
-
}
|