@workerstack/testing 0.0.0-stage → 0.31.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 (1784) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -2
  3. package/bin/testing.js +4 -0
  4. package/dist/api/cli/commands/baseline.d.ts +5 -0
  5. package/dist/api/cli/commands/baseline.js +46 -0
  6. package/dist/api/cli/commands/conformance-matrix.d.ts +40 -0
  7. package/dist/api/cli/commands/conformance-matrix.js +193 -0
  8. package/dist/api/cli/commands/conformance-proven.d.ts +15 -0
  9. package/dist/api/cli/commands/conformance-proven.js +44 -0
  10. package/dist/api/cli/commands/conformance-suites.d.ts +11 -0
  11. package/dist/api/cli/commands/conformance-suites.js +35 -0
  12. package/dist/api/cli/commands/conformance-tail.d.ts +27 -0
  13. package/dist/api/cli/commands/conformance-tail.js +61 -0
  14. package/dist/api/cli/commands/conformance-toolkit.d.ts +19 -0
  15. package/dist/api/cli/commands/conformance-toolkit.js +33 -0
  16. package/dist/api/cli/commands/conformance.d.ts +11 -0
  17. package/dist/api/cli/commands/conformance.js +191 -0
  18. package/dist/api/cli/commands/diff.d.ts +5 -0
  19. package/dist/api/cli/commands/diff.js +42 -0
  20. package/dist/api/cli/commands/doctor.d.ts +5 -0
  21. package/dist/api/cli/commands/doctor.js +44 -0
  22. package/dist/api/cli/commands/init-code.d.ts +15 -0
  23. package/dist/api/cli/commands/init-code.js +54 -0
  24. package/dist/api/cli/commands/init-config.d.ts +21 -0
  25. package/dist/api/cli/commands/init-config.js +233 -0
  26. package/dist/api/cli/commands/init.d.ts +13 -0
  27. package/dist/api/cli/commands/init.js +68 -0
  28. package/dist/api/cli/commands/plan.d.ts +11 -0
  29. package/dist/api/cli/commands/plan.js +64 -0
  30. package/dist/api/cli/commands/run-options.d.ts +29 -0
  31. package/dist/api/cli/commands/run-options.js +79 -0
  32. package/dist/api/cli/commands/run-progress.d.ts +19 -0
  33. package/dist/api/cli/commands/run-progress.js +47 -0
  34. package/dist/api/cli/commands/run-report.d.ts +42 -0
  35. package/dist/api/cli/commands/run-report.js +126 -0
  36. package/dist/api/cli/commands/run-signals.d.ts +23 -0
  37. package/dist/api/cli/commands/run-signals.js +32 -0
  38. package/dist/api/cli/commands/run.d.ts +18 -0
  39. package/dist/api/cli/commands/run.js +149 -0
  40. package/dist/api/cli/commands/serve.d.ts +24 -0
  41. package/dist/api/cli/commands/serve.js +49 -0
  42. package/dist/api/cli/commands/spec.d.ts +25 -0
  43. package/dist/api/cli/commands/spec.js +76 -0
  44. package/dist/api/cli/config.d.ts +19 -0
  45. package/dist/api/cli/config.js +40 -0
  46. package/dist/api/cli/flag-kinds.d.ts +40 -0
  47. package/dist/api/cli/flag-kinds.js +3 -0
  48. package/dist/api/cli/flags.d.ts +64 -0
  49. package/dist/api/cli/flags.js +250 -0
  50. package/dist/api/cli/legacy-run.d.ts +4 -0
  51. package/dist/api/cli/legacy-run.js +11 -0
  52. package/dist/api/cli/main.d.ts +25 -0
  53. package/dist/api/cli/main.js +76 -0
  54. package/dist/api/cli/writer.d.ts +15 -0
  55. package/dist/api/cli/writer.js +27 -0
  56. package/dist/api/cli.d.ts +3 -0
  57. package/dist/api/cli.js +10 -0
  58. package/dist/api/client/answer.d.ts +14 -0
  59. package/dist/api/client/answer.js +143 -0
  60. package/dist/api/client/attempt.d.ts +77 -0
  61. package/dist/api/client/attempt.js +3 -0
  62. package/dist/api/client/bypass.d.ts +18 -0
  63. package/dist/api/client/bypass.js +15 -0
  64. package/dist/api/client/cache-signals.d.ts +17 -0
  65. package/dist/api/client/cache-signals.js +35 -0
  66. package/dist/api/client/client.d.ts +75 -0
  67. package/dist/api/client/client.js +185 -0
  68. package/dist/api/client/control.d.ts +36 -0
  69. package/dist/api/client/control.js +69 -0
  70. package/dist/api/client/credential-source.d.ts +142 -0
  71. package/dist/api/client/credential-source.js +31 -0
  72. package/dist/api/client/credentials.d.ts +43 -0
  73. package/dist/api/client/credentials.js +178 -0
  74. package/dist/api/client/curl.d.ts +24 -0
  75. package/dist/api/client/curl.js +100 -0
  76. package/dist/api/client/declared.d.ts +17 -0
  77. package/dist/api/client/declared.js +57 -0
  78. package/dist/api/client/fence.d.ts +17 -0
  79. package/dist/api/client/fence.js +24 -0
  80. package/dist/api/client/journal.d.ts +42 -0
  81. package/dist/api/client/journal.js +75 -0
  82. package/dist/api/client/message.d.ts +15 -0
  83. package/dist/api/client/message.js +47 -0
  84. package/dist/api/client/param-style.d.ts +29 -0
  85. package/dist/api/client/param-style.js +78 -0
  86. package/dist/api/client/placing.d.ts +87 -0
  87. package/dist/api/client/placing.js +174 -0
  88. package/dist/api/client/read-path.d.ts +13 -0
  89. package/dist/api/client/read-path.js +90 -0
  90. package/dist/api/client/redirect.d.ts +37 -0
  91. package/dist/api/client/redirect.js +64 -0
  92. package/dist/api/client/refresh.d.ts +17 -0
  93. package/dist/api/client/refresh.js +14 -0
  94. package/dist/api/client/request.d.ts +20 -0
  95. package/dist/api/client/request.js +182 -0
  96. package/dist/api/client/retry.d.ts +29 -0
  97. package/dist/api/client/retry.js +100 -0
  98. package/dist/api/client/serialize.d.ts +27 -0
  99. package/dist/api/client/serialize.js +93 -0
  100. package/dist/api/client/slots.d.ts +11 -0
  101. package/dist/api/client/slots.js +20 -0
  102. package/dist/api/client/types.d.ts +149 -0
  103. package/dist/api/client/types.js +3 -0
  104. package/dist/api/config/define/define-config.d.ts +18 -0
  105. package/dist/api/config/define/define-config.js +19 -0
  106. package/dist/api/config/define/types.d.ts +13 -0
  107. package/dist/api/config/define/types.js +9 -0
  108. package/dist/api/config/env.d.ts +10 -0
  109. package/dist/api/config/env.js +31 -0
  110. package/dist/api/config/load.d.ts +19 -0
  111. package/dist/api/config/load.js +87 -0
  112. package/dist/api/config/types/config.d.ts +282 -0
  113. package/dist/api/config/types/config.js +3 -0
  114. package/dist/api/config/types/hooks.d.ts +265 -0
  115. package/dist/api/config/types/hooks.js +3 -0
  116. package/dist/api/config/types/placeholder.d.ts +11 -0
  117. package/dist/api/config/types/placeholder.js +26 -0
  118. package/dist/api/config/types/query.d.ts +76 -0
  119. package/dist/api/config/types/query.js +7 -0
  120. package/dist/api/config/types/raw.d.ts +17 -0
  121. package/dist/api/config/types/raw.js +15 -0
  122. package/dist/api/config/types/security.d.ts +138 -0
  123. package/dist/api/config/types/security.js +7 -0
  124. package/dist/api/config/types/steps.d.ts +166 -0
  125. package/dist/api/config/types/steps.js +3 -0
  126. package/dist/api/config/validate.d.ts +16 -0
  127. package/dist/api/config/validate.js +176 -0
  128. package/dist/api/conformance/effects/backend.d.ts +7 -0
  129. package/dist/api/conformance/effects/backend.js +56 -0
  130. package/dist/api/conformance/effects/spec.d.ts +4 -0
  131. package/dist/api/conformance/effects/spec.js +90 -0
  132. package/dist/api/conformance/effects.d.ts +10 -0
  133. package/dist/api/conformance/effects.js +97 -0
  134. package/dist/api/conformance/expected/composition.d.ts +8 -0
  135. package/dist/api/conformance/expected/composition.js +81 -0
  136. package/dist/api/conformance/expected/conformance.d.ts +8 -0
  137. package/dist/api/conformance/expected/conformance.js +20 -0
  138. package/dist/api/conformance/expected/consistency.d.ts +8 -0
  139. package/dist/api/conformance/expected/consistency.js +21 -0
  140. package/dist/api/conformance/expected/filter.d.ts +8 -0
  141. package/dist/api/conformance/expected/filter.js +76 -0
  142. package/dist/api/conformance/expected/isolation.d.ts +8 -0
  143. package/dist/api/conformance/expected/isolation.js +37 -0
  144. package/dist/api/conformance/expected/other.d.ts +8 -0
  145. package/dist/api/conformance/expected/other.js +26 -0
  146. package/dist/api/conformance/expected/pagination.d.ts +8 -0
  147. package/dist/api/conformance/expected/pagination.js +23 -0
  148. package/dist/api/conformance/expected/security.d.ts +8 -0
  149. package/dist/api/conformance/expected/security.js +29 -0
  150. package/dist/api/conformance/expected/sort.d.ts +8 -0
  151. package/dist/api/conformance/expected/sort.js +13 -0
  152. package/dist/api/conformance/expected/table.d.ts +11 -0
  153. package/dist/api/conformance/expected/table.js +32 -0
  154. package/dist/api/conformance/expected/validation.d.ts +8 -0
  155. package/dist/api/conformance/expected/validation.js +12 -0
  156. package/dist/api/conformance/expected/write.d.ts +8 -0
  157. package/dist/api/conformance/expected/write.js +66 -0
  158. package/dist/api/conformance/expected-failures.d.ts +18 -0
  159. package/dist/api/conformance/expected-failures.js +18 -0
  160. package/dist/api/conformance/feature-gate/harness.d.ts +20 -0
  161. package/dist/api/conformance/feature-gate/harness.js +109 -0
  162. package/dist/api/conformance/feature-gate/spec.d.ts +5 -0
  163. package/dist/api/conformance/feature-gate/spec.js +114 -0
  164. package/dist/api/conformance/feature-gate.d.ts +11 -0
  165. package/dist/api/conformance/feature-gate.js +189 -0
  166. package/dist/api/conformance/fuzz/diagnose.d.ts +78 -0
  167. package/dist/api/conformance/fuzz/diagnose.js +102 -0
  168. package/dist/api/conformance/fuzz/render.d.ts +11 -0
  169. package/dist/api/conformance/fuzz/render.js +59 -0
  170. package/dist/api/conformance/fuzz.d.ts +55 -0
  171. package/dist/api/conformance/fuzz.js +139 -0
  172. package/dist/api/conformance/harness/counting.d.ts +62 -0
  173. package/dist/api/conformance/harness/counting.js +135 -0
  174. package/dist/api/conformance/harness/launch.d.ts +50 -0
  175. package/dist/api/conformance/harness/launch.js +46 -0
  176. package/dist/api/conformance/harness/result.d.ts +8 -0
  177. package/dist/api/conformance/harness/result.js +2 -0
  178. package/dist/api/conformance/harness/routes.d.ts +13 -0
  179. package/dist/api/conformance/harness/routes.js +15 -0
  180. package/dist/api/conformance/harness/security.d.ts +24 -0
  181. package/dist/api/conformance/harness/security.js +24 -0
  182. package/dist/api/conformance/harness/serve.d.ts +13 -0
  183. package/dist/api/conformance/harness/serve.js +26 -0
  184. package/dist/api/conformance/leaks.d.ts +30 -0
  185. package/dist/api/conformance/leaks.js +75 -0
  186. package/dist/api/conformance/matrix/cases.d.ts +63 -0
  187. package/dist/api/conformance/matrix/cases.js +157 -0
  188. package/dist/api/conformance/matrix/defects.d.ts +72 -0
  189. package/dist/api/conformance/matrix/defects.js +233 -0
  190. package/dist/api/conformance/matrix/engines.d.ts +26 -0
  191. package/dist/api/conformance/matrix/engines.js +45 -0
  192. package/dist/api/conformance/matrix/expected.d.ts +9 -0
  193. package/dist/api/conformance/matrix/expected.js +14 -0
  194. package/dist/api/conformance/matrix/opt-in.d.ts +14 -0
  195. package/dist/api/conformance/matrix/opt-in.js +15 -0
  196. package/dist/api/conformance/matrix/principals.d.ts +11 -0
  197. package/dist/api/conformance/matrix/principals.js +51 -0
  198. package/dist/api/conformance/matrix/render.d.ts +47 -0
  199. package/dist/api/conformance/matrix/render.js +211 -0
  200. package/dist/api/conformance/pool.d.ts +46 -0
  201. package/dist/api/conformance/pool.js +104 -0
  202. package/dist/api/conformance/rate-limit/backend.d.ts +9 -0
  203. package/dist/api/conformance/rate-limit/backend.js +90 -0
  204. package/dist/api/conformance/rate-limit/spec.d.ts +7 -0
  205. package/dist/api/conformance/rate-limit/spec.js +71 -0
  206. package/dist/api/conformance/rate-limit.d.ts +9 -0
  207. package/dist/api/conformance/rate-limit.js +137 -0
  208. package/dist/api/conformance/scope.d.ts +16 -0
  209. package/dist/api/conformance/scope.js +87 -0
  210. package/dist/api/conformance/seed-contract/fixture-walk.d.ts +42 -0
  211. package/dist/api/conformance/seed-contract/fixture-walk.js +143 -0
  212. package/dist/api/conformance/seed-contract/members.d.ts +15 -0
  213. package/dist/api/conformance/seed-contract/members.js +145 -0
  214. package/dist/api/conformance/seed-contract/project.d.ts +11 -0
  215. package/dist/api/conformance/seed-contract/project.js +113 -0
  216. package/dist/api/conformance/seed-contract/users.d.ts +14 -0
  217. package/dist/api/conformance/seed-contract/users.js +103 -0
  218. package/dist/api/conformance/seed-contract.d.ts +13 -0
  219. package/dist/api/conformance/seed-contract.js +152 -0
  220. package/dist/api/conformance/serve-tasks.d.ts +20 -0
  221. package/dist/api/conformance/serve-tasks.js +14 -0
  222. package/dist/api/conformance/shapes.d.ts +69 -0
  223. package/dist/api/conformance/shapes.js +208 -0
  224. package/dist/api/conformance/shards.d.ts +20 -0
  225. package/dist/api/conformance/shards.js +43 -0
  226. package/dist/api/conformance/specs/documents.d.ts +7 -0
  227. package/dist/api/conformance/specs/documents.js +131 -0
  228. package/dist/api/conformance/specs/models.d.ts +5 -0
  229. package/dist/api/conformance/specs/models.js +252 -0
  230. package/dist/api/conformance/specs/types.d.ts +10 -0
  231. package/dist/api/conformance/specs/types.js +2 -0
  232. package/dist/api/conformance/specs.d.ts +16 -0
  233. package/dist/api/conformance/specs.js +18 -0
  234. package/dist/api/conformance/suites/coverage-report.d.ts +9 -0
  235. package/dist/api/conformance/suites/coverage-report.js +50 -0
  236. package/dist/api/conformance/suites/example.d.ts +4 -0
  237. package/dist/api/conformance/suites/example.js +65 -0
  238. package/dist/api/conformance/suites/parser.d.ts +4 -0
  239. package/dist/api/conformance/suites/parser.js +92 -0
  240. package/dist/api/conformance/suites/payload-catalog.d.ts +3 -0
  241. package/dist/api/conformance/suites/payload-catalog.js +13 -0
  242. package/dist/api/conformance/suites/public-catalog.d.ts +7 -0
  243. package/dist/api/conformance/suites/public-catalog.js +168 -0
  244. package/dist/api/conformance/suites/render.d.ts +6 -0
  245. package/dist/api/conformance/suites/render.js +19 -0
  246. package/dist/api/conformance/suites/repro-syntax.d.ts +11 -0
  247. package/dist/api/conformance/suites/repro-syntax.js +55 -0
  248. package/dist/api/conformance/suites/tag-unlock.d.ts +19 -0
  249. package/dist/api/conformance/suites/tag-unlock.js +54 -0
  250. package/dist/api/conformance/suites/tenant-scope.d.ts +4 -0
  251. package/dist/api/conformance/suites/tenant-scope.js +125 -0
  252. package/dist/api/conformance/tasks.d.ts +70 -0
  253. package/dist/api/conformance/tasks.js +53 -0
  254. package/dist/api/conformance/unique/backend.d.ts +53 -0
  255. package/dist/api/conformance/unique/backend.js +152 -0
  256. package/dist/api/conformance/unique/cases.d.ts +22 -0
  257. package/dist/api/conformance/unique/cases.js +201 -0
  258. package/dist/api/conformance/unique/document.d.ts +12 -0
  259. package/dist/api/conformance/unique/document.js +106 -0
  260. package/dist/api/conformance/unique/judges.d.ts +28 -0
  261. package/dist/api/conformance/unique/judges.js +118 -0
  262. package/dist/api/conformance/unique/spec.d.ts +14 -0
  263. package/dist/api/conformance/unique/spec.js +139 -0
  264. package/dist/api/conformance/unique.d.ts +9 -0
  265. package/dist/api/conformance/unique.js +19 -0
  266. package/dist/api/conformance/worker.d.ts +3 -0
  267. package/dist/api/conformance/worker.js +5 -0
  268. package/dist/api/credentials/anchors.d.ts +24 -0
  269. package/dist/api/credentials/anchors.js +32 -0
  270. package/dist/api/credentials/dedicated.d.ts +8 -0
  271. package/dist/api/credentials/dedicated.js +106 -0
  272. package/dist/api/credentials/effective.d.ts +5 -0
  273. package/dist/api/credentials/effective.js +25 -0
  274. package/dist/api/credentials/expiry.d.ts +18 -0
  275. package/dist/api/credentials/expiry.js +24 -0
  276. package/dist/api/credentials/interpolate.d.ts +21 -0
  277. package/dist/api/credentials/interpolate.js +79 -0
  278. package/dist/api/credentials/jwt.d.ts +7 -0
  279. package/dist/api/credentials/jwt.js +20 -0
  280. package/dist/api/credentials/origin-recipes.d.ts +13 -0
  281. package/dist/api/credentials/origin-recipes.js +23 -0
  282. package/dist/api/credentials/placeholders.d.ts +10 -0
  283. package/dist/api/credentials/placeholders.js +71 -0
  284. package/dist/api/credentials/placement.d.ts +23 -0
  285. package/dist/api/credentials/placement.js +41 -0
  286. package/dist/api/credentials/ports.d.ts +96 -0
  287. package/dist/api/credentials/ports.js +2 -0
  288. package/dist/api/credentials/probe-principal.d.ts +9 -0
  289. package/dist/api/credentials/probe-principal.js +23 -0
  290. package/dist/api/credentials/read.d.ts +4 -0
  291. package/dist/api/credentials/read.js +16 -0
  292. package/dist/api/credentials/recipes/acquire.d.ts +7 -0
  293. package/dist/api/credentials/recipes/acquire.js +32 -0
  294. package/dist/api/credentials/recipes/answer.d.ts +14 -0
  295. package/dist/api/credentials/recipes/answer.js +32 -0
  296. package/dist/api/credentials/recipes/hook.d.ts +9 -0
  297. package/dist/api/credentials/recipes/hook.js +21 -0
  298. package/dist/api/credentials/recipes/login.d.ts +18 -0
  299. package/dist/api/credentials/recipes/login.js +146 -0
  300. package/dist/api/credentials/recipes/mint.d.ts +5 -0
  301. package/dist/api/credentials/recipes/mint.js +60 -0
  302. package/dist/api/credentials/recipes/oauth2.d.ts +5 -0
  303. package/dist/api/credentials/recipes/oauth2.js +54 -0
  304. package/dist/api/credentials/recipes/static.d.ts +8 -0
  305. package/dist/api/credentials/recipes/static.js +14 -0
  306. package/dist/api/credentials/recipes/types.d.ts +31 -0
  307. package/dist/api/credentials/recipes/types.js +2 -0
  308. package/dist/api/credentials/refresh.d.ts +13 -0
  309. package/dist/api/credentials/refresh.js +30 -0
  310. package/dist/api/credentials/satisfy.d.ts +13 -0
  311. package/dist/api/credentials/satisfy.js +35 -0
  312. package/dist/api/credentials/sign-in-fields.d.ts +4 -0
  313. package/dist/api/credentials/sign-in-fields.js +36 -0
  314. package/dist/api/credentials/signup.d.ts +9 -0
  315. package/dist/api/credentials/signup.js +24 -0
  316. package/dist/api/credentials/store-plan.d.ts +94 -0
  317. package/dist/api/credentials/store-plan.js +144 -0
  318. package/dist/api/credentials/store-types.d.ts +133 -0
  319. package/dist/api/credentials/store-types.js +3 -0
  320. package/dist/api/credentials/store.d.ts +5 -0
  321. package/dist/api/credentials/store.js +222 -0
  322. package/dist/api/credentials/validate/document.d.ts +10 -0
  323. package/dist/api/credentials/validate/document.js +52 -0
  324. package/dist/api/credentials/validate/origins.d.ts +27 -0
  325. package/dist/api/credentials/validate/origins.js +41 -0
  326. package/dist/api/credentials/validate/principals.d.ts +28 -0
  327. package/dist/api/credentials/validate/principals.js +184 -0
  328. package/dist/api/credentials/validate/recipe-shape.d.ts +22 -0
  329. package/dist/api/credentials/validate/recipe-shape.js +169 -0
  330. package/dist/api/credentials/validate/scenario-placeholders.d.ts +7 -0
  331. package/dist/api/credentials/validate/scenario-placeholders.js +106 -0
  332. package/dist/api/credentials/validate/security.d.ts +37 -0
  333. package/dist/api/credentials/validate/security.js +179 -0
  334. package/dist/api/credentials/writer.d.ts +5 -0
  335. package/dist/api/credentials/writer.js +9 -0
  336. package/dist/api/errors/message.d.ts +3 -0
  337. package/dist/api/errors/message.js +5 -0
  338. package/dist/api/errors/missing-value.d.ts +13 -0
  339. package/dist/api/errors/missing-value.js +16 -0
  340. package/dist/api/errors/network.d.ts +21 -0
  341. package/dist/api/errors/network.js +122 -0
  342. package/dist/api/errors/node-floor.d.ts +8 -0
  343. package/dist/api/errors/node-floor.js +8 -0
  344. package/dist/api/errors/suggest.d.ts +5 -0
  345. package/dist/api/errors/suggest.js +29 -0
  346. package/dist/api/errors/usage-error.d.ts +9 -0
  347. package/dist/api/errors/usage-error.js +9 -0
  348. package/dist/api/index.d.ts +26 -0
  349. package/dist/api/index.js +18 -0
  350. package/dist/api/reference/defects/bystanders.d.ts +8 -0
  351. package/dist/api/reference/defects/bystanders.js +7 -0
  352. package/dist/api/reference/defects/catalog.d.ts +88 -0
  353. package/dist/api/reference/defects/catalog.js +88 -0
  354. package/dist/api/reference/defects/composition.d.ts +59 -0
  355. package/dist/api/reference/defects/composition.js +59 -0
  356. package/dist/api/reference/defects/core.d.ts +63 -0
  357. package/dist/api/reference/defects/core.js +63 -0
  358. package/dist/api/reference/defects/defect-set.d.ts +10 -0
  359. package/dist/api/reference/defects/defect-set.js +19 -0
  360. package/dist/api/reference/defects/freshness.d.ts +8 -0
  361. package/dist/api/reference/defects/freshness.js +8 -0
  362. package/dist/api/reference/defects/query.d.ts +58 -0
  363. package/dist/api/reference/defects/query.js +58 -0
  364. package/dist/api/reference/defects/records.d.ts +172 -0
  365. package/dist/api/reference/defects/records.js +172 -0
  366. package/dist/api/reference/defects/security.d.ts +32 -0
  367. package/dist/api/reference/defects/security.js +32 -0
  368. package/dist/api/reference/defects/table.d.ts +21 -0
  369. package/dist/api/reference/defects/table.js +31 -0
  370. package/dist/api/reference/dialect/canonical.d.ts +10 -0
  371. package/dist/api/reference/dialect/canonical.js +42 -0
  372. package/dist/api/reference/dialect/presets.d.ts +63 -0
  373. package/dist/api/reference/dialect/presets.js +193 -0
  374. package/dist/api/reference/dialect/template.d.ts +3 -0
  375. package/dist/api/reference/dialect/template.js +63 -0
  376. package/dist/api/reference/dialect/types.d.ts +61 -0
  377. package/dist/api/reference/dialect/types.js +2 -0
  378. package/dist/api/reference/http/access.d.ts +27 -0
  379. package/dist/api/reference/http/access.js +131 -0
  380. package/dist/api/reference/http/auth/api-keys.d.ts +27 -0
  381. package/dist/api/reference/http/auth/api-keys.js +83 -0
  382. package/dist/api/reference/http/auth/credentials.d.ts +12 -0
  383. package/dist/api/reference/http/auth/credentials.js +33 -0
  384. package/dist/api/reference/http/auth/jwt.d.ts +11 -0
  385. package/dist/api/reference/http/auth/jwt.js +38 -0
  386. package/dist/api/reference/http/auth/sessions.d.ts +18 -0
  387. package/dist/api/reference/http/auth/sessions.js +105 -0
  388. package/dist/api/reference/http/auth/throttle.d.ts +8 -0
  389. package/dist/api/reference/http/auth/throttle.js +28 -0
  390. package/dist/api/reference/http/auth/types.d.ts +80 -0
  391. package/dist/api/reference/http/auth/types.js +3 -0
  392. package/dist/api/reference/http/body.d.ts +11 -0
  393. package/dist/api/reference/http/body.js +55 -0
  394. package/dist/api/reference/http/engines.d.ts +46 -0
  395. package/dist/api/reference/http/engines.js +75 -0
  396. package/dist/api/reference/http/errors.d.ts +16 -0
  397. package/dist/api/reference/http/errors.js +47 -0
  398. package/dist/api/reference/http/fetch.d.ts +4 -0
  399. package/dist/api/reference/http/fetch.js +12 -0
  400. package/dist/api/reference/http/handlers/actions.d.ts +6 -0
  401. package/dist/api/reference/http/handlers/actions.js +59 -0
  402. package/dist/api/reference/http/handlers/api-keys.d.ts +16 -0
  403. package/dist/api/reference/http/handlers/api-keys.js +64 -0
  404. package/dist/api/reference/http/handlers/auth.d.ts +25 -0
  405. package/dist/api/reference/http/handlers/auth.js +123 -0
  406. package/dist/api/reference/http/handlers/create.d.ts +6 -0
  407. package/dist/api/reference/http/handlers/create.js +141 -0
  408. package/dist/api/reference/http/handlers/entity.d.ts +9 -0
  409. package/dist/api/reference/http/handlers/entity.js +3 -0
  410. package/dist/api/reference/http/handlers/fixed.d.ts +16 -0
  411. package/dist/api/reference/http/handlers/fixed.js +129 -0
  412. package/dist/api/reference/http/handlers/grants.d.ts +6 -0
  413. package/dist/api/reference/http/handlers/grants.js +65 -0
  414. package/dist/api/reference/http/handlers/item.d.ts +8 -0
  415. package/dist/api/reference/http/handlers/item.js +129 -0
  416. package/dist/api/reference/http/handlers/list.d.ts +6 -0
  417. package/dist/api/reference/http/handlers/list.js +139 -0
  418. package/dist/api/reference/http/handlers/query-route.d.ts +4 -0
  419. package/dist/api/reference/http/handlers/query-route.js +35 -0
  420. package/dist/api/reference/http/handlers/styles.d.ts +4 -0
  421. package/dist/api/reference/http/handlers/styles.js +22 -0
  422. package/dist/api/reference/http/handlers/totp.d.ts +9 -0
  423. package/dist/api/reference/http/handlers/totp.js +34 -0
  424. package/dist/api/reference/http/ids.d.ts +38 -0
  425. package/dist/api/reference/http/ids.js +82 -0
  426. package/dist/api/reference/http/listing-query.d.ts +49 -0
  427. package/dist/api/reference/http/listing-query.js +120 -0
  428. package/dist/api/reference/http/node.d.ts +15 -0
  429. package/dist/api/reference/http/node.js +39 -0
  430. package/dist/api/reference/http/privileged.d.ts +12 -0
  431. package/dist/api/reference/http/privileged.js +27 -0
  432. package/dist/api/reference/http/read-cache.d.ts +27 -0
  433. package/dist/api/reference/http/read-cache.js +39 -0
  434. package/dist/api/reference/http/records.d.ts +36 -0
  435. package/dist/api/reference/http/records.js +116 -0
  436. package/dist/api/reference/http/reference.d.ts +48 -0
  437. package/dist/api/reference/http/reference.js +155 -0
  438. package/dist/api/reference/http/router.d.ts +6 -0
  439. package/dist/api/reference/http/router.js +121 -0
  440. package/dist/api/reference/http/routes.d.ts +9 -0
  441. package/dist/api/reference/http/routes.js +31 -0
  442. package/dist/api/reference/http/server.d.ts +10 -0
  443. package/dist/api/reference/http/server.js +25 -0
  444. package/dist/api/reference/http/state.d.ts +102 -0
  445. package/dist/api/reference/http/state.js +22 -0
  446. package/dist/api/reference/http/store-ops.d.ts +47 -0
  447. package/dist/api/reference/http/store-ops.js +161 -0
  448. package/dist/api/reference/http/validation.d.ts +26 -0
  449. package/dist/api/reference/http/validation.js +188 -0
  450. package/dist/api/reference/http/wire.d.ts +28 -0
  451. package/dist/api/reference/http/wire.js +23 -0
  452. package/dist/api/reference/listing/axes.d.ts +14 -0
  453. package/dist/api/reference/listing/axes.js +21 -0
  454. package/dist/api/reference/listing/order.d.ts +16 -0
  455. package/dist/api/reference/listing/order.js +37 -0
  456. package/dist/api/reference/listing/params.d.ts +19 -0
  457. package/dist/api/reference/listing/params.js +31 -0
  458. package/dist/api/reference/listing/predicate.d.ts +22 -0
  459. package/dist/api/reference/listing/predicate.js +56 -0
  460. package/dist/api/reference/listing/project.d.ts +14 -0
  461. package/dist/api/reference/listing/project.js +36 -0
  462. package/dist/api/reference/listing/run.d.ts +22 -0
  463. package/dist/api/reference/listing/run.js +88 -0
  464. package/dist/api/reference/listing/select.d.ts +13 -0
  465. package/dist/api/reference/listing/select.js +56 -0
  466. package/dist/api/reference/listing/types.d.ts +38 -0
  467. package/dist/api/reference/listing/types.js +2 -0
  468. package/dist/api/reference/listing/window.d.ts +23 -0
  469. package/dist/api/reference/listing/window.js +39 -0
  470. package/dist/api/reference/model/entities.d.ts +4 -0
  471. package/dist/api/reference/model/entities.js +7 -0
  472. package/dist/api/reference/model/fields.d.ts +11 -0
  473. package/dist/api/reference/model/fields.js +20 -0
  474. package/dist/api/reference/model/identity.d.ts +8 -0
  475. package/dist/api/reference/model/identity.js +27 -0
  476. package/dist/api/reference/model/job.d.ts +7 -0
  477. package/dist/api/reference/model/job.js +69 -0
  478. package/dist/api/reference/model/row.d.ts +4 -0
  479. package/dist/api/reference/model/row.js +46 -0
  480. package/dist/api/reference/model/shaped.d.ts +10 -0
  481. package/dist/api/reference/model/shaped.js +33 -0
  482. package/dist/api/reference/model/string-guard.d.ts +12 -0
  483. package/dist/api/reference/model/string-guard.js +15 -0
  484. package/dist/api/reference/model/table-shape.d.ts +7 -0
  485. package/dist/api/reference/model/table-shape.js +68 -0
  486. package/dist/api/reference/model/table.d.ts +4 -0
  487. package/dist/api/reference/model/table.js +72 -0
  488. package/dist/api/reference/model/timestamps.d.ts +4 -0
  489. package/dist/api/reference/model/timestamps.js +6 -0
  490. package/dist/api/reference/model/types.d.ts +92 -0
  491. package/dist/api/reference/model/types.js +8 -0
  492. package/dist/api/reference/model/webhook.d.ts +8 -0
  493. package/dist/api/reference/model/webhook.js +29 -0
  494. package/dist/api/reference/query/coerce.d.ts +10 -0
  495. package/dist/api/reference/query/coerce.js +27 -0
  496. package/dist/api/reference/query/compare.d.ts +6 -0
  497. package/dist/api/reference/query/compare.js +23 -0
  498. package/dist/api/reference/query/conventions.d.ts +20 -0
  499. package/dist/api/reference/query/conventions.js +3 -0
  500. package/dist/api/reference/query/evaluate.d.ts +6 -0
  501. package/dist/api/reference/query/evaluate.js +69 -0
  502. package/dist/api/reference/query/fields.d.ts +7 -0
  503. package/dist/api/reference/query/fields.js +18 -0
  504. package/dist/api/reference/query/filter.d.ts +18 -0
  505. package/dist/api/reference/query/filter.js +75 -0
  506. package/dist/api/reference/query/like.d.ts +5 -0
  507. package/dist/api/reference/query/like.js +38 -0
  508. package/dist/api/reference/query/operator.d.ts +7 -0
  509. package/dist/api/reference/query/operator.js +54 -0
  510. package/dist/api/reference/query/order.d.ts +10 -0
  511. package/dist/api/reference/query/order.js +59 -0
  512. package/dist/api/reference/query/scalar.d.ts +5 -0
  513. package/dist/api/reference/query/scalar.js +19 -0
  514. package/dist/api/reference/query/search.d.ts +9 -0
  515. package/dist/api/reference/query/search.js +24 -0
  516. package/dist/api/reference/query/split.d.ts +7 -0
  517. package/dist/api/reference/query/split.js +29 -0
  518. package/dist/api/reference/query/term-list.d.ts +7 -0
  519. package/dist/api/reference/query/term-list.js +40 -0
  520. package/dist/api/reference/query/term-types.d.ts +17 -0
  521. package/dist/api/reference/query/term-types.js +2 -0
  522. package/dist/api/reference/query/term.d.ts +5 -0
  523. package/dist/api/reference/query/term.js +98 -0
  524. package/dist/api/reference/query/tree.d.ts +6 -0
  525. package/dist/api/reference/query/tree.js +24 -0
  526. package/dist/api/reference/query-types.d.ts +76 -0
  527. package/dist/api/reference/query-types.js +4 -0
  528. package/dist/api/reference/shapes/catalog.d.ts +4 -0
  529. package/dist/api/reference/shapes/catalog.js +203 -0
  530. package/dist/api/reference/shapes/dialect.d.ts +5 -0
  531. package/dist/api/reference/shapes/dialect.js +61 -0
  532. package/dist/api/reference/shapes/named.d.ts +4 -0
  533. package/dist/api/reference/shapes/named.js +10 -0
  534. package/dist/api/reference/shapes/types.d.ts +112 -0
  535. package/dist/api/reference/shapes/types.js +14 -0
  536. package/dist/api/reference/spec/auth.d.ts +5 -0
  537. package/dist/api/reference/spec/auth.js +176 -0
  538. package/dist/api/reference/spec/build.d.ts +13 -0
  539. package/dist/api/reference/spec/build.js +66 -0
  540. package/dist/api/reference/spec/caller.d.ts +9 -0
  541. package/dist/api/reference/spec/caller.js +262 -0
  542. package/dist/api/reference/spec/collection.d.ts +17 -0
  543. package/dist/api/reference/spec/collection.js +146 -0
  544. package/dist/api/reference/spec/components.d.ts +4 -0
  545. package/dist/api/reference/spec/components.js +38 -0
  546. package/dist/api/reference/spec/consistency.d.ts +10 -0
  547. package/dist/api/reference/spec/consistency.js +10 -0
  548. package/dist/api/reference/spec/errors.d.ts +11 -0
  549. package/dist/api/reference/spec/errors.js +85 -0
  550. package/dist/api/reference/spec/invites.d.ts +5 -0
  551. package/dist/api/reference/spec/invites.js +92 -0
  552. package/dist/api/reference/spec/item.d.ts +6 -0
  553. package/dist/api/reference/spec/item.js +95 -0
  554. package/dist/api/reference/spec/jobs.d.ts +5 -0
  555. package/dist/api/reference/spec/jobs.js +119 -0
  556. package/dist/api/reference/spec/layout.d.ts +5 -0
  557. package/dist/api/reference/spec/layout.js +25 -0
  558. package/dist/api/reference/spec/operation.d.ts +15 -0
  559. package/dist/api/reference/spec/operation.js +31 -0
  560. package/dist/api/reference/spec/params.d.ts +12 -0
  561. package/dist/api/reference/spec/params.js +126 -0
  562. package/dist/api/reference/spec/public.d.ts +7 -0
  563. package/dist/api/reference/spec/public.js +65 -0
  564. package/dist/api/reference/spec/query-route.d.ts +10 -0
  565. package/dist/api/reference/spec/query-route.js +55 -0
  566. package/dist/api/reference/spec/query.d.ts +6 -0
  567. package/dist/api/reference/spec/query.js +109 -0
  568. package/dist/api/reference/spec/schemas.d.ts +21 -0
  569. package/dist/api/reference/spec/schemas.js +204 -0
  570. package/dist/api/reference/spec/security.d.ts +10 -0
  571. package/dist/api/reference/spec/security.js +19 -0
  572. package/dist/api/reference/spec/styles.d.ts +8 -0
  573. package/dist/api/reference/spec/styles.js +55 -0
  574. package/dist/api/reference/spec/types.d.ts +9 -0
  575. package/dist/api/reference/spec/types.js +2 -0
  576. package/dist/api/reference/store-api.d.ts +34 -0
  577. package/dist/api/reference/store-api.js +37 -0
  578. package/dist/api/reference/stores/memory.d.ts +29 -0
  579. package/dist/api/reference/stores/memory.js +66 -0
  580. package/dist/api/reference/stores/postgres-driver.d.ts +9 -0
  581. package/dist/api/reference/stores/postgres-driver.js +27 -0
  582. package/dist/api/reference/stores/postgres.d.ts +62 -0
  583. package/dist/api/reference/stores/postgres.js +188 -0
  584. package/dist/api/reference/stores/sql-compile.d.ts +53 -0
  585. package/dist/api/reference/stores/sql-compile.js +105 -0
  586. package/dist/api/reference/stores/sqlite-driver.d.ts +54 -0
  587. package/dist/api/reference/stores/sqlite-driver.js +100 -0
  588. package/dist/api/reference/stores/sqlite.d.ts +58 -0
  589. package/dist/api/reference/stores/sqlite.js +219 -0
  590. package/dist/api/report/confidence.d.ts +32 -0
  591. package/dist/api/report/confidence.js +134 -0
  592. package/dist/api/report/console/bypass.d.ts +13 -0
  593. package/dist/api/report/console/bypass.js +29 -0
  594. package/dist/api/report/console/catalog-checks.d.ts +9 -0
  595. package/dist/api/report/console/catalog-checks.js +106 -0
  596. package/dist/api/report/console/catalog.d.ts +45 -0
  597. package/dist/api/report/console/catalog.js +73 -0
  598. package/dist/api/report/console/describe.d.ts +27 -0
  599. package/dist/api/report/console/describe.js +58 -0
  600. package/dist/api/report/console/doctor-facts.d.ts +61 -0
  601. package/dist/api/report/console/doctor-facts.js +50 -0
  602. package/dist/api/report/console/doctor-notes.d.ts +12 -0
  603. package/dist/api/report/console/doctor-notes.js +77 -0
  604. package/dist/api/report/console/doctor-text.d.ts +12 -0
  605. package/dist/api/report/console/doctor-text.js +68 -0
  606. package/dist/api/report/console/doctor.d.ts +26 -0
  607. package/dist/api/report/console/doctor.js +78 -0
  608. package/dist/api/report/console/gaps.d.ts +9 -0
  609. package/dist/api/report/console/gaps.js +23 -0
  610. package/dist/api/report/console/plan.d.ts +19 -0
  611. package/dist/api/report/console/plan.js +138 -0
  612. package/dist/api/report/console/report.d.ts +8 -0
  613. package/dist/api/report/console/report.js +5 -0
  614. package/dist/api/report/console/roots.d.ts +28 -0
  615. package/dist/api/report/console/roots.js +34 -0
  616. package/dist/api/report/console/security-text.d.ts +8 -0
  617. package/dist/api/report/console/security-text.js +106 -0
  618. package/dist/api/report/console/security.d.ts +93 -0
  619. package/dist/api/report/console/security.js +153 -0
  620. package/dist/api/report/console/tags.d.ts +23 -0
  621. package/dist/api/report/console/tags.js +113 -0
  622. package/dist/api/report/diff.d.ts +57 -0
  623. package/dist/api/report/diff.js +95 -0
  624. package/dist/api/report/matrix/band.d.ts +7 -0
  625. package/dist/api/report/matrix/band.js +113 -0
  626. package/dist/api/report/matrix/cards.d.ts +9 -0
  627. package/dist/api/report/matrix/cards.js +41 -0
  628. package/dist/api/report/matrix/catalog.d.ts +33 -0
  629. package/dist/api/report/matrix/catalog.js +152 -0
  630. package/dist/api/report/matrix/graph.d.ts +16 -0
  631. package/dist/api/report/matrix/graph.js +108 -0
  632. package/dist/api/report/matrix/invalidate.d.ts +7 -0
  633. package/dist/api/report/matrix/invalidate.js +30 -0
  634. package/dist/api/report/matrix/loom.d.ts +7 -0
  635. package/dist/api/report/matrix/loom.js +117 -0
  636. package/dist/api/report/matrix/mermaid.d.ts +7 -0
  637. package/dist/api/report/matrix/mermaid.js +65 -0
  638. package/dist/api/report/matrix/poster.d.ts +10 -0
  639. package/dist/api/report/matrix/poster.js +105 -0
  640. package/dist/api/report/matrix/rows.d.ts +34 -0
  641. package/dist/api/report/matrix/rows.js +68 -0
  642. package/dist/api/report/matrix/slice.d.ts +25 -0
  643. package/dist/api/report/matrix/slice.js +62 -0
  644. package/dist/api/report/matrix/strips.d.ts +5 -0
  645. package/dist/api/report/matrix/strips.js +23 -0
  646. package/dist/api/report/matrix/style.d.ts +4 -0
  647. package/dist/api/report/matrix/style.js +103 -0
  648. package/dist/api/report/matrix/summary.d.ts +8 -0
  649. package/dist/api/report/matrix/summary.js +49 -0
  650. package/dist/api/report/matrix/text.d.ts +6 -0
  651. package/dist/api/report/matrix/text.js +10 -0
  652. package/dist/api/report/matrix/types.d.ts +149 -0
  653. package/dist/api/report/matrix/types.js +6 -0
  654. package/dist/api/report/matrix/view.d.ts +6 -0
  655. package/dist/api/report/matrix/view.js +41 -0
  656. package/dist/api/report/render/coverage.d.ts +29 -0
  657. package/dist/api/report/render/coverage.js +78 -0
  658. package/dist/api/report/render/input.d.ts +88 -0
  659. package/dist/api/report/render/input.js +2 -0
  660. package/dist/api/report/render/json.d.ts +9 -0
  661. package/dist/api/report/render/json.js +108 -0
  662. package/dist/api/report/render/junit.d.ts +14 -0
  663. package/dist/api/report/render/junit.js +218 -0
  664. package/dist/api/report/render/markdown-findings.d.ts +8 -0
  665. package/dist/api/report/render/markdown-findings.js +53 -0
  666. package/dist/api/report/render/markdown-head.d.ts +8 -0
  667. package/dist/api/report/render/markdown-head.js +82 -0
  668. package/dist/api/report/render/markdown-sections.d.ts +35 -0
  669. package/dist/api/report/render/markdown-sections.js +125 -0
  670. package/dist/api/report/render/markdown.d.ts +12 -0
  671. package/dist/api/report/render/markdown.js +38 -0
  672. package/dist/api/report/render/repro.d.ts +13 -0
  673. package/dist/api/report/render/repro.js +47 -0
  674. package/dist/api/report/render/scope.d.ts +8 -0
  675. package/dist/api/report/render/scope.js +98 -0
  676. package/dist/api/report/render/step-summary.d.ts +17 -0
  677. package/dist/api/report/render/step-summary.js +153 -0
  678. package/dist/api/report/render/summary.d.ts +3 -0
  679. package/dist/api/report/render/summary.js +143 -0
  680. package/dist/api/report/render/text.d.ts +13 -0
  681. package/dist/api/report/render/text.js +54 -0
  682. package/dist/api/report/render/traffic.d.ts +37 -0
  683. package/dist/api/report/render/traffic.js +54 -0
  684. package/dist/api/report/render/verdicts.d.ts +10 -0
  685. package/dist/api/report/render/verdicts.js +33 -0
  686. package/dist/api/runtime/accounts/identity.d.ts +14 -0
  687. package/dist/api/runtime/accounts/identity.js +30 -0
  688. package/dist/api/runtime/accounts/ledger.d.ts +68 -0
  689. package/dist/api/runtime/accounts/ledger.js +96 -0
  690. package/dist/api/runtime/accounts/ops.d.ts +28 -0
  691. package/dist/api/runtime/accounts/ops.js +35 -0
  692. package/dist/api/runtime/accounts/watch.d.ts +19 -0
  693. package/dist/api/runtime/accounts/watch.js +66 -0
  694. package/dist/api/runtime/async.d.ts +95 -0
  695. package/dist/api/runtime/async.js +206 -0
  696. package/dist/api/runtime/baseline.d.ts +34 -0
  697. package/dist/api/runtime/baseline.js +103 -0
  698. package/dist/api/runtime/blocked-check.d.ts +14 -0
  699. package/dist/api/runtime/blocked-check.js +18 -0
  700. package/dist/api/runtime/body/encode.d.ts +20 -0
  701. package/dist/api/runtime/body/encode.js +50 -0
  702. package/dist/api/runtime/body/form-data.d.ts +16 -0
  703. package/dist/api/runtime/body/form-data.js +41 -0
  704. package/dist/api/runtime/body/form-pairs.d.ts +13 -0
  705. package/dist/api/runtime/body/form-pairs.js +26 -0
  706. package/dist/api/runtime/body/multipart.d.ts +7 -0
  707. package/dist/api/runtime/body/multipart.js +78 -0
  708. package/dist/api/runtime/body/schema.d.ts +12 -0
  709. package/dist/api/runtime/body/schema.js +68 -0
  710. package/dist/api/runtime/body/types.d.ts +33 -0
  711. package/dist/api/runtime/body/types.js +3 -0
  712. package/dist/api/runtime/body/upload-parts.d.ts +14 -0
  713. package/dist/api/runtime/body/upload-parts.js +53 -0
  714. package/dist/api/runtime/check-costs.d.ts +15 -0
  715. package/dist/api/runtime/check-costs.js +133 -0
  716. package/dist/api/runtime/check-ids.d.ts +35 -0
  717. package/dist/api/runtime/check-ids.js +204 -0
  718. package/dist/api/runtime/checks/core/check.d.ts +116 -0
  719. package/dist/api/runtime/checks/core/check.js +3 -0
  720. package/dist/api/runtime/checks/core/context.d.ts +175 -0
  721. package/dist/api/runtime/checks/core/context.js +10 -0
  722. package/dist/api/runtime/checks/core/define.d.ts +7 -0
  723. package/dist/api/runtime/checks/core/define.js +10 -0
  724. package/dist/api/runtime/checks/core/operation-context.d.ts +162 -0
  725. package/dist/api/runtime/checks/core/operation-context.js +3 -0
  726. package/dist/api/runtime/checks/core/operation.d.ts +20 -0
  727. package/dist/api/runtime/checks/core/operation.js +33 -0
  728. package/dist/api/runtime/checks/core/plan.d.ts +30 -0
  729. package/dist/api/runtime/checks/core/plan.js +24 -0
  730. package/dist/api/runtime/checks/core/registry.d.ts +12 -0
  731. package/dist/api/runtime/checks/core/registry.js +38 -0
  732. package/dist/api/runtime/checks/core/run.d.ts +26 -0
  733. package/dist/api/runtime/checks/core/run.js +65 -0
  734. package/dist/api/runtime/checks/families/composition/plans.d.ts +35 -0
  735. package/dist/api/runtime/checks/families/composition/plans.js +147 -0
  736. package/dist/api/runtime/checks/families/composition/query-axes-compose.d.ts +19 -0
  737. package/dist/api/runtime/checks/families/composition/query-axes-compose.js +89 -0
  738. package/dist/api/runtime/checks/families/composition/query-filter-and-select-compose.d.ts +20 -0
  739. package/dist/api/runtime/checks/families/composition/query-filter-and-select-compose.js +83 -0
  740. package/dist/api/runtime/checks/families/composition/query-filter-search-select-compose.d.ts +12 -0
  741. package/dist/api/runtime/checks/families/composition/query-filter-search-select-compose.js +81 -0
  742. package/dist/api/runtime/checks/families/composition/query-filter-search-sort-compose.d.ts +14 -0
  743. package/dist/api/runtime/checks/families/composition/query-filter-search-sort-compose.js +84 -0
  744. package/dist/api/runtime/checks/families/composition/query-filter-search-sort-select-compose.d.ts +9 -0
  745. package/dist/api/runtime/checks/families/composition/query-filter-search-sort-select-compose.js +75 -0
  746. package/dist/api/runtime/checks/families/composition/query-filter-selects-from-whole-set.d.ts +19 -0
  747. package/dist/api/runtime/checks/families/composition/query-filter-selects-from-whole-set.js +101 -0
  748. package/dist/api/runtime/checks/families/composition/query-filter-sort-select-compose.d.ts +17 -0
  749. package/dist/api/runtime/checks/families/composition/query-filter-sort-select-compose.js +89 -0
  750. package/dist/api/runtime/checks/families/composition/query-search-and-filter-compose.d.ts +18 -0
  751. package/dist/api/runtime/checks/families/composition/query-search-and-filter-compose.js +84 -0
  752. package/dist/api/runtime/checks/families/composition/query-search-and-select-compose.d.ts +8 -0
  753. package/dist/api/runtime/checks/families/composition/query-search-and-select-compose.js +57 -0
  754. package/dist/api/runtime/checks/families/composition/query-search-and-sort-compose.d.ts +7 -0
  755. package/dist/api/runtime/checks/families/composition/query-search-and-sort-compose.js +79 -0
  756. package/dist/api/runtime/checks/families/composition/query-sort-and-select-compose.d.ts +7 -0
  757. package/dist/api/runtime/checks/families/composition/query-sort-and-select-compose.js +57 -0
  758. package/dist/api/runtime/checks/families/composition/query-unknown-parameter-consistent.d.ts +13 -0
  759. package/dist/api/runtime/checks/families/composition/query-unknown-parameter-consistent.js +76 -0
  760. package/dist/api/runtime/checks/families/conformance/response-status-is-documented.d.ts +10 -0
  761. package/dist/api/runtime/checks/families/conformance/response-status-is-documented.js +117 -0
  762. package/dist/api/runtime/checks/families/conformance/response-write-only-not-returned.d.ts +13 -0
  763. package/dist/api/runtime/checks/families/conformance/response-write-only-not-returned.js +116 -0
  764. package/dist/api/runtime/checks/families/conformance/schema-error-response-matches-document.d.ts +10 -0
  765. package/dist/api/runtime/checks/families/conformance/schema-error-response-matches-document.js +119 -0
  766. package/dist/api/runtime/checks/families/conformance/schema-problem-json-shape.d.ts +11 -0
  767. package/dist/api/runtime/checks/families/conformance/schema-problem-json-shape.js +92 -0
  768. package/dist/api/runtime/checks/families/conformance/schema-read-response-matches-document.d.ts +15 -0
  769. package/dist/api/runtime/checks/families/conformance/schema-read-response-matches-document.js +111 -0
  770. package/dist/api/runtime/checks/families/conformance/schema-success-response-matches-document.d.ts +10 -0
  771. package/dist/api/runtime/checks/families/conformance/schema-success-response-matches-document.js +58 -0
  772. package/dist/api/runtime/checks/families/conformance/schema-verdict.d.ts +12 -0
  773. package/dist/api/runtime/checks/families/conformance/schema-verdict.js +27 -0
  774. package/dist/api/runtime/checks/families/consistency/bypass-is-fresh.d.ts +12 -0
  775. package/dist/api/runtime/checks/families/consistency/bypass-is-fresh.js +57 -0
  776. package/dist/api/runtime/checks/families/consistency/consistency-projections-agree.d.ts +28 -0
  777. package/dist/api/runtime/checks/families/consistency/consistency-projections-agree.js +165 -0
  778. package/dist/api/runtime/checks/families/consistency/freshness-write.d.ts +37 -0
  779. package/dist/api/runtime/checks/families/consistency/freshness-write.js +79 -0
  780. package/dist/api/runtime/checks/families/consistency/invalidation-declared-route-changes.d.ts +22 -0
  781. package/dist/api/runtime/checks/families/consistency/invalidation-declared-route-changes.js +130 -0
  782. package/dist/api/runtime/checks/families/consistency/list-item-matches-listed-row.d.ts +7 -0
  783. package/dist/api/runtime/checks/families/consistency/list-item-matches-listed-row.js +71 -0
  784. package/dist/api/runtime/checks/families/consistency/list-read-after-write.d.ts +5 -0
  785. package/dist/api/runtime/checks/families/consistency/list-read-after-write.js +101 -0
  786. package/dist/api/runtime/checks/families/consistency/staleness-schedule.d.ts +15 -0
  787. package/dist/api/runtime/checks/families/consistency/staleness-schedule.js +31 -0
  788. package/dist/api/runtime/checks/families/consistency/staleness-watch.d.ts +35 -0
  789. package/dist/api/runtime/checks/families/consistency/staleness-watch.js +32 -0
  790. package/dist/api/runtime/checks/families/consistency/staleness-within-bound.d.ts +18 -0
  791. package/dist/api/runtime/checks/families/consistency/staleness-within-bound.js +109 -0
  792. package/dist/api/runtime/checks/families/effects-async/async-reaches-terminal-state.d.ts +3 -0
  793. package/dist/api/runtime/checks/families/effects-async/async-reaches-terminal-state.js +161 -0
  794. package/dist/api/runtime/checks/families/effects-async/async-receipt-identifies-the-job.d.ts +3 -0
  795. package/dist/api/runtime/checks/families/effects-async/async-receipt-identifies-the-job.js +54 -0
  796. package/dist/api/runtime/checks/families/effects-async/effect-verdicts.d.ts +27 -0
  797. package/dist/api/runtime/checks/families/effects-async/effect-verdicts.js +133 -0
  798. package/dist/api/runtime/checks/families/effects-async/effects-declared-effect-occurs.d.ts +3 -0
  799. package/dist/api/runtime/checks/families/effects-async/effects-declared-effect-occurs.js +174 -0
  800. package/dist/api/runtime/checks/families/effects-async/effects-side-effect-arrives.d.ts +7 -0
  801. package/dist/api/runtime/checks/families/effects-async/effects-side-effect-arrives.js +99 -0
  802. package/dist/api/runtime/checks/families/effects-async/observe.d.ts +25 -0
  803. package/dist/api/runtime/checks/families/effects-async/observe.js +39 -0
  804. package/dist/api/runtime/checks/families/effects-async/requests.d.ts +9 -0
  805. package/dist/api/runtime/checks/families/effects-async/requests.js +23 -0
  806. package/dist/api/runtime/checks/families/filter/compound.d.ts +51 -0
  807. package/dist/api/runtime/checks/families/filter/compound.js +75 -0
  808. package/dist/api/runtime/checks/families/filter/error-malformed-filter-not-5xx.d.ts +3 -0
  809. package/dist/api/runtime/checks/families/filter/error-malformed-filter-not-5xx.js +46 -0
  810. package/dist/api/runtime/checks/families/filter/fields.d.ts +16 -0
  811. package/dist/api/runtime/checks/families/filter/fields.js +54 -0
  812. package/dist/api/runtime/checks/families/filter/filter-alias-matches-canonical.d.ts +3 -0
  813. package/dist/api/runtime/checks/families/filter/filter-alias-matches-canonical.js +60 -0
  814. package/dist/api/runtime/checks/families/filter/filter-and-composes-as-intersection.d.ts +10 -0
  815. package/dist/api/runtime/checks/families/filter/filter-and-composes-as-intersection.js +54 -0
  816. package/dist/api/runtime/checks/families/filter/filter-condition-cap-rejected.d.ts +7 -0
  817. package/dist/api/runtime/checks/families/filter/filter-condition-cap-rejected.js +39 -0
  818. package/dist/api/runtime/checks/families/filter/filter-contains-membership.d.ts +8 -0
  819. package/dist/api/runtime/checks/families/filter/filter-contains-membership.js +66 -0
  820. package/dist/api/runtime/checks/families/filter/filter-empty-in.d.ts +8 -0
  821. package/dist/api/runtime/checks/families/filter/filter-empty-in.js +54 -0
  822. package/dist/api/runtime/checks/families/filter/filter-equality-selects-exactly-one.d.ts +7 -0
  823. package/dist/api/runtime/checks/families/filter/filter-equality-selects-exactly-one.js +45 -0
  824. package/dist/api/runtime/checks/families/filter/filter-gte-is-gt-or-eq.d.ts +4 -0
  825. package/dist/api/runtime/checks/families/filter/filter-gte-is-gt-or-eq.js +21 -0
  826. package/dist/api/runtime/checks/families/filter/filter-ilike-is-case-insensitive.d.ts +10 -0
  827. package/dist/api/runtime/checks/families/filter/filter-ilike-is-case-insensitive.js +65 -0
  828. package/dist/api/runtime/checks/families/filter/filter-illegal-op-rejected.d.ts +17 -0
  829. package/dist/api/runtime/checks/families/filter/filter-illegal-op-rejected.js +103 -0
  830. package/dist/api/runtime/checks/families/filter/filter-in-is-union-of-eq.d.ts +10 -0
  831. package/dist/api/runtime/checks/families/filter/filter-in-is-union-of-eq.js +57 -0
  832. package/dist/api/runtime/checks/families/filter/filter-in-over-limit-rejected.d.ts +7 -0
  833. package/dist/api/runtime/checks/families/filter/filter-in-over-limit-rejected.js +38 -0
  834. package/dist/api/runtime/checks/families/filter/filter-is-null-selects-nulls.d.ts +8 -0
  835. package/dist/api/runtime/checks/families/filter/filter-is-null-selects-nulls.js +71 -0
  836. package/dist/api/runtime/checks/families/filter/filter-like-metacharacters-escaped.d.ts +6 -0
  837. package/dist/api/runtime/checks/families/filter/filter-like-metacharacters-escaped.js +56 -0
  838. package/dist/api/runtime/checks/families/filter/filter-lte-is-lt-or-eq.d.ts +4 -0
  839. package/dist/api/runtime/checks/families/filter/filter-lte-is-lt-or-eq.js +21 -0
  840. package/dist/api/runtime/checks/families/filter/filter-malformed-term-rejected.d.ts +11 -0
  841. package/dist/api/runtime/checks/families/filter/filter-malformed-term-rejected.js +72 -0
  842. package/dist/api/runtime/checks/families/filter/filter-negation-partitions-the-set.d.ts +8 -0
  843. package/dist/api/runtime/checks/families/filter/filter-negation-partitions-the-set.js +99 -0
  844. package/dist/api/runtime/checks/families/filter/filter-nested-and-or-distributes.d.ts +8 -0
  845. package/dist/api/runtime/checks/families/filter/filter-nested-and-or-distributes.js +80 -0
  846. package/dist/api/runtime/checks/families/filter/filter-nin-complements-in.d.ts +8 -0
  847. package/dist/api/runtime/checks/families/filter/filter-nin-complements-in.js +90 -0
  848. package/dist/api/runtime/checks/families/filter/filter-numeric-comparison-is-numeric.d.ts +32 -0
  849. package/dist/api/runtime/checks/families/filter/filter-numeric-comparison-is-numeric.js +125 -0
  850. package/dist/api/runtime/checks/families/filter/filter-or-composes-as-union.d.ts +10 -0
  851. package/dist/api/runtime/checks/families/filter/filter-or-composes-as-union.js +58 -0
  852. package/dist/api/runtime/checks/families/filter/filter-ordered-triple-partitions.d.ts +9 -0
  853. package/dist/api/runtime/checks/families/filter/filter-ordered-triple-partitions.js +103 -0
  854. package/dist/api/runtime/checks/families/filter/filter-unknown-field-rejected.d.ts +5 -0
  855. package/dist/api/runtime/checks/families/filter/filter-unknown-field-rejected.js +53 -0
  856. package/dist/api/runtime/checks/families/filter/filter-zero-match-returns-none.d.ts +5 -0
  857. package/dist/api/runtime/checks/families/filter/filter-zero-match-returns-none.js +38 -0
  858. package/dist/api/runtime/checks/families/filter/range.d.ts +16 -0
  859. package/dist/api/runtime/checks/families/filter/range.js +57 -0
  860. package/dist/api/runtime/checks/families/isolation/auth-invite-grants-then-revokes.d.ts +10 -0
  861. package/dist/api/runtime/checks/families/isolation/auth-invite-grants-then-revokes.js +138 -0
  862. package/dist/api/runtime/checks/families/isolation/auth-rank-is-monotonic-on-writes.d.ts +14 -0
  863. package/dist/api/runtime/checks/families/isolation/auth-rank-is-monotonic-on-writes.js +127 -0
  864. package/dist/api/runtime/checks/families/isolation/auth-rank-is-monotonic.d.ts +18 -0
  865. package/dist/api/runtime/checks/families/isolation/auth-rank-is-monotonic.js +74 -0
  866. package/dist/api/runtime/checks/families/isolation/invite-flow.d.ts +66 -0
  867. package/dist/api/runtime/checks/families/isolation/invite-flow.js +160 -0
  868. package/dist/api/runtime/checks/families/isolation/tenant-denial-does-not-reveal-existence.d.ts +21 -0
  869. package/dist/api/runtime/checks/families/isolation/tenant-denial-does-not-reveal-existence.js +71 -0
  870. package/dist/api/runtime/checks/families/isolation/tenant-filter-does-not-bypass-scope.d.ts +8 -0
  871. package/dist/api/runtime/checks/families/isolation/tenant-filter-does-not-bypass-scope.js +68 -0
  872. package/dist/api/runtime/checks/families/isolation/tenant-item-not-readable-cross-tenant.d.ts +9 -0
  873. package/dist/api/runtime/checks/families/isolation/tenant-item-not-readable-cross-tenant.js +60 -0
  874. package/dist/api/runtime/checks/families/isolation/tenant-item-not-writable-cross-tenant.d.ts +18 -0
  875. package/dist/api/runtime/checks/families/isolation/tenant-item-not-writable-cross-tenant.js +120 -0
  876. package/dist/api/runtime/checks/families/isolation/tenant-parent-not-reachable-from-another-root.d.ts +17 -0
  877. package/dist/api/runtime/checks/families/isolation/tenant-parent-not-reachable-from-another-root.js +137 -0
  878. package/dist/api/runtime/checks/families/isolation/tenant.d.ts +8 -0
  879. package/dist/api/runtime/checks/families/isolation/tenant.js +11 -0
  880. package/dist/api/runtime/checks/families/pagination/count-consistent-with-returned-page.d.ts +10 -0
  881. package/dist/api/runtime/checks/families/pagination/count-consistent-with-returned-page.js +43 -0
  882. package/dist/api/runtime/checks/families/pagination/count-matches-filtered-set.d.ts +5 -0
  883. package/dist/api/runtime/checks/families/pagination/count-matches-filtered-set.js +44 -0
  884. package/dist/api/runtime/checks/families/pagination/pagination-bounds-handled.d.ts +14 -0
  885. package/dist/api/runtime/checks/families/pagination/pagination-bounds-handled.js +74 -0
  886. package/dist/api/runtime/checks/families/pagination/pagination-cursor-agrees-with-page.d.ts +3 -0
  887. package/dist/api/runtime/checks/families/pagination/pagination-cursor-agrees-with-page.js +109 -0
  888. package/dist/api/runtime/checks/families/pagination/pagination-has-more-is-accurate.d.ts +3 -0
  889. package/dist/api/runtime/checks/families/pagination/pagination-has-more-is-accurate.js +36 -0
  890. package/dist/api/runtime/checks/families/pagination/pagination-limit-bounds-enforced.d.ts +10 -0
  891. package/dist/api/runtime/checks/families/pagination/pagination-limit-bounds-enforced.js +54 -0
  892. package/dist/api/runtime/checks/families/pagination/pagination-limit-bounds-page-size.d.ts +3 -0
  893. package/dist/api/runtime/checks/families/pagination/pagination-limit-bounds-page-size.js +28 -0
  894. package/dist/api/runtime/checks/families/pagination/pagination-limit-respects-documented-max.d.ts +6 -0
  895. package/dist/api/runtime/checks/families/pagination/pagination-limit-respects-documented-max.js +39 -0
  896. package/dist/api/runtime/checks/families/pagination/pagination-page-walk-covers-set.d.ts +3 -0
  897. package/dist/api/runtime/checks/families/pagination/pagination-page-walk-covers-set.js +90 -0
  898. package/dist/api/runtime/checks/families/pagination/walk.d.ts +16 -0
  899. package/dist/api/runtime/checks/families/pagination/walk.js +23 -0
  900. package/dist/api/runtime/checks/families/search-select/search-case-insensitive.d.ts +6 -0
  901. package/dist/api/runtime/checks/families/search-select/search-case-insensitive.js +63 -0
  902. package/dist/api/runtime/checks/families/search-select/search-empty-q.d.ts +6 -0
  903. package/dist/api/runtime/checks/families/search-select/search-empty-q.js +51 -0
  904. package/dist/api/runtime/checks/families/search-select/search-mode-accepted.d.ts +3 -0
  905. package/dist/api/runtime/checks/families/search-select/search-mode-accepted.js +42 -0
  906. package/dist/api/runtime/checks/families/search-select/search-q-narrows-result.d.ts +5 -0
  907. package/dist/api/runtime/checks/families/search-select/search-q-narrows-result.js +38 -0
  908. package/dist/api/runtime/checks/families/search-select/search-tokens-and.d.ts +6 -0
  909. package/dist/api/runtime/checks/families/search-select/search-tokens-and.js +64 -0
  910. package/dist/api/runtime/checks/families/search-select/select-nested-honored.d.ts +10 -0
  911. package/dist/api/runtime/checks/families/search-select/select-nested-honored.js +60 -0
  912. package/dist/api/runtime/checks/families/search-select/select-projection-honored.d.ts +6 -0
  913. package/dist/api/runtime/checks/families/search-select/select-projection-honored.js +42 -0
  914. package/dist/api/runtime/checks/families/search-select/select-requested-fields-present.d.ts +6 -0
  915. package/dist/api/runtime/checks/families/search-select/select-requested-fields-present.js +45 -0
  916. package/dist/api/runtime/checks/families/search-select/select-unknown-field-rejected.d.ts +8 -0
  917. package/dist/api/runtime/checks/families/search-select/select-unknown-field-rejected.js +48 -0
  918. package/dist/api/runtime/checks/families/security/auth-alternative-accepted.d.ts +20 -0
  919. package/dist/api/runtime/checks/families/security/auth-alternative-accepted.js +84 -0
  920. package/dist/api/runtime/checks/families/security/auth-anonymous-operation-open.d.ts +6 -0
  921. package/dist/api/runtime/checks/families/security/auth-anonymous-operation-open.js +47 -0
  922. package/dist/api/runtime/checks/families/security/auth-cross-tenant-key-refused.d.ts +20 -0
  923. package/dist/api/runtime/checks/families/security/auth-cross-tenant-key-refused.js +89 -0
  924. package/dist/api/runtime/checks/families/security/auth-invalid-credential-refused.d.ts +16 -0
  925. package/dist/api/runtime/checks/families/security/auth-invalid-credential-refused.js +67 -0
  926. package/dist/api/runtime/checks/families/security/auth-login-throttled.d.ts +16 -0
  927. package/dist/api/runtime/checks/families/security/auth-login-throttled.js +91 -0
  928. package/dist/api/runtime/checks/families/security/auth-missing-credential-refused.d.ts +4 -0
  929. package/dist/api/runtime/checks/families/security/auth-missing-credential-refused.js +29 -0
  930. package/dist/api/runtime/checks/families/security/auth-privileged-field-ignored.d.ts +34 -0
  931. package/dist/api/runtime/checks/families/security/auth-privileged-field-ignored.js +210 -0
  932. package/dist/api/runtime/checks/families/security/auth-refresh-reuse-refused.d.ts +10 -0
  933. package/dist/api/runtime/checks/families/security/auth-refresh-reuse-refused.js +52 -0
  934. package/dist/api/runtime/checks/families/security/auth-revoked-credential-refused.d.ts +10 -0
  935. package/dist/api/runtime/checks/families/security/auth-revoked-credential-refused.js +57 -0
  936. package/dist/api/runtime/checks/families/security/auth-role-enforced.d.ts +21 -0
  937. package/dist/api/runtime/checks/families/security/auth-role-enforced.js +74 -0
  938. package/dist/api/runtime/checks/families/security/auth-scope-enforced.d.ts +10 -0
  939. package/dist/api/runtime/checks/families/security/auth-scope-enforced.js +89 -0
  940. package/dist/api/runtime/checks/families/security/auth-wrong-scheme-refused.d.ts +10 -0
  941. package/dist/api/runtime/checks/families/security/auth-wrong-scheme-refused.js +45 -0
  942. package/dist/api/runtime/checks/families/security/lifecycle.d.ts +70 -0
  943. package/dist/api/runtime/checks/families/security/lifecycle.js +161 -0
  944. package/dist/api/runtime/checks/families/security/privileged-signup.d.ts +44 -0
  945. package/dist/api/runtime/checks/families/security/privileged-signup.js +227 -0
  946. package/dist/api/runtime/checks/families/security/probing.d.ts +77 -0
  947. package/dist/api/runtime/checks/families/security/probing.js +148 -0
  948. package/dist/api/runtime/checks/families/security/writable.d.ts +19 -0
  949. package/dist/api/runtime/checks/families/security/writable.js +40 -0
  950. package/dist/api/runtime/checks/families/sort/sort-default-order-applied.d.ts +5 -0
  951. package/dist/api/runtime/checks/families/sort/sort-default-order-applied.js +47 -0
  952. package/dist/api/runtime/checks/families/sort/sort-invalid-direction-rejected.d.ts +10 -0
  953. package/dist/api/runtime/checks/families/sort/sort-invalid-direction-rejected.js +56 -0
  954. package/dist/api/runtime/checks/families/sort/sort-multi-key-tiebreak.d.ts +8 -0
  955. package/dist/api/runtime/checks/families/sort/sort-multi-key-tiebreak.js +76 -0
  956. package/dist/api/runtime/checks/families/sort/sort-nulls-first-last.d.ts +8 -0
  957. package/dist/api/runtime/checks/families/sort/sort-nulls-first-last.js +67 -0
  958. package/dist/api/runtime/checks/families/sort/sort-numeric-order-is-numeric.d.ts +6 -0
  959. package/dist/api/runtime/checks/families/sort/sort-numeric-order-is-numeric.js +44 -0
  960. package/dist/api/runtime/checks/families/sort/sort-order-is-applied.d.ts +5 -0
  961. package/dist/api/runtime/checks/families/sort/sort-order-is-applied.js +54 -0
  962. package/dist/api/runtime/checks/families/sort/sort-reverse-symmetry.d.ts +5 -0
  963. package/dist/api/runtime/checks/families/sort/sort-reverse-symmetry.js +115 -0
  964. package/dist/api/runtime/checks/families/sort/sort-stable-tiebreak.d.ts +6 -0
  965. package/dist/api/runtime/checks/families/sort/sort-stable-tiebreak.js +80 -0
  966. package/dist/api/runtime/checks/families/sort/sort-unknown-field-rejected.d.ts +3 -0
  967. package/dist/api/runtime/checks/families/sort/sort-unknown-field-rejected.js +38 -0
  968. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-filterable-is-filterable.d.ts +18 -0
  969. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-filterable-is-filterable.js +139 -0
  970. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-filterable-ops-accepted.d.ts +3 -0
  971. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-filterable-ops-accepted.js +90 -0
  972. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-rate-limit-is-honored.d.ts +14 -0
  973. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-rate-limit-is-honored.js +62 -0
  974. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-selectable-is-selectable.d.ts +8 -0
  975. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-selectable-is-selectable.js +79 -0
  976. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-sortable-is-sortable.d.ts +8 -0
  977. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-sortable-is-sortable.js +76 -0
  978. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-sortable-nulls-accepted.d.ts +3 -0
  979. package/dist/api/runtime/checks/families/spec-declarations/spec-declared-sortable-nulls-accepted.js +52 -0
  980. package/dist/api/runtime/checks/families/validation/bodies.d.ts +16 -0
  981. package/dist/api/runtime/checks/families/validation/bodies.js +30 -0
  982. package/dist/api/runtime/checks/families/validation/invalid-body.d.ts +29 -0
  983. package/dist/api/runtime/checks/families/validation/invalid-body.js +52 -0
  984. package/dist/api/runtime/checks/families/validation/request-invalid-body-refused.d.ts +18 -0
  985. package/dist/api/runtime/checks/families/validation/request-invalid-body-refused.js +152 -0
  986. package/dist/api/runtime/checks/families/validation/undeliverable.d.ts +3 -0
  987. package/dist/api/runtime/checks/families/validation/undeliverable.js +40 -0
  988. package/dist/api/runtime/checks/families/validation/validation-content-type-enforced.d.ts +9 -0
  989. package/dist/api/runtime/checks/families/validation/validation-content-type-enforced.js +50 -0
  990. package/dist/api/runtime/checks/families/validation/validation-enum-enforced.d.ts +6 -0
  991. package/dist/api/runtime/checks/families/validation/validation-enum-enforced.js +44 -0
  992. package/dist/api/runtime/checks/families/validation/validation-max-length-enforced.d.ts +6 -0
  993. package/dist/api/runtime/checks/families/validation/validation-max-length-enforced.js +44 -0
  994. package/dist/api/runtime/checks/families/validation/validation-required-enforced.d.ts +6 -0
  995. package/dist/api/runtime/checks/families/validation/validation-required-enforced.js +40 -0
  996. package/dist/api/runtime/checks/families/write/concurrency-if-match-enforced.d.ts +23 -0
  997. package/dist/api/runtime/checks/families/write/concurrency-if-match-enforced.js +154 -0
  998. package/dist/api/runtime/checks/families/write/concurrency-no-lost-update.d.ts +14 -0
  999. package/dist/api/runtime/checks/families/write/concurrency-no-lost-update.js +216 -0
  1000. package/dist/api/runtime/checks/families/write/create-keeps-submitted-identity.d.ts +11 -0
  1001. package/dist/api/runtime/checks/families/write/create-keeps-submitted-identity.js +122 -0
  1002. package/dist/api/runtime/checks/families/write/create-persists-submitted-fields.d.ts +20 -0
  1003. package/dist/api/runtime/checks/families/write/create-persists-submitted-fields.js +209 -0
  1004. package/dist/api/runtime/checks/families/write/create-status-matches-document.d.ts +7 -0
  1005. package/dist/api/runtime/checks/families/write/create-status-matches-document.js +34 -0
  1006. package/dist/api/runtime/checks/families/write/create-unique-conflict-rejected.d.ts +11 -0
  1007. package/dist/api/runtime/checks/families/write/create-unique-conflict-rejected.js +172 -0
  1008. package/dist/api/runtime/checks/families/write/delete-absent-record-returns-404.d.ts +7 -0
  1009. package/dist/api/runtime/checks/families/write/delete-absent-record-returns-404.js +46 -0
  1010. package/dist/api/runtime/checks/families/write/idempotency-replay-does-not-duplicate.d.ts +21 -0
  1011. package/dist/api/runtime/checks/families/write/idempotency-replay-does-not-duplicate.js +132 -0
  1012. package/dist/api/runtime/checks/families/write/patch-immutable-field-rejected.d.ts +8 -0
  1013. package/dist/api/runtime/checks/families/write/patch-immutable-field-rejected.js +65 -0
  1014. package/dist/api/runtime/checks/families/write/patch-minimality.d.ts +8 -0
  1015. package/dist/api/runtime/checks/families/write/patch-minimality.js +160 -0
  1016. package/dist/api/runtime/checks/families/write/payload-cases.d.ts +37 -0
  1017. package/dist/api/runtime/checks/families/write/payload-cases.js +132 -0
  1018. package/dist/api/runtime/checks/families/write/payload-claims.d.ts +28 -0
  1019. package/dist/api/runtime/checks/families/write/payload-claims.js +46 -0
  1020. package/dist/api/runtime/checks/families/write/payload-probe.d.ts +48 -0
  1021. package/dist/api/runtime/checks/families/write/payload-probe.js +172 -0
  1022. package/dist/api/runtime/checks/families/write/payload-string-survives.d.ts +9 -0
  1023. package/dist/api/runtime/checks/families/write/payload-string-survives.js +135 -0
  1024. package/dist/api/runtime/checks/families/write/records.d.ts +16 -0
  1025. package/dist/api/runtime/checks/families/write/records.js +51 -0
  1026. package/dist/api/runtime/checks/families/write/softdelete-absent-from-default-list.d.ts +6 -0
  1027. package/dist/api/runtime/checks/families/write/softdelete-absent-from-default-list.js +56 -0
  1028. package/dist/api/runtime/checks/families/write/update-persists-submitted-fields.d.ts +17 -0
  1029. package/dist/api/runtime/checks/families/write/update-persists-submitted-fields.js +150 -0
  1030. package/dist/api/runtime/checks/families/write/update-unique-conflict-rejected.d.ts +9 -0
  1031. package/dist/api/runtime/checks/families/write/update-unique-conflict-rejected.js +140 -0
  1032. package/dist/api/runtime/checks/isolation/scratch.d.ts +38 -0
  1033. package/dist/api/runtime/checks/isolation/scratch.js +74 -0
  1034. package/dist/api/runtime/checks/payloads/body.d.ts +36 -0
  1035. package/dist/api/runtime/checks/payloads/body.js +122 -0
  1036. package/dist/api/runtime/checks/payloads/create.d.ts +18 -0
  1037. package/dist/api/runtime/checks/payloads/create.js +26 -0
  1038. package/dist/api/runtime/checks/payloads/identity.d.ts +29 -0
  1039. package/dist/api/runtime/checks/payloads/identity.js +81 -0
  1040. package/dist/api/runtime/checks/payloads/item-schema.d.ts +20 -0
  1041. package/dist/api/runtime/checks/payloads/item-schema.js +39 -0
  1042. package/dist/api/runtime/checks/payloads/lanes.d.ts +12 -0
  1043. package/dist/api/runtime/checks/payloads/lanes.js +10 -0
  1044. package/dist/api/runtime/checks/payloads/stored-as.d.ts +7 -0
  1045. package/dist/api/runtime/checks/payloads/stored-as.js +14 -0
  1046. package/dist/api/runtime/checks/payloads/update-drops.d.ts +10 -0
  1047. package/dist/api/runtime/checks/payloads/update-drops.js +16 -0
  1048. package/dist/api/runtime/checks/planning/declarations.d.ts +7 -0
  1049. package/dist/api/runtime/checks/planning/declarations.js +11 -0
  1050. package/dist/api/runtime/checks/planning/refusal.d.ts +21 -0
  1051. package/dist/api/runtime/checks/planning/refusal.js +39 -0
  1052. package/dist/api/runtime/checks/planning/stand-down.d.ts +26 -0
  1053. package/dist/api/runtime/checks/planning/stand-down.js +47 -0
  1054. package/dist/api/runtime/checks/planning/subjects.d.ts +32 -0
  1055. package/dist/api/runtime/checks/planning/subjects.js +51 -0
  1056. package/dist/api/runtime/checks/query/capabilities.d.ts +66 -0
  1057. package/dist/api/runtime/checks/query/capabilities.js +169 -0
  1058. package/dist/api/runtime/checks/query/order.d.ts +56 -0
  1059. package/dist/api/runtime/checks/query/order.js +145 -0
  1060. package/dist/api/runtime/checks/registry.d.ts +3 -0
  1061. package/dist/api/runtime/checks/registry.js +289 -0
  1062. package/dist/api/runtime/checks/sets/compare.d.ts +76 -0
  1063. package/dist/api/runtime/checks/sets/compare.js +148 -0
  1064. package/dist/api/runtime/checks/sets/list.d.ts +44 -0
  1065. package/dist/api/runtime/checks/sets/list.js +77 -0
  1066. package/dist/api/runtime/checks/sets/read.d.ts +58 -0
  1067. package/dist/api/runtime/checks/sets/read.js +196 -0
  1068. package/dist/api/runtime/contract/calls.d.ts +7 -0
  1069. package/dist/api/runtime/contract/calls.js +88 -0
  1070. package/dist/api/runtime/contract/check.d.ts +13 -0
  1071. package/dist/api/runtime/contract/check.js +19 -0
  1072. package/dist/api/runtime/contract/deletes.d.ts +8 -0
  1073. package/dist/api/runtime/contract/deletes.js +131 -0
  1074. package/dist/api/runtime/contract/judge.d.ts +9 -0
  1075. package/dist/api/runtime/contract/judge.js +47 -0
  1076. package/dist/api/runtime/contract/made-by-run.d.ts +17 -0
  1077. package/dist/api/runtime/contract/made-by-run.js +53 -0
  1078. package/dist/api/runtime/contract/params.d.ts +26 -0
  1079. package/dist/api/runtime/contract/params.js +73 -0
  1080. package/dist/api/runtime/contract/request.d.ts +43 -0
  1081. package/dist/api/runtime/contract/request.js +232 -0
  1082. package/dist/api/runtime/contract/types.d.ts +90 -0
  1083. package/dist/api/runtime/contract/types.js +2 -0
  1084. package/dist/api/runtime/cookies/jar.d.ts +27 -0
  1085. package/dist/api/runtime/cookies/jar.js +112 -0
  1086. package/dist/api/runtime/cookies/redirect.d.ts +28 -0
  1087. package/dist/api/runtime/cookies/redirect.js +40 -0
  1088. package/dist/api/runtime/cookies/save-as.d.ts +30 -0
  1089. package/dist/api/runtime/cookies/save-as.js +50 -0
  1090. package/dist/api/runtime/cookies/set-cookie.d.ts +12 -0
  1091. package/dist/api/runtime/cookies/set-cookie.js +83 -0
  1092. package/dist/api/runtime/create-tracker.d.ts +41 -0
  1093. package/dist/api/runtime/create-tracker.js +181 -0
  1094. package/dist/api/runtime/created-id.d.ts +84 -0
  1095. package/dist/api/runtime/created-id.js +162 -0
  1096. package/dist/api/runtime/credential-records.d.ts +21 -0
  1097. package/dist/api/runtime/credential-records.js +34 -0
  1098. package/dist/api/runtime/disposable/after.d.ts +26 -0
  1099. package/dist/api/runtime/disposable/after.js +96 -0
  1100. package/dist/api/runtime/disposable/check.d.ts +21 -0
  1101. package/dist/api/runtime/disposable/check.js +33 -0
  1102. package/dist/api/runtime/disposable/lists.d.ts +13 -0
  1103. package/dist/api/runtime/disposable/lists.js +47 -0
  1104. package/dist/api/runtime/disposable/one.d.ts +15 -0
  1105. package/dist/api/runtime/disposable/one.js +98 -0
  1106. package/dist/api/runtime/disposable/run.d.ts +7 -0
  1107. package/dist/api/runtime/disposable/run.js +54 -0
  1108. package/dist/api/runtime/disposable/signup.d.ts +11 -0
  1109. package/dist/api/runtime/disposable/signup.js +14 -0
  1110. package/dist/api/runtime/disposable/types.d.ts +48 -0
  1111. package/dist/api/runtime/disposable/types.js +2 -0
  1112. package/dist/api/runtime/dummy.d.ts +23 -0
  1113. package/dist/api/runtime/dummy.js +218 -0
  1114. package/dist/api/runtime/effects/bind.d.ts +31 -0
  1115. package/dist/api/runtime/effects/bind.js +98 -0
  1116. package/dist/api/runtime/effects/cardinality.d.ts +27 -0
  1117. package/dist/api/runtime/effects/cardinality.js +26 -0
  1118. package/dist/api/runtime/effects/ids.d.ts +15 -0
  1119. package/dist/api/runtime/effects/ids.js +95 -0
  1120. package/dist/api/runtime/effects/pointer.d.ts +6 -0
  1121. package/dist/api/runtime/effects/pointer.js +40 -0
  1122. package/dist/api/runtime/effects/scope.d.ts +45 -0
  1123. package/dist/api/runtime/effects/scope.js +87 -0
  1124. package/dist/api/runtime/evidence.d.ts +27 -0
  1125. package/dist/api/runtime/evidence.js +246 -0
  1126. package/dist/api/runtime/exchange.d.ts +141 -0
  1127. package/dist/api/runtime/exchange.js +96 -0
  1128. package/dist/api/runtime/exchanges/blobs.d.ts +19 -0
  1129. package/dist/api/runtime/exchanges/blobs.js +40 -0
  1130. package/dist/api/runtime/exchanges/bytes.d.ts +6 -0
  1131. package/dist/api/runtime/exchanges/bytes.js +21 -0
  1132. package/dist/api/runtime/exchanges/files.d.ts +11 -0
  1133. package/dist/api/runtime/exchanges/files.js +29 -0
  1134. package/dist/api/runtime/exchanges/form-parts.d.ts +14 -0
  1135. package/dist/api/runtime/exchanges/form-parts.js +19 -0
  1136. package/dist/api/runtime/exchanges/journal.d.ts +68 -0
  1137. package/dist/api/runtime/exchanges/journal.js +144 -0
  1138. package/dist/api/runtime/exchanges/media.d.ts +5 -0
  1139. package/dist/api/runtime/exchanges/media.js +23 -0
  1140. package/dist/api/runtime/exchanges/persist.d.ts +6 -0
  1141. package/dist/api/runtime/exchanges/persist.js +84 -0
  1142. package/dist/api/runtime/exit.d.ts +59 -0
  1143. package/dist/api/runtime/exit.js +94 -0
  1144. package/dist/api/runtime/feature-gate.d.ts +14 -0
  1145. package/dist/api/runtime/feature-gate.js +47 -0
  1146. package/dist/api/runtime/fence.d.ts +29 -0
  1147. package/dist/api/runtime/fence.js +39 -0
  1148. package/dist/api/runtime/fill-path.d.ts +8 -0
  1149. package/dist/api/runtime/fill-path.js +16 -0
  1150. package/dist/api/runtime/finding-key.d.ts +12 -0
  1151. package/dist/api/runtime/finding-key.js +33 -0
  1152. package/dist/api/runtime/finding.d.ts +142 -0
  1153. package/dist/api/runtime/finding.js +151 -0
  1154. package/dist/api/runtime/fixture.d.ts +87 -0
  1155. package/dist/api/runtime/fixture.js +197 -0
  1156. package/dist/api/runtime/generate/algebra.d.ts +14 -0
  1157. package/dist/api/runtime/generate/algebra.js +112 -0
  1158. package/dist/api/runtime/generate/array.d.ts +4 -0
  1159. package/dist/api/runtime/generate/array.js +45 -0
  1160. package/dist/api/runtime/generate/branches.d.ts +12 -0
  1161. package/dist/api/runtime/generate/branches.js +63 -0
  1162. package/dist/api/runtime/generate/expand.d.ts +3 -0
  1163. package/dist/api/runtime/generate/expand.js +66 -0
  1164. package/dist/api/runtime/generate/format.d.ts +7 -0
  1165. package/dist/api/runtime/generate/format.js +61 -0
  1166. package/dist/api/runtime/generate/generate.d.ts +18 -0
  1167. package/dist/api/runtime/generate/generate.js +43 -0
  1168. package/dist/api/runtime/generate/identifiers.d.ts +14 -0
  1169. package/dist/api/runtime/generate/identifiers.js +64 -0
  1170. package/dist/api/runtime/generate/instance.d.ts +4 -0
  1171. package/dist/api/runtime/generate/instance.js +59 -0
  1172. package/dist/api/runtime/generate/nonce.d.ts +3 -0
  1173. package/dist/api/runtime/generate/nonce.js +8 -0
  1174. package/dist/api/runtime/generate/number.d.ts +5 -0
  1175. package/dist/api/runtime/generate/number.js +64 -0
  1176. package/dist/api/runtime/generate/object.d.ts +4 -0
  1177. package/dist/api/runtime/generate/object.js +31 -0
  1178. package/dist/api/runtime/generate/pattern.d.ts +9 -0
  1179. package/dist/api/runtime/generate/pattern.js +46 -0
  1180. package/dist/api/runtime/generate/probes.d.ts +9 -0
  1181. package/dist/api/runtime/generate/probes.js +36 -0
  1182. package/dist/api/runtime/generate/string-constraints.d.ts +19 -0
  1183. package/dist/api/runtime/generate/string-constraints.js +48 -0
  1184. package/dist/api/runtime/generate/string.d.ts +5 -0
  1185. package/dist/api/runtime/generate/string.js +80 -0
  1186. package/dist/api/runtime/generate/text.d.ts +6 -0
  1187. package/dist/api/runtime/generate/text.js +20 -0
  1188. package/dist/api/runtime/generate/types.d.ts +45 -0
  1189. package/dist/api/runtime/generate/types.js +3 -0
  1190. package/dist/api/runtime/generate/unconstructible.d.ts +7 -0
  1191. package/dist/api/runtime/generate/unconstructible.js +11 -0
  1192. package/dist/api/runtime/grades.d.ts +40 -0
  1193. package/dist/api/runtime/grades.js +47 -0
  1194. package/dist/api/runtime/headers.d.ts +6 -0
  1195. package/dist/api/runtime/headers.js +16 -0
  1196. package/dist/api/runtime/inferred-create.d.ts +31 -0
  1197. package/dist/api/runtime/inferred-create.js +99 -0
  1198. package/dist/api/runtime/input.d.ts +13 -0
  1199. package/dist/api/runtime/input.js +47 -0
  1200. package/dist/api/runtime/network/fetch.d.ts +19 -0
  1201. package/dist/api/runtime/network/fetch.js +86 -0
  1202. package/dist/api/runtime/network/gate.d.ts +23 -0
  1203. package/dist/api/runtime/network/gate.js +63 -0
  1204. package/dist/api/runtime/network/interfaces.d.ts +6 -0
  1205. package/dist/api/runtime/network/interfaces.js +17 -0
  1206. package/dist/api/runtime/network/policy.d.ts +17 -0
  1207. package/dist/api/runtime/network/policy.js +25 -0
  1208. package/dist/api/runtime/network/probe.d.ts +8 -0
  1209. package/dist/api/runtime/network/probe.js +29 -0
  1210. package/dist/api/runtime/no-security.d.ts +4 -0
  1211. package/dist/api/runtime/no-security.js +9 -0
  1212. package/dist/api/runtime/nonexistent-identity.d.ts +9 -0
  1213. package/dist/api/runtime/nonexistent-identity.js +18 -0
  1214. package/dist/api/runtime/one-shot.d.ts +27 -0
  1215. package/dist/api/runtime/one-shot.js +76 -0
  1216. package/dist/api/runtime/own-record.d.ts +76 -0
  1217. package/dist/api/runtime/own-record.js +188 -0
  1218. package/dist/api/runtime/payloads.d.ts +25 -0
  1219. package/dist/api/runtime/payloads.js +252 -0
  1220. package/dist/api/runtime/poll.d.ts +29 -0
  1221. package/dist/api/runtime/poll.js +59 -0
  1222. package/dist/api/runtime/principals.d.ts +66 -0
  1223. package/dist/api/runtime/principals.js +133 -0
  1224. package/dist/api/runtime/privileged-create.d.ts +13 -0
  1225. package/dist/api/runtime/privileged-create.js +21 -0
  1226. package/dist/api/runtime/probe-judging.d.ts +9 -0
  1227. package/dist/api/runtime/probe-judging.js +26 -0
  1228. package/dist/api/runtime/profile.d.ts +36 -0
  1229. package/dist/api/runtime/profile.js +63 -0
  1230. package/dist/api/runtime/progress/columns.d.ts +14 -0
  1231. package/dist/api/runtime/progress/columns.js +49 -0
  1232. package/dist/api/runtime/progress/fields.d.ts +27 -0
  1233. package/dist/api/runtime/progress/fields.js +78 -0
  1234. package/dist/api/runtime/progress/format.d.ts +6 -0
  1235. package/dist/api/runtime/progress/format.js +96 -0
  1236. package/dist/api/runtime/progress/pump.d.ts +16 -0
  1237. package/dist/api/runtime/progress/pump.js +69 -0
  1238. package/dist/api/runtime/progress/types.d.ts +39 -0
  1239. package/dist/api/runtime/progress/types.js +3 -0
  1240. package/dist/api/runtime/proven-id.d.ts +31 -0
  1241. package/dist/api/runtime/proven-id.js +38 -0
  1242. package/dist/api/runtime/query-capabilities.d.ts +27 -0
  1243. package/dist/api/runtime/query-capabilities.js +69 -0
  1244. package/dist/api/runtime/query.d.ts +11 -0
  1245. package/dist/api/runtime/query.js +21 -0
  1246. package/dist/api/runtime/rate-limit/bucket.d.ts +21 -0
  1247. package/dist/api/runtime/rate-limit/bucket.js +54 -0
  1248. package/dist/api/runtime/rate-limit/limiter.d.ts +52 -0
  1249. package/dist/api/runtime/rate-limit/limiter.js +103 -0
  1250. package/dist/api/runtime/rate-limit/match.d.ts +26 -0
  1251. package/dist/api/runtime/rate-limit/match.js +55 -0
  1252. package/dist/api/runtime/rate-limit/retry-after.d.ts +40 -0
  1253. package/dist/api/runtime/rate-limit/retry-after.js +81 -0
  1254. package/dist/api/runtime/rate-limit/rules.d.ts +35 -0
  1255. package/dist/api/runtime/rate-limit/rules.js +61 -0
  1256. package/dist/api/runtime/root-read.d.ts +22 -0
  1257. package/dist/api/runtime/root-read.js +78 -0
  1258. package/dist/api/runtime/run/account-hook.d.ts +19 -0
  1259. package/dist/api/runtime/run/account-hook.js +67 -0
  1260. package/dist/api/runtime/run/accounts.d.ts +22 -0
  1261. package/dist/api/runtime/run/accounts.js +215 -0
  1262. package/dist/api/runtime/run/acting.d.ts +5 -0
  1263. package/dist/api/runtime/run/acting.js +36 -0
  1264. package/dist/api/runtime/run/check-accounts.d.ts +5 -0
  1265. package/dist/api/runtime/run/check-accounts.js +28 -0
  1266. package/dist/api/runtime/run/client-setup.d.ts +8 -0
  1267. package/dist/api/runtime/run/client-setup.js +117 -0
  1268. package/dist/api/runtime/run/context.d.ts +141 -0
  1269. package/dist/api/runtime/run/context.js +2 -0
  1270. package/dist/api/runtime/run/contract-floor.d.ts +7 -0
  1271. package/dist/api/runtime/run/contract-floor.js +51 -0
  1272. package/dist/api/runtime/run/credential-records.d.ts +12 -0
  1273. package/dist/api/runtime/run/credential-records.js +91 -0
  1274. package/dist/api/runtime/run/disposable.d.ts +14 -0
  1275. package/dist/api/runtime/run/disposable.js +90 -0
  1276. package/dist/api/runtime/run/entity/actors.d.ts +5 -0
  1277. package/dist/api/runtime/run/entity/actors.js +55 -0
  1278. package/dist/api/runtime/run/entity/capabilities.d.ts +19 -0
  1279. package/dist/api/runtime/run/entity/capabilities.js +32 -0
  1280. package/dist/api/runtime/run/entity/check-context.d.ts +5 -0
  1281. package/dist/api/runtime/run/entity/check-context.js +108 -0
  1282. package/dist/api/runtime/run/entity/check-loop.d.ts +16 -0
  1283. package/dist/api/runtime/run/entity/check-loop.js +118 -0
  1284. package/dist/api/runtime/run/entity/direct.d.ts +8 -0
  1285. package/dist/api/runtime/run/entity/direct.js +19 -0
  1286. package/dist/api/runtime/run/entity/fallback.d.ts +25 -0
  1287. package/dist/api/runtime/run/entity/fallback.js +55 -0
  1288. package/dist/api/runtime/run/entity/root-read.d.ts +5 -0
  1289. package/dist/api/runtime/run/entity/root-read.js +39 -0
  1290. package/dist/api/runtime/run/entity/run-check.d.ts +45 -0
  1291. package/dist/api/runtime/run/entity/run-check.js +173 -0
  1292. package/dist/api/runtime/run/entity/seed-cohort.d.ts +11 -0
  1293. package/dist/api/runtime/run/entity/seed-cohort.js +136 -0
  1294. package/dist/api/runtime/run/entity/seed-failure.d.ts +9 -0
  1295. package/dist/api/runtime/run/entity/seed-failure.js +92 -0
  1296. package/dist/api/runtime/run/entity/seed.d.ts +17 -0
  1297. package/dist/api/runtime/run/entity/seed.js +65 -0
  1298. package/dist/api/runtime/run/entity/self.d.ts +5 -0
  1299. package/dist/api/runtime/run/entity/self.js +24 -0
  1300. package/dist/api/runtime/run/entity/state.d.ts +59 -0
  1301. package/dist/api/runtime/run/entity/state.js +11 -0
  1302. package/dist/api/runtime/run/entity/test-entity.d.ts +17 -0
  1303. package/dist/api/runtime/run/entity/test-entity.js +91 -0
  1304. package/dist/api/runtime/run/errors.d.ts +8 -0
  1305. package/dist/api/runtime/run/errors.js +11 -0
  1306. package/dist/api/runtime/run/exclusion.d.ts +3 -0
  1307. package/dist/api/runtime/run/exclusion.js +29 -0
  1308. package/dist/api/runtime/run/floor-credentials.d.ts +15 -0
  1309. package/dist/api/runtime/run/floor-credentials.js +91 -0
  1310. package/dist/api/runtime/run/fresh.d.ts +31 -0
  1311. package/dist/api/runtime/run/fresh.js +87 -0
  1312. package/dist/api/runtime/run/identity.d.ts +9 -0
  1313. package/dist/api/runtime/run/identity.js +28 -0
  1314. package/dist/api/runtime/run/index.d.ts +4 -0
  1315. package/dist/api/runtime/run/index.js +3 -0
  1316. package/dist/api/runtime/run/interrupt.d.ts +6 -0
  1317. package/dist/api/runtime/run/interrupt.js +15 -0
  1318. package/dist/api/runtime/run/lanes.d.ts +23 -0
  1319. package/dist/api/runtime/run/lanes.js +147 -0
  1320. package/dist/api/runtime/run/load.d.ts +17 -0
  1321. package/dist/api/runtime/run/load.js +95 -0
  1322. package/dist/api/runtime/run/network.d.ts +33 -0
  1323. package/dist/api/runtime/run/network.js +82 -0
  1324. package/dist/api/runtime/run/origins.d.ts +36 -0
  1325. package/dist/api/runtime/run/origins.js +146 -0
  1326. package/dist/api/runtime/run/own-records.d.ts +5 -0
  1327. package/dist/api/runtime/run/own-records.js +41 -0
  1328. package/dist/api/runtime/run/peer.d.ts +9 -0
  1329. package/dist/api/runtime/run/peer.js +10 -0
  1330. package/dist/api/runtime/run/pipeline.d.ts +19 -0
  1331. package/dist/api/runtime/run/pipeline.js +96 -0
  1332. package/dist/api/runtime/run/principals.d.ts +19 -0
  1333. package/dist/api/runtime/run/principals.js +134 -0
  1334. package/dist/api/runtime/run/probe-credentials.d.ts +9 -0
  1335. package/dist/api/runtime/run/probe-credentials.js +68 -0
  1336. package/dist/api/runtime/run/progress.d.ts +49 -0
  1337. package/dist/api/runtime/run/progress.js +128 -0
  1338. package/dist/api/runtime/run/public-gets.d.ts +4 -0
  1339. package/dist/api/runtime/run/public-gets.js +14 -0
  1340. package/dist/api/runtime/run/record-scope.d.ts +4 -0
  1341. package/dist/api/runtime/run/record-scope.js +17 -0
  1342. package/dist/api/runtime/run/result.d.ts +22 -0
  1343. package/dist/api/runtime/run/result.js +98 -0
  1344. package/dist/api/runtime/run/scenarios.d.ts +4 -0
  1345. package/dist/api/runtime/run/scenarios.js +50 -0
  1346. package/dist/api/runtime/run/scope-plan.d.ts +7 -0
  1347. package/dist/api/runtime/run/scope-plan.js +64 -0
  1348. package/dist/api/runtime/run/security-target.d.ts +39 -0
  1349. package/dist/api/runtime/run/security-target.js +139 -0
  1350. package/dist/api/runtime/run/security-throwaway.d.ts +27 -0
  1351. package/dist/api/runtime/run/security-throwaway.js +126 -0
  1352. package/dist/api/runtime/run/security.d.ts +11 -0
  1353. package/dist/api/runtime/run/security.js +172 -0
  1354. package/dist/api/runtime/run/server-errors.d.ts +4 -0
  1355. package/dist/api/runtime/run/server-errors.js +15 -0
  1356. package/dist/api/runtime/run/state.d.ts +58 -0
  1357. package/dist/api/runtime/run/state.js +33 -0
  1358. package/dist/api/runtime/run/store.d.ts +24 -0
  1359. package/dist/api/runtime/run/store.js +106 -0
  1360. package/dist/api/runtime/run/target-version.d.ts +7 -0
  1361. package/dist/api/runtime/run/target-version.js +16 -0
  1362. package/dist/api/runtime/run/teardown.d.ts +31 -0
  1363. package/dist/api/runtime/run/teardown.js +146 -0
  1364. package/dist/api/runtime/run/transcript-options.d.ts +4 -0
  1365. package/dist/api/runtime/run/transcript-options.js +35 -0
  1366. package/dist/api/runtime/run/types.d.ts +238 -0
  1367. package/dist/api/runtime/run/types.js +2 -0
  1368. package/dist/api/runtime/runs.d.ts +33 -0
  1369. package/dist/api/runtime/runs.js +80 -0
  1370. package/dist/api/runtime/scenario/failure.d.ts +19 -0
  1371. package/dist/api/runtime/scenario/failure.js +28 -0
  1372. package/dist/api/runtime/scenario/grade.d.ts +20 -0
  1373. package/dist/api/runtime/scenario/grade.js +51 -0
  1374. package/dist/api/runtime/scenario/lineage.d.ts +40 -0
  1375. package/dist/api/runtime/scenario/lineage.js +55 -0
  1376. package/dist/api/runtime/scenario/poll.d.ts +10 -0
  1377. package/dist/api/runtime/scenario/poll.js +20 -0
  1378. package/dist/api/runtime/scenario/record.d.ts +20 -0
  1379. package/dist/api/runtime/scenario/record.js +100 -0
  1380. package/dist/api/runtime/scenario/request.d.ts +8 -0
  1381. package/dist/api/runtime/scenario/request.js +89 -0
  1382. package/dist/api/runtime/scenario/run.d.ts +7 -0
  1383. package/dist/api/runtime/scenario/run.js +90 -0
  1384. package/dist/api/runtime/scenario/state.d.ts +10 -0
  1385. package/dist/api/runtime/scenario/state.js +40 -0
  1386. package/dist/api/runtime/scenario/step.d.ts +8 -0
  1387. package/dist/api/runtime/scenario/step.js +51 -0
  1388. package/dist/api/runtime/scenario/types.d.ts +63 -0
  1389. package/dist/api/runtime/scenario/types.js +2 -0
  1390. package/dist/api/runtime/scenario/validate.d.ts +17 -0
  1391. package/dist/api/runtime/scenario/validate.js +64 -0
  1392. package/dist/api/runtime/scenario/want.d.ts +21 -0
  1393. package/dist/api/runtime/scenario/want.js +59 -0
  1394. package/dist/api/runtime/scope/entities.d.ts +44 -0
  1395. package/dist/api/runtime/scope/entities.js +158 -0
  1396. package/dist/api/runtime/scope/grading.d.ts +20 -0
  1397. package/dist/api/runtime/scope/grading.js +42 -0
  1398. package/dist/api/runtime/scope/match.d.ts +9 -0
  1399. package/dist/api/runtime/scope/match.js +22 -0
  1400. package/dist/api/runtime/scope/operation-for.d.ts +5 -0
  1401. package/dist/api/runtime/scope/operation-for.js +29 -0
  1402. package/dist/api/runtime/scope/plan.d.ts +10 -0
  1403. package/dist/api/runtime/scope/plan.js +81 -0
  1404. package/dist/api/runtime/scope/reason.d.ts +13 -0
  1405. package/dist/api/runtime/scope/reason.js +37 -0
  1406. package/dist/api/runtime/scope/report.d.ts +3 -0
  1407. package/dist/api/runtime/scope/report.js +68 -0
  1408. package/dist/api/runtime/scope/scope-error.d.ts +5 -0
  1409. package/dist/api/runtime/scope/scope-error.js +5 -0
  1410. package/dist/api/runtime/scope/sufficiency.d.ts +8 -0
  1411. package/dist/api/runtime/scope/sufficiency.js +19 -0
  1412. package/dist/api/runtime/scope/target.d.ts +4 -0
  1413. package/dist/api/runtime/scope/target.js +62 -0
  1414. package/dist/api/runtime/scope/targeting.d.ts +19 -0
  1415. package/dist/api/runtime/scope/targeting.js +82 -0
  1416. package/dist/api/runtime/scope/types.d.ts +149 -0
  1417. package/dist/api/runtime/scope/types.js +11 -0
  1418. package/dist/api/runtime/seed-error.d.ts +23 -0
  1419. package/dist/api/runtime/seed-error.js +19 -0
  1420. package/dist/api/runtime/self/actions.d.ts +12 -0
  1421. package/dist/api/runtime/self/actions.js +59 -0
  1422. package/dist/api/runtime/self/check.d.ts +3 -0
  1423. package/dist/api/runtime/self/check.js +26 -0
  1424. package/dist/api/runtime/self/create.d.ts +26 -0
  1425. package/dist/api/runtime/self/create.js +96 -0
  1426. package/dist/api/runtime/self/guard.d.ts +16 -0
  1427. package/dist/api/runtime/self/guard.js +56 -0
  1428. package/dist/api/runtime/self/identity.d.ts +4 -0
  1429. package/dist/api/runtime/self/identity.js +94 -0
  1430. package/dist/api/runtime/self/input.d.ts +19 -0
  1431. package/dist/api/runtime/self/input.js +2 -0
  1432. package/dist/api/runtime/self/locate.d.ts +10 -0
  1433. package/dist/api/runtime/self/locate.js +31 -0
  1434. package/dist/api/runtime/self/operations.d.ts +15 -0
  1435. package/dist/api/runtime/self/operations.js +34 -0
  1436. package/dist/api/runtime/self/probe-field.d.ts +10 -0
  1437. package/dist/api/runtime/self/probe-field.js +88 -0
  1438. package/dist/api/runtime/self/requests.d.ts +22 -0
  1439. package/dist/api/runtime/self/requests.js +27 -0
  1440. package/dist/api/runtime/self/verdicts.d.ts +41 -0
  1441. package/dist/api/runtime/self/verdicts.js +95 -0
  1442. package/dist/api/runtime/server-errors.d.ts +29 -0
  1443. package/dist/api/runtime/server-errors.js +74 -0
  1444. package/dist/api/runtime/sse.d.ts +38 -0
  1445. package/dist/api/runtime/sse.js +115 -0
  1446. package/dist/api/runtime/steps/engine.d.ts +27 -0
  1447. package/dist/api/runtime/steps/engine.js +134 -0
  1448. package/dist/api/runtime/steps/interpolate.d.ts +3 -0
  1449. package/dist/api/runtime/steps/interpolate.js +30 -0
  1450. package/dist/api/runtime/steps/jwt.d.ts +3 -0
  1451. package/dist/api/runtime/steps/jwt.js +13 -0
  1452. package/dist/api/runtime/steps/out-of-band.d.ts +27 -0
  1453. package/dist/api/runtime/steps/out-of-band.js +53 -0
  1454. package/dist/api/runtime/steps/request.d.ts +39 -0
  1455. package/dist/api/runtime/steps/request.js +117 -0
  1456. package/dist/api/runtime/steps/runner.d.ts +5 -0
  1457. package/dist/api/runtime/steps/runner.js +19 -0
  1458. package/dist/api/runtime/target-version.d.ts +34 -0
  1459. package/dist/api/runtime/target-version.js +68 -0
  1460. package/dist/api/runtime/teardown/ledger.d.ts +68 -0
  1461. package/dist/api/runtime/teardown/ledger.js +124 -0
  1462. package/dist/api/runtime/teardown/never-seen.d.ts +10 -0
  1463. package/dist/api/runtime/teardown/never-seen.js +27 -0
  1464. package/dist/api/runtime/teardown/remove.d.ts +27 -0
  1465. package/dist/api/runtime/teardown/remove.js +110 -0
  1466. package/dist/api/runtime/teardown/render.d.ts +7 -0
  1467. package/dist/api/runtime/teardown/render.js +51 -0
  1468. package/dist/api/runtime/teardown/routes.d.ts +26 -0
  1469. package/dist/api/runtime/teardown/routes.js +83 -0
  1470. package/dist/api/runtime/teardown/still-listed.d.ts +29 -0
  1471. package/dist/api/runtime/teardown/still-listed.js +116 -0
  1472. package/dist/api/runtime/teardown/types.d.ts +76 -0
  1473. package/dist/api/runtime/teardown/types.js +2 -0
  1474. package/dist/api/runtime/teardown/unwind.d.ts +20 -0
  1475. package/dist/api/runtime/teardown/unwind.js +83 -0
  1476. package/dist/api/runtime/teardown/verify-gone.d.ts +21 -0
  1477. package/dist/api/runtime/teardown/verify-gone.js +87 -0
  1478. package/dist/api/runtime/teardown/verify-hook.d.ts +20 -0
  1479. package/dist/api/runtime/teardown/verify-hook.js +61 -0
  1480. package/dist/api/runtime/transcript/compact-request.d.ts +5 -0
  1481. package/dist/api/runtime/transcript/compact-request.js +65 -0
  1482. package/dist/api/runtime/transcript/compact-response.d.ts +4 -0
  1483. package/dist/api/runtime/transcript/compact-response.js +70 -0
  1484. package/dist/api/runtime/transcript/live.d.ts +13 -0
  1485. package/dist/api/runtime/transcript/live.js +21 -0
  1486. package/dist/api/runtime/transcript/payload.d.ts +9 -0
  1487. package/dist/api/runtime/transcript/payload.js +45 -0
  1488. package/dist/api/runtime/transcript/release.d.ts +6 -0
  1489. package/dist/api/runtime/transcript/release.js +15 -0
  1490. package/dist/api/runtime/transcript/spool.d.ts +42 -0
  1491. package/dist/api/runtime/transcript/spool.js +102 -0
  1492. package/dist/api/runtime/transcript/sse-payload.d.ts +5 -0
  1493. package/dist/api/runtime/transcript/sse-payload.js +65 -0
  1494. package/dist/api/runtime/transcript/types.d.ts +22 -0
  1495. package/dist/api/runtime/transcript/types.js +3 -0
  1496. package/dist/api/runtime/unique.d.ts +80 -0
  1497. package/dist/api/runtime/unique.js +169 -0
  1498. package/dist/api/runtime/upload-each.d.ts +14 -0
  1499. package/dist/api/runtime/upload-each.js +69 -0
  1500. package/dist/api/runtime/upload.d.ts +58 -0
  1501. package/dist/api/runtime/upload.js +241 -0
  1502. package/dist/api/runtime/validate.d.ts +41 -0
  1503. package/dist/api/runtime/validate.js +145 -0
  1504. package/dist/api/runtime/wait.d.ts +48 -0
  1505. package/dist/api/runtime/wait.js +105 -0
  1506. package/dist/api/runtime/world/adopt.d.ts +6 -0
  1507. package/dist/api/runtime/world/adopt.js +18 -0
  1508. package/dist/api/runtime/world/ancestor-create.d.ts +13 -0
  1509. package/dist/api/runtime/world/ancestor-create.js +129 -0
  1510. package/dist/api/runtime/world/client-identity.d.ts +42 -0
  1511. package/dist/api/runtime/world/client-identity.js +77 -0
  1512. package/dist/api/runtime/world/cohort.d.ts +47 -0
  1513. package/dist/api/runtime/world/cohort.js +123 -0
  1514. package/dist/api/runtime/world/confirm.d.ts +33 -0
  1515. package/dist/api/runtime/world/confirm.js +57 -0
  1516. package/dist/api/runtime/world/created-record.d.ts +29 -0
  1517. package/dist/api/runtime/world/created-record.js +57 -0
  1518. package/dist/api/runtime/world/list-existing.d.ts +12 -0
  1519. package/dist/api/runtime/world/list-existing.js +29 -0
  1520. package/dist/api/runtime/world/path-scope.d.ts +16 -0
  1521. package/dist/api/runtime/world/path-scope.js +98 -0
  1522. package/dist/api/runtime/world/plan-limit.d.ts +8 -0
  1523. package/dist/api/runtime/world/plan-limit.js +41 -0
  1524. package/dist/api/runtime/world/probe-fixtures.d.ts +7 -0
  1525. package/dist/api/runtime/world/probe-fixtures.js +23 -0
  1526. package/dist/api/runtime/world/read-back.d.ts +61 -0
  1527. package/dist/api/runtime/world/read-back.js +120 -0
  1528. package/dist/api/runtime/world/records.d.ts +29 -0
  1529. package/dist/api/runtime/world/records.js +45 -0
  1530. package/dist/api/runtime/world/schema.d.ts +7 -0
  1531. package/dist/api/runtime/world/schema.js +21 -0
  1532. package/dist/api/runtime/world/seed-cohort.d.ts +8 -0
  1533. package/dist/api/runtime/world/seed-cohort.js +193 -0
  1534. package/dist/api/runtime/world/types.d.ts +118 -0
  1535. package/dist/api/runtime/world/types.js +3 -0
  1536. package/dist/api/runtime/world/upload-context.d.ts +5 -0
  1537. package/dist/api/runtime/world/upload-context.js +7 -0
  1538. package/dist/api/security/credential-names.d.ts +7 -0
  1539. package/dist/api/security/credential-names.js +30 -0
  1540. package/dist/api/security/issued-secrets.d.ts +9 -0
  1541. package/dist/api/security/issued-secrets.js +50 -0
  1542. package/dist/api/security/redact.d.ts +51 -0
  1543. package/dist/api/security/redact.js +222 -0
  1544. package/dist/api/security/strip.d.ts +7 -0
  1545. package/dist/api/security/strip.js +18 -0
  1546. package/dist/api/spec/allow.d.ts +28 -0
  1547. package/dist/api/spec/allow.js +83 -0
  1548. package/dist/api/spec/collection/cursor.d.ts +7 -0
  1549. package/dist/api/spec/collection/cursor.js +11 -0
  1550. package/dist/api/spec/collection/effective.d.ts +9 -0
  1551. package/dist/api/spec/collection/effective.js +49 -0
  1552. package/dist/api/spec/collection/identity.d.ts +13 -0
  1553. package/dist/api/spec/collection/identity.js +43 -0
  1554. package/dist/api/spec/collection/request.d.ts +19 -0
  1555. package/dist/api/spec/collection/request.js +67 -0
  1556. package/dist/api/spec/collection/responses.d.ts +6 -0
  1557. package/dist/api/spec/collection/responses.js +32 -0
  1558. package/dist/api/spec/collection/shape.d.ts +47 -0
  1559. package/dist/api/spec/collection/shape.js +123 -0
  1560. package/dist/api/spec/configured-model.d.ts +22 -0
  1561. package/dist/api/spec/configured-model.js +58 -0
  1562. package/dist/api/spec/conventions/derive.d.ts +26 -0
  1563. package/dist/api/spec/conventions/derive.js +125 -0
  1564. package/dist/api/spec/conventions/envelope-names.d.ts +21 -0
  1565. package/dist/api/spec/conventions/envelope-names.js +25 -0
  1566. package/dist/api/spec/conventions/filter.d.ts +31 -0
  1567. package/dist/api/spec/conventions/filter.js +51 -0
  1568. package/dist/api/spec/conventions/infer.d.ts +22 -0
  1569. package/dist/api/spec/conventions/infer.js +59 -0
  1570. package/dist/api/spec/conventions/query-params.d.ts +27 -0
  1571. package/dist/api/spec/conventions/query-params.js +44 -0
  1572. package/dist/api/spec/conventions/roles.d.ts +28 -0
  1573. package/dist/api/spec/conventions/roles.js +153 -0
  1574. package/dist/api/spec/conventions/select.d.ts +9 -0
  1575. package/dist/api/spec/conventions/select.js +19 -0
  1576. package/dist/api/spec/conventions/sort.d.ts +14 -0
  1577. package/dist/api/spec/conventions/sort.js +25 -0
  1578. package/dist/api/spec/conventions/types.d.ts +106 -0
  1579. package/dist/api/spec/conventions/types.js +15 -0
  1580. package/dist/api/spec/endpoints.d.ts +4 -0
  1581. package/dist/api/spec/endpoints.js +42 -0
  1582. package/dist/api/spec/extensions/async.d.ts +24 -0
  1583. package/dist/api/spec/extensions/async.js +38 -0
  1584. package/dist/api/spec/extensions/consistency.d.ts +18 -0
  1585. package/dist/api/spec/extensions/consistency.js +27 -0
  1586. package/dist/api/spec/extensions/effects.d.ts +13 -0
  1587. package/dist/api/spec/extensions/effects.js +36 -0
  1588. package/dist/api/spec/extensions/entity.d.ts +28 -0
  1589. package/dist/api/spec/extensions/entity.js +103 -0
  1590. package/dist/api/spec/extensions/flags.d.ts +30 -0
  1591. package/dist/api/spec/extensions/flags.js +59 -0
  1592. package/dist/api/spec/extensions/gaps.d.ts +11 -0
  1593. package/dist/api/spec/extensions/gaps.js +8 -0
  1594. package/dist/api/spec/extensions/invite.d.ts +33 -0
  1595. package/dist/api/spec/extensions/invite.js +30 -0
  1596. package/dist/api/spec/extensions/privileged.d.ts +27 -0
  1597. package/dist/api/spec/extensions/privileged.js +84 -0
  1598. package/dist/api/spec/extensions/query-tag.d.ts +36 -0
  1599. package/dist/api/spec/extensions/query-tag.js +92 -0
  1600. package/dist/api/spec/extensions/routes.d.ts +5 -0
  1601. package/dist/api/spec/extensions/routes.js +19 -0
  1602. package/dist/api/spec/extensions/tag.d.ts +16 -0
  1603. package/dist/api/spec/extensions/tag.js +22 -0
  1604. package/dist/api/spec/extensions/tenant.d.ts +9 -0
  1605. package/dist/api/spec/extensions/tenant.js +35 -0
  1606. package/dist/api/spec/extensions/unique.d.ts +20 -0
  1607. package/dist/api/spec/extensions/unique.js +63 -0
  1608. package/dist/api/spec/grammar-overrides.d.ts +23 -0
  1609. package/dist/api/spec/grammar-overrides.js +70 -0
  1610. package/dist/api/spec/graph/build.d.ts +18 -0
  1611. package/dist/api/spec/graph/build.js +89 -0
  1612. package/dist/api/spec/graph/dangling.d.ts +19 -0
  1613. package/dist/api/spec/graph/dangling.js +94 -0
  1614. package/dist/api/spec/graph/demote.d.ts +14 -0
  1615. package/dist/api/spec/graph/demote.js +94 -0
  1616. package/dist/api/spec/graph/entities.d.ts +7 -0
  1617. package/dist/api/spec/graph/entities.js +77 -0
  1618. package/dist/api/spec/graph/identity.d.ts +19 -0
  1619. package/dist/api/spec/graph/identity.js +14 -0
  1620. package/dist/api/spec/graph/naming.d.ts +9 -0
  1621. package/dist/api/spec/graph/naming.js +71 -0
  1622. package/dist/api/spec/graph/operation.d.ts +16 -0
  1623. package/dist/api/spec/graph/operation.js +176 -0
  1624. package/dist/api/spec/graph/paging.d.ts +16 -0
  1625. package/dist/api/spec/graph/paging.js +23 -0
  1626. package/dist/api/spec/graph/parameters.d.ts +46 -0
  1627. package/dist/api/spec/graph/parameters.js +119 -0
  1628. package/dist/api/spec/graph/resolver.d.ts +25 -0
  1629. package/dist/api/spec/graph/resolver.js +38 -0
  1630. package/dist/api/spec/graph/roots.d.ts +32 -0
  1631. package/dist/api/spec/graph/roots.js +89 -0
  1632. package/dist/api/spec/graph/segments.d.ts +10 -0
  1633. package/dist/api/spec/graph/segments.js +19 -0
  1634. package/dist/api/spec/graph/statuses.d.ts +7 -0
  1635. package/dist/api/spec/graph/statuses.js +26 -0
  1636. package/dist/api/spec/graph/surface.d.ts +21 -0
  1637. package/dist/api/spec/graph/surface.js +59 -0
  1638. package/dist/api/spec/graph/types.d.ts +162 -0
  1639. package/dist/api/spec/graph/types.js +3 -0
  1640. package/dist/api/spec/graph/unmodeled.d.ts +18 -0
  1641. package/dist/api/spec/graph/unmodeled.js +65 -0
  1642. package/dist/api/spec/load/bundle.d.ts +16 -0
  1643. package/dist/api/spec/load/bundle.js +112 -0
  1644. package/dist/api/spec/load/defs.d.ts +7 -0
  1645. package/dist/api/spec/load/defs.js +9 -0
  1646. package/dist/api/spec/load/dereference.d.ts +23 -0
  1647. package/dist/api/spec/load/dereference.js +55 -0
  1648. package/dist/api/spec/load/parse.d.ts +16 -0
  1649. package/dist/api/spec/load/parse.js +76 -0
  1650. package/dist/api/spec/load/pointer.d.ts +6 -0
  1651. package/dist/api/spec/load/pointer.js +24 -0
  1652. package/dist/api/spec/load/source.d.ts +27 -0
  1653. package/dist/api/spec/load/source.js +58 -0
  1654. package/dist/api/spec/load/version.d.ts +14 -0
  1655. package/dist/api/spec/load/version.js +16 -0
  1656. package/dist/api/spec/load/walk.d.ts +44 -0
  1657. package/dist/api/spec/load/walk.js +162 -0
  1658. package/dist/api/spec/methods.d.ts +31 -0
  1659. package/dist/api/spec/methods.js +37 -0
  1660. package/dist/api/spec/operation-name.d.ts +23 -0
  1661. package/dist/api/spec/operation-name.js +46 -0
  1662. package/dist/api/spec/overlay.d.ts +18 -0
  1663. package/dist/api/spec/overlay.js +72 -0
  1664. package/dist/api/spec/prepare.d.ts +18 -0
  1665. package/dist/api/spec/prepare.js +16 -0
  1666. package/dist/api/spec/query/catalog-layers.d.ts +10 -0
  1667. package/dist/api/spec/query/catalog-layers.js +80 -0
  1668. package/dist/api/spec/query/effective.d.ts +68 -0
  1669. package/dist/api/spec/query/effective.js +9 -0
  1670. package/dist/api/spec/query/field-ops.d.ts +10 -0
  1671. package/dist/api/spec/query/field-ops.js +39 -0
  1672. package/dist/api/spec/query/harvest.d.ts +14 -0
  1673. package/dist/api/spec/query/harvest.js +29 -0
  1674. package/dist/api/spec/query/hook.d.ts +8 -0
  1675. package/dist/api/spec/query/hook.js +46 -0
  1676. package/dist/api/spec/query/infer-type.d.ts +6 -0
  1677. package/dist/api/spec/query/infer-type.js +34 -0
  1678. package/dist/api/spec/query/json-path.d.ts +6 -0
  1679. package/dist/api/spec/query/json-path.js +87 -0
  1680. package/dist/api/spec/query/merge.d.ts +9 -0
  1681. package/dist/api/spec/query/merge.js +118 -0
  1682. package/dist/api/spec/query/ops.d.ts +14 -0
  1683. package/dist/api/spec/query/ops.js +33 -0
  1684. package/dist/api/spec/query/parse-blocks.d.ts +13 -0
  1685. package/dist/api/spec/query/parse-blocks.js +103 -0
  1686. package/dist/api/spec/query/parse-catalog.d.ts +11 -0
  1687. package/dist/api/spec/query/parse-catalog.js +97 -0
  1688. package/dist/api/spec/query/parse-fields.d.ts +12 -0
  1689. package/dist/api/spec/query/parse-fields.js +54 -0
  1690. package/dist/api/spec/query/sendable.d.ts +60 -0
  1691. package/dist/api/spec/query/sendable.js +113 -0
  1692. package/dist/api/spec/query/tag.d.ts +36 -0
  1693. package/dist/api/spec/query/tag.js +3 -0
  1694. package/dist/api/spec/query/union.d.ts +7 -0
  1695. package/dist/api/spec/query/union.js +22 -0
  1696. package/dist/api/spec/render/filter-combine.d.ts +17 -0
  1697. package/dist/api/spec/render/filter-combine.js +62 -0
  1698. package/dist/api/spec/render/filter-describe.d.ts +5 -0
  1699. package/dist/api/spec/render/filter-describe.js +29 -0
  1700. package/dist/api/spec/render/filter-parse-steps.d.ts +55 -0
  1701. package/dist/api/spec/render/filter-parse-steps.js +155 -0
  1702. package/dist/api/spec/render/filter-parse.d.ts +8 -0
  1703. package/dist/api/spec/render/filter-parse.js +77 -0
  1704. package/dist/api/spec/render/filter-presets.d.ts +6 -0
  1705. package/dist/api/spec/render/filter-presets.js +55 -0
  1706. package/dist/api/spec/render/filter-probe.d.ts +24 -0
  1707. package/dist/api/spec/render/filter-probe.js +57 -0
  1708. package/dist/api/spec/render/filter-term.d.ts +17 -0
  1709. package/dist/api/spec/render/filter-term.js +100 -0
  1710. package/dist/api/spec/render/filter-types.d.ts +77 -0
  1711. package/dist/api/spec/render/filter-types.js +10 -0
  1712. package/dist/api/spec/render/sort-parse.d.ts +14 -0
  1713. package/dist/api/spec/render/sort-parse.js +56 -0
  1714. package/dist/api/spec/render/sort.d.ts +48 -0
  1715. package/dist/api/spec/render/sort.js +45 -0
  1716. package/dist/api/spec/routes.d.ts +16 -0
  1717. package/dist/api/spec/routes.js +48 -0
  1718. package/dist/api/spec/schema.d.ts +36 -0
  1719. package/dist/api/spec/schema.js +265 -0
  1720. package/dist/api/spec/security/placement.d.ts +11 -0
  1721. package/dist/api/spec/security/placement.js +16 -0
  1722. package/dist/api/spec/security/requirements.d.ts +19 -0
  1723. package/dist/api/spec/security/requirements.js +21 -0
  1724. package/dist/api/spec/security/schemes.d.ts +40 -0
  1725. package/dist/api/spec/security/schemes.js +86 -0
  1726. package/dist/api/spec/sign-in.d.ts +4 -0
  1727. package/dist/api/spec/sign-in.js +4 -0
  1728. package/dist/api/spec/sign-up.d.ts +34 -0
  1729. package/dist/api/spec/sign-up.js +77 -0
  1730. package/dist/api/spec/tags/checks.d.ts +23 -0
  1731. package/dist/api/spec/tags/checks.js +47 -0
  1732. package/dist/api/spec/tags/query.d.ts +4 -0
  1733. package/dist/api/spec/tags/query.js +113 -0
  1734. package/dist/api/spec/tags/validate.d.ts +12 -0
  1735. package/dist/api/spec/tags/validate.js +117 -0
  1736. package/dist/api/spec/types.d.ts +120 -0
  1737. package/dist/api/spec/types.js +3 -0
  1738. package/dist/api/steps/external.d.ts +31 -0
  1739. package/dist/api/steps/external.js +17 -0
  1740. package/dist/api/steps/index.d.ts +9 -0
  1741. package/dist/api/steps/index.js +5 -0
  1742. package/dist/api/steps/out-of-band.d.ts +17 -0
  1743. package/dist/api/steps/out-of-band.js +19 -0
  1744. package/dist/api/steps/request.d.ts +30 -0
  1745. package/dist/api/steps/request.js +72 -0
  1746. package/dist/api/steps/scenario.d.ts +18 -0
  1747. package/dist/api/steps/scenario.js +18 -0
  1748. package/dist/api/steps/sender.d.ts +34 -0
  1749. package/dist/api/steps/sender.js +53 -0
  1750. package/dist/api/steps/steps.d.ts +51 -0
  1751. package/dist/api/steps/steps.js +30 -0
  1752. package/dist/api/steps/types.d.ts +90 -0
  1753. package/dist/api/steps/types.js +7 -0
  1754. package/dist/api/steps/view.d.ts +20 -0
  1755. package/dist/api/steps/view.js +41 -0
  1756. package/dist/cli/main.d.ts +8 -0
  1757. package/dist/cli/main.js +38 -0
  1758. package/dist/cli.d.ts +3 -0
  1759. package/dist/cli.js +11 -0
  1760. package/docs/api/api.md +78 -0
  1761. package/docs/api/assumptions.md +119 -0
  1762. package/docs/api/checks.md +265 -0
  1763. package/docs/api/commands.md +309 -0
  1764. package/docs/api/configuration/hooks.md +162 -0
  1765. package/docs/api/configuration/origins-and-uploads.md +85 -0
  1766. package/docs/api/configuration/principals-and-security.md +173 -0
  1767. package/docs/api/configuration/reference.md +283 -0
  1768. package/docs/api/limits.md +23 -0
  1769. package/docs/api/migrating-0.25.md +40 -0
  1770. package/docs/api/migrating-from-oat.md +70 -0
  1771. package/docs/api/model.md +230 -0
  1772. package/docs/api/reference-defects.md +181 -0
  1773. package/docs/api/releasing.md +52 -0
  1774. package/docs/api/reports.md +287 -0
  1775. package/docs/api/roadmaps/1-freshness-program-20261028T232448Z.md +90 -0
  1776. package/docs/api/steps.md +162 -0
  1777. package/docs/api/tags.md +536 -0
  1778. package/labs/api/README.md +130 -0
  1779. package/labs/api/annotated-openapi.yaml +421 -0
  1780. package/labs/api/demo.mjs +119 -0
  1781. package/labs/api/local.config.ts +33 -0
  1782. package/labs/api/minimal.config.ts +31 -0
  1783. package/labs/api/oob-auth.config.ts +152 -0
  1784. package/package.json +145 -5
