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.
Files changed (450) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +45 -3
  3. package/dist/ast/nodes.d.ts +91 -4
  4. package/dist/ast/nodes.js +14 -0
  5. package/dist/auth/circuit-breaker.d.ts +11 -0
  6. package/dist/auth/circuit-breaker.js +90 -18
  7. package/dist/auth/credentials.d.ts +6 -1
  8. package/dist/auth/credentials.js +12 -4
  9. package/dist/auth/oauth2-provider.js +13 -3
  10. package/dist/auth/rate-limiter.d.ts +12 -1
  11. package/dist/auth/rate-limiter.js +39 -26
  12. package/dist/auth/token-store.js +8 -1
  13. package/dist/cli.d.ts +24 -1
  14. package/dist/cli.js +149 -10
  15. package/dist/config/constants.d.ts +152 -0
  16. package/dist/config/constants.js +139 -0
  17. package/dist/config/index.d.ts +4 -0
  18. package/dist/config/index.js +4 -0
  19. package/dist/control/index.d.ts +2 -0
  20. package/dist/control/index.js +1 -0
  21. package/dist/control/server.d.ts +105 -0
  22. package/dist/control/server.js +315 -0
  23. package/dist/control/types.d.ts +61 -0
  24. package/dist/control/types.js +7 -0
  25. package/dist/debug/cli-debugger.d.ts +17 -0
  26. package/dist/debug/cli-debugger.js +185 -0
  27. package/dist/debug/controller.d.ts +94 -0
  28. package/dist/debug/controller.js +45 -0
  29. package/dist/debug/index.d.ts +6 -0
  30. package/dist/debug/index.js +5 -0
  31. package/dist/errors/index.d.ts +67 -0
  32. package/dist/errors/index.js +89 -1
  33. package/dist/execution/index.d.ts +1 -1
  34. package/dist/execution/state.d.ts +24 -0
  35. package/dist/execution/store.js +2 -2
  36. package/dist/execution-log/events.d.ts +125 -0
  37. package/dist/execution-log/events.js +17 -0
  38. package/dist/execution-log/fold.d.ts +38 -0
  39. package/dist/execution-log/fold.js +54 -0
  40. package/dist/execution-log/index.d.ts +18 -0
  41. package/dist/execution-log/index.js +6 -0
  42. package/dist/execution-log/postgres-store.d.ts +36 -0
  43. package/dist/execution-log/postgres-store.js +108 -0
  44. package/dist/execution-log/resume.d.ts +11 -0
  45. package/dist/execution-log/resume.js +5 -0
  46. package/dist/execution-log/sqlite-store.d.ts +16 -0
  47. package/dist/execution-log/sqlite-store.js +101 -0
  48. package/dist/execution-log/store.d.ts +72 -0
  49. package/dist/execution-log/store.js +182 -0
  50. package/dist/index.d.ts +23 -2
  51. package/dist/index.js +35 -3
  52. package/dist/interpreter/context.d.ts +29 -0
  53. package/dist/interpreter/context.js +18 -0
  54. package/dist/interpreter/evaluator.d.ts +63 -1
  55. package/dist/interpreter/evaluator.js +219 -42
  56. package/dist/interpreter/executor.d.ts +132 -14
  57. package/dist/interpreter/executor.js +883 -178
  58. package/dist/interpreter/fetch-handler.d.ts +48 -1
  59. package/dist/interpreter/fetch-handler.js +216 -38
  60. package/dist/interpreter/http.d.ts +34 -0
  61. package/dist/interpreter/http.js +203 -28
  62. package/dist/interpreter/index.d.ts +5 -3
  63. package/dist/interpreter/index.js +4 -2
  64. package/dist/interpreter/pagination.d.ts +12 -3
  65. package/dist/interpreter/pagination.js +102 -32
  66. package/dist/interpreter/signals.d.ts +8 -0
  67. package/dist/interpreter/signals.js +12 -0
  68. package/dist/interpreter/source-manager.d.ts +75 -0
  69. package/dist/interpreter/source-manager.js +157 -0
  70. package/dist/interpreter/step-handlers/apply-handler.d.ts +29 -0
  71. package/dist/interpreter/step-handlers/apply-handler.js +79 -0
  72. package/dist/interpreter/step-handlers/for-handler.d.ts +16 -0
  73. package/dist/interpreter/step-handlers/for-handler.js +89 -7
  74. package/dist/interpreter/step-handlers/index.d.ts +4 -2
  75. package/dist/interpreter/step-handlers/index.js +4 -2
  76. package/dist/interpreter/step-handlers/match-handler.d.ts +9 -0
  77. package/dist/interpreter/step-handlers/match-handler.js +47 -17
  78. package/dist/interpreter/step-handlers/pause-handler.d.ts +52 -0
  79. package/dist/interpreter/step-handlers/pause-handler.js +87 -0
  80. package/dist/interpreter/step-handlers/store-handler.d.ts +17 -1
  81. package/dist/interpreter/step-handlers/store-handler.js +61 -20
  82. package/dist/interpreter/step-handlers/types.d.ts +3 -0
  83. package/dist/interpreter/step-handlers/validate-handler.d.ts +2 -1
  84. package/dist/interpreter/step-handlers/validate-handler.js +7 -2
  85. package/dist/interpreter/step-handlers/webhook-handler.d.ts +4 -0
  86. package/dist/interpreter/step-handlers/webhook-handler.js +31 -5
  87. package/dist/interpreter/store-manager.d.ts +46 -0
  88. package/dist/interpreter/store-manager.js +70 -0
  89. package/dist/lexer/index.d.ts +11 -4
  90. package/dist/lexer/index.js +11 -4
  91. package/dist/lexer/tokens.d.ts +17 -1
  92. package/dist/lexer/tokens.js +36 -0
  93. package/dist/loader/index.js +5 -8
  94. package/dist/mcp/index.d.ts +11 -0
  95. package/dist/mcp/index.js +11 -0
  96. package/dist/mcp/sandbox.d.ts +41 -0
  97. package/dist/mcp/sandbox.js +76 -0
  98. package/dist/mcp/server.d.ts +17 -0
  99. package/dist/mcp/server.js +504 -0
  100. package/dist/oas/index.d.ts +2 -0
  101. package/dist/oas/index.js +1 -0
  102. package/dist/oas/loader.d.ts +13 -1
  103. package/dist/oas/loader.js +25 -3
  104. package/dist/oas/mock-generator.d.ts +12 -0
  105. package/dist/oas/mock-generator.js +196 -0
  106. package/dist/oas/validator.js +45 -5
  107. package/dist/observability/events.d.ts +248 -0
  108. package/dist/observability/events.js +85 -0
  109. package/dist/observability/index.d.ts +15 -0
  110. package/dist/observability/index.js +12 -0
  111. package/dist/observability/logger.d.ts +106 -0
  112. package/dist/observability/logger.js +266 -0
  113. package/dist/observability/otel.d.ts +143 -0
  114. package/dist/observability/otel.js +421 -0
  115. package/dist/parser/action-parser.d.ts +105 -0
  116. package/dist/parser/action-parser.js +645 -0
  117. package/dist/parser/base.d.ts +7 -0
  118. package/dist/parser/base.js +11 -0
  119. package/dist/parser/expressions.d.ts +14 -0
  120. package/dist/parser/expressions.js +89 -6
  121. package/dist/parser/fetch-parser.d.ts +27 -0
  122. package/dist/parser/fetch-parser.js +280 -0
  123. package/dist/parser/index.d.ts +17 -0
  124. package/dist/parser/index.js +17 -0
  125. package/dist/parser/parser.d.ts +44 -46
  126. package/dist/parser/parser.js +122 -1070
  127. package/dist/parser/pipeline-parser.d.ts +12 -0
  128. package/dist/parser/pipeline-parser.js +52 -0
  129. package/dist/parser/schedule-parser.d.ts +7 -0
  130. package/dist/parser/schedule-parser.js +137 -0
  131. package/dist/parser/source-parser.d.ts +9 -0
  132. package/dist/parser/source-parser.js +151 -0
  133. package/dist/pause/index.d.ts +15 -0
  134. package/dist/pause/index.js +12 -0
  135. package/dist/pause/log-store.d.ts +33 -0
  136. package/dist/pause/log-store.js +98 -0
  137. package/dist/pause/manager.d.ts +130 -0
  138. package/dist/pause/manager.js +294 -0
  139. package/dist/pause/state.d.ts +93 -0
  140. package/dist/pause/state.js +103 -0
  141. package/dist/pause/store.d.ts +61 -0
  142. package/dist/pause/store.js +158 -0
  143. package/dist/plugin.d.ts +9 -12
  144. package/dist/plugin.js +10 -13
  145. package/dist/scheduler/cron-parser.d.ts +10 -3
  146. package/dist/scheduler/cron-parser.js +227 -48
  147. package/dist/scheduler/scheduler.js +56 -22
  148. package/dist/stores/factory.d.ts +7 -1
  149. package/dist/stores/factory.js +14 -3
  150. package/dist/stores/file.d.ts +26 -0
  151. package/dist/stores/file.js +67 -21
  152. package/dist/stores/index.d.ts +16 -1
  153. package/dist/stores/index.js +16 -1
  154. package/dist/stores/memory.d.ts +4 -0
  155. package/dist/stores/memory.js +8 -6
  156. package/dist/stores/postgrest.d.ts +28 -0
  157. package/dist/stores/postgrest.js +84 -37
  158. package/dist/stores/types.d.ts +17 -0
  159. package/dist/stores/types.js +12 -0
  160. package/dist/sync/index.d.ts +3 -2
  161. package/dist/sync/index.js +2 -1
  162. package/dist/sync/log-store.d.ts +30 -0
  163. package/dist/sync/log-store.js +45 -0
  164. package/dist/sync/store.js +1 -1
  165. package/dist/trace/index.d.ts +18 -0
  166. package/dist/trace/index.js +13 -0
  167. package/dist/trace/log-view.d.ts +57 -0
  168. package/dist/trace/log-view.js +76 -0
  169. package/dist/trace/recorder.d.ts +75 -0
  170. package/dist/trace/recorder.js +157 -0
  171. package/dist/trace/replay.d.ts +132 -0
  172. package/dist/trace/replay.js +264 -0
  173. package/dist/trace/state.d.ts +102 -0
  174. package/dist/trace/state.js +86 -0
  175. package/dist/trace/store.d.ts +75 -0
  176. package/dist/trace/store.js +250 -0
  177. package/dist/utils/deep-merge.d.ts +10 -0
  178. package/dist/utils/deep-merge.js +23 -0
  179. package/dist/utils/file.d.ts +13 -4
  180. package/dist/utils/file.js +70 -12
  181. package/dist/utils/index.d.ts +2 -1
  182. package/dist/utils/index.js +2 -1
  183. package/dist/utils/long-timeout.d.ts +19 -0
  184. package/dist/utils/long-timeout.js +33 -0
  185. package/dist/utils/path.d.ts +22 -1
  186. package/dist/utils/path.js +46 -1
  187. package/dist/utils/redact.d.ts +22 -0
  188. package/dist/utils/redact.js +42 -0
  189. package/dist/utils/type-guards.d.ts +58 -0
  190. package/dist/utils/type-guards.js +92 -0
  191. package/dist/webhook/server.d.ts +9 -0
  192. package/dist/webhook/server.js +122 -36
  193. package/dist/webhook/types.d.ts +9 -1
  194. package/package.json +76 -9
  195. package/.claude/settings.local.json +0 -31
  196. package/.claude/skills/api-integration.md +0 -125
  197. package/.claude/skills/database-schema.md +0 -51
  198. package/.claude/skills/dsl-design.md +0 -80
  199. package/.claude/skills/property-testing.md +0 -143
  200. package/.claude/skills/reqon/SKILL.md +0 -44
  201. package/.claude/skills/reqon/references/examples.md +0 -206
  202. package/.claude/skills/reqon/references/syntax.md +0 -263
  203. package/.claude/skills/vscode-extension.md +0 -113
  204. package/.github/dependabot.yml +0 -32
  205. package/.github/pull_request_template.md +0 -21
  206. package/.github/workflows/ci.yml +0 -174
  207. package/.github/workflows/release.yml +0 -73
  208. package/CLAUDE.md +0 -72
  209. package/CONTRIBUTING.md +0 -161
  210. package/TODO.md +0 -51
  211. package/dist/auth/auth.test.d.ts +0 -1
  212. package/dist/auth/auth.test.js +0 -255
  213. package/dist/errors/errors.test.d.ts +0 -1
  214. package/dist/errors/errors.test.js +0 -165
  215. package/dist/execution/execution.test.d.ts +0 -1
  216. package/dist/execution/execution.test.js +0 -246
  217. package/dist/integration.test.d.ts +0 -1
  218. package/dist/integration.test.js +0 -168
  219. package/dist/interpreter/evaluator.test.d.ts +0 -1
  220. package/dist/interpreter/evaluator.test.js +0 -512
  221. package/dist/interpreter/http.test.d.ts +0 -1
  222. package/dist/interpreter/http.test.js +0 -299
  223. package/dist/interpreter/progress.test.d.ts +0 -1
  224. package/dist/interpreter/progress.test.js +0 -216
  225. package/dist/interpreter/schema-matcher.test.d.ts +0 -1
  226. package/dist/interpreter/schema-matcher.test.js +0 -122
  227. package/dist/lexer/lexer.d.ts +0 -24
  228. package/dist/lexer/lexer.js +0 -264
  229. package/dist/lexer/lexer.test.d.ts +0 -1
  230. package/dist/lexer/lexer.test.js +0 -259
  231. package/dist/loader/loader.test.d.ts +0 -1
  232. package/dist/loader/loader.test.js +0 -287
  233. package/dist/oas/oas.test.d.ts +0 -1
  234. package/dist/oas/oas.test.js +0 -218
  235. package/dist/parser/expressions.test.d.ts +0 -1
  236. package/dist/parser/expressions.test.js +0 -378
  237. package/dist/parser/match.test.d.ts +0 -1
  238. package/dist/parser/match.test.js +0 -254
  239. package/dist/parser/parser.test.d.ts +0 -1
  240. package/dist/parser/parser.test.js +0 -333
  241. package/dist/parser/schedule.test.d.ts +0 -1
  242. package/dist/parser/schedule.test.js +0 -241
  243. package/dist/scheduler/cron-parser.test.d.ts +0 -1
  244. package/dist/scheduler/cron-parser.test.js +0 -188
  245. package/dist/stores/file.test.d.ts +0 -1
  246. package/dist/stores/file.test.js +0 -165
  247. package/dist/stores/memory.test.d.ts +0 -1
  248. package/dist/stores/memory.test.js +0 -157
  249. package/dist/stores/stores.test.d.ts +0 -1
  250. package/dist/stores/stores.test.js +0 -158
  251. package/dist/sync/sync.test.d.ts +0 -1
  252. package/dist/sync/sync.test.js +0 -221
  253. package/docusaurus/README.md +0 -41
  254. package/docusaurus/docs/advanced/execution-state.md +0 -283
  255. package/docusaurus/docs/advanced/extending-reqon.md +0 -388
  256. package/docusaurus/docs/advanced/multi-file-missions.md +0 -250
  257. package/docusaurus/docs/advanced/parallel-execution.md +0 -353
  258. package/docusaurus/docs/api-reference.md +0 -443
  259. package/docusaurus/docs/authentication/api-key.md +0 -339
  260. package/docusaurus/docs/authentication/basic.md +0 -276
  261. package/docusaurus/docs/authentication/bearer.md +0 -282
  262. package/docusaurus/docs/authentication/oauth2.md +0 -317
  263. package/docusaurus/docs/authentication/overview.md +0 -251
  264. package/docusaurus/docs/cli.md +0 -229
  265. package/docusaurus/docs/core-concepts/actions.md +0 -286
  266. package/docusaurus/docs/core-concepts/missions.md +0 -264
  267. package/docusaurus/docs/core-concepts/schemas.md +0 -353
  268. package/docusaurus/docs/core-concepts/sources.md +0 -339
  269. package/docusaurus/docs/core-concepts/stores.md +0 -332
  270. package/docusaurus/docs/dsl-syntax/expressions.md +0 -361
  271. package/docusaurus/docs/dsl-syntax/fetch.md +0 -293
  272. package/docusaurus/docs/dsl-syntax/for-loops.md +0 -324
  273. package/docusaurus/docs/dsl-syntax/map.md +0 -345
  274. package/docusaurus/docs/dsl-syntax/match.md +0 -387
  275. package/docusaurus/docs/dsl-syntax/pipelines.md +0 -397
  276. package/docusaurus/docs/dsl-syntax/validate.md +0 -401
  277. package/docusaurus/docs/error-handling/dead-letter-queues.md +0 -399
  278. package/docusaurus/docs/error-handling/flow-control.md +0 -337
  279. package/docusaurus/docs/error-handling/retry-strategies.md +0 -368
  280. package/docusaurus/docs/examples.md +0 -488
  281. package/docusaurus/docs/getting-started.md +0 -256
  282. package/docusaurus/docs/http/circuit-breaker.md +0 -401
  283. package/docusaurus/docs/http/incremental-sync.md +0 -394
  284. package/docusaurus/docs/http/pagination.md +0 -361
  285. package/docusaurus/docs/http/rate-limiting.md +0 -383
  286. package/docusaurus/docs/http/requests.md +0 -328
  287. package/docusaurus/docs/http/retry.md +0 -402
  288. package/docusaurus/docs/intro.md +0 -90
  289. package/docusaurus/docs/openapi/loading-specs.md +0 -305
  290. package/docusaurus/docs/openapi/operation-calls.md +0 -314
  291. package/docusaurus/docs/openapi/overview.md +0 -212
  292. package/docusaurus/docs/openapi/response-validation.md +0 -344
  293. package/docusaurus/docs/scheduling/cron.md +0 -305
  294. package/docusaurus/docs/scheduling/daemon-mode.md +0 -317
  295. package/docusaurus/docs/scheduling/intervals.md +0 -289
  296. package/docusaurus/docs/scheduling/overview.md +0 -231
  297. package/docusaurus/docs/stores/custom-adapters.md +0 -376
  298. package/docusaurus/docs/stores/file.md +0 -236
  299. package/docusaurus/docs/stores/memory.md +0 -193
  300. package/docusaurus/docs/stores/overview.md +0 -274
  301. package/docusaurus/docs/stores/postgrest.md +0 -316
  302. package/docusaurus/docusaurus.config.ts +0 -148
  303. package/docusaurus/package-lock.json +0 -18029
  304. package/docusaurus/package.json +0 -47
  305. package/docusaurus/sidebars.ts +0 -155
  306. package/docusaurus/src/components/HomepageFeatures/index.tsx +0 -105
  307. package/docusaurus/src/components/HomepageFeatures/styles.module.css +0 -12
  308. package/docusaurus/src/css/custom.css +0 -169
  309. package/docusaurus/src/pages/index.module.css +0 -48
  310. package/docusaurus/src/pages/index.tsx +0 -110
  311. package/docusaurus/src/pages/markdown-page.md +0 -7
  312. package/docusaurus/static/.nojekyll +0 -0
  313. package/docusaurus/static/img/docusaurus-social-card.jpg +0 -0
  314. package/docusaurus/static/img/docusaurus.png +0 -0
  315. package/docusaurus/static/img/favicon.ico +0 -0
  316. package/docusaurus/static/img/logo.svg +0 -10
  317. package/docusaurus/static/img/undraw_docusaurus_mountain.svg +0 -171
  318. package/docusaurus/static/img/undraw_docusaurus_react.svg +0 -170
  319. package/docusaurus/static/img/undraw_docusaurus_tree.svg +0 -40
  320. package/docusaurus/tsconfig.json +0 -8
  321. package/examples/README.md +0 -112
  322. package/examples/error-handling/README.md +0 -150
  323. package/examples/error-handling/payment-processor.vague +0 -287
  324. package/examples/github-sync/README.md +0 -74
  325. package/examples/github-sync/fetch-issues.vague +0 -47
  326. package/examples/github-sync/fetch-prs.vague +0 -40
  327. package/examples/github-sync/mission.vague +0 -101
  328. package/examples/github-sync/normalize.vague +0 -70
  329. package/examples/jsonplaceholder/README.md +0 -28
  330. package/examples/jsonplaceholder/posts.vague +0 -48
  331. package/examples/petstore/README.md +0 -35
  332. package/examples/petstore/openapi.yaml +0 -97
  333. package/examples/petstore/sync.vague +0 -52
  334. package/examples/temporal-comparison/README.md +0 -297
  335. package/examples/temporal-comparison/reconciliation.vague +0 -355
  336. package/examples/temporal-comparison/temporal/activities/index.ts +0 -8
  337. package/examples/temporal-comparison/temporal/activities/shipstation.ts +0 -225
  338. package/examples/temporal-comparison/temporal/activities/shopify.ts +0 -257
  339. package/examples/temporal-comparison/temporal/activities/storage.ts +0 -198
  340. package/examples/temporal-comparison/temporal/activities/stripe.ts +0 -169
  341. package/examples/temporal-comparison/temporal/activities/validation.ts +0 -205
  342. package/examples/temporal-comparison/temporal/client/schedule.ts +0 -218
  343. package/examples/temporal-comparison/temporal/config/retry.ts +0 -63
  344. package/examples/temporal-comparison/temporal/types/index.ts +0 -129
  345. package/examples/temporal-comparison/temporal/workers/main.ts +0 -130
  346. package/examples/temporal-comparison/temporal/workflows/orderReconciliation.ts +0 -262
  347. package/examples/xero/README.md +0 -88
  348. package/examples/xero/invoices.vague +0 -189
  349. package/src/api-integration.test.ts +0 -954
  350. package/src/ast/index.ts +0 -1
  351. package/src/ast/nodes.ts +0 -310
  352. package/src/auth/auth.test.ts +0 -326
  353. package/src/auth/circuit-breaker.test.ts +0 -390
  354. package/src/auth/circuit-breaker.ts +0 -379
  355. package/src/auth/credentials.test.ts +0 -273
  356. package/src/auth/credentials.ts +0 -246
  357. package/src/auth/index.ts +0 -40
  358. package/src/auth/oauth2-provider.ts +0 -177
  359. package/src/auth/rate-limiter.ts +0 -459
  360. package/src/auth/token-store.ts +0 -177
  361. package/src/auth/types.ts +0 -159
  362. package/src/benchmark/e2e.bench.ts +0 -288
  363. package/src/benchmark/evaluator.bench.ts +0 -331
  364. package/src/benchmark/fixtures.ts +0 -295
  365. package/src/benchmark/index.ts +0 -108
  366. package/src/benchmark/lexer.bench.ts +0 -69
  367. package/src/benchmark/parser.bench.ts +0 -103
  368. package/src/benchmark/resilience.bench.ts +0 -193
  369. package/src/benchmark/store.bench.ts +0 -147
  370. package/src/benchmark/utils.ts +0 -230
  371. package/src/cli.ts +0 -313
  372. package/src/errors/errors.test.ts +0 -234
  373. package/src/errors/index.ts +0 -223
  374. package/src/execution/execution.test.ts +0 -307
  375. package/src/execution/index.ts +0 -21
  376. package/src/execution/state.ts +0 -207
  377. package/src/execution/store.ts +0 -188
  378. package/src/index.ts +0 -169
  379. package/src/integration.test.ts +0 -192
  380. package/src/interpreter/context.ts +0 -57
  381. package/src/interpreter/evaluator.test.ts +0 -796
  382. package/src/interpreter/evaluator.ts +0 -245
  383. package/src/interpreter/executor.ts +0 -946
  384. package/src/interpreter/fetch-handler.ts +0 -302
  385. package/src/interpreter/http.test.ts +0 -423
  386. package/src/interpreter/http.ts +0 -308
  387. package/src/interpreter/index.ts +0 -32
  388. package/src/interpreter/pagination.ts +0 -207
  389. package/src/interpreter/progress.test.ts +0 -276
  390. package/src/interpreter/schema-matcher.test.ts +0 -160
  391. package/src/interpreter/schema-matcher.ts +0 -168
  392. package/src/interpreter/signals.ts +0 -73
  393. package/src/interpreter/step-handlers/for-handler.ts +0 -65
  394. package/src/interpreter/step-handlers/index.ts +0 -17
  395. package/src/interpreter/step-handlers/map-handler.ts +0 -24
  396. package/src/interpreter/step-handlers/match-handler.ts +0 -101
  397. package/src/interpreter/step-handlers/store-handler.ts +0 -78
  398. package/src/interpreter/step-handlers/types.ts +0 -17
  399. package/src/interpreter/step-handlers/validate-handler.ts +0 -30
  400. package/src/interpreter/step-handlers/webhook-handler.ts +0 -142
  401. package/src/lexer/index.ts +0 -18
  402. package/src/lexer/lexer.test.ts +0 -316
  403. package/src/lexer/tokens.ts +0 -179
  404. package/src/loader/index.ts +0 -288
  405. package/src/loader/loader.test.ts +0 -360
  406. package/src/oas/index.ts +0 -4
  407. package/src/oas/loader.ts +0 -126
  408. package/src/oas/oas.test.ts +0 -254
  409. package/src/oas/validator.ts +0 -299
  410. package/src/parser/base.ts +0 -124
  411. package/src/parser/expressions.test.ts +0 -525
  412. package/src/parser/expressions.ts +0 -314
  413. package/src/parser/index.ts +0 -3
  414. package/src/parser/match.test.ts +0 -296
  415. package/src/parser/parser.test.ts +0 -739
  416. package/src/parser/parser.ts +0 -1469
  417. package/src/parser/schedule.test.ts +0 -287
  418. package/src/parser/webhook.test.ts +0 -248
  419. package/src/plugin.ts +0 -83
  420. package/src/scheduler/cron-parser.test.ts +0 -236
  421. package/src/scheduler/cron-parser.ts +0 -236
  422. package/src/scheduler/index.ts +0 -10
  423. package/src/scheduler/scheduler.ts +0 -443
  424. package/src/scheduler/types.ts +0 -71
  425. package/src/stores/factory.ts +0 -104
  426. package/src/stores/file.test.ts +0 -276
  427. package/src/stores/file.ts +0 -211
  428. package/src/stores/index.ts +0 -6
  429. package/src/stores/memory.test.ts +0 -238
  430. package/src/stores/memory.ts +0 -63
  431. package/src/stores/postgrest.test.ts +0 -488
  432. package/src/stores/postgrest.ts +0 -263
  433. package/src/stores/stores.test.ts +0 -197
  434. package/src/stores/types.ts +0 -58
  435. package/src/sync/index.ts +0 -16
  436. package/src/sync/state.ts +0 -126
  437. package/src/sync/store.ts +0 -139
  438. package/src/sync/sync.test.ts +0 -271
  439. package/src/utils/async.ts +0 -10
  440. package/src/utils/file.ts +0 -106
  441. package/src/utils/index.ts +0 -14
  442. package/src/utils/logger.ts +0 -53
  443. package/src/utils/path.ts +0 -47
  444. package/src/webhook/index.ts +0 -15
  445. package/src/webhook/server.test.ts +0 -253
  446. package/src/webhook/server.ts +0 -389
  447. package/src/webhook/store.ts +0 -239
  448. package/src/webhook/types.ts +0 -93
  449. package/tsconfig.json +0 -17
  450. package/vitest.config.ts +0 -39
