reqon-dsl 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +45 -3
- package/dist/ast/nodes.d.ts +91 -4
- package/dist/ast/nodes.js +14 -0
- package/dist/auth/circuit-breaker.d.ts +11 -0
- package/dist/auth/circuit-breaker.js +90 -18
- package/dist/auth/credentials.d.ts +6 -1
- package/dist/auth/credentials.js +12 -4
- package/dist/auth/oauth2-provider.js +13 -3
- package/dist/auth/rate-limiter.d.ts +12 -1
- package/dist/auth/rate-limiter.js +39 -26
- package/dist/auth/token-store.js +8 -1
- package/dist/cli.d.ts +24 -1
- package/dist/cli.js +149 -10
- package/dist/config/constants.d.ts +152 -0
- package/dist/config/constants.js +139 -0
- package/dist/config/index.d.ts +4 -0
- package/dist/config/index.js +4 -0
- package/dist/control/index.d.ts +2 -0
- package/dist/control/index.js +1 -0
- package/dist/control/server.d.ts +105 -0
- package/dist/control/server.js +315 -0
- package/dist/control/types.d.ts +61 -0
- package/dist/control/types.js +7 -0
- package/dist/debug/cli-debugger.d.ts +17 -0
- package/dist/debug/cli-debugger.js +185 -0
- package/dist/debug/controller.d.ts +94 -0
- package/dist/debug/controller.js +45 -0
- package/dist/debug/index.d.ts +6 -0
- package/dist/debug/index.js +5 -0
- package/dist/errors/index.d.ts +67 -0
- package/dist/errors/index.js +89 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/state.d.ts +24 -0
- package/dist/execution/store.js +2 -2
- package/dist/execution-log/events.d.ts +125 -0
- package/dist/execution-log/events.js +17 -0
- package/dist/execution-log/fold.d.ts +38 -0
- package/dist/execution-log/fold.js +54 -0
- package/dist/execution-log/index.d.ts +18 -0
- package/dist/execution-log/index.js +6 -0
- package/dist/execution-log/postgres-store.d.ts +36 -0
- package/dist/execution-log/postgres-store.js +108 -0
- package/dist/execution-log/resume.d.ts +11 -0
- package/dist/execution-log/resume.js +5 -0
- package/dist/execution-log/sqlite-store.d.ts +16 -0
- package/dist/execution-log/sqlite-store.js +101 -0
- package/dist/execution-log/store.d.ts +72 -0
- package/dist/execution-log/store.js +182 -0
- package/dist/index.d.ts +23 -2
- package/dist/index.js +35 -3
- package/dist/interpreter/context.d.ts +29 -0
- package/dist/interpreter/context.js +18 -0
- package/dist/interpreter/evaluator.d.ts +63 -1
- package/dist/interpreter/evaluator.js +219 -42
- package/dist/interpreter/executor.d.ts +132 -14
- package/dist/interpreter/executor.js +883 -178
- package/dist/interpreter/fetch-handler.d.ts +48 -1
- package/dist/interpreter/fetch-handler.js +216 -38
- package/dist/interpreter/http.d.ts +34 -0
- package/dist/interpreter/http.js +203 -28
- package/dist/interpreter/index.d.ts +5 -3
- package/dist/interpreter/index.js +4 -2
- package/dist/interpreter/pagination.d.ts +12 -3
- package/dist/interpreter/pagination.js +102 -32
- package/dist/interpreter/signals.d.ts +8 -0
- package/dist/interpreter/signals.js +12 -0
- package/dist/interpreter/source-manager.d.ts +75 -0
- package/dist/interpreter/source-manager.js +157 -0
- package/dist/interpreter/step-handlers/apply-handler.d.ts +29 -0
- package/dist/interpreter/step-handlers/apply-handler.js +79 -0
- package/dist/interpreter/step-handlers/for-handler.d.ts +16 -0
- package/dist/interpreter/step-handlers/for-handler.js +89 -7
- package/dist/interpreter/step-handlers/index.d.ts +4 -2
- package/dist/interpreter/step-handlers/index.js +4 -2
- package/dist/interpreter/step-handlers/match-handler.d.ts +9 -0
- package/dist/interpreter/step-handlers/match-handler.js +47 -17
- package/dist/interpreter/step-handlers/pause-handler.d.ts +52 -0
- package/dist/interpreter/step-handlers/pause-handler.js +87 -0
- package/dist/interpreter/step-handlers/store-handler.d.ts +17 -1
- package/dist/interpreter/step-handlers/store-handler.js +61 -20
- package/dist/interpreter/step-handlers/types.d.ts +3 -0
- package/dist/interpreter/step-handlers/validate-handler.d.ts +2 -1
- package/dist/interpreter/step-handlers/validate-handler.js +7 -2
- package/dist/interpreter/step-handlers/webhook-handler.d.ts +4 -0
- package/dist/interpreter/step-handlers/webhook-handler.js +31 -5
- package/dist/interpreter/store-manager.d.ts +46 -0
- package/dist/interpreter/store-manager.js +70 -0
- package/dist/lexer/index.d.ts +11 -4
- package/dist/lexer/index.js +11 -4
- package/dist/lexer/tokens.d.ts +17 -1
- package/dist/lexer/tokens.js +36 -0
- package/dist/loader/index.js +5 -8
- package/dist/mcp/index.d.ts +11 -0
- package/dist/mcp/index.js +11 -0
- package/dist/mcp/sandbox.d.ts +41 -0
- package/dist/mcp/sandbox.js +76 -0
- package/dist/mcp/server.d.ts +17 -0
- package/dist/mcp/server.js +504 -0
- package/dist/oas/index.d.ts +2 -0
- package/dist/oas/index.js +1 -0
- package/dist/oas/loader.d.ts +13 -1
- package/dist/oas/loader.js +25 -3
- package/dist/oas/mock-generator.d.ts +12 -0
- package/dist/oas/mock-generator.js +196 -0
- package/dist/oas/validator.js +45 -5
- package/dist/observability/events.d.ts +248 -0
- package/dist/observability/events.js +85 -0
- package/dist/observability/index.d.ts +15 -0
- package/dist/observability/index.js +12 -0
- package/dist/observability/logger.d.ts +106 -0
- package/dist/observability/logger.js +266 -0
- package/dist/observability/otel.d.ts +143 -0
- package/dist/observability/otel.js +421 -0
- package/dist/parser/action-parser.d.ts +105 -0
- package/dist/parser/action-parser.js +645 -0
- package/dist/parser/base.d.ts +7 -0
- package/dist/parser/base.js +11 -0
- package/dist/parser/expressions.d.ts +14 -0
- package/dist/parser/expressions.js +89 -6
- package/dist/parser/fetch-parser.d.ts +27 -0
- package/dist/parser/fetch-parser.js +280 -0
- package/dist/parser/index.d.ts +17 -0
- package/dist/parser/index.js +17 -0
- package/dist/parser/parser.d.ts +44 -46
- package/dist/parser/parser.js +122 -1070
- package/dist/parser/pipeline-parser.d.ts +12 -0
- package/dist/parser/pipeline-parser.js +52 -0
- package/dist/parser/schedule-parser.d.ts +7 -0
- package/dist/parser/schedule-parser.js +137 -0
- package/dist/parser/source-parser.d.ts +9 -0
- package/dist/parser/source-parser.js +151 -0
- package/dist/pause/index.d.ts +15 -0
- package/dist/pause/index.js +12 -0
- package/dist/pause/log-store.d.ts +33 -0
- package/dist/pause/log-store.js +98 -0
- package/dist/pause/manager.d.ts +130 -0
- package/dist/pause/manager.js +294 -0
- package/dist/pause/state.d.ts +93 -0
- package/dist/pause/state.js +103 -0
- package/dist/pause/store.d.ts +61 -0
- package/dist/pause/store.js +158 -0
- package/dist/plugin.d.ts +9 -12
- package/dist/plugin.js +10 -13
- package/dist/scheduler/cron-parser.d.ts +10 -3
- package/dist/scheduler/cron-parser.js +227 -48
- package/dist/scheduler/scheduler.js +56 -22
- package/dist/stores/factory.d.ts +7 -1
- package/dist/stores/factory.js +14 -3
- package/dist/stores/file.d.ts +26 -0
- package/dist/stores/file.js +67 -21
- package/dist/stores/index.d.ts +16 -1
- package/dist/stores/index.js +16 -1
- package/dist/stores/memory.d.ts +4 -0
- package/dist/stores/memory.js +8 -6
- package/dist/stores/postgrest.d.ts +28 -0
- package/dist/stores/postgrest.js +84 -37
- package/dist/stores/types.d.ts +17 -0
- package/dist/stores/types.js +12 -0
- package/dist/sync/index.d.ts +3 -2
- package/dist/sync/index.js +2 -1
- package/dist/sync/log-store.d.ts +30 -0
- package/dist/sync/log-store.js +45 -0
- package/dist/sync/store.js +1 -1
- package/dist/trace/index.d.ts +18 -0
- package/dist/trace/index.js +13 -0
- package/dist/trace/log-view.d.ts +57 -0
- package/dist/trace/log-view.js +76 -0
- package/dist/trace/recorder.d.ts +75 -0
- package/dist/trace/recorder.js +157 -0
- package/dist/trace/replay.d.ts +132 -0
- package/dist/trace/replay.js +264 -0
- package/dist/trace/state.d.ts +102 -0
- package/dist/trace/state.js +86 -0
- package/dist/trace/store.d.ts +75 -0
- package/dist/trace/store.js +250 -0
- package/dist/utils/deep-merge.d.ts +10 -0
- package/dist/utils/deep-merge.js +23 -0
- package/dist/utils/file.d.ts +13 -4
- package/dist/utils/file.js +70 -12
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/long-timeout.d.ts +19 -0
- package/dist/utils/long-timeout.js +33 -0
- package/dist/utils/path.d.ts +22 -1
- package/dist/utils/path.js +46 -1
- package/dist/utils/redact.d.ts +22 -0
- package/dist/utils/redact.js +42 -0
- package/dist/utils/type-guards.d.ts +58 -0
- package/dist/utils/type-guards.js +92 -0
- package/dist/webhook/server.d.ts +9 -0
- package/dist/webhook/server.js +122 -36
- package/dist/webhook/types.d.ts +9 -1
- package/package.json +76 -9
- package/.claude/settings.local.json +0 -31
- package/.claude/skills/api-integration.md +0 -125
- package/.claude/skills/database-schema.md +0 -51
- package/.claude/skills/dsl-design.md +0 -80
- package/.claude/skills/property-testing.md +0 -143
- package/.claude/skills/reqon/SKILL.md +0 -44
- package/.claude/skills/reqon/references/examples.md +0 -206
- package/.claude/skills/reqon/references/syntax.md +0 -263
- package/.claude/skills/vscode-extension.md +0 -113
- package/.github/dependabot.yml +0 -32
- package/.github/pull_request_template.md +0 -21
- package/.github/workflows/ci.yml +0 -174
- package/.github/workflows/release.yml +0 -73
- package/CLAUDE.md +0 -72
- package/CONTRIBUTING.md +0 -161
- package/TODO.md +0 -51
- package/dist/auth/auth.test.d.ts +0 -1
- package/dist/auth/auth.test.js +0 -255
- package/dist/errors/errors.test.d.ts +0 -1
- package/dist/errors/errors.test.js +0 -165
- package/dist/execution/execution.test.d.ts +0 -1
- package/dist/execution/execution.test.js +0 -246
- package/dist/integration.test.d.ts +0 -1
- package/dist/integration.test.js +0 -168
- package/dist/interpreter/evaluator.test.d.ts +0 -1
- package/dist/interpreter/evaluator.test.js +0 -512
- package/dist/interpreter/http.test.d.ts +0 -1
- package/dist/interpreter/http.test.js +0 -299
- package/dist/interpreter/progress.test.d.ts +0 -1
- package/dist/interpreter/progress.test.js +0 -216
- package/dist/interpreter/schema-matcher.test.d.ts +0 -1
- package/dist/interpreter/schema-matcher.test.js +0 -122
- package/dist/lexer/lexer.d.ts +0 -24
- package/dist/lexer/lexer.js +0 -264
- package/dist/lexer/lexer.test.d.ts +0 -1
- package/dist/lexer/lexer.test.js +0 -259
- package/dist/loader/loader.test.d.ts +0 -1
- package/dist/loader/loader.test.js +0 -287
- package/dist/oas/oas.test.d.ts +0 -1
- package/dist/oas/oas.test.js +0 -218
- package/dist/parser/expressions.test.d.ts +0 -1
- package/dist/parser/expressions.test.js +0 -378
- package/dist/parser/match.test.d.ts +0 -1
- package/dist/parser/match.test.js +0 -254
- package/dist/parser/parser.test.d.ts +0 -1
- package/dist/parser/parser.test.js +0 -333
- package/dist/parser/schedule.test.d.ts +0 -1
- package/dist/parser/schedule.test.js +0 -241
- package/dist/scheduler/cron-parser.test.d.ts +0 -1
- package/dist/scheduler/cron-parser.test.js +0 -188
- package/dist/stores/file.test.d.ts +0 -1
- package/dist/stores/file.test.js +0 -165
- package/dist/stores/memory.test.d.ts +0 -1
- package/dist/stores/memory.test.js +0 -157
- package/dist/stores/stores.test.d.ts +0 -1
- package/dist/stores/stores.test.js +0 -158
- package/dist/sync/sync.test.d.ts +0 -1
- package/dist/sync/sync.test.js +0 -221
- package/docusaurus/README.md +0 -41
- package/docusaurus/docs/advanced/execution-state.md +0 -283
- package/docusaurus/docs/advanced/extending-reqon.md +0 -388
- package/docusaurus/docs/advanced/multi-file-missions.md +0 -250
- package/docusaurus/docs/advanced/parallel-execution.md +0 -353
- package/docusaurus/docs/api-reference.md +0 -443
- package/docusaurus/docs/authentication/api-key.md +0 -339
- package/docusaurus/docs/authentication/basic.md +0 -276
- package/docusaurus/docs/authentication/bearer.md +0 -282
- package/docusaurus/docs/authentication/oauth2.md +0 -317
- package/docusaurus/docs/authentication/overview.md +0 -251
- package/docusaurus/docs/cli.md +0 -229
- package/docusaurus/docs/core-concepts/actions.md +0 -286
- package/docusaurus/docs/core-concepts/missions.md +0 -264
- package/docusaurus/docs/core-concepts/schemas.md +0 -353
- package/docusaurus/docs/core-concepts/sources.md +0 -339
- package/docusaurus/docs/core-concepts/stores.md +0 -332
- package/docusaurus/docs/dsl-syntax/expressions.md +0 -361
- package/docusaurus/docs/dsl-syntax/fetch.md +0 -293
- package/docusaurus/docs/dsl-syntax/for-loops.md +0 -324
- package/docusaurus/docs/dsl-syntax/map.md +0 -345
- package/docusaurus/docs/dsl-syntax/match.md +0 -387
- package/docusaurus/docs/dsl-syntax/pipelines.md +0 -397
- package/docusaurus/docs/dsl-syntax/validate.md +0 -401
- package/docusaurus/docs/error-handling/dead-letter-queues.md +0 -399
- package/docusaurus/docs/error-handling/flow-control.md +0 -337
- package/docusaurus/docs/error-handling/retry-strategies.md +0 -368
- package/docusaurus/docs/examples.md +0 -488
- package/docusaurus/docs/getting-started.md +0 -256
- package/docusaurus/docs/http/circuit-breaker.md +0 -401
- package/docusaurus/docs/http/incremental-sync.md +0 -394
- package/docusaurus/docs/http/pagination.md +0 -361
- package/docusaurus/docs/http/rate-limiting.md +0 -383
- package/docusaurus/docs/http/requests.md +0 -328
- package/docusaurus/docs/http/retry.md +0 -402
- package/docusaurus/docs/intro.md +0 -90
- package/docusaurus/docs/openapi/loading-specs.md +0 -305
- package/docusaurus/docs/openapi/operation-calls.md +0 -314
- package/docusaurus/docs/openapi/overview.md +0 -212
- package/docusaurus/docs/openapi/response-validation.md +0 -344
- package/docusaurus/docs/scheduling/cron.md +0 -305
- package/docusaurus/docs/scheduling/daemon-mode.md +0 -317
- package/docusaurus/docs/scheduling/intervals.md +0 -289
- package/docusaurus/docs/scheduling/overview.md +0 -231
- package/docusaurus/docs/stores/custom-adapters.md +0 -376
- package/docusaurus/docs/stores/file.md +0 -236
- package/docusaurus/docs/stores/memory.md +0 -193
- package/docusaurus/docs/stores/overview.md +0 -274
- package/docusaurus/docs/stores/postgrest.md +0 -316
- package/docusaurus/docusaurus.config.ts +0 -148
- package/docusaurus/package-lock.json +0 -18029
- package/docusaurus/package.json +0 -47
- package/docusaurus/sidebars.ts +0 -155
- package/docusaurus/src/components/HomepageFeatures/index.tsx +0 -105
- package/docusaurus/src/components/HomepageFeatures/styles.module.css +0 -12
- package/docusaurus/src/css/custom.css +0 -169
- package/docusaurus/src/pages/index.module.css +0 -48
- package/docusaurus/src/pages/index.tsx +0 -110
- package/docusaurus/src/pages/markdown-page.md +0 -7
- package/docusaurus/static/.nojekyll +0 -0
- package/docusaurus/static/img/docusaurus-social-card.jpg +0 -0
- package/docusaurus/static/img/docusaurus.png +0 -0
- package/docusaurus/static/img/favicon.ico +0 -0
- package/docusaurus/static/img/logo.svg +0 -10
- package/docusaurus/static/img/undraw_docusaurus_mountain.svg +0 -171
- package/docusaurus/static/img/undraw_docusaurus_react.svg +0 -170
- package/docusaurus/static/img/undraw_docusaurus_tree.svg +0 -40
- package/docusaurus/tsconfig.json +0 -8
- package/examples/README.md +0 -112
- package/examples/error-handling/README.md +0 -150
- package/examples/error-handling/payment-processor.vague +0 -287
- package/examples/github-sync/README.md +0 -74
- package/examples/github-sync/fetch-issues.vague +0 -47
- package/examples/github-sync/fetch-prs.vague +0 -40
- package/examples/github-sync/mission.vague +0 -101
- package/examples/github-sync/normalize.vague +0 -70
- package/examples/jsonplaceholder/README.md +0 -28
- package/examples/jsonplaceholder/posts.vague +0 -48
- package/examples/petstore/README.md +0 -35
- package/examples/petstore/openapi.yaml +0 -97
- package/examples/petstore/sync.vague +0 -52
- package/examples/temporal-comparison/README.md +0 -297
- package/examples/temporal-comparison/reconciliation.vague +0 -355
- package/examples/temporal-comparison/temporal/activities/index.ts +0 -8
- package/examples/temporal-comparison/temporal/activities/shipstation.ts +0 -225
- package/examples/temporal-comparison/temporal/activities/shopify.ts +0 -257
- package/examples/temporal-comparison/temporal/activities/storage.ts +0 -198
- package/examples/temporal-comparison/temporal/activities/stripe.ts +0 -169
- package/examples/temporal-comparison/temporal/activities/validation.ts +0 -205
- package/examples/temporal-comparison/temporal/client/schedule.ts +0 -218
- package/examples/temporal-comparison/temporal/config/retry.ts +0 -63
- package/examples/temporal-comparison/temporal/types/index.ts +0 -129
- package/examples/temporal-comparison/temporal/workers/main.ts +0 -130
- package/examples/temporal-comparison/temporal/workflows/orderReconciliation.ts +0 -262
- package/examples/xero/README.md +0 -88
- package/examples/xero/invoices.vague +0 -189
- package/src/api-integration.test.ts +0 -954
- package/src/ast/index.ts +0 -1
- package/src/ast/nodes.ts +0 -310
- package/src/auth/auth.test.ts +0 -326
- package/src/auth/circuit-breaker.test.ts +0 -390
- package/src/auth/circuit-breaker.ts +0 -379
- package/src/auth/credentials.test.ts +0 -273
- package/src/auth/credentials.ts +0 -246
- package/src/auth/index.ts +0 -40
- package/src/auth/oauth2-provider.ts +0 -177
- package/src/auth/rate-limiter.ts +0 -459
- package/src/auth/token-store.ts +0 -177
- package/src/auth/types.ts +0 -159
- package/src/benchmark/e2e.bench.ts +0 -288
- package/src/benchmark/evaluator.bench.ts +0 -331
- package/src/benchmark/fixtures.ts +0 -295
- package/src/benchmark/index.ts +0 -108
- package/src/benchmark/lexer.bench.ts +0 -69
- package/src/benchmark/parser.bench.ts +0 -103
- package/src/benchmark/resilience.bench.ts +0 -193
- package/src/benchmark/store.bench.ts +0 -147
- package/src/benchmark/utils.ts +0 -230
- package/src/cli.ts +0 -313
- package/src/errors/errors.test.ts +0 -234
- package/src/errors/index.ts +0 -223
- package/src/execution/execution.test.ts +0 -307
- package/src/execution/index.ts +0 -21
- package/src/execution/state.ts +0 -207
- package/src/execution/store.ts +0 -188
- package/src/index.ts +0 -169
- package/src/integration.test.ts +0 -192
- package/src/interpreter/context.ts +0 -57
- package/src/interpreter/evaluator.test.ts +0 -796
- package/src/interpreter/evaluator.ts +0 -245
- package/src/interpreter/executor.ts +0 -946
- package/src/interpreter/fetch-handler.ts +0 -302
- package/src/interpreter/http.test.ts +0 -423
- package/src/interpreter/http.ts +0 -308
- package/src/interpreter/index.ts +0 -32
- package/src/interpreter/pagination.ts +0 -207
- package/src/interpreter/progress.test.ts +0 -276
- package/src/interpreter/schema-matcher.test.ts +0 -160
- package/src/interpreter/schema-matcher.ts +0 -168
- package/src/interpreter/signals.ts +0 -73
- package/src/interpreter/step-handlers/for-handler.ts +0 -65
- package/src/interpreter/step-handlers/index.ts +0 -17
- package/src/interpreter/step-handlers/map-handler.ts +0 -24
- package/src/interpreter/step-handlers/match-handler.ts +0 -101
- package/src/interpreter/step-handlers/store-handler.ts +0 -78
- package/src/interpreter/step-handlers/types.ts +0 -17
- package/src/interpreter/step-handlers/validate-handler.ts +0 -30
- package/src/interpreter/step-handlers/webhook-handler.ts +0 -142
- package/src/lexer/index.ts +0 -18
- package/src/lexer/lexer.test.ts +0 -316
- package/src/lexer/tokens.ts +0 -179
- package/src/loader/index.ts +0 -288
- package/src/loader/loader.test.ts +0 -360
- package/src/oas/index.ts +0 -4
- package/src/oas/loader.ts +0 -126
- package/src/oas/oas.test.ts +0 -254
- package/src/oas/validator.ts +0 -299
- package/src/parser/base.ts +0 -124
- package/src/parser/expressions.test.ts +0 -525
- package/src/parser/expressions.ts +0 -314
- package/src/parser/index.ts +0 -3
- package/src/parser/match.test.ts +0 -296
- package/src/parser/parser.test.ts +0 -739
- package/src/parser/parser.ts +0 -1469
- package/src/parser/schedule.test.ts +0 -287
- package/src/parser/webhook.test.ts +0 -248
- package/src/plugin.ts +0 -83
- package/src/scheduler/cron-parser.test.ts +0 -236
- package/src/scheduler/cron-parser.ts +0 -236
- package/src/scheduler/index.ts +0 -10
- package/src/scheduler/scheduler.ts +0 -443
- package/src/scheduler/types.ts +0 -71
- package/src/stores/factory.ts +0 -104
- package/src/stores/file.test.ts +0 -276
- package/src/stores/file.ts +0 -211
- package/src/stores/index.ts +0 -6
- package/src/stores/memory.test.ts +0 -238
- package/src/stores/memory.ts +0 -63
- package/src/stores/postgrest.test.ts +0 -488
- package/src/stores/postgrest.ts +0 -263
- package/src/stores/stores.test.ts +0 -197
- package/src/stores/types.ts +0 -58
- package/src/sync/index.ts +0 -16
- package/src/sync/state.ts +0 -126
- package/src/sync/store.ts +0 -139
- package/src/sync/sync.test.ts +0 -271
- package/src/utils/async.ts +0 -10
- package/src/utils/file.ts +0 -106
- package/src/utils/index.ts +0 -14
- package/src/utils/logger.ts +0 -53
- package/src/utils/path.ts +0 -47
- package/src/webhook/index.ts +0 -15
- package/src/webhook/server.test.ts +0 -253
- package/src/webhook/server.ts +0 -389
- package/src/webhook/store.ts +0 -239
- package/src/webhook/types.ts +0 -93
- package/tsconfig.json +0 -17
- package/vitest.config.ts +0 -39
package/.github/workflows/ci.yml
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [main]
|
|
8
|
-
|
|
9
|
-
concurrency:
|
|
10
|
-
group: ${{ github.workflow }}-${{ github.ref }}
|
|
11
|
-
cancel-in-progress: true
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
test:
|
|
15
|
-
name: Test (Node ${{ matrix.node-version }})
|
|
16
|
-
runs-on: ubuntu-latest
|
|
17
|
-
|
|
18
|
-
strategy:
|
|
19
|
-
fail-fast: false
|
|
20
|
-
matrix:
|
|
21
|
-
node-version: [18, 20, 22]
|
|
22
|
-
|
|
23
|
-
steps:
|
|
24
|
-
- name: Checkout reqon
|
|
25
|
-
uses: actions/checkout@v4
|
|
26
|
-
|
|
27
|
-
- name: Checkout vague dependency
|
|
28
|
-
uses: actions/checkout@v4
|
|
29
|
-
with:
|
|
30
|
-
repository: mcclowes/vague
|
|
31
|
-
path: ../vague
|
|
32
|
-
|
|
33
|
-
- name: Setup Node.js ${{ matrix.node-version }}
|
|
34
|
-
uses: actions/setup-node@v4
|
|
35
|
-
with:
|
|
36
|
-
node-version: ${{ matrix.node-version }}
|
|
37
|
-
cache: 'npm'
|
|
38
|
-
|
|
39
|
-
- name: Install vague dependencies
|
|
40
|
-
run: npm ci
|
|
41
|
-
working-directory: ../vague
|
|
42
|
-
|
|
43
|
-
- name: Build vague
|
|
44
|
-
run: npm run build
|
|
45
|
-
working-directory: ../vague
|
|
46
|
-
|
|
47
|
-
- name: Install dependencies
|
|
48
|
-
run: npm ci
|
|
49
|
-
|
|
50
|
-
- name: Run tests
|
|
51
|
-
run: npm run test:run
|
|
52
|
-
|
|
53
|
-
- name: Build
|
|
54
|
-
run: npm run build
|
|
55
|
-
|
|
56
|
-
coverage:
|
|
57
|
-
name: Coverage
|
|
58
|
-
runs-on: ubuntu-latest
|
|
59
|
-
needs: test
|
|
60
|
-
|
|
61
|
-
steps:
|
|
62
|
-
- name: Checkout reqon
|
|
63
|
-
uses: actions/checkout@v4
|
|
64
|
-
|
|
65
|
-
- name: Checkout vague dependency
|
|
66
|
-
uses: actions/checkout@v4
|
|
67
|
-
with:
|
|
68
|
-
repository: mcclowes/vague
|
|
69
|
-
path: ../vague
|
|
70
|
-
|
|
71
|
-
- name: Setup Node.js
|
|
72
|
-
uses: actions/setup-node@v4
|
|
73
|
-
with:
|
|
74
|
-
node-version: 20
|
|
75
|
-
cache: 'npm'
|
|
76
|
-
|
|
77
|
-
- name: Install vague dependencies
|
|
78
|
-
run: npm ci
|
|
79
|
-
working-directory: ../vague
|
|
80
|
-
|
|
81
|
-
- name: Build vague
|
|
82
|
-
run: npm run build
|
|
83
|
-
working-directory: ../vague
|
|
84
|
-
|
|
85
|
-
- name: Install dependencies
|
|
86
|
-
run: npm ci
|
|
87
|
-
|
|
88
|
-
- name: Run tests with coverage
|
|
89
|
-
run: npm run test:coverage
|
|
90
|
-
|
|
91
|
-
- name: Upload coverage reports
|
|
92
|
-
uses: codecov/codecov-action@v4
|
|
93
|
-
with:
|
|
94
|
-
token: ${{ secrets.CODECOV_TOKEN }}
|
|
95
|
-
directory: ./coverage
|
|
96
|
-
fail_ci_if_error: false
|
|
97
|
-
verbose: true
|
|
98
|
-
|
|
99
|
-
typecheck:
|
|
100
|
-
name: Type Check
|
|
101
|
-
runs-on: ubuntu-latest
|
|
102
|
-
|
|
103
|
-
steps:
|
|
104
|
-
- name: Checkout reqon
|
|
105
|
-
uses: actions/checkout@v4
|
|
106
|
-
|
|
107
|
-
- name: Checkout vague dependency
|
|
108
|
-
uses: actions/checkout@v4
|
|
109
|
-
with:
|
|
110
|
-
repository: mcclowes/vague
|
|
111
|
-
path: ../vague
|
|
112
|
-
|
|
113
|
-
- name: Setup Node.js
|
|
114
|
-
uses: actions/setup-node@v4
|
|
115
|
-
with:
|
|
116
|
-
node-version: 20
|
|
117
|
-
cache: 'npm'
|
|
118
|
-
|
|
119
|
-
- name: Install vague dependencies
|
|
120
|
-
run: npm ci
|
|
121
|
-
working-directory: ../vague
|
|
122
|
-
|
|
123
|
-
- name: Build vague
|
|
124
|
-
run: npm run build
|
|
125
|
-
working-directory: ../vague
|
|
126
|
-
|
|
127
|
-
- name: Install dependencies
|
|
128
|
-
run: npm ci
|
|
129
|
-
|
|
130
|
-
- name: Type check
|
|
131
|
-
run: npx tsc --noEmit
|
|
132
|
-
|
|
133
|
-
benchmark:
|
|
134
|
-
name: Benchmark
|
|
135
|
-
runs-on: ubuntu-latest
|
|
136
|
-
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
137
|
-
needs: test
|
|
138
|
-
|
|
139
|
-
steps:
|
|
140
|
-
- name: Checkout reqon
|
|
141
|
-
uses: actions/checkout@v4
|
|
142
|
-
|
|
143
|
-
- name: Checkout vague dependency
|
|
144
|
-
uses: actions/checkout@v4
|
|
145
|
-
with:
|
|
146
|
-
repository: mcclowes/vague
|
|
147
|
-
path: ../vague
|
|
148
|
-
|
|
149
|
-
- name: Setup Node.js
|
|
150
|
-
uses: actions/setup-node@v4
|
|
151
|
-
with:
|
|
152
|
-
node-version: 20
|
|
153
|
-
cache: 'npm'
|
|
154
|
-
|
|
155
|
-
- name: Install vague dependencies
|
|
156
|
-
run: npm ci
|
|
157
|
-
working-directory: ../vague
|
|
158
|
-
|
|
159
|
-
- name: Build vague
|
|
160
|
-
run: npm run build
|
|
161
|
-
working-directory: ../vague
|
|
162
|
-
|
|
163
|
-
- name: Install dependencies
|
|
164
|
-
run: npm ci
|
|
165
|
-
|
|
166
|
-
- name: Run benchmarks
|
|
167
|
-
run: npm run bench
|
|
168
|
-
|
|
169
|
-
- name: Upload benchmark results
|
|
170
|
-
uses: actions/upload-artifact@v4
|
|
171
|
-
with:
|
|
172
|
-
name: benchmark-results
|
|
173
|
-
path: benchmark-results.json
|
|
174
|
-
if-no-files-found: ignore
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
name: Release
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- 'v*'
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: write
|
|
10
|
-
id-token: write
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
release:
|
|
14
|
-
name: Release
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
|
|
17
|
-
steps:
|
|
18
|
-
- name: Checkout reqon
|
|
19
|
-
uses: actions/checkout@v4
|
|
20
|
-
|
|
21
|
-
- name: Checkout vague dependency
|
|
22
|
-
uses: actions/checkout@v4
|
|
23
|
-
with:
|
|
24
|
-
repository: mcclowes/vague
|
|
25
|
-
path: ../vague
|
|
26
|
-
|
|
27
|
-
- name: Setup Node.js
|
|
28
|
-
uses: actions/setup-node@v4
|
|
29
|
-
with:
|
|
30
|
-
node-version: 20
|
|
31
|
-
cache: 'npm'
|
|
32
|
-
registry-url: 'https://registry.npmjs.org'
|
|
33
|
-
|
|
34
|
-
- name: Install vague dependencies
|
|
35
|
-
run: npm ci
|
|
36
|
-
working-directory: ../vague
|
|
37
|
-
|
|
38
|
-
- name: Build vague
|
|
39
|
-
run: npm run build
|
|
40
|
-
working-directory: ../vague
|
|
41
|
-
|
|
42
|
-
- name: Install dependencies
|
|
43
|
-
run: npm ci
|
|
44
|
-
|
|
45
|
-
- name: Run tests
|
|
46
|
-
run: npm run test:run
|
|
47
|
-
|
|
48
|
-
- name: Build
|
|
49
|
-
run: npm run build
|
|
50
|
-
|
|
51
|
-
- name: Update package.json for publishing
|
|
52
|
-
run: |
|
|
53
|
-
# Replace local file dependency with published version for npm
|
|
54
|
-
# This assumes vague-lang is published to npm
|
|
55
|
-
node -e "
|
|
56
|
-
const pkg = require('./package.json');
|
|
57
|
-
if (pkg.dependencies['vague-lang']?.startsWith('file:')) {
|
|
58
|
-
pkg.dependencies['vague-lang'] = '*';
|
|
59
|
-
}
|
|
60
|
-
require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2));
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
- name: Publish to npm
|
|
64
|
-
run: npm publish --provenance --access public
|
|
65
|
-
env:
|
|
66
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
67
|
-
|
|
68
|
-
- name: Create GitHub Release
|
|
69
|
-
uses: softprops/action-gh-release@v2
|
|
70
|
-
with:
|
|
71
|
-
generate_release_notes: true
|
|
72
|
-
draft: false
|
|
73
|
-
prerelease: ${{ contains(github.ref, '-alpha') || contains(github.ref, '-beta') || contains(github.ref, '-rc') }}
|
package/CLAUDE.md
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# Reqon
|
|
2
|
-
|
|
3
|
-
A declarative DSL framework for fetch, map, validate pipelines - built on [Vague](https://github.com/mcclowes/vague).
|
|
4
|
-
|
|
5
|
-
## Architecture
|
|
6
|
-
|
|
7
|
-
- **Vague** is the DSL layer (lexer, parser, expression syntax)
|
|
8
|
-
- **Reqon** is the runtime/framework extending Vague with execution semantics
|
|
9
|
-
|
|
10
|
-
## Project Structure
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
src/
|
|
14
|
-
├── ast/ # Extended AST nodes (missions, actions, steps)
|
|
15
|
-
├── auth/ # Rate limiting and authentication providers
|
|
16
|
-
├── errors/ # Structured error classes (ParseError, RuntimeError, etc.)
|
|
17
|
-
├── execution/ # Execution state management and persistence
|
|
18
|
-
├── interpreter/ # Runtime execution
|
|
19
|
-
│ ├── context.ts # Execution context (stores, variables)
|
|
20
|
-
│ ├── evaluator.ts # Expression evaluation
|
|
21
|
-
│ ├── executor.ts # Mission/action execution
|
|
22
|
-
│ ├── fetch-handler.ts # HTTP fetch with sync checkpoints
|
|
23
|
-
│ ├── pagination.ts # Pagination strategies (offset, page, cursor)
|
|
24
|
-
│ └── http.ts # HTTP client with retry/backoff
|
|
25
|
-
├── lexer/ # Reqon keywords (uses Vague's lexer via plugin)
|
|
26
|
-
├── oas/ # OpenAPI spec integration
|
|
27
|
-
├── parser/ # Parser for mission/action/fetch/store syntax
|
|
28
|
-
├── scheduler/ # Cron scheduling for missions
|
|
29
|
-
├── stores/ # Store adapters (memory, file, extensible to SQL/NoSQL)
|
|
30
|
-
├── sync/ # Incremental sync checkpointing
|
|
31
|
-
├── utils/ # Shared utilities (sleep, path traversal, logger)
|
|
32
|
-
├── index.ts # Main exports
|
|
33
|
-
└── cli.ts # CLI entry point
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Commands
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
npm run build # Compile TypeScript
|
|
40
|
-
npm run test # Run tests in watch mode
|
|
41
|
-
npm run test:run # Run tests once
|
|
42
|
-
npm run dev # Watch mode compilation
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## DSL Syntax
|
|
46
|
-
|
|
47
|
-
Key constructs:
|
|
48
|
-
- `mission` - Pipeline definition
|
|
49
|
-
- `source` - API source with auth (oauth2, bearer, basic, api_key), or from OAS spec
|
|
50
|
-
- `store` - Storage target (memory, file, sql, nosql)
|
|
51
|
-
- `action` - Discrete pipeline step
|
|
52
|
-
- `fetch` - HTTP request with optional pagination/retry, or OAS operationId reference
|
|
53
|
-
- `for...in...where` - Iteration with filtering
|
|
54
|
-
- `map...->` - Schema transformation
|
|
55
|
-
- `validate` - Constraint checking with `assume`
|
|
56
|
-
- `run...then` - Pipeline sequencing (supports `run [A, B] then C` for parallel)
|
|
57
|
-
- `match` - Pattern matching (from Vague)
|
|
58
|
-
- `since: lastSync` - Incremental sync with checkpointing
|
|
59
|
-
|
|
60
|
-
## Code Conventions
|
|
61
|
-
|
|
62
|
-
- TypeScript with strict mode
|
|
63
|
-
- Vitest for testing
|
|
64
|
-
- Test files alongside implementation (`*.test.ts`)
|
|
65
|
-
- Vague dependency via local file link (`file:../vague`)
|
|
66
|
-
|
|
67
|
-
## Key Decisions
|
|
68
|
-
|
|
69
|
-
1. **Extends Vague**: Reqon uses Vague's lexer (via plugin system) and expression syntax; parser extends Vague's token types
|
|
70
|
-
2. **Keyword conflicts**: Parser explicitly handles Reqon keywords (key, partial, upsert, page, etc.) when they appear in option contexts
|
|
71
|
-
3. **`response` identifier**: Special-cased in evaluator to reference `ctx.response`
|
|
72
|
-
4. **Store adapters**: Interface-based design for pluggable storage backends
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
# Contributing to Reqon
|
|
2
|
-
|
|
3
|
-
Thank you for your interest in contributing to Reqon! This guide will help you get started.
|
|
4
|
-
|
|
5
|
-
## Getting Started
|
|
6
|
-
|
|
7
|
-
### Prerequisites
|
|
8
|
-
|
|
9
|
-
- Node.js 18 or higher
|
|
10
|
-
- npm
|
|
11
|
-
- [Vague](https://github.com/mcclowes/vague) cloned as a sibling directory (required for local development)
|
|
12
|
-
|
|
13
|
-
### Setup
|
|
14
|
-
|
|
15
|
-
1. Clone the repository:
|
|
16
|
-
```bash
|
|
17
|
-
git clone https://github.com/mcclowes/reqon.git
|
|
18
|
-
cd reqon
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
2. Clone Vague as a sibling directory:
|
|
22
|
-
```bash
|
|
23
|
-
cd ..
|
|
24
|
-
git clone https://github.com/mcclowes/vague.git
|
|
25
|
-
cd reqon
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
3. Install dependencies:
|
|
29
|
-
```bash
|
|
30
|
-
npm install
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
4. Build the project:
|
|
34
|
-
```bash
|
|
35
|
-
npm run build
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
5. Run tests to verify setup:
|
|
39
|
-
```bash
|
|
40
|
-
npm run test:run
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Development Workflow
|
|
44
|
-
|
|
45
|
-
### Available Scripts
|
|
46
|
-
|
|
47
|
-
| Command | Description |
|
|
48
|
-
|---------|-------------|
|
|
49
|
-
| `npm run build` | Compile TypeScript to `dist/` |
|
|
50
|
-
| `npm run dev` | Watch mode compilation |
|
|
51
|
-
| `npm run test` | Run tests in watch mode |
|
|
52
|
-
| `npm run test:run` | Run tests once |
|
|
53
|
-
| `npm run test:coverage` | Run tests with coverage report |
|
|
54
|
-
|
|
55
|
-
### Project Structure
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
src/
|
|
59
|
-
├── ast/ # Extended AST nodes (missions, actions, steps)
|
|
60
|
-
├── auth/ # Rate limiting and authentication providers
|
|
61
|
-
├── errors/ # Structured error classes
|
|
62
|
-
├── execution/ # Execution state management and persistence
|
|
63
|
-
├── interpreter/ # Runtime execution (context, evaluator, executor)
|
|
64
|
-
├── lexer/ # Reqon keywords (uses Vague's lexer via plugin)
|
|
65
|
-
├── oas/ # OpenAPI spec integration
|
|
66
|
-
├── parser/ # Parser for mission/action/fetch/store syntax
|
|
67
|
-
├── scheduler/ # Cron scheduling for missions
|
|
68
|
-
├── stores/ # Store adapters (memory, file, postgrest)
|
|
69
|
-
├── sync/ # Incremental sync checkpointing
|
|
70
|
-
├── utils/ # Shared utilities
|
|
71
|
-
├── index.ts # Main exports
|
|
72
|
-
└── cli.ts # CLI entry point
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Code Conventions
|
|
76
|
-
|
|
77
|
-
### TypeScript
|
|
78
|
-
|
|
79
|
-
- Strict mode is enabled
|
|
80
|
-
- Use explicit types for function parameters and return values
|
|
81
|
-
- Prefer `interface` over `type` for object shapes
|
|
82
|
-
|
|
83
|
-
### Testing
|
|
84
|
-
|
|
85
|
-
- Tests use [Vitest](https://vitest.dev/)
|
|
86
|
-
- Test files are co-located with implementation: `feature.ts` → `feature.test.ts`
|
|
87
|
-
- Write tests for new functionality
|
|
88
|
-
- Ensure existing tests pass before submitting
|
|
89
|
-
|
|
90
|
-
Example test structure:
|
|
91
|
-
```typescript
|
|
92
|
-
import { describe, it, expect } from 'vitest';
|
|
93
|
-
|
|
94
|
-
describe('FeatureName', () => {
|
|
95
|
-
it('should do something specific', () => {
|
|
96
|
-
// Arrange
|
|
97
|
-
// Act
|
|
98
|
-
// Assert
|
|
99
|
-
expect(result).toBe(expected);
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Architecture
|
|
105
|
-
|
|
106
|
-
Reqon extends [Vague](https://github.com/mcclowes/vague), which provides the core DSL layer (lexer, parser, expression syntax). Reqon adds:
|
|
107
|
-
|
|
108
|
-
- Mission/action/step AST nodes
|
|
109
|
-
- HTTP fetch with pagination and retry
|
|
110
|
-
- Store adapters for persistence
|
|
111
|
-
- Execution context and runtime
|
|
112
|
-
|
|
113
|
-
When adding features:
|
|
114
|
-
- Extend Vague's lexer/parser if adding new expression syntax
|
|
115
|
-
- Add new step types in `src/ast/` and handle them in `src/interpreter/executor.ts`
|
|
116
|
-
- New store backends implement the `StoreAdapter` interface in `src/stores/`
|
|
117
|
-
|
|
118
|
-
## Submitting Changes
|
|
119
|
-
|
|
120
|
-
### Pull Requests
|
|
121
|
-
|
|
122
|
-
1. Fork the repository
|
|
123
|
-
2. Create a feature branch from `main`
|
|
124
|
-
3. Make your changes
|
|
125
|
-
4. Ensure tests pass: `npm run test:run`
|
|
126
|
-
5. Ensure the build succeeds: `npm run build`
|
|
127
|
-
6. Submit a pull request
|
|
128
|
-
|
|
129
|
-
### Commit Messages
|
|
130
|
-
|
|
131
|
-
Write clear, concise commit messages that describe what changed and why:
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
Add cursor-based pagination support
|
|
135
|
-
|
|
136
|
-
- Implement cursor pagination strategy in pagination.ts
|
|
137
|
-
- Add cursor option to fetch step parser
|
|
138
|
-
- Add tests for cursor pagination
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Code Review
|
|
142
|
-
|
|
143
|
-
All submissions require review. We aim to provide feedback within a few days.
|
|
144
|
-
|
|
145
|
-
## Reporting Issues
|
|
146
|
-
|
|
147
|
-
When reporting bugs, please include:
|
|
148
|
-
|
|
149
|
-
- Reqon version
|
|
150
|
-
- Node.js version
|
|
151
|
-
- Minimal reproduction case (ideally a `.vague` snippet)
|
|
152
|
-
- Expected vs actual behavior
|
|
153
|
-
- Error messages and stack traces
|
|
154
|
-
|
|
155
|
-
## Questions?
|
|
156
|
-
|
|
157
|
-
Open an issue for questions about contributing or the codebase architecture.
|
|
158
|
-
|
|
159
|
-
## License
|
|
160
|
-
|
|
161
|
-
By contributing, you agree that your contributions will be licensed under the ISC License.
|
package/TODO.md
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# TODO
|
|
2
|
-
|
|
3
|
-
## Core Features
|
|
4
|
-
|
|
5
|
-
- [x] **State persistence** - Durable execution state for resumable missions with checkpointing
|
|
6
|
-
- [x] **Incremental sync** - `since: lastSync` parameter for "only fetch changed since last run"
|
|
7
|
-
- [ ] **Idempotency** - Upsert semantics and conflict resolution strategies
|
|
8
|
-
- [x] **Schema overloading** - `match response { Schema1 -> ..., Schema2 -> ... }` - auto-fork based on response shape matching
|
|
9
|
-
- [x] **Error handling via match** - Flow control directives (continue, skip, abort, retry, queue, jump) in match arms
|
|
10
|
-
- [x] **Multi-file missions** - Split actions into separate files within a folder (mission.vague + action files)
|
|
11
|
-
- [x] **Vague plugin system** - Extended Vague with runtime-extensible keywords and statement parsers; Reqon exports a plugin for Vague integration
|
|
12
|
-
|
|
13
|
-
## Store Adapters
|
|
14
|
-
|
|
15
|
-
- [x] **File adapter** - JSON file-based storage in `.reqon-data/` for local development
|
|
16
|
-
- [ ] **SQL adapter** - PostgreSQL/MySQL store implementation
|
|
17
|
-
- [ ] **NoSQL adapter** - MongoDB/DynamoDB store implementation
|
|
18
|
-
|
|
19
|
-
## API Integration
|
|
20
|
-
|
|
21
|
-
- [x] **OpenAPI integration** - Load sources from OAS, resolve operationIds, validate responses
|
|
22
|
-
- [x] **Rate limiting** - Adaptive rate limiter, parses X-RateLimit-* headers, respects Retry-After, supports pause/throttle/fail strategies with callbacks
|
|
23
|
-
- [x] **OAuth2 flow** - Token store interface, auto-refresh before expiry, 401 retry with refresh
|
|
24
|
-
- [ ] **Connection registry** - Multi-tenant token management with proactive refresh
|
|
25
|
-
|
|
26
|
-
## DSL Enhancements
|
|
27
|
-
|
|
28
|
-
- [x] **`is` type checking** - `assume .items is array` syntax
|
|
29
|
-
- [x] **Parallel execution** - `run [Step1, Step2] then Step3` (bracket syntax for parallel stages)
|
|
30
|
-
- [x] **Conditional actions** - `run Step1 then Step2 if condition` (already implemented in parser)
|
|
31
|
-
- [x] **Variables/let bindings** - Reusable values within missions
|
|
32
|
-
- [x] **Schema definitions** - Full Vague schema support with validation and matching
|
|
33
|
-
|
|
34
|
-
## Developer Experience
|
|
35
|
-
|
|
36
|
-
- [x] **Better error messages** - Line numbers, column, source context with pointer in parse/lexer/runtime errors
|
|
37
|
-
- [ ] **VS Code extension** - Syntax highlighting and LSP for `.vague` files
|
|
38
|
-
- [ ] **Debug mode** - Step-through execution with state inspection
|
|
39
|
-
- [ ] **Dry run improvements** - Mock responses based on schema
|
|
40
|
-
|
|
41
|
-
## Testing
|
|
42
|
-
|
|
43
|
-
- [ ] **Integration tests with real APIs** - Xero sandbox, etc.
|
|
44
|
-
- [ ] **Property-based testing** - Fuzzing the parser
|
|
45
|
-
- [ ] **Benchmark suite** - Performance testing for large datasets
|
|
46
|
-
|
|
47
|
-
## Documentation
|
|
48
|
-
|
|
49
|
-
- [ ] **More examples** - QuickBooks, Stripe, Shopify integrations
|
|
50
|
-
- [ ] **Architecture docs** - How Reqon extends Vague
|
|
51
|
-
- [ ] **Contributing guide**
|
package/dist/auth/auth.test.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|