@@ -0,0 +1,173 @@
1
+ # testing api — Principals and security
2
+
3
+ [← back to the overview](../../../README.md)
4
+
5
+ Who the API tester acts as, and how each OpenAPI security scheme gets its value.
6
+
7
+ ## Principals
8
+
9
+ ```ts
10
+ principals: {
11
+ alpha: {
12
+ email: "alpha@example.test", // identity data: recipes read it as {principal.email}
13
+ tenant: "acme", // principals in different tenants are isolation peers
14
+ scope: { org_id: "org_alpha" }, // path or query parameters bound for this principal
15
+ rank: 2, // higher can do everything a lower rank can; default 0
16
+ inviteAs: "key_beta", // how an owner names this principal in an invite body
17
+ readOnly: true, // a viewer: its every write must be refused (auth.role-enforced)
18
+ security: { apiKey: { static: "${KEY_ALPHA}" } }, // this principal's own recipe for a scheme
19
+ },
20
+ }
21
+ ```
22
+
23
+ The key is the principal's id, the stable name in reports. One principal is the writer: it makes the records every check works on, and the rest act on them. `writer: "<id>"` at the top level names it; unset, the first principal in the map writes. A sort-keys lint rule reorders a map's keys, and with them the writer, so a config under one names its `writer`:
24
+
25
+ ```ts
26
+ writer: "alpha",
27
+ principals: { admin: { … }, alpha: { … }, beta: { … } },
28
+ ```
29
+
30
+ A `writer` that names no principal exits 2, listing the principals there are. `testing api doctor` prints who writes and why. Every other field that is not one of the named ones is identity data, read only as `{principal.<key>}` in recipes; it never fills a parameter.
31
+
32
+ Rules that matter:
33
+
34
+ - **Isolation** (`tenant.*`) needs two principals whose `tenant` differs.
35
+ - **Rank** (`auth.rank-is-monotonic`) needs two principals in the _same_ tenant with different `rank`.
36
+ - **Invite** (`auth.invite-grants-then-revokes`) needs `x-invite` on the spec and a _different-tenant_ principal with `inviteAs` set.
37
+ - Extra principals are not ignored. Isolation picks the first different-tenant peer. Rank uses the same-tenant pair.
38
+ - `readOnly: true` marks an account that may only read. The security checks send its writes to a record the run created and expect each to be refused. When present it must be `true`.
39
+ - `scope` is the only way a principal binds a parameter. A login can bind `tenant` and `scope.<param>` from its answer with `claims`.
40
+ - `security.<scheme>` overrides the base recipe for this principal alone: one naming a kind replaces it (keeping `format` and `placements`); one naming only options merges over it.
41
+
42
+ Every account the run makes is ledgered before its request goes out, whatever sends it: a `fresh: true` principal, a disposable session, a login recipe whose step calls the operation the document marks `x-fresh-principal`, a scenario, or a check's generated body sent to that operation or to a create of the `identity: self` entity. A principal with `created: true` counts too: it is the opt-in for a login that registers through an operation the document does not mark. The ledger is `accounts.json` in the run folder. It keeps the names each account is found by (email, username, login, handle, phone), never its password, so a run that dies still names what it made.
43
+
44
+ At the end of a run, each account is removed in this order, each tried only when the one before could not:
45
+
46
+ 1. The document's delete-self (a `DELETE` tagged `x-entity: { identity: self, action: delete }`), sent as the account itself.
47
+ 2. The delete of the entity the sign-up creates, by the account's id, as each configured principal the run did not make, strongest first.
48
+ 3. `hooks.teardownPrincipal`, with the account's address and the last credential the run holds for it.
49
+
50
+ A sign-up the document leaves untagged counts too. That is an open POST (its security is `[]`, or every alternative is empty) whose operationId or last path segment ends with the words register, registration, signup or sign up, as `/auth/admin-sign-up` does. It is also an open collection create whose body takes a `password`, a `passphrase` or a `format: password` property and that is named for no login, token or session, nor for a password reset, forgotten, recovered or changed. The API tester ledgers what it sends there like any sign-up. With no tag, it has no delete-self to send and cannot sign in as the account, so such an account is usually reported as a leftover: tag the operation `x-fresh-principal` to let the API tester sign in and remove it.
51
+
52
+ An account none of these removes is a leftover and fails the run with exit 4, named by its email or username so a person can remove it. An account whose name a configured principal holds, which the run did not make, is never removed, whatever answered its sign-up, so a long-lived test account survives every run. Teardown never sends a sign-up again to get a credential. Generated values for the fields that name an account carry the run's nonce, so two runs never send the same email.
53
+
54
+ Example — two tenants plus a same-tenant lattice:
55
+
56
+ ```ts
57
+ security: {
58
+ bearer: { login: { steps: [{ operationId: "auth.token", body: { key: "{principal.key}" } }], from: "$.access_token" } },
59
+ },
60
+ principals: {
61
+ alpha: { key: "key_alpha", tenant: "org_alpha", scope: { org_id: "org_alpha" }, rank: 2 },
62
+ alpha_member: { key: "key_alpha_member", tenant: "org_alpha", scope: { org_id: "org_alpha" }, rank: 1 },
63
+ beta: { key: "key_beta", tenant: "org_beta", scope: { org_id: "org_beta" }, rank: 2, inviteAs: "key_beta" },
64
+ },
65
+ ```
66
+
67
+ ## Security recipes
68
+
69
+ Each operation is sent the credentials its OpenAPI `security` requires, placed where its scheme says: a bearer token in `Authorization`, an apiKey in its header, query parameter or cookie. `security` says only how to get each scheme's value, one recipe per scheme the document declares:
70
+
71
+ ```ts
72
+ security: {
73
+ jwt: {
74
+ login: {
75
+ steps: [{ operationId: "auth.login", body: { email: "{principal.email}", password: "{principal.password}" } }],
76
+ from: "$.access_token",
77
+ claims: { tenant: "org_id", "scope.project_id": "$.project.id" },
78
+ },
79
+ refresh: { steps: [{ operationId: "auth.refresh", body: { refresh_token: "{refreshToken}" } }], from: "$.access_token" },
80
+ expiresIn: { from: "$.expires_in" },
81
+ },
82
+ apiKey: { static: "${API_KEY}", format: "ApiKey {credential}" },
83
+ },
84
+ ```
85
+
86
+ A recipe has exactly one kind:
87
+
88
+ | kind | the value |
89
+ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
90
+ | `login: { steps, from, claims?, revoke? }` | Run the steps; `from` is where the credential is in the last answer. `claims` binds `tenant` and `scope.<param>`: a value starting with `$` is a JSON path into the last answer's body, any other a JWT claim name. `revoke` names the operation that ends a session, alone or as `{ operationId, body }` with `{credential}` in the body: the API tester ends the sessions its probes open with it, and each principal's own at the very end, unless `--keep-credentials`. It is sent with the session it ends, so a 401 counts as revoked. Name every operation that ends sessions here (a logout, a session or token delete): the contract floor then calls it with a dedicated credential, never a principal's own session |
91
+ | `mint: { with, operationId, body?, from, revoke? }` | Call `operationId` with the `with` scheme's credential; `{scopes}` in `body` becomes the scopes an operation needs. `revoke` runs at the end |
92
+ | `static: "…"` or `{ username, password }` | A fixed value; a basic scheme takes the pair |
93
+ | `hook: true` | `hooks.resolveCredential` returns it. See [Credentials from a hook](#credentials-from-a-hook) |
94
+ | `oauth2: { flow, clientId, clientSecret?, scopes? … }` | A `clientCredentials` or `password` grant at the `tokenUrl` the document declares |
95
+
96
+ Options on any recipe: `format` replaces the scheme's value template (`ApiKey {credential}` for an apiKey sent in `Authorization`); `expiresIn` is seconds or `{ from }` in the issuing answer, else a JWT `exp`; `refresh` renews a login by its own steps; `holds` lists the scopes a static or hooked credential carries; `placements` adds places: `[{ in: "header" | "query" | "cookie", name, template? }]`.
97
+
98
+ An operation with alternatives is sent the first one, in document order, whose every scheme the principal has a recipe for. `security: []` or `{}` sends nothing. A 401 on a request sent with a stored credential renews it once and retries once; a second 401 is evidence. A declared `refresh` that fails falls back to one fresh login, never one that signs up again: not a login that calls the `x-fresh-principal` operation, and not any login of a `created: true` principal, whose login registers its account. A credential the run adopts, such as the one an invite accept issues, renews by the declared refresh from what it came with; when that refresh reads a value it did not come with (a `{refresh_token}`), it renews the principal's own session instead. A login that fails blocks that principal for that scheme for the rest of the run: the refused request keeps its 401, what needs the credential later is untested with the reason, and it is not retried.
99
+
100
+ The config is checked against the document and each origin's before anything is sent; every mistake is named, with the fix, and the CLI exits 2. That covers a recipe for a scheme the document lacks (with the nearest name), two kinds or none, a mint that loops or names no operation, a `{principal.<key>}` a principal does not have, and a `globalHeaders` entry where a credential goes.
101
+
102
+ ## Login steps
103
+
104
+ Each step is one of:
105
+
106
+ **Operation step** (prefer this — survives the path moving):
107
+
108
+ ```ts
109
+ {
110
+ operationId: "auth.token",
111
+ body: { key: "${API_KEY}" },
112
+ headers: { "x-extra": "1" },
113
+ query: { realm: "test" },
114
+ saveAs: { credential: "$.access_token", refreshToken: "$.refresh_token" },
115
+ saveClaimsFrom: { token: "$.access_token", bind: { orgId: "orgs.0.oid" } },
116
+ bind: { address: "user@example.test" }, // literals, with {name} interpolation
117
+ expect: [200], // default: any 2xx
118
+ }
119
+ ```
120
+
121
+ **Request step** (when the document has no sign-in operation, or the hop is not in the spec):
122
+
123
+ ```ts
124
+ {
125
+ method: "POST",
126
+ path: "/v1/auth/register/email",
127
+ body: { email: "{address}", password: "…" },
128
+ bind: { address: "testing-alpha@example.test" },
129
+ }
130
+ ```
131
+
132
+ `path` is joined to this origin's `baseUrl`, unless it is an absolute `http://` or `https://` URL — then the API tester dispatches to that URL as a recorded exchange (method, URL, status, redirects, response headers). That is how a consume page on the app origin is a login step when `baseUrl` is the API. Unknown host is allowed. `redirect` defaults to `"follow"` with a per-request cookie jar, so a 303 that sets `Set-Cookie` still leaves that cookie visible to `saveAs`. `redirect: "manual"` stops at the first 3xx (`expect: [303]` then bind from that response). An `operationId` step, and every call the API tester makes on its own, stops at the first 3xx when that operation documents a 3xx: the redirect is the documented answer, and the page behind it is not. A required query, header or cookie parameter the request leaves unnamed is sent with the value the document declares for it, written in its declared style ([Parameters](../model.md#parameters)); with no declared value it is left out, never invented. Naming it, even as `undefined`, keeps it the caller's.
133
+
134
+ **Out-of-band step** (email link, OTP — the API tester cannot collect this itself):
135
+
136
+ ```ts
137
+ { outOfBand: { address: "{address}", kind: "email-verify", as: "verifyLink" } }
138
+ ```
139
+
140
+ The hook returns a string. If that string is a URL, a later RequestStep must GET it — a hook-side `fetch` is not a recorded exchange.
141
+
142
+ The API tester tells the hook when the request this value answers was sent (`since`): the latest earlier request in the flow or scenario that names `address` in its URL or body. A later request to someone else does not move it. When no request names the address, the API tester passes no `since`. A value sent before the scenario began — by a scheduled job, or into a seeded inbox — sets `sentEarlier: true`, so a sign-in that names the address does not hide it:
143
+
144
+ ```ts
145
+ { outOfBand: { address: "{offerEmail}", as: "offerToken", kind: "upsell-offer", sentEarlier: true } }
146
+ ```
147
+
148
+ Later steps interpolate `{name}` from the flow scope, `saveAs` addresses included (`cookie:rt.{userId}` reads a per-user cookie). A name is letters, digits and `_`, with single hyphens between them, as path parameters are written: `{user-id}`. A `{name}` still unfilled when a step is sent, in its path, body, headers or query, fails the step as the API tester's own error naming the placeholder; it never reaches the backend. `saveAs` addresses:
149
+
150
+ - `$.foo.bar` / `$.orgs.0.id` — JSON body (dot + numeric index only; no JSON Pointer, no filters)
151
+ - `cookie:<name>` — that cookie on `Set-Cookie` for this hop, including followed hops
152
+ - `header:<name>` — a non-set-cookie response header, case-insensitive
153
+
154
+ A login or refresh `from` and its steps' `saveAs`, an `oauth2` grant's tokens, and `expiresIn: { from }` read an answer whose media type is `application/x-www-form-urlencoded` (parameters such as `; charset=utf-8` ignored) as a form: `access_token` or `$.access_token` names a field. Form answers support top-level keys only. Any other answer is read as JSON, never sniffed, and a value it does not hold fails with a reason that names its type. Every value read from a form is a secret before the answer is recorded, as from JSON.
155
+
156
+ Missing cookie / header / JSON path fails the step closed. Bind `saveAs.refreshToken` from `$.refresh_token` or `cookie:refresh` so `{refreshToken}` interpolates in `refresh`. A `{name}` in a login or refresh step that nothing fills (an earlier `saveAs`, `bind`, `saveClaimsFrom` or out-of-band `as`; for a refresh, also what the login saved and `{credential}`) is a config error naming it; where only the run knows the value, a signup's answer say, the step is refused before it is sent and the principal is BLOCKED for that scheme. `saveClaimsFrom.token` is a JSON path into the response body (`$.access_token`) or a scope key already bound by `saveAs` (`credential`). Signature is not verified — the API tester is reading its own credential.
157
+
158
+ `bind` on a step runs **before** the request. `saveAs` then `saveClaimsFrom` run **after**. `from` is read from the last HTTP response unless a step already saved `credential`. `outOfBand.as = "credential"` still wins over `from`.
159
+
160
+ A login that registers the account it signs in to is torn down only when it calls the `x-fresh-principal` operation or the principal sets `created: true`; see [Principals](#principals).
161
+
162
+ ## Credentials from a hook
163
+
164
+ When the credential is produced outside the API tester (a human finishes Google OAuth on a harvest page, a pair lands in KV, a TOTP code), do not make the API tester drive `authorize` / `callback`. Declare a hook recipe:
165
+
166
+ ```ts
167
+ security: { google: { hook: true } },
168
+ hooks: {
169
+ resolveCredential: async (scheme, principal) => readHarvested(scheme, principal.id),
170
+ },
171
+ ```
172
+
173
+ The API tester calls `hooks.resolveCredential(scheme, { id, identity })` on every acquire, so a renewal calls it again. Return the value, `{ value, expiresIn? }`, or `null`, which blocks that principal for that scheme with the reason in the report. The API tester does not speak OAuth.
@@ -0,0 +1,283 @@
1
+ # testing api — Configuration reference
2
+
3
+ [← back to the overview](../../../README.md)
4
+
5
+ The config file, field by field. The rest of the configuration docs: [principals and security](principals-and-security.md), [hooks](hooks.md), [origins and uploads](origins-and-uploads.md); upgrading from 0.24: [migrating to 0.25](../migrating-0.25.md).
6
+
7
+ ## Complete configs
8
+
9
+ These are copy-paste starting points. Real configs import `defineConfig` from `@workerstack/testing`. Files inside this repository import from `../dist/index.js` because they live in the source tree.
10
+
11
+ ### Starting from testing api init
12
+
13
+ `testing api init --spec <url|file>` writes a starter `testing.api.config.ts` from the document: one `security` recipe per scheme it declares, each secret read with `env()`, and one principal. Set the env vars it prints, then run `testing api doctor --config testing.api.config.ts`. A document that declares no scheme gets a commented `overlay.securitySchemes` stub to declare one. See [`testing api init`](../commands.md#testing-api-init).
14
+
15
+ ### Static API keys, two tenants (smallest useful)
16
+
17
+ ```ts
18
+ // testing.api.config.ts
19
+ import { defineConfig } from "@workerstack/testing/api"
20
+
21
+ export default defineConfig({
22
+ spec: "https://api.example.com/openapi.json",
23
+ baseUrl: "https://api.example.com",
24
+ security: { bearer: { static: "${API_TOKEN}" } },
25
+ principals: {
26
+ alpha: { tenant: "a", scope: { project_id: "${PROJECT_A}" } },
27
+ beta: { tenant: "b", scope: { project_id: "${PROJECT_B}" }, security: { bearer: { static: "${API_TOKEN_B}" } } },
28
+ },
29
+ })
30
+ ```
31
+
32
+ ```bash
33
+ export API_TOKEN=… API_TOKEN_B=… PROJECT_A=proj_a PROJECT_B=proj_b
34
+ testing api run --config testing.api.config.ts
35
+ ```
36
+
37
+ `bearer` names a scheme in the document's `components.securitySchemes`; the API tester places the value where that scheme says. One principal is enough to seed and run CRUD / query / schema checks. The second principal, in a different `tenant`, is what makes `tenant.*` run. Without it those checks are **did not apply**, not a pass.
38
+
39
+ Shipped as `labs/api/minimal.config.ts` (and in the npm package).
40
+
41
+ ### JSON config
42
+
43
+ Same object. `${NAME}` is interpolated after load. There is no `defineConfig` wrapper.
44
+
45
+ ```json
46
+ {
47
+ "spec": "https://api.example.com/openapi.json",
48
+ "baseUrl": "https://api.example.com",
49
+ "security": { "apiKey": { "static": "${API_KEY}", "format": "ApiKey {credential}" } },
50
+ "principals": { "alpha": { "tenant": "a", "scope": { "project_id": "${PROJECT_A}" } } },
51
+ "seed": 42,
52
+ "cohortSize": 7,
53
+ "outDir": "./.testing/api/runs"
54
+ }
55
+ ```
56
+
57
+ ```bash
58
+ testing api run --config testing.api.config.json
59
+ ```
60
+
61
+ ### Demo server (operation-id login)
62
+
63
+ Shipped as `labs/api/local.config.ts`. Points at `testing api serve`.
64
+
65
+ ```ts
66
+ import { defineConfig } from "@workerstack/testing/api"
67
+
68
+ export default defineConfig({
69
+ spec: "/v1/openapi/spec",
70
+ baseUrl: "http://127.0.0.1:8787",
71
+ seed: 42,
72
+ security: {
73
+ jwt: {
74
+ login: { steps: [{ operationId: "auth.token", body: { key: "{principal.key}" } }], from: "$.access_token" },
75
+ },
76
+ },
77
+ principals: {
78
+ alpha: { key: "key_alpha", tenant: "proj_alpha", scope: { project_id: "proj_alpha" }, rank: 2 },
79
+ beta: { key: "key_beta", tenant: "proj_beta", scope: { project_id: "proj_beta" }, rank: 2 },
80
+ },
81
+ })
82
+ ```
83
+
84
+ `spec: "/v1/openapi/spec"` is resolved against `baseUrl`. `--base-url` on the CLI overrides the origin without editing the file.
85
+
86
+ ### Two tenants plus a same-tenant rank lattice
87
+
88
+ See [Principals](principals-and-security.md#principals). Isolation keys off `tenant`. Rank keys off `rank` within one tenant.
89
+
90
+ ## Config files
91
+
92
+ Two inputs, always: **the spec** and **a config file**. Backend-specific knowledge lives in `x-*` tags and this file. A backend adopts the API tester by adding tags, not by adapting to the API tester.
93
+
94
+ A config is:
95
+
96
+ - `.ts` / `.js` / `.mjs` with `export default defineConfig({ ... })`, or
97
+ - `.json` with the same object.
98
+
99
+ Named export without `default` is also accepted (`module.default ?? module`).
100
+
101
+ ## Top-level fields
102
+
103
+ ```ts
104
+ import { defineConfig } from "@workerstack/testing/api"
105
+
106
+ export default defineConfig({
107
+ spec: "https://api.example.com/openapi.json", // URL or filesystem path; JSON or YAML
108
+ baseUrl: "https://api.example.com",
109
+ security: { bearer: { static: "${API_TOKEN}" } }, // one recipe per scheme the document declares
110
+ principals: { alpha: { tenant: "acme" } }, // at least one; see below
111
+ hooks: {/* optional */},
112
+ uploads: { pool: ["./fixtures/**/*"], eachMax: 24 },
113
+ globalHeaders: { "x-request-id": "the API tester" }, // sent on every request; never a credential
114
+ redact: { headers: ["x-tester-key"] }, // secret, but not a credential
115
+ seed: 42, // fixture generation; a failing run with the same seed is identical
116
+ cohortSize: 12, // records created per entity (default 7)
117
+ maxInFlight: 4, // HTTP in flight
118
+ ops: ["store.create", "product.*"], // grade only these operationIds; the rest is support
119
+ only: ["store", "product"], // grade every operation these entities own (union with ops)
120
+ keepFixtures: false,
121
+ outDir: "./.testing/api/runs",
122
+ saveExchanges: true, // default on unless --profile cheap; --quiet does not turn this off
123
+ network: { retries: 4, waitMs: 60_000 }, // fetch-threw: retry, then wait for the link
124
+ outOfBand: { attempts: 20, initialMs: 1000, maxMs: 8000 },
125
+ origins: [
126
+ {
127
+ id: "cdn",
128
+ baseUrl: "https://cdn.example.com",
129
+ spec: "https://cdn.example.com/openapi.json",
130
+ security: { bearer: "bearer" },
131
+ },
132
+ ],
133
+ query: {
134
+ // grammar / sortGrammar: a preset name or a template, as on x-query; outranks the document
135
+ grammar: "postgrest",
136
+ // the parameter each role is sent in, where no alias finds it; outranks x-query.params
137
+ params: { filter: "filter_by" },
138
+ // the response field each paging fact is read from, where no alias finds it; outranks x-query.envelope
139
+ envelope: { nextCursor: "next_cursor_id" },
140
+ operators: ["eq", "neq", "gt", "gte", "lt", "lte", "in", "nin", "like", "ilike", "is"],
141
+ emptyIn: "match-none",
142
+ maxInValues: 100,
143
+ searchEmpty: "match-all",
144
+ sort: { nulls: ["first", "last"], maxKeys: 3 },
145
+ select: { unknown: "reject" },
146
+ },
147
+ entities: {
148
+ row: {
149
+ query: {
150
+ // an entity's grammar outranks the run's
151
+ sortGrammar: { term: "{field}_{direction}", asc: "ascending", desc: "descending", join: "," }, // join: "repeat" sends one sort parameter per key
152
+ identityFilter: "_id",
153
+ filterable: [{ field: "_id", type: "string", ops: ["eq", "neq", "in"] }],
154
+ },
155
+ },
156
+ },
157
+ })
158
+ ```
159
+
160
+ | field | required | default | notes |
161
+ | --------------- | -------- | --------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
162
+ | `spec` | yes | | See [Spec loading](#spec-loading) |
163
+ | `baseUrl` | yes | | Primary origin. OpenAPI `servers[]` is ignored |
164
+ | `principals` | yes | | A map of id → identity data, at least one. The writer is the one `writer` names, or the first. See [Principals](principals-and-security.md#principals) |
165
+ | `writer` | no | the first principal | The principal that writes: it makes the records every check works on. A name that is no principal is an error that lists the principals |
166
+ | `security` | no | | One recipe per scheme the document declares: how each credential is obtained. See [Security recipes](principals-and-security.md#security-recipes) |
167
+ | `hooks` | no | | See [Hooks](hooks.md#hooks) |
168
+ | `uploads` | no | | `pool` globs; optional `each` (operationId → globs) and `eachMax`. JSON configs may set all three |
169
+ | `globalHeaders` | no | `{}` | Merged first, then `resolveHeaders`, then caller headers. Never a credential: a credential header, or one where a scheme places its credential, exits 2 |
170
+ | `cache` | no | `{ bypass: true }` | Every documented read is sent the cache bypass its `x-consistency` declares, else `Cache-Control: no-cache`, so a write is verified against the database. `bypass: false` sends none (a firewall refuses the header, or the caches are under test). A header `globalHeaders` or `resolveHeaders` sets under that name wins |
171
+ | `redact` | no | | `{ headers: ["x-tester-key"] }`: header names whose values are secret though they carry no credential, scrubbed wherever a run records them |
172
+ | `origins` | no | `[]` | Extra `{ id, baseUrl, spec, maxRps?, overlay?, security? }` hosts. `security` maps an origin scheme to a primary recipe. Do not merge those routes into `spec`. See [Secondary origins](origins-and-uploads.md#secondary-origins) |
173
+ | `outOfBand` | no | `{ attempts: 6, initialMs: 200, maxMs: 3000 }` | Backoff for `resolveOutOfBand`. See [Hooks](hooks.md#hooks) |
174
+ | `seed` | no | `1` | Integer. Same seed → same fixture bodies |
175
+ | `cohortSize` | no | `7` | Sliced from the 7 built-in variants. Larger repeats the pattern |
176
+ | `maxInFlight` | no | `4` | Across the whole run |
177
+ | `maxRps` | no | none | Requests per second to `baseUrl` in all, across every route: a limit no route declares, such as a CDN or firewall capping each client IP. Route budgets (`rateLimits`, `x-rate-limit`) still hold under it |
178
+ | `checks` | no | none on | Checks that run only when switched on, by id: `{ "auth.login-throttled": true }` sends failed logins for an identity that does not exist until the login answers 429. An unknown id is a config problem |
179
+ | `payloads` | no | `"per-write-path"` | String payload catalog: all 159 cases once per write path (media type + field type), one per family elsewhere, said in a run note; `"full"` sends every case to every field |
180
+ | `profiles` | no | `full` and `cheap` | Named profiles beyond the two built in: `{ maxCost?, excludeDestructive?, exclude?, excludeExternalKinds? }`. `maxCost` (`low`, `medium` or `high`) excludes an operation whose `x-cost` is higher, `excludeDestructive: true` every `x-destructive` operation, `exclude` the operationIds it lists, and `excludeExternalKinds` every scenario with a step whose external has one of those `externals.kinds`. An entry named `full` or `cheap` replaces that built-in. See [`--profile`](../tags.md#--profile--cost-gating) |
181
+ | `profile` | no | `"full"` | The active profile, by name. `--profile` overrides it. A name neither built in nor in `profiles` is an error that lists the known ones |
182
+ | `ops` | no | every operation | The operations to grade, each by its [operation name](#operation-names); every other operation is support, called to reach or observe a target and never graded. `*` globs within a name (`row.*`), and `<originId>:<operationId>` names an operation on a secondary origin. Joins `only` as a union. A name that matches nothing is a usage error (exit 2). `--ops` replaces the list. See [Targeted runs](../commands.md#targeted-runs---ops) |
183
+ | `only` | no | all | Entity names from `testing api plan` |
184
+ | `keepFixtures` | no | `false` | Skip DELETE at the end |
185
+ | `overlay` | no | | Patches to a document you cannot change: `{ operations: { "<operation name>": { … } }, schemas: { "<Name>": { … } }, securitySchemes: { "<name>": { … } }, security: [{ "<name>": [] }] }`. Objects merge, arrays replace, `null` deletes a key, a patch's own `operationId` renames the operation. Each `operations` key is an [operation name](#operation-names) as the document gives it before any patch. A patch naming nothing is a usage error (exit 2), as are two keys naming one operation (`GET /a` and `get /a`), except `securitySchemes`, whose purpose is to declare a scheme the document lacks (`null` deletes one); `security` replaces the root requirement. Both apply before anything reads the document, so `doctor`, `plan` and `run` all see them. `origins[].overlay` does the same for an origin |
186
+ | `allow` | no | | The only operations the API tester may call, each by its [operation name](#operation-names). Every other operation leaves the document after the overlay, so no check, contract call, scenario or teardown can reach it; `testing api doctor` lists what was removed. An entry naming nothing, or a recipe's login or refresh step, mint, revoke or scenario step needing a removed operation, is a usage error |
187
+ | `fence` | no | `{ failRun: true }` | With `hooks.beforeRequest`: whether a refused request alone fails the run (exit 3) |
188
+ | `baseline` | no | | Path, relative to the config, to a file `testing api baseline` writes: `{ "version": 1, "entries": [{ "check", "entity"?, "operationId"?, "reason" }] }`. Matched findings are reported as known and do not fail the run; unmatched entries are reported as fixed. A file the API tester cannot read is a usage error |
189
+ | `targetVersion` | no | | Where the backend says which build it is, read once after sign-in: `{ operationId \| path, from, scheme? }`, with `from` a `$.json.path` into the body or `header:<name>`. An operation is read as the first principal under its security; a `path` is read anonymously, or as the first principal sending `scheme`, a scheme the document declares. Reports and `testing api diff` show it; a version that cannot be read is noted and never changes the verdict |
190
+ | `teardown` | no | `{ verify: true }` | After teardown, read each list again with the creator's credential; a record still listed after its delete answered 2xx is a leftover (`delete answered 2xx but the record is still listed`). `verify: false` skips the read |
191
+ | `outDir` | no | `./.testing/api/runs` | History root, relative to the config (the default, to the working directory). Each run writes `<outDir>/<datetime>/` and updates `latest`, with `principals.json`, which holds no credential value |
192
+ | `saveExchanges` | no | on unless `profile` is `cheap` | Persist every HTTP exchange under the run dir. `--save-exchanges` / `--no-save-exchanges` override. `--quiet` does not |
193
+ | `network` | no | `{ retries: 4, waitMs: 60000, requestTimeoutMs: 180000, maxRetryAfterMs: 60000 }` | When `fetch` throws (offline / DNS / reset / timeout): retry, then wait once for the link. `requestTimeoutMs: 0` disables the per-attempt cap. `maxRetryAfterMs` is the longest `Retry-After` a 429 or 503 is waited out for; a longer one is neither waited for nor retried, and its finding names the wait and the limit |
194
+ | `query` | no | | Global query-catalog defaults. Overlay after `x-query`. Does not invent operators. `params` names the parameter each role is sent in (`filter`, `sort`, `select`, `search`, `searchMode`, `limit`, `page`, `offset`, `cursor`), run-wide, outranking `x-query.params` on each operation that declares the name. A name no operation of the document or any origin declares, or an unknown role, stops the run. `envelope` names the response field each paging fact is read from (`total`, `hasMore`, `nextCursor`) the same way, outranking `x-query.envelope` on each list whose response declares the field; a field no list response of the document or any origin declares stops the run. To name a parameter or field for one operation, use `overlay.operations.<id>["x-query"].params` or `.envelope`; `entities.<name>.query` has neither |
195
+ | `entities` | no | | Per-entity overlays. This release only reads `query`. Unknown names are ignored; `doctor` warns |
196
+ | `scenarios` | no | `[]` | Declared flows for operations the matrix cannot reach. See [Scenarios](#scenarios) |
197
+ | `externals` | no | | `{ kinds: { <external>: <kind> } }`: each scenario external's kind, in your own words (`externalKinds` in [`@workerstack/testing/api/steps`](../steps.md#externals) builds it from a registry). A profile's `excludeExternalKinds` leaves out a scenario that needs an excluded kind: nothing is sent for it, and it is a `profile.skip` gap naming the external, its kind and the profile, so what it covers stays ungraded |
198
+
199
+ `spec` may be a path relative to `baseUrl` (`/v1/openapi/spec`) or an absolute URL or a file. Every relative file path a config holds (`spec`, each origin's `spec`, `baseline`, `outDir`, upload patterns) is read from the config file's folder, whatever the working directory.
200
+
201
+ CLI `--base-url`, `--ops`, `--only`, `--seed`, `--out`, `--max-in-flight`, `--keep-fixtures`, `--save-exchanges` / `--no-save-exchanges` override these when passed.
202
+
203
+ ## Operation names
204
+
205
+ `ops`, `allow` and `overlay.operations` name an operation the same way, through one resolver. An
206
+ operation is named by its `operationId`, or, when the document gives it none, `METHOD /path`, as
207
+ in `"GET /admin/realms/{realm}/users"`. The method may be written in any case; the path must be
208
+ one of the document's path templates exactly, so `/users/` and `/users/{id}` for `/users/{userId}`
209
+ match nothing. An operation with an `operationId` answers to that id alone, the name every report
210
+ prints. A name that matches no operation is a usage error that suggests the nearest names.
211
+
212
+ ## Spec loading
213
+
214
+ Resolved in this order, never by guessing the string's "look":
215
+
216
+ 1. Absolute `http(s)://` or `file://` — used as given.
217
+ 2. A path that exists on disk, relative to the config file's folder (a `--spec` on the command line: the working directory).
218
+ 3. Anything else, when `baseUrl` is known — resolved against it (`/v1/openapi/spec`, `openapi.json`).
219
+
220
+ JSON if the first non-space character is `{` or `[`, otherwise YAML. Empty files error. A JSON document with more opening than closing brackets is diagnosed as truncated (proxy / download limit), not as a syntax error.
221
+
222
+ The API tester reads OpenAPI 3.0–3.2 only. The API tester reads `paths`, operations, parameters, request/response JSON schemas, and `x-*` extensions. A Swagger 2.0 document, an OpenAPI version below 3.0, or one newer than 3.2 is refused with exit 2, naming its version (`testing api: api.json is Swagger 2.0; the API tester reads OpenAPI 3.0–3.2 only — convert it first`). A document with no `openapi` version string is not an OpenAPI document and fails to load.
223
+
224
+ Internal `$ref`s are dereferenced. When the document is a file, a `$ref` to another file by relative path (`./schemas/pet.yaml#/Pet`) is read too, relative to the file that names it, recursively, so a document split across files loads as one; a cycle across files works like one inside a file. Every such file must resolve inside the document's own folder, compared by real path: a ref by absolute path or `file:` URL, one that climbs out with `..`, or a symlink that points outside is refused with exit 2, as is a ref to a missing file (the error names the file and the file that refers to it). URL refs, anchor refs (`#Name`), and every ref in a document fetched by URL stay unresolved and show up in `testing api doctor` / the JSON `externalRefs` list.
225
+
226
+ ## Scenarios
227
+
228
+ Some operations need a scene the document cannot describe: a second factor enabled before it can be verified, a checkout paid before the webhook lands, an invite accepted by someone other than the inviter. A scenario declares that scene as steps. The API tester runs them and grades each operation in `covers` by what the steps observed. The product knowledge lives in your config; the API tester stays generic.
229
+
230
+ ```ts
231
+ scenarios: [
232
+ {
233
+ id: "rename",
234
+ covers: ["notes.create", "notes.rename"],
235
+ steps: [
236
+ { operationId: "notes.create", body: { text: "first" }, saveAs: { id: "$.id" } },
237
+ { operationId: "notes.list", assert: { from: "$.items[*].text", contains: "first", observes: ["notes.create"] } },
238
+ { operationId: "notes.rename", bind: { id: "{id}" }, body: { text: "second" } },
239
+ { operationId: "notes.list", assert: { from: "$.items[*].text", contains: "second", observes: ["notes.rename"] } },
240
+ ],
241
+ },
242
+ ],
243
+ ```
244
+
245
+ Steps are the login steps (`operationId` / raw `method` + `path`, `body`, `bind`, `saveAs`, `expect`, `origin`, `redirect`, and `outOfBand`). `{name}` is filled in a text or JSON `body`; a byte body (`Uint8Array`, `ArrayBuffer`, `Blob`) is an upload and is sent as it is, under the step's `mediaType`. Plus:
246
+
247
+ | on a request step | meaning |
248
+ | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
249
+ | `assert: { from, equals \| contains \| excludes \| omits \| atLeast, observes? }` or a list of them | The value at `from` — a JSON path (`[*]` fans out, `[?(@.id=='{id}')]` keeps the items whose field equals a value), or `header:Name` / `cookie:name` as `saveAs` reads them — must equal, contain, or (`excludes`) no longer hold the text, or (`omits`) appear in no node's text, an object's JSON text included (`'"token":'` is a key named `token` at any depth), or (`atLeast`) be a number no lower than it: a count from a sampled or eventually consistent store promises a floor, not an exact value. `{name}` is filled in both the path and the value. A list must all hold on the same exchange, so a response read only a few times (a download with a cap) is checked once. A pass marks the step's own operation and every operation in `observes` `verified`, with this exchange as the observation; `excludes` records it as an absence, `atLeast` the number it saw |
250
+ | `poll: { within: "30s", everyMs?: 500 }` | Re-send until the assert passes or the window runs out — for reads that are eventually consistent. The wait starts at `everyMs` and doubles up to 5s, never below `everyMs` |
251
+ | `anonymous: true` | Send without the scenario principal's credential |
252
+
253
+ | step | meaning |
254
+ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
255
+ | `{ external: "pay-with-test-card", input: { url: "{checkoutUrl}" }, as: "session" }` | Something only a browser or a person can do. The API tester calls `hooks.external(name, input)` and binds the returned string to `as` |
256
+
257
+ A `saveAs` that lands on an object, a number or a boolean, or an `external` step that returns JSON, keeps the value whole: a body or `input` field that is exactly `"{name}"` sends that value with its type, not its string form. Inside a longer string it is interpolated as text. That is how a WebAuthn ceremony passes the server's options to a software authenticator and its credential back.
258
+
259
+ `principal` picks the config principal the steps act as (default: the first), and a step's `principal` sends that one step as another; each must be a principal the config declares, or the config is refused before anything runs. A scenario that sends as a principal BLOCKED at sign-in, itself or in a step, is not run: it is `BLOCKED` by that principal, what it covers stays ungraded, and the run goes on to its report. Each step sends the credentials its operation's security requires; its `scope` parameters are bound from the first step. A record a step creates with a configured principal's credential is ledgered as that principal's and removed at teardown like any other. A step that sends a credential no configured principal holds — an account the scenario signed up itself — creates records the API tester does not track: cleaning those up is the scenario's job. A write's own response never proves that write — its observation has to come from a later read. Each id in `covers` must be called by a step — a scenario that covers what it never calls is refused before the run starts. A `{name}` a step reads must be filled by then: by the scenario principal's `scope`, a login `claims` key written `scope.<name>` (any scheme's, or the principal's own `security` override), or an earlier binding — a `bind` on the same step or before, an earlier step's `saveAs` or `saveClaimsFrom`, or an out-of-band or external `as`. An assert reads before its own step's `saveAs` binds. A scenario that reads a name nothing fills is refused when the config loads, naming the step and the name (`scenarios.reauth.steps[10] reads {orgld}`). A step that fails stops the scenario: the operation it blamed is `failed` with the exchanges as evidence, even when `covers` does not name it (a support step that arms an account fails as loudly as a covered one), and every covered operation it never reached is `blocked` with the step named. A step body field may hold a file as `{ bytes, filename, mediaType }`; on a multipart operation that field is sent as that part under that filename, so a scenario can upload one document under two names. An operation a scenario covers is never graded by the contract floor. A scenario with `origin` belongs to that configured origin: its steps and `covers` name that origin's operations, it runs in that origin's pass with the same principals and their scope, and its grades land on that origin's rows (`--ops files:file.put` targets it). A single step can also set `origin` to reach another origin as support; such a step never covers a main operation.
260
+
261
+ ## Environment interpolation
262
+
263
+ After the module loads, every string in the config is scanned for `${NAME}`:
264
+
265
+ ```ts
266
+ security: {
267
+ bearer: { static: "${API_TOKEN}" },
268
+ }
269
+ ```
270
+
271
+ If `API_TOKEN` is unset, the API tester exits with an error. Do not commit secrets; put them in the environment.
272
+
273
+ Template literals in a `.ts` config (`Bearer ${process.env.API_TOKEN}`) are evaluated by Node _before_ the API tester sees the object. Either style works; `${NAME}` is what a `.json` config can use.
274
+
275
+ `testing api doctor` and `testing api plan` send nothing, so they read a config whose variables are not set yet: an unset `env("NAME")` or `${NAME}` stays the literal `${NAME}`, and the command lists it. `testing api run` never does this, whatever `TESTING_API_DEFER_ENV` the shell exports, and refuses to send a credential that is still such a literal.
276
+
277
+ Names match `[A-Z0-9_]+` case-insensitively.
278
+
279
+ ## Loading TypeScript configs
280
+
281
+ `.js` / `.mjs` / `.json` load everywhere.
282
+
283
+ `.ts` / `.mts` configs, such as the one `testing api init` writes, load under plain `node` on the API tester's floor, Node 22.18 or later, where type stripping is on by default. The published `the API tester` binary is itself JS; it still has to `import()` your config. If that fails (an older Node, or `--no-experimental-strip-types`), the error says so. Workaround: write `.mjs`.
@@ -0,0 +1,23 @@
1
+ # Limits
2
+
3
+ What the API tester cannot do yet, what you see when you hit it, and what to do instead. Each one is a gap the API tester reports, never a finding it invents.
4
+
5
+ ## Deliberate non-features
6
+
7
+ These are by design. Do not look for a flag that turns them off.
8
+
9
+ - **Default request timeout is 180s.** `network.requestTimeoutMs` (per attempt) aborts a stuck `fetch`, including a hung stream; `0` disables it. Watch `status=in_flight` and `idle_ms` in the progress log as that budget is consumed.
10
+ - **A long `Retry-After` is not waited for.** A 429 is retried up to 5 times and a 503 that names its wait up to 3, each waiting out `Retry-After` up to `network.maxRetryAfterMs` (default 60s). A longer wait is neither waited for nor retried: the answer stands, and its finding names the wait and the limit. One 401 forces a credential refresh and a single retry; a second 401 is evidence.
11
+ - **Network throws are not HTTP.** Offline, DNS, reset or timeout: 4 retries, then one wait (default 60s) for the link. If it does not come back, `net.unreachable` is recorded, the remaining work stands down, the report is still written, and the run exits `3`. Failed attempts are journaled as `status: 0` with `{ error: "network", kind }`.
12
+ - **No `servers[]` at run time.** `testing api init` reads the first absolute server URL into `baseUrl`; a run always uses `baseUrl`. Extra hosts are `origins[]`, each with its own `spec`. An app origin that answers HTML and `Set-Cookie` is a request step with an absolute URL, not a dummy spec in `origins[]`.
13
+ - **No OCR.** Multipart file parts are sent as dummy, pool, `each` or `resolveUpload` bytes. The API tester checks HTTP statuses and JSON answers, not whether a PDF is a real invoice.
14
+ - **No webhook, callback or link-object following**, except the explicit auth or invite GET of a URL `resolveOutOfBand` returned. A hook-side `fetch` of that URL is not a recorded exchange.
15
+ - **URL `$ref`s are not fetched.** In-document `$ref`s are, and so are relative refs to files inside the document's own folder.
16
+ - **`x-idempotent` is not the idempotency check.** That check keys off a documented `Idempotency-Key` header.
17
+ - **Rate-limit pacing covers only the API tester's own requests.** It cannot see other traffic to the backend, so a shared budget can still trip while the API tester's own share stayed within the declared rate.
18
+ - **An equality-only filter grammar** cannot express `neq`, `gt`, `like`, `and` or `or`; those checks do not apply, they do not fail. `or()` is PostgREST-only.
19
+ - **Leftover rows on a shared database** poison numeric and filter checks (`1, 10, 2` from old text-sorted rows beside a fresh numeric cohort). Wipe them between runs if a `--keep-fixtures` run or a crashed teardown left any.
20
+ - **`--only` takes plan names** (`store`, not `stores` or `/v1/stores`).
21
+ - **`--ops` trusts support operations.** A targeted green means the targets passed, given that what they needed worked. A defect in an untargeted operation is out of scope, even when a target called it.
22
+ - **The default cohort is 7.** `pagination.limit-respects-documented-max` needs `cohortSize` above the documented maximum.
23
+ - **One principal writes:** the one `writer` names, or the first. Further principals are peers and a rank lattice, not a pool of writers.
@@ -0,0 +1,40 @@
1
+ # testing api — Migrating to 0.25
2
+
3
+ [← back to the overview](../../README.md)
4
+
5
+ 0.25 changes how a config says who the API tester acts as, and where its relative paths point. A config that still uses a removed field exits 2 and names the replacement, so nothing changes silently.
6
+
7
+ ## Relative paths resolve from the config's folder
8
+
9
+ A config's relative `spec`, each origin's relative `spec`, and a relative `outDir` now resolve from the config's own folder, no longer from the working directory. A config that sat beside its document keeps working from any directory; one written for a working directory elsewhere needs its paths made relative to its own folder (or absolute).
10
+
11
+ ## Removed config fields
12
+
13
+ A config with any of these exits 2, naming the replacement:
14
+
15
+ | removed | instead |
16
+ | ------------------------------------------------------------ | ------------------------------------------------------------------ |
17
+ | `principals` as an array | a map of id → identity data |
18
+ | `principals[].headers` | `security.<scheme>: { static: … }` |
19
+ | `principals[].auth` | `security.<scheme>: { login: { steps, from } }` |
20
+ | `principals[].roots`, top-level `roots` | `principals.<id>.scope`, and `tenant` |
21
+ | `rootsFromFlow` | `security.<scheme>.login.claims` |
22
+ | `x-auth-flows`, in the config or the document | a `security.<scheme>` recipe |
23
+ | a credential in `globalHeaders` (`Authorization`, `Cookie`…) | the scheme places it; `redact.headers` for a non-credential secret |
24
+ | `hooks.resolvePrincipalAuth` | `{ hook: true }` and `hooks.resolveCredential` |
25
+
26
+ ## The writer is named, or the first principal
27
+
28
+ An array kept its order; a map's key order is easy to lose, and a sort-keys lint rule reorders it. The writer, the principal that makes the records every check works on, is the one top-level `writer` names, or else the first key of `principals`. A config whose principals a linter sorts, or that wants a writer other than its first entry, sets `writer: "<id>"`. `testing api doctor` prints who writes and why.
29
+
30
+ ## Renamed checks
31
+
32
+ Three check ids are spelled en-US now:
33
+
34
+ | 0.24 | 0.25 |
35
+ | -------------------------------------- | ------------------------------------- |
36
+ | `select.projection-honoured` | `select.projection-honored` |
37
+ | `select.nested-honoured` | `select.nested-honored` |
38
+ | `spec.declared-rate-limit-is-honoured` | `spec.declared-rate-limit-is-honored` |
39
+
40
+ A baseline that names an old id exits 2 and names the new one, as it does for any id no check raises, so a known finding never reads as fixed because its check was renamed. `testing api diff` between a 0.24 report and a 0.25 one shows those checks' findings as fixed under the old id and new under the new one.