@@ -1,212 +0,0 @@
1
- ---
2
- sidebar_position: 1
3
- ---
4
-
5
- # OpenAPI Integration Overview
6
-
7
- Reqon integrates with OpenAPI (Swagger) specifications for type-safe API calls and response validation.
8
-
9
- ## Benefits
10
-
11
- - **Type-safe operations**: Call APIs by operation ID
12
- - **Auto-discovery**: Base URL and endpoints from spec
13
- - **Response validation**: Validate against schema definitions
14
- - **Documentation sync**: API changes reflected automatically
15
-
16
- ## Quick Start
17
-
18
- ### 1. Define Source from Spec
19
-
20
- ```vague
21
- source Petstore from "./petstore.yaml" {
22
- auth: bearer,
23
- validateResponses: true
24
- }
25
- ```
26
-
27
- ### 2. Call Operations
28
-
29
- ```vague
30
- action FetchPets {
31
- call Petstore.listPets { params: { limit: 100 } }
32
- store response -> pets { key: .id }
33
-
34
- call Petstore.getPetById { params: { petId: "123" } }
35
- store response -> petDetails { key: .id }
36
- }
37
- ```
38
-
39
- ## How It Works
40
-
41
- ### Loading Specs
42
-
43
- Reqon loads and parses OpenAPI specs:
44
-
45
- ```vague
46
- // Local file
47
- source API from "./api.yaml" { auth: bearer }
48
-
49
- // URL
50
- source API from "https://api.example.com/openapi.json" { auth: bearer }
51
- ```
52
-
53
- ### Operation Resolution
54
-
55
- Reqon maps `call Source.operationId` to:
56
-
57
- ```yaml
58
- # OpenAPI spec
59
- paths:
60
- /pets:
61
- get:
62
- operationId: listPets
63
- # Reqon uses: GET /pets
64
- ```
65
-
66
- ### Base URL Extraction
67
-
68
- Base URL from spec's `servers`:
69
-
70
- ```yaml
71
- servers:
72
- - url: https://api.example.com/v1
73
- ```
74
-
75
- ## Configuration Options
76
-
77
- ```vague
78
- source API from "./spec.yaml" {
79
- auth: bearer,
80
- validateResponses: true, # Validate responses against schema
81
- headers: { # Additional headers
82
- "X-Custom": "value"
83
- }
84
- }
85
- ```
86
-
87
- ## Example Workflow
88
-
89
- ```vague
90
- mission PetstoreSync {
91
- source Petstore from "./petstore.yaml" {
92
- auth: api_key,
93
- validateResponses: true
94
- }
95
-
96
- store pets: file("pets")
97
-
98
- action SyncPets {
99
- // List all pets
100
- call Petstore.listPets {
101
- params: { limit: 100 }
102
- }
103
-
104
- for pet in response {
105
- // Get full details
106
- call Petstore.getPetById {
107
- params: { petId: pet.id }
108
- }
109
-
110
- store response -> pets { key: .id }
111
- }
112
- }
113
-
114
- action CreatePet {
115
- call Petstore.addPet {
116
- body: {
117
- name: "Fluffy",
118
- tag: "cat"
119
- }
120
- }
121
- }
122
-
123
- run SyncPets
124
- }
125
- ```
126
-
127
- ## Comparison: Traditional vs OAS
128
-
129
- ### Traditional Approach
130
-
131
- ```vague
132
- source API { auth: bearer, base: "https://api.example.com" }
133
-
134
- action Fetch {
135
- get "/pets"
136
- get concat("/pets/", id)
137
- }
138
- ```
139
-
140
- ### OAS Approach
141
-
142
- ```vague
143
- source API from "./spec.yaml" { auth: bearer }
144
-
145
- action Fetch {
146
- call API.listPets
147
- call API.getPetById { params: { petId: id } }
148
- }
149
- ```
150
-
151
- ### Benefits of OAS
152
-
153
- | Aspect | Traditional | OAS |
154
- |--------|-------------|-----|
155
- | Type safety | None | Schema validation |
156
- | Endpoint updates | Manual | Automatic |
157
- | Documentation | Separate | Integrated |
158
- | IDE support | Limited | Full autocomplete |
159
-
160
- ## Supported Spec Formats
161
-
162
- - OpenAPI 3.0.x (recommended)
163
- - OpenAPI 3.1.x
164
- - Swagger 2.0 (converted internally)
165
-
166
- ### Format Detection
167
-
168
- ```vague
169
- // YAML
170
- source API from "./spec.yaml"
171
-
172
- // JSON
173
- source API from "./spec.json"
174
-
175
- // Remote
176
- source API from "https://api.example.com/openapi.json"
177
- ```
178
-
179
- ## Common Patterns
180
-
181
- ### Fetch with Pagination
182
-
183
- ```vague
184
- call API.listItems {
185
- params: { limit: 100 },
186
- paginate: cursor(cursor, 100, "nextCursor"),
187
- until: response.nextCursor == null
188
- }
189
- ```
190
-
191
- ### Conditional Operations
192
-
193
- ```vague
194
- action SyncItem {
195
- call API.getItem { params: { id: itemId } }
196
-
197
- match response {
198
- { exists: false } -> {
199
- call API.createItem { body: itemData }
200
- },
201
- _ -> {
202
- call API.updateItem { params: { id: itemId }, body: itemData }
203
- }
204
- }
205
- }
206
- ```
207
-
208
- ## Next Steps
209
-
210
- - [Loading Specs](./loading-specs) - Loading and caching specs
211
- - [Operation Calls](./operation-calls) - Calling operations
212
- - [Response Validation](./response-validation) - Validating responses
@@ -1,344 +0,0 @@
1
- ---
2
- sidebar_position: 4
3
- ---
4
-
5
- # Response Validation
6
-
7
- Reqon can validate API responses against OpenAPI schema definitions.
8
-
9
- ## Enabling Validation
10
-
11
- ```vague
12
- source API from "./spec.yaml" {
13
- auth: bearer,
14
- validateResponses: true
15
- }
16
- ```
17
-
18
- ## How It Works
19
-
20
- ### Schema Matching
21
-
22
- OpenAPI spec:
23
- ```yaml
24
- paths:
25
- /pets/{petId}:
26
- get:
27
- operationId: getPetById
28
- responses:
29
- '200':
30
- content:
31
- application/json:
32
- schema:
33
- $ref: '#/components/schemas/Pet'
34
-
35
- components:
36
- schemas:
37
- Pet:
38
- type: object
39
- required:
40
- - id
41
- - name
42
- properties:
43
- id:
44
- type: string
45
- name:
46
- type: string
47
- tag:
48
- type: string
49
- ```
50
-
51
- Reqon validates:
52
- ```vague
53
- call API.getPetById { params: { petId: "123" } }
54
- // Validates response against Pet schema
55
- ```
56
-
57
- ## Validation Modes
58
-
59
- ### Strict Mode
60
-
61
- Fails on schema mismatch:
62
-
63
- ```vague
64
- source API from "./spec.yaml" {
65
- validateResponses: true,
66
- validationMode: "strict"
67
- }
68
- ```
69
-
70
- ### Warning Mode
71
-
72
- Logs warning but continues:
73
-
74
- ```vague
75
- source API from "./spec.yaml" {
76
- validateResponses: true,
77
- validationMode: "warn"
78
- }
79
- ```
80
-
81
- ### Off
82
-
83
- No validation (default):
84
-
85
- ```vague
86
- source API from "./spec.yaml" {
87
- validateResponses: false
88
- }
89
- ```
90
-
91
- ## Validation Rules
92
-
93
- ### Required Fields
94
-
95
- ```yaml
96
- Pet:
97
- required:
98
- - id
99
- - name
100
- ```
101
-
102
- Response missing `name` triggers error:
103
- ```json
104
- { "id": "123" } // Error: missing required field 'name'
105
- ```
106
-
107
- ### Type Checking
108
-
109
- ```yaml
110
- Pet:
111
- properties:
112
- id:
113
- type: string
114
- age:
115
- type: integer
116
- ```
117
-
118
- ```json
119
- { "id": 123, "age": "five" }
120
- // Errors: id should be string, age should be integer
121
- ```
122
-
123
- ### Enum Validation
124
-
125
- ```yaml
126
- Pet:
127
- properties:
128
- status:
129
- type: string
130
- enum: [available, pending, sold]
131
- ```
132
-
133
- ```json
134
- { "status": "active" } // Error: status not in enum
135
- ```
136
-
137
- ### Array Validation
138
-
139
- ```yaml
140
- Pets:
141
- type: array
142
- items:
143
- $ref: '#/components/schemas/Pet'
144
- ```
145
-
146
- Each item in array is validated.
147
-
148
- ## Error Handling
149
-
150
- ### With Validation Errors
151
-
152
- ```vague
153
- call API.getPet { params: { id: "123" } }
154
-
155
- match response {
156
- { validationErrors: errors } -> {
157
- store {
158
- operation: "getPet",
159
- errors: errors
160
- } -> validationFailures
161
- skip
162
- },
163
- _ -> store response -> pets { key: .id }
164
- }
165
- ```
166
-
167
- ### Catching Specific Errors
168
-
169
- ```vague
170
- match response {
171
- { validationErrors: e } where includes(e, "missing required") -> {
172
- // Handle missing fields
173
- abort "Incomplete data from API"
174
- },
175
- { validationErrors: e } where includes(e, "type mismatch") -> {
176
- // Handle type issues
177
- store response -> typeIssues { key: response.id }
178
- skip
179
- },
180
- _ -> continue
181
- }
182
- ```
183
-
184
- ## Custom Validation
185
-
186
- ### Additional Constraints
187
-
188
- Beyond schema validation:
189
-
190
- ```vague
191
- call API.getOrder { params: { id: orderId } }
192
-
193
- // Schema validation happens automatically
194
-
195
- // Additional business validation
196
- validate response {
197
- assume .total >= 0,
198
- assume .items is array,
199
- assume length(.items) > 0,
200
- assume .status != "invalid"
201
- }
202
-
203
- store response -> orders { key: .id }
204
- ```
205
-
206
- ### Combining Validations
207
-
208
- ```vague
209
- action ValidatedFetch {
210
- call API.listItems
211
-
212
- for item in response.items {
213
- // Schema already validated by OAS
214
-
215
- // Additional validation
216
- validate item {
217
- assume .price > 0,
218
- assume .quantity >= 0
219
- }
220
-
221
- match item {
222
- _ where .validationErrors != null -> {
223
- queue invalid { item: item }
224
- skip
225
- },
226
- _ -> store item -> items { key: .id }
227
- }
228
- }
229
- }
230
- ```
231
-
232
- ## Schema References
233
-
234
- ### Component Schemas
235
-
236
- ```yaml
237
- components:
238
- schemas:
239
- Pet:
240
- type: object
241
- properties:
242
- id: { type: string }
243
- owner:
244
- $ref: '#/components/schemas/Owner'
245
- Owner:
246
- type: object
247
- properties:
248
- name: { type: string }
249
- ```
250
-
251
- Nested schemas are validated:
252
-
253
- ```json
254
- {
255
- "id": "123",
256
- "owner": {
257
- "name": 123 // Error: name should be string
258
- }
259
- }
260
- ```
261
-
262
- ### OneOf/AnyOf
263
-
264
- ```yaml
265
- Response:
266
- oneOf:
267
- - $ref: '#/components/schemas/Success'
268
- - $ref: '#/components/schemas/Error'
269
- ```
270
-
271
- Validates against matching schema.
272
-
273
- ## Best Practices
274
-
275
- ### Use Validation in Development
276
-
277
- ```vague
278
- source API from "./spec.yaml" {
279
- validateResponses: env("NODE_ENV") != "production"
280
- }
281
- ```
282
-
283
- ### Log Validation Failures
284
-
285
- ```vague
286
- match response {
287
- { validationErrors: e } -> {
288
- store {
289
- timestamp: now(),
290
- operation: currentOperation,
291
- errors: e,
292
- response: response
293
- } -> validationLog
294
- },
295
- _ -> continue
296
- }
297
- ```
298
-
299
- ### Keep Specs Updated
300
-
301
- Ensure spec matches actual API:
302
- - Run validation in CI/CD
303
- - Update spec when API changes
304
- - Use spec versioning
305
-
306
- ### Handle Gracefully
307
-
308
- ```vague
309
- // Don't fail hard on validation
310
- source API from "./spec.yaml" {
311
- validateResponses: true,
312
- validationMode: "warn"
313
- }
314
-
315
- // Handle in code
316
- match response {
317
- { validationErrors: _ } -> {
318
- // Log and continue with caution
319
- },
320
- _ -> continue
321
- }
322
- ```
323
-
324
- ## Troubleshooting
325
-
326
- ### "Schema not found"
327
-
328
- Check component name matches:
329
-
330
- ```yaml
331
- $ref: '#/components/schemas/Pet' # Case sensitive
332
- ```
333
-
334
- ### False Positives
335
-
336
- Schema may be outdated:
337
- - Update spec from API provider
338
- - Check for API version changes
339
-
340
- ### Performance
341
-
342
- Validation adds overhead:
343
- - Disable in production if not needed
344
- - Use sampling for high-volume APIs