reqon-dsl 0.2.0 → 0.3.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 (396) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +22 -0
  3. package/dist/ast/nodes.d.ts +83 -4
  4. package/dist/ast/nodes.js +14 -0
  5. package/dist/auth/circuit-breaker.js +7 -6
  6. package/dist/auth/rate-limiter.d.ts +4 -0
  7. package/dist/auth/rate-limiter.js +9 -16
  8. package/dist/cli.d.ts +13 -0
  9. package/dist/cli.js +84 -4
  10. package/dist/config/constants.d.ts +141 -0
  11. package/dist/config/constants.js +128 -0
  12. package/dist/config/index.d.ts +4 -0
  13. package/dist/config/index.js +4 -0
  14. package/dist/control/index.d.ts +2 -0
  15. package/dist/control/index.js +1 -0
  16. package/dist/control/server.d.ts +88 -0
  17. package/dist/control/server.js +238 -0
  18. package/dist/control/types.d.ts +55 -0
  19. package/dist/control/types.js +7 -0
  20. package/dist/debug/cli-debugger.d.ts +17 -0
  21. package/dist/debug/cli-debugger.js +180 -0
  22. package/dist/debug/controller.d.ts +94 -0
  23. package/dist/debug/controller.js +45 -0
  24. package/dist/debug/index.d.ts +6 -0
  25. package/dist/debug/index.js +5 -0
  26. package/dist/errors/index.d.ts +67 -0
  27. package/dist/errors/index.js +89 -1
  28. package/dist/execution/index.d.ts +1 -1
  29. package/dist/execution/state.d.ts +24 -0
  30. package/dist/index.d.ts +21 -1
  31. package/dist/index.js +33 -2
  32. package/dist/interpreter/context.d.ts +14 -0
  33. package/dist/interpreter/context.js +15 -0
  34. package/dist/interpreter/evaluator.d.ts +63 -1
  35. package/dist/interpreter/evaluator.js +186 -39
  36. package/dist/interpreter/executor.d.ts +70 -14
  37. package/dist/interpreter/executor.js +503 -174
  38. package/dist/interpreter/fetch-handler.d.ts +9 -0
  39. package/dist/interpreter/fetch-handler.js +133 -24
  40. package/dist/interpreter/http.d.ts +5 -0
  41. package/dist/interpreter/http.js +26 -12
  42. package/dist/interpreter/index.d.ts +3 -1
  43. package/dist/interpreter/index.js +2 -0
  44. package/dist/interpreter/pagination.d.ts +11 -2
  45. package/dist/interpreter/pagination.js +95 -31
  46. package/dist/interpreter/signals.d.ts +8 -0
  47. package/dist/interpreter/signals.js +12 -0
  48. package/dist/interpreter/source-manager.d.ts +75 -0
  49. package/dist/interpreter/source-manager.js +157 -0
  50. package/dist/interpreter/step-handlers/apply-handler.d.ts +29 -0
  51. package/dist/interpreter/step-handlers/apply-handler.js +79 -0
  52. package/dist/interpreter/step-handlers/for-handler.d.ts +13 -0
  53. package/dist/interpreter/step-handlers/for-handler.js +71 -4
  54. package/dist/interpreter/step-handlers/index.d.ts +4 -2
  55. package/dist/interpreter/step-handlers/index.js +4 -2
  56. package/dist/interpreter/step-handlers/match-handler.d.ts +9 -0
  57. package/dist/interpreter/step-handlers/match-handler.js +43 -16
  58. package/dist/interpreter/step-handlers/pause-handler.d.ts +52 -0
  59. package/dist/interpreter/step-handlers/pause-handler.js +87 -0
  60. package/dist/interpreter/step-handlers/store-handler.d.ts +11 -1
  61. package/dist/interpreter/step-handlers/store-handler.js +45 -13
  62. package/dist/interpreter/step-handlers/types.d.ts +3 -0
  63. package/dist/interpreter/step-handlers/validate-handler.d.ts +2 -1
  64. package/dist/interpreter/step-handlers/validate-handler.js +4 -2
  65. package/dist/interpreter/step-handlers/webhook-handler.d.ts +3 -0
  66. package/dist/interpreter/step-handlers/webhook-handler.js +18 -2
  67. package/dist/interpreter/store-manager.d.ts +46 -0
  68. package/dist/interpreter/store-manager.js +66 -0
  69. package/dist/lexer/index.d.ts +11 -4
  70. package/dist/lexer/index.js +11 -4
  71. package/dist/lexer/tokens.d.ts +17 -1
  72. package/dist/lexer/tokens.js +36 -0
  73. package/dist/mcp/index.d.ts +11 -0
  74. package/dist/mcp/index.js +11 -0
  75. package/dist/mcp/server.d.ts +17 -0
  76. package/dist/mcp/server.js +451 -0
  77. package/dist/oas/index.d.ts +2 -0
  78. package/dist/oas/index.js +1 -0
  79. package/dist/oas/mock-generator.d.ts +12 -0
  80. package/dist/oas/mock-generator.js +187 -0
  81. package/dist/observability/events.d.ts +244 -0
  82. package/dist/observability/events.js +90 -0
  83. package/dist/observability/index.d.ts +15 -0
  84. package/dist/observability/index.js +12 -0
  85. package/dist/observability/logger.d.ts +106 -0
  86. package/dist/observability/logger.js +259 -0
  87. package/dist/observability/otel.d.ts +135 -0
  88. package/dist/observability/otel.js +386 -0
  89. package/dist/parser/action-parser.d.ts +105 -0
  90. package/dist/parser/action-parser.js +645 -0
  91. package/dist/parser/expressions.d.ts +13 -0
  92. package/dist/parser/expressions.js +72 -2
  93. package/dist/parser/fetch-parser.d.ts +27 -0
  94. package/dist/parser/fetch-parser.js +269 -0
  95. package/dist/parser/index.d.ts +17 -0
  96. package/dist/parser/index.js +17 -0
  97. package/dist/parser/parser.d.ts +44 -46
  98. package/dist/parser/parser.js +122 -1070
  99. package/dist/parser/pipeline-parser.d.ts +12 -0
  100. package/dist/parser/pipeline-parser.js +52 -0
  101. package/dist/parser/schedule-parser.d.ts +7 -0
  102. package/dist/parser/schedule-parser.js +137 -0
  103. package/dist/parser/source-parser.d.ts +9 -0
  104. package/dist/parser/source-parser.js +151 -0
  105. package/dist/pause/index.d.ts +14 -0
  106. package/dist/pause/index.js +11 -0
  107. package/dist/pause/manager.d.ts +118 -0
  108. package/dist/pause/manager.js +245 -0
  109. package/dist/pause/state.d.ts +93 -0
  110. package/dist/pause/state.js +103 -0
  111. package/dist/pause/store.d.ts +61 -0
  112. package/dist/pause/store.js +156 -0
  113. package/dist/plugin.d.ts +9 -12
  114. package/dist/plugin.js +10 -13
  115. package/dist/stores/factory.d.ts +1 -1
  116. package/dist/stores/factory.js +3 -2
  117. package/dist/stores/file.d.ts +26 -0
  118. package/dist/stores/file.js +64 -10
  119. package/dist/stores/index.d.ts +16 -1
  120. package/dist/stores/index.js +16 -1
  121. package/dist/stores/memory.d.ts +4 -0
  122. package/dist/stores/memory.js +11 -0
  123. package/dist/stores/types.d.ts +17 -0
  124. package/dist/stores/types.js +12 -0
  125. package/dist/trace/index.d.ts +16 -0
  126. package/dist/trace/index.js +12 -0
  127. package/dist/trace/recorder.d.ts +71 -0
  128. package/dist/trace/recorder.js +144 -0
  129. package/dist/trace/replay.d.ts +132 -0
  130. package/dist/trace/replay.js +264 -0
  131. package/dist/trace/state.d.ts +102 -0
  132. package/dist/trace/state.js +86 -0
  133. package/dist/trace/store.d.ts +69 -0
  134. package/dist/trace/store.js +225 -0
  135. package/dist/utils/index.d.ts +1 -0
  136. package/dist/utils/index.js +1 -0
  137. package/dist/utils/type-guards.d.ts +58 -0
  138. package/dist/utils/type-guards.js +92 -0
  139. package/dist/webhook/server.js +7 -6
  140. package/package.json +55 -6
  141. package/.claude/settings.local.json +0 -31
  142. package/.claude/skills/api-integration.md +0 -125
  143. package/.claude/skills/database-schema.md +0 -51
  144. package/.claude/skills/dsl-design.md +0 -80
  145. package/.claude/skills/property-testing.md +0 -143
  146. package/.claude/skills/reqon/SKILL.md +0 -44
  147. package/.claude/skills/reqon/references/examples.md +0 -206
  148. package/.claude/skills/reqon/references/syntax.md +0 -263
  149. package/.claude/skills/vscode-extension.md +0 -113
  150. package/.github/dependabot.yml +0 -32
  151. package/.github/pull_request_template.md +0 -21
  152. package/.github/workflows/ci.yml +0 -174
  153. package/.github/workflows/release.yml +0 -73
  154. package/CLAUDE.md +0 -72
  155. package/CONTRIBUTING.md +0 -161
  156. package/TODO.md +0 -51
  157. package/dist/auth/auth.test.d.ts +0 -1
  158. package/dist/auth/auth.test.js +0 -255
  159. package/dist/errors/errors.test.d.ts +0 -1
  160. package/dist/errors/errors.test.js +0 -165
  161. package/dist/execution/execution.test.d.ts +0 -1
  162. package/dist/execution/execution.test.js +0 -246
  163. package/dist/integration.test.d.ts +0 -1
  164. package/dist/integration.test.js +0 -168
  165. package/dist/interpreter/evaluator.test.d.ts +0 -1
  166. package/dist/interpreter/evaluator.test.js +0 -512
  167. package/dist/interpreter/http.test.d.ts +0 -1
  168. package/dist/interpreter/http.test.js +0 -299
  169. package/dist/interpreter/progress.test.d.ts +0 -1
  170. package/dist/interpreter/progress.test.js +0 -216
  171. package/dist/interpreter/schema-matcher.test.d.ts +0 -1
  172. package/dist/interpreter/schema-matcher.test.js +0 -122
  173. package/dist/lexer/lexer.d.ts +0 -24
  174. package/dist/lexer/lexer.js +0 -264
  175. package/dist/lexer/lexer.test.d.ts +0 -1
  176. package/dist/lexer/lexer.test.js +0 -259
  177. package/dist/loader/loader.test.d.ts +0 -1
  178. package/dist/loader/loader.test.js +0 -287
  179. package/dist/oas/oas.test.d.ts +0 -1
  180. package/dist/oas/oas.test.js +0 -218
  181. package/dist/parser/expressions.test.d.ts +0 -1
  182. package/dist/parser/expressions.test.js +0 -378
  183. package/dist/parser/match.test.d.ts +0 -1
  184. package/dist/parser/match.test.js +0 -254
  185. package/dist/parser/parser.test.d.ts +0 -1
  186. package/dist/parser/parser.test.js +0 -333
  187. package/dist/parser/schedule.test.d.ts +0 -1
  188. package/dist/parser/schedule.test.js +0 -241
  189. package/dist/scheduler/cron-parser.test.d.ts +0 -1
  190. package/dist/scheduler/cron-parser.test.js +0 -188
  191. package/dist/stores/file.test.d.ts +0 -1
  192. package/dist/stores/file.test.js +0 -165
  193. package/dist/stores/memory.test.d.ts +0 -1
  194. package/dist/stores/memory.test.js +0 -157
  195. package/dist/stores/stores.test.d.ts +0 -1
  196. package/dist/stores/stores.test.js +0 -158
  197. package/dist/sync/sync.test.d.ts +0 -1
  198. package/dist/sync/sync.test.js +0 -221
  199. package/docusaurus/README.md +0 -41
  200. package/docusaurus/docs/advanced/execution-state.md +0 -283
  201. package/docusaurus/docs/advanced/extending-reqon.md +0 -388
  202. package/docusaurus/docs/advanced/multi-file-missions.md +0 -250
  203. package/docusaurus/docs/advanced/parallel-execution.md +0 -353
  204. package/docusaurus/docs/api-reference.md +0 -443
  205. package/docusaurus/docs/authentication/api-key.md +0 -339
  206. package/docusaurus/docs/authentication/basic.md +0 -276
  207. package/docusaurus/docs/authentication/bearer.md +0 -282
  208. package/docusaurus/docs/authentication/oauth2.md +0 -317
  209. package/docusaurus/docs/authentication/overview.md +0 -251
  210. package/docusaurus/docs/cli.md +0 -229
  211. package/docusaurus/docs/core-concepts/actions.md +0 -286
  212. package/docusaurus/docs/core-concepts/missions.md +0 -264
  213. package/docusaurus/docs/core-concepts/schemas.md +0 -353
  214. package/docusaurus/docs/core-concepts/sources.md +0 -339
  215. package/docusaurus/docs/core-concepts/stores.md +0 -332
  216. package/docusaurus/docs/dsl-syntax/expressions.md +0 -361
  217. package/docusaurus/docs/dsl-syntax/fetch.md +0 -293
  218. package/docusaurus/docs/dsl-syntax/for-loops.md +0 -324
  219. package/docusaurus/docs/dsl-syntax/map.md +0 -345
  220. package/docusaurus/docs/dsl-syntax/match.md +0 -387
  221. package/docusaurus/docs/dsl-syntax/pipelines.md +0 -397
  222. package/docusaurus/docs/dsl-syntax/validate.md +0 -401
  223. package/docusaurus/docs/error-handling/dead-letter-queues.md +0 -399
  224. package/docusaurus/docs/error-handling/flow-control.md +0 -337
  225. package/docusaurus/docs/error-handling/retry-strategies.md +0 -368
  226. package/docusaurus/docs/examples.md +0 -488
  227. package/docusaurus/docs/getting-started.md +0 -256
  228. package/docusaurus/docs/http/circuit-breaker.md +0 -401
  229. package/docusaurus/docs/http/incremental-sync.md +0 -394
  230. package/docusaurus/docs/http/pagination.md +0 -361
  231. package/docusaurus/docs/http/rate-limiting.md +0 -383
  232. package/docusaurus/docs/http/requests.md +0 -328
  233. package/docusaurus/docs/http/retry.md +0 -402
  234. package/docusaurus/docs/intro.md +0 -90
  235. package/docusaurus/docs/openapi/loading-specs.md +0 -305
  236. package/docusaurus/docs/openapi/operation-calls.md +0 -314
  237. package/docusaurus/docs/openapi/overview.md +0 -212
  238. package/docusaurus/docs/openapi/response-validation.md +0 -344
  239. package/docusaurus/docs/scheduling/cron.md +0 -305
  240. package/docusaurus/docs/scheduling/daemon-mode.md +0 -317
  241. package/docusaurus/docs/scheduling/intervals.md +0 -289
  242. package/docusaurus/docs/scheduling/overview.md +0 -231
  243. package/docusaurus/docs/stores/custom-adapters.md +0 -376
  244. package/docusaurus/docs/stores/file.md +0 -236
  245. package/docusaurus/docs/stores/memory.md +0 -193
  246. package/docusaurus/docs/stores/overview.md +0 -274
  247. package/docusaurus/docs/stores/postgrest.md +0 -316
  248. package/docusaurus/docusaurus.config.ts +0 -148
  249. package/docusaurus/package-lock.json +0 -18029
  250. package/docusaurus/package.json +0 -47
  251. package/docusaurus/sidebars.ts +0 -155
  252. package/docusaurus/src/components/HomepageFeatures/index.tsx +0 -105
  253. package/docusaurus/src/components/HomepageFeatures/styles.module.css +0 -12
  254. package/docusaurus/src/css/custom.css +0 -169
  255. package/docusaurus/src/pages/index.module.css +0 -48
  256. package/docusaurus/src/pages/index.tsx +0 -110
  257. package/docusaurus/src/pages/markdown-page.md +0 -7
  258. package/docusaurus/static/.nojekyll +0 -0
  259. package/docusaurus/static/img/docusaurus-social-card.jpg +0 -0
  260. package/docusaurus/static/img/docusaurus.png +0 -0
  261. package/docusaurus/static/img/favicon.ico +0 -0
  262. package/docusaurus/static/img/logo.svg +0 -10
  263. package/docusaurus/static/img/undraw_docusaurus_mountain.svg +0 -171
  264. package/docusaurus/static/img/undraw_docusaurus_react.svg +0 -170
  265. package/docusaurus/static/img/undraw_docusaurus_tree.svg +0 -40
  266. package/docusaurus/tsconfig.json +0 -8
  267. package/examples/README.md +0 -112
  268. package/examples/error-handling/README.md +0 -150
  269. package/examples/error-handling/payment-processor.vague +0 -287
  270. package/examples/github-sync/README.md +0 -74
  271. package/examples/github-sync/fetch-issues.vague +0 -47
  272. package/examples/github-sync/fetch-prs.vague +0 -40
  273. package/examples/github-sync/mission.vague +0 -101
  274. package/examples/github-sync/normalize.vague +0 -70
  275. package/examples/jsonplaceholder/README.md +0 -28
  276. package/examples/jsonplaceholder/posts.vague +0 -48
  277. package/examples/petstore/README.md +0 -35
  278. package/examples/petstore/openapi.yaml +0 -97
  279. package/examples/petstore/sync.vague +0 -52
  280. package/examples/temporal-comparison/README.md +0 -297
  281. package/examples/temporal-comparison/reconciliation.vague +0 -355
  282. package/examples/temporal-comparison/temporal/activities/index.ts +0 -8
  283. package/examples/temporal-comparison/temporal/activities/shipstation.ts +0 -225
  284. package/examples/temporal-comparison/temporal/activities/shopify.ts +0 -257
  285. package/examples/temporal-comparison/temporal/activities/storage.ts +0 -198
  286. package/examples/temporal-comparison/temporal/activities/stripe.ts +0 -169
  287. package/examples/temporal-comparison/temporal/activities/validation.ts +0 -205
  288. package/examples/temporal-comparison/temporal/client/schedule.ts +0 -218
  289. package/examples/temporal-comparison/temporal/config/retry.ts +0 -63
  290. package/examples/temporal-comparison/temporal/types/index.ts +0 -129
  291. package/examples/temporal-comparison/temporal/workers/main.ts +0 -130
  292. package/examples/temporal-comparison/temporal/workflows/orderReconciliation.ts +0 -262
  293. package/examples/xero/README.md +0 -88
  294. package/examples/xero/invoices.vague +0 -189
  295. package/src/api-integration.test.ts +0 -954
  296. package/src/ast/index.ts +0 -1
  297. package/src/ast/nodes.ts +0 -310
  298. package/src/auth/auth.test.ts +0 -326
  299. package/src/auth/circuit-breaker.test.ts +0 -390
  300. package/src/auth/circuit-breaker.ts +0 -379
  301. package/src/auth/credentials.test.ts +0 -273
  302. package/src/auth/credentials.ts +0 -246
  303. package/src/auth/index.ts +0 -40
  304. package/src/auth/oauth2-provider.ts +0 -177
  305. package/src/auth/rate-limiter.ts +0 -459
  306. package/src/auth/token-store.ts +0 -177
  307. package/src/auth/types.ts +0 -159
  308. package/src/benchmark/e2e.bench.ts +0 -288
  309. package/src/benchmark/evaluator.bench.ts +0 -331
  310. package/src/benchmark/fixtures.ts +0 -295
  311. package/src/benchmark/index.ts +0 -108
  312. package/src/benchmark/lexer.bench.ts +0 -69
  313. package/src/benchmark/parser.bench.ts +0 -103
  314. package/src/benchmark/resilience.bench.ts +0 -193
  315. package/src/benchmark/store.bench.ts +0 -147
  316. package/src/benchmark/utils.ts +0 -230
  317. package/src/cli.ts +0 -313
  318. package/src/errors/errors.test.ts +0 -234
  319. package/src/errors/index.ts +0 -223
  320. package/src/execution/execution.test.ts +0 -307
  321. package/src/execution/index.ts +0 -21
  322. package/src/execution/state.ts +0 -207
  323. package/src/execution/store.ts +0 -188
  324. package/src/index.ts +0 -169
  325. package/src/integration.test.ts +0 -192
  326. package/src/interpreter/context.ts +0 -57
  327. package/src/interpreter/evaluator.test.ts +0 -796
  328. package/src/interpreter/evaluator.ts +0 -245
  329. package/src/interpreter/executor.ts +0 -946
  330. package/src/interpreter/fetch-handler.ts +0 -302
  331. package/src/interpreter/http.test.ts +0 -423
  332. package/src/interpreter/http.ts +0 -308
  333. package/src/interpreter/index.ts +0 -32
  334. package/src/interpreter/pagination.ts +0 -207
  335. package/src/interpreter/progress.test.ts +0 -276
  336. package/src/interpreter/schema-matcher.test.ts +0 -160
  337. package/src/interpreter/schema-matcher.ts +0 -168
  338. package/src/interpreter/signals.ts +0 -73
  339. package/src/interpreter/step-handlers/for-handler.ts +0 -65
  340. package/src/interpreter/step-handlers/index.ts +0 -17
  341. package/src/interpreter/step-handlers/map-handler.ts +0 -24
  342. package/src/interpreter/step-handlers/match-handler.ts +0 -101
  343. package/src/interpreter/step-handlers/store-handler.ts +0 -78
  344. package/src/interpreter/step-handlers/types.ts +0 -17
  345. package/src/interpreter/step-handlers/validate-handler.ts +0 -30
  346. package/src/interpreter/step-handlers/webhook-handler.ts +0 -142
  347. package/src/lexer/index.ts +0 -18
  348. package/src/lexer/lexer.test.ts +0 -316
  349. package/src/lexer/tokens.ts +0 -179
  350. package/src/loader/index.ts +0 -288
  351. package/src/loader/loader.test.ts +0 -360
  352. package/src/oas/index.ts +0 -4
  353. package/src/oas/loader.ts +0 -126
  354. package/src/oas/oas.test.ts +0 -254
  355. package/src/oas/validator.ts +0 -299
  356. package/src/parser/base.ts +0 -124
  357. package/src/parser/expressions.test.ts +0 -525
  358. package/src/parser/expressions.ts +0 -314
  359. package/src/parser/index.ts +0 -3
  360. package/src/parser/match.test.ts +0 -296
  361. package/src/parser/parser.test.ts +0 -739
  362. package/src/parser/parser.ts +0 -1469
  363. package/src/parser/schedule.test.ts +0 -287
  364. package/src/parser/webhook.test.ts +0 -248
  365. package/src/plugin.ts +0 -83
  366. package/src/scheduler/cron-parser.test.ts +0 -236
  367. package/src/scheduler/cron-parser.ts +0 -236
  368. package/src/scheduler/index.ts +0 -10
  369. package/src/scheduler/scheduler.ts +0 -443
  370. package/src/scheduler/types.ts +0 -71
  371. package/src/stores/factory.ts +0 -104
  372. package/src/stores/file.test.ts +0 -276
  373. package/src/stores/file.ts +0 -211
  374. package/src/stores/index.ts +0 -6
  375. package/src/stores/memory.test.ts +0 -238
  376. package/src/stores/memory.ts +0 -63
  377. package/src/stores/postgrest.test.ts +0 -488
  378. package/src/stores/postgrest.ts +0 -263
  379. package/src/stores/stores.test.ts +0 -197
  380. package/src/stores/types.ts +0 -58
  381. package/src/sync/index.ts +0 -16
  382. package/src/sync/state.ts +0 -126
  383. package/src/sync/store.ts +0 -139
  384. package/src/sync/sync.test.ts +0 -271
  385. package/src/utils/async.ts +0 -10
  386. package/src/utils/file.ts +0 -106
  387. package/src/utils/index.ts +0 -14
  388. package/src/utils/logger.ts +0 -53
  389. package/src/utils/path.ts +0 -47
  390. package/src/webhook/index.ts +0 -15
  391. package/src/webhook/server.test.ts +0 -253
  392. package/src/webhook/server.ts +0 -389
  393. package/src/webhook/store.ts +0 -239
  394. package/src/webhook/types.ts +0 -93
  395. package/tsconfig.json +0 -17
  396. package/vitest.config.ts +0 -39
@@ -1,251 +0,0 @@
1
- ---
2
- sidebar_position: 1
3
- ---
4
-
5
- # Authentication Overview
6
-
7
- Reqon supports multiple authentication methods for connecting to APIs. Authentication is configured at the source level and credentials are provided via CLI or configuration files.
8
-
9
- ## Supported Auth Types
10
-
11
- | Type | Description | Use Case |
12
- |------|-------------|----------|
13
- | `none` | No authentication | Public APIs |
14
- | `bearer` | Bearer token | Most REST APIs |
15
- | `basic` | HTTP Basic Auth | Legacy systems |
16
- | `api_key` | API key in header/query | Many SaaS APIs |
17
- | `oauth2` | OAuth 2.0 with refresh | Enterprise APIs |
18
-
19
- ## Quick Start
20
-
21
- ### In Mission File
22
-
23
- ```vague
24
- source API {
25
- auth: bearer,
26
- base: "https://api.example.com"
27
- }
28
- ```
29
-
30
- ### Credentials File
31
-
32
- Create `credentials.json`:
33
-
34
- ```json
35
- {
36
- "API": {
37
- "type": "bearer",
38
- "token": "your-api-token"
39
- }
40
- }
41
- ```
42
-
43
- ### Run with Credentials
44
-
45
- ```bash
46
- reqon mission.vague --auth ./credentials.json
47
- ```
48
-
49
- ## Credential Sources
50
-
51
- ### File-Based
52
-
53
- ```bash
54
- reqon mission.vague --auth ./credentials.json
55
- ```
56
-
57
- ### Environment Variables
58
-
59
- Reference in credentials:
60
-
61
- ```json
62
- {
63
- "API": {
64
- "type": "bearer",
65
- "token": "${API_TOKEN}"
66
- }
67
- }
68
- ```
69
-
70
- Or in mission file:
71
-
72
- ```vague
73
- source API {
74
- auth: bearer,
75
- base: "https://api.example.com",
76
- token: env("API_TOKEN")
77
- }
78
- ```
79
-
80
- ### Programmatic
81
-
82
- ```typescript
83
- import { execute } from 'reqon';
84
-
85
- await execute(source, {
86
- auth: {
87
- API: {
88
- type: 'bearer',
89
- token: process.env.API_TOKEN
90
- }
91
- }
92
- });
93
- ```
94
-
95
- ## Multiple Sources
96
-
97
- Handle multiple APIs with different auth:
98
-
99
- ```vague
100
- mission MultiSource {
101
- source Xero {
102
- auth: oauth2,
103
- base: "https://api.xero.com/api.xro/2.0"
104
- }
105
-
106
- source Stripe {
107
- auth: bearer,
108
- base: "https://api.stripe.com/v1"
109
- }
110
-
111
- source Legacy {
112
- auth: basic,
113
- base: "https://legacy.example.com"
114
- }
115
- }
116
- ```
117
-
118
- Credentials file:
119
-
120
- ```json
121
- {
122
- "Xero": {
123
- "type": "oauth2",
124
- "clientId": "...",
125
- "clientSecret": "...",
126
- "accessToken": "...",
127
- "refreshToken": "...",
128
- "tokenUrl": "https://identity.xero.com/connect/token"
129
- },
130
- "Stripe": {
131
- "type": "bearer",
132
- "token": "sk_live_..."
133
- },
134
- "Legacy": {
135
- "type": "basic",
136
- "username": "admin",
137
- "password": "secret"
138
- }
139
- }
140
- ```
141
-
142
- ## Refreshing Tokens
143
-
144
- ### OAuth 2.0 Automatic Refresh
145
-
146
- Reqon automatically refreshes OAuth2 tokens when they expire:
147
-
148
- ```json
149
- {
150
- "Xero": {
151
- "type": "oauth2",
152
- "accessToken": "current-token",
153
- "refreshToken": "refresh-token",
154
- "tokenUrl": "https://identity.xero.com/connect/token",
155
- "expiresAt": "2024-01-20T10:30:00Z"
156
- }
157
- }
158
- ```
159
-
160
- ### Manual Refresh with Jump
161
-
162
- For non-standard token refresh:
163
-
164
- ```vague
165
- action FetchData {
166
- get "/data"
167
-
168
- match response {
169
- { error: _, code: 401 } -> jump RefreshToken then retry,
170
- _ -> continue
171
- }
172
- }
173
-
174
- action RefreshToken {
175
- post "/auth/refresh" {
176
- body: { refreshToken: env("REFRESH_TOKEN") }
177
- }
178
- // Response updates auth context
179
- }
180
- ```
181
-
182
- ## Security Best Practices
183
-
184
- ### Never Commit Credentials
185
-
186
- Add to `.gitignore`:
187
-
188
- ```
189
- credentials.json
190
- .env
191
- *.pem
192
- *.key
193
- ```
194
-
195
- ### Use Environment Variables
196
-
197
- ```bash
198
- export API_TOKEN="your-token"
199
- reqon mission.vague
200
- ```
201
-
202
- ### Rotate Tokens Regularly
203
-
204
- For OAuth2, ensure refresh tokens are valid.
205
-
206
- ### Use Least Privilege
207
-
208
- Request only necessary scopes:
209
-
210
- ```json
211
- {
212
- "API": {
213
- "type": "oauth2",
214
- "scopes": ["read:users", "read:orders"]
215
- }
216
- }
217
- ```
218
-
219
- ## Troubleshooting
220
-
221
- ### "Authentication Failed" Error
222
-
223
- 1. Check credentials file path
224
- 2. Verify token is valid
225
- 3. Check source name matches credentials
226
-
227
- ### Token Expired
228
-
229
- For OAuth2, ensure:
230
- - `refreshToken` is present
231
- - `tokenUrl` is correct
232
- - Token hasn't been revoked
233
-
234
- ### Wrong Auth Type
235
-
236
- Match the type in credentials to mission:
237
-
238
- ```vague
239
- // Mission says bearer
240
- source API { auth: bearer, base: "..." }
241
- ```
242
-
243
- ```json
244
- // Credentials must also be bearer
245
- {
246
- "API": {
247
- "type": "bearer", // Must match
248
- "token": "..."
249
- }
250
- }
251
- ```
@@ -1,229 +0,0 @@
1
- ---
2
- sidebar_position: 3
3
- ---
4
-
5
- # Command Line Interface
6
-
7
- Reqon provides a powerful CLI for running and managing missions.
8
-
9
- ## Basic Usage
10
-
11
- ```bash
12
- reqon <file-or-folder> [options]
13
- ```
14
-
15
- Run a single mission file:
16
-
17
- ```bash
18
- reqon sync-customers.vague
19
- ```
20
-
21
- Run a mission folder (multi-file mission):
22
-
23
- ```bash
24
- reqon ./missions/customer-sync/
25
- ```
26
-
27
- ## Options
28
-
29
- | Option | Description |
30
- |--------|-------------|
31
- | `--dry-run` | Parse and validate without executing HTTP requests |
32
- | `--verbose` | Enable detailed logging output |
33
- | `--auth <file>` | Path to JSON file containing authentication credentials |
34
- | `--output <path>` | Export store contents to JSON files after execution |
35
- | `--daemon` | Run scheduled missions continuously |
36
- | `--once` | Run scheduled missions once, then exit |
37
-
38
- ## Examples
39
-
40
- ### Dry Run Mode
41
-
42
- Validate your mission syntax without making actual API calls:
43
-
44
- ```bash
45
- reqon sync-data.vague --dry-run
46
- ```
47
-
48
- ### Verbose Output
49
-
50
- Get detailed execution logs:
51
-
52
- ```bash
53
- reqon sync-data.vague --verbose
54
- ```
55
-
56
- Output includes:
57
- - HTTP request/response details
58
- - Pagination progress
59
- - Store operation counts
60
- - Timing information
61
-
62
- ### Authentication
63
-
64
- Provide credentials via a JSON file:
65
-
66
- ```bash
67
- reqon sync-data.vague --auth ./credentials.json
68
- ```
69
-
70
- The credentials file should match your source names:
71
-
72
- ```json
73
- {
74
- "Xero": {
75
- "type": "oauth2",
76
- "clientId": "your-client-id",
77
- "clientSecret": "your-client-secret",
78
- "accessToken": "current-token",
79
- "refreshToken": "refresh-token",
80
- "tokenUrl": "https://identity.xero.com/connect/token"
81
- },
82
- "GitHub": {
83
- "type": "bearer",
84
- "token": "ghp_xxxxxxxxxxxx"
85
- }
86
- }
87
- ```
88
-
89
- ### Exporting Results
90
-
91
- Save store contents to JSON after execution:
92
-
93
- ```bash
94
- reqon sync-data.vague --output ./output/
95
- ```
96
-
97
- This creates JSON files for each store:
98
- ```
99
- output/
100
- ├── customers.json
101
- ├── orders.json
102
- └── products.json
103
- ```
104
-
105
- ### Daemon Mode
106
-
107
- Run scheduled missions continuously:
108
-
109
- ```bash
110
- reqon ./missions/ --daemon
111
- ```
112
-
113
- The daemon will:
114
- - Parse all missions in the folder
115
- - Execute scheduled missions according to their schedule
116
- - Respect rate limits and backoff strategies
117
- - Handle graceful shutdown on SIGINT/SIGTERM
118
-
119
- ### One-Shot Scheduled Execution
120
-
121
- Run all scheduled missions once:
122
-
123
- ```bash
124
- reqon ./missions/ --once
125
- ```
126
-
127
- Useful for cron-triggered executions where you want external scheduling.
128
-
129
- ## Exit Codes
130
-
131
- | Code | Meaning |
132
- |------|---------|
133
- | 0 | Success |
134
- | 1 | Runtime error (HTTP failure, validation error, etc.) |
135
- | 2 | Parse error (invalid syntax) |
136
- | 3 | Configuration error (missing credentials, invalid options) |
137
-
138
- ## Environment Variables
139
-
140
- | Variable | Description |
141
- |----------|-------------|
142
- | `REQON_STATE_DIR` | Directory for execution state (default: `.vague-data`) |
143
- | `REQON_LOG_LEVEL` | Logging level: `debug`, `info`, `warn`, `error` |
144
- | `REQON_DRY_RUN` | Enable dry-run mode (same as `--dry-run`) |
145
-
146
- ## Multi-File Missions
147
-
148
- For complex missions, organize them as folders:
149
-
150
- ```
151
- missions/
152
- └── customer-sync/
153
- ├── mission.vague # Main mission definition
154
- ├── actions/
155
- │ ├── fetch.vague # Fetch action
156
- │ ├── transform.vague
157
- │ └── export.vague
158
- └── schemas/
159
- └── customer.vague
160
- ```
161
-
162
- Run with:
163
-
164
- ```bash
165
- reqon ./missions/customer-sync/
166
- ```
167
-
168
- Reqon automatically discovers and loads all `.vague` files in the folder.
169
-
170
- ## Integrating with CI/CD
171
-
172
- ### GitHub Actions
173
-
174
- ```yaml
175
- name: Sync Data
176
- on:
177
- schedule:
178
- - cron: '0 */6 * * *' # Every 6 hours
179
-
180
- jobs:
181
- sync:
182
- runs-on: ubuntu-latest
183
- steps:
184
- - uses: actions/checkout@v4
185
- - uses: actions/setup-node@v4
186
- with:
187
- node-version: '20'
188
- - run: npm install
189
- - run: npx reqon ./missions/sync.vague --auth ./credentials.json
190
- env:
191
- API_TOKEN: ${{ secrets.API_TOKEN }}
192
- ```
193
-
194
- ### Docker
195
-
196
- ```dockerfile
197
- FROM node:20-alpine
198
- WORKDIR /app
199
- COPY package*.json ./
200
- RUN npm install
201
- COPY . .
202
- CMD ["npx", "reqon", "./missions/", "--daemon"]
203
- ```
204
-
205
- ## Troubleshooting
206
-
207
- ### "Cannot find module 'reqon'"
208
-
209
- Ensure Reqon is installed:
210
-
211
- ```bash
212
- npm install reqon
213
- ```
214
-
215
- ### "Permission denied"
216
-
217
- The state directory (`.vague-data`) needs write access:
218
-
219
- ```bash
220
- chmod 755 .vague-data
221
- ```
222
-
223
- ### Debugging HTTP Issues
224
-
225
- Use verbose mode to see request/response details:
226
-
227
- ```bash
228
- reqon mission.vague --verbose 2>&1 | tee debug.log
229
- ```