@gfdelarue/testkit 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1548) hide show
  1. package/LICENSE +68 -0
  2. package/README.md +1125 -0
  3. package/bin/testkit-windows-owner-arm64.exe +0 -0
  4. package/bin/testkit-windows-owner-x64.exe +0 -0
  5. package/bin/testkit.mjs +60 -0
  6. package/dist/app/cleanup/index.d.ts +52 -0
  7. package/dist/app/cleanup/index.js +1 -0
  8. package/dist/app/cloud/campaigns.d.ts +6 -0
  9. package/dist/app/cloud/campaigns.js +1 -0
  10. package/dist/app/cloud/control-actions.d.ts +12 -0
  11. package/dist/app/cloud/control-actions.js +2 -0
  12. package/dist/app/cloud/control-links.d.ts +5 -0
  13. package/dist/app/cloud/control-links.js +1 -0
  14. package/dist/app/cloud/control-read.d.ts +24 -0
  15. package/dist/app/cloud/control-read.js +1 -0
  16. package/dist/app/cloud/control-resources.d.ts +3 -0
  17. package/dist/app/cloud/control-resources.js +1 -0
  18. package/dist/app/cloud/control.d.ts +34 -0
  19. package/dist/app/cloud/control.js +5 -0
  20. package/dist/app/cloud/credentials.d.ts +11 -0
  21. package/dist/app/cloud/credentials.js +2 -0
  22. package/dist/app/cloud/index.d.ts +22 -0
  23. package/dist/app/cloud/index.js +2 -0
  24. package/dist/app/cloud/login.d.ts +63 -0
  25. package/dist/app/cloud/login.js +2 -0
  26. package/dist/app/cloud/migration/archive.d.ts +13 -0
  27. package/dist/app/cloud/migration/archive.js +1 -0
  28. package/dist/app/cloud/migration/commands.d.ts +8 -0
  29. package/dist/app/cloud/migration/commands.js +1 -0
  30. package/dist/app/cloud/migration/evidence.d.ts +13 -0
  31. package/dist/app/cloud/migration/evidence.js +2 -0
  32. package/dist/app/cloud/migration/files.d.ts +16 -0
  33. package/dist/app/cloud/migration/files.js +2 -0
  34. package/dist/app/cloud/migration/index.d.ts +6 -0
  35. package/dist/app/cloud/migration/index.js +1 -0
  36. package/dist/app/cloud/migration/journal.d.ts +64 -0
  37. package/dist/app/cloud/migration/journal.js +1 -0
  38. package/dist/app/cloud/migration/mapping-dispositions.d.ts +3 -0
  39. package/dist/app/cloud/migration/mapping-dispositions.js +1 -0
  40. package/dist/app/cloud/migration/mapping.d.ts +11 -0
  41. package/dist/app/cloud/migration/mapping.js +2 -0
  42. package/dist/app/cloud/migration/model.d.ts +175 -0
  43. package/dist/app/cloud/migration/model.js +1 -0
  44. package/dist/app/cloud/migration/plan.d.ts +7 -0
  45. package/dist/app/cloud/migration/plan.js +1 -0
  46. package/dist/app/cloud/migration/progress.d.ts +19 -0
  47. package/dist/app/cloud/migration/progress.js +1 -0
  48. package/dist/app/cloud/migration/reconcile.d.ts +22 -0
  49. package/dist/app/cloud/migration/reconcile.js +1 -0
  50. package/dist/app/cloud/migration/reconciliation-spool.d.ts +4 -0
  51. package/dist/app/cloud/migration/reconciliation-spool.js +1 -0
  52. package/dist/app/cloud/migration/state.d.ts +15 -0
  53. package/dist/app/cloud/migration/state.js +1 -0
  54. package/dist/app/cloud/migration/transfer.d.ts +6 -0
  55. package/dist/app/cloud/migration/transfer.js +1 -0
  56. package/dist/app/db-schema/prepare.d.ts +11 -0
  57. package/dist/app/db-schema/prepare.js +1 -0
  58. package/dist/app/db-schema/refresh.d.ts +17 -0
  59. package/dist/app/db-schema/refresh.js +1 -0
  60. package/dist/app/db-schema/verify.d.ts +11 -0
  61. package/dist/app/db-schema/verify.js +1 -0
  62. package/dist/app/destroy/index.d.ts +16 -0
  63. package/dist/app/destroy/index.js +1 -0
  64. package/dist/app/discover/index.d.ts +8 -0
  65. package/dist/app/discover/index.js +2 -0
  66. package/dist/app/doctor/index.d.ts +17 -0
  67. package/dist/app/doctor/index.js +1 -0
  68. package/dist/app/file-selection.d.ts +1 -0
  69. package/dist/app/file-selection.js +1 -0
  70. package/dist/app/inspect/artifacts.d.ts +29 -0
  71. package/dist/app/inspect/artifacts.js +1 -0
  72. package/dist/app/inspect/index.d.ts +112 -0
  73. package/dist/app/inspect/index.js +1 -0
  74. package/dist/app/lint/index.d.ts +28 -0
  75. package/dist/app/lint/index.js +2 -0
  76. package/dist/app/lint/native.d.ts +10 -0
  77. package/dist/app/lint/native.js +1 -0
  78. package/dist/app/lint/options.d.ts +67 -0
  79. package/dist/app/lint/options.js +1 -0
  80. package/dist/app/lint/policy.d.ts +21 -0
  81. package/dist/app/lint/policy.js +1 -0
  82. package/dist/app/lint/rules/data.d.ts +3 -0
  83. package/dist/app/lint/rules/data.js +1 -0
  84. package/dist/app/lint/rules/engine-imports.d.ts +3 -0
  85. package/dist/app/lint/rules/engine-imports.js +1 -0
  86. package/dist/app/lint/rules/syntax.d.ts +4 -0
  87. package/dist/app/lint/rules/syntax.js +1 -0
  88. package/dist/app/lint/rules/unit.d.ts +3 -0
  89. package/dist/app/lint/rules/unit.js +1 -0
  90. package/dist/app/lint/shared.d.ts +36 -0
  91. package/dist/app/lint/shared.js +1 -0
  92. package/dist/app/package-inspection.d.ts +20 -0
  93. package/dist/app/package-inspection.js +1 -0
  94. package/dist/app/run/endpoint-readiness.d.ts +43 -0
  95. package/dist/app/run/endpoint-readiness.js +1 -0
  96. package/dist/app/run/engine-evidence-persistence.d.ts +39 -0
  97. package/dist/app/run/engine-evidence-persistence.js +1 -0
  98. package/dist/app/run/engine-execution-cleanup.d.ts +8 -0
  99. package/dist/app/run/engine-execution-cleanup.js +1 -0
  100. package/dist/app/run/engine-execution-failures.d.ts +41 -0
  101. package/dist/app/run/engine-execution-failures.js +1 -0
  102. package/dist/app/run/engine-execution-observer.d.ts +21 -0
  103. package/dist/app/run/engine-execution-observer.js +1 -0
  104. package/dist/app/run/engine-execution-reporting.d.ts +17 -0
  105. package/dist/app/run/engine-execution-reporting.js +1 -0
  106. package/dist/app/run/engine-execution.d.ts +60 -0
  107. package/dist/app/run/engine-execution.js +1 -0
  108. package/dist/app/run/engine-orchestration.d.ts +49 -0
  109. package/dist/app/run/engine-orchestration.js +1 -0
  110. package/dist/app/run/failure-details.d.ts +36 -0
  111. package/dist/app/run/failure-details.js +1 -0
  112. package/dist/app/run/live-run.d.ts +27 -0
  113. package/dist/app/run/live-run.js +1 -0
  114. package/dist/app/run/operation-progress.d.ts +13 -0
  115. package/dist/app/run/operation-progress.js +1 -0
  116. package/dist/app/run/orchestrator.d.ts +68 -0
  117. package/dist/app/run/orchestrator.js +1 -0
  118. package/dist/app/run/planning-types.d.ts +68 -0
  119. package/dist/app/run/planning-types.js +1 -0
  120. package/dist/app/run/planning.d.ts +15 -0
  121. package/dist/app/run/planning.js +1 -0
  122. package/dist/app/run/playwright-configuration.d.ts +2 -0
  123. package/dist/app/run/playwright-configuration.js +1 -0
  124. package/dist/app/run/request.d.ts +30 -0
  125. package/dist/app/run/request.js +1 -0
  126. package/dist/app/run/results.d.ts +161 -0
  127. package/dist/app/run/results.js +1 -0
  128. package/dist/app/run/run-events.d.ts +144 -0
  129. package/dist/app/run/run-events.js +1 -0
  130. package/dist/app/run/run-finalization.d.ts +52 -0
  131. package/dist/app/run/run-finalization.js +1 -0
  132. package/dist/app/run/run-guards.d.ts +3 -0
  133. package/dist/app/run/run-guards.js +3 -0
  134. package/dist/app/run/runtime-failures.d.ts +18 -0
  135. package/dist/app/run/runtime-failures.js +1 -0
  136. package/dist/app/run/runtime-fixtures.d.ts +2 -0
  137. package/dist/app/run/runtime-fixtures.js +1 -0
  138. package/dist/app/run/runtime-task-types.d.ts +20 -0
  139. package/dist/app/run/runtime-task-types.js +1 -0
  140. package/dist/app/run/scheduler/estimates.d.ts +32 -0
  141. package/dist/app/run/scheduler/estimates.js +1 -0
  142. package/dist/app/run/scheduler/identity.d.ts +9 -0
  143. package/dist/app/run/scheduler/identity.js +1 -0
  144. package/dist/app/run/scheduler/index.d.ts +124 -0
  145. package/dist/app/run/scheduler/index.js +1 -0
  146. package/dist/app/run/scheduler/observations.d.ts +20 -0
  147. package/dist/app/run/scheduler/observations.js +1 -0
  148. package/dist/app/run/selection.d.ts +10 -0
  149. package/dist/app/run/selection.js +1 -0
  150. package/dist/app/run/setup/runtime-node-setup-errors.d.ts +13 -0
  151. package/dist/app/run/setup/runtime-node-setup-errors.js +1 -0
  152. package/dist/app/run/setup/runtime-node-setup-protocol.d.ts +85 -0
  153. package/dist/app/run/setup/runtime-node-setup-protocol.js +1 -0
  154. package/dist/app/run/setup/runtime-node-setup-worker.d.ts +1 -0
  155. package/dist/app/run/setup/runtime-node-setup-worker.js +1 -0
  156. package/dist/app/run/setup/runtime-node-setup.d.ts +48 -0
  157. package/dist/app/run/setup/runtime-node-setup.js +3 -0
  158. package/dist/app/run/task-batches.d.ts +23 -0
  159. package/dist/app/run/task-batches.js +1 -0
  160. package/dist/app/run/worker-loop.d.ts +57 -0
  161. package/dist/app/run/worker-loop.js +1 -0
  162. package/dist/app/setup/playwright.d.ts +22 -0
  163. package/dist/app/setup/playwright.js +1 -0
  164. package/dist/app/status/index.d.ts +7 -0
  165. package/dist/app/status/index.js +1 -0
  166. package/dist/app/status/model.d.ts +29 -0
  167. package/dist/app/status/model.js +1 -0
  168. package/dist/app/status/runs.d.ts +99 -0
  169. package/dist/app/status/runs.js +1 -0
  170. package/dist/app/stop/index.d.ts +14 -0
  171. package/dist/app/stop/index.js +1 -0
  172. package/dist/app/typecheck/index.d.ts +61 -0
  173. package/dist/app/typecheck/index.js +4 -0
  174. package/dist/app/typecheck/unavailable.d.ts +1 -0
  175. package/dist/app/typecheck/unavailable.js +1 -0
  176. package/dist/cli/cloud-apply-help.d.ts +1 -0
  177. package/dist/cli/cloud-apply-help.js +56 -0
  178. package/dist/cli/cloud-selection.d.ts +2 -0
  179. package/dist/cli/cloud-selection.js +3 -0
  180. package/dist/cli/command-catalog.d.ts +238 -0
  181. package/dist/cli/command-catalog.js +1 -0
  182. package/dist/cli/command-flags.d.ts +19 -0
  183. package/dist/cli/command-flags.js +1 -0
  184. package/dist/cli/command-registry.d.ts +2 -0
  185. package/dist/cli/command-registry.js +1 -0
  186. package/dist/cli/commands/artifacts.d.ts +48 -0
  187. package/dist/cli/commands/artifacts.js +3 -0
  188. package/dist/cli/commands/cleanup.d.ts +13 -0
  189. package/dist/cli/commands/cleanup.js +1 -0
  190. package/dist/cli/commands/cloud/apply.d.ts +5 -0
  191. package/dist/cli/commands/cloud/apply.js +1 -0
  192. package/dist/cli/commands/cloud/campaign/create.d.ts +5 -0
  193. package/dist/cli/commands/cloud/campaign/create.js +1 -0
  194. package/dist/cli/commands/cloud/download.d.ts +5 -0
  195. package/dist/cli/commands/cloud/download.js +1 -0
  196. package/dist/cli/commands/cloud/list.d.ts +5 -0
  197. package/dist/cli/commands/cloud/list.js +1 -0
  198. package/dist/cli/commands/cloud/login.d.ts +13 -0
  199. package/dist/cli/commands/cloud/login.js +2 -0
  200. package/dist/cli/commands/cloud/logout.d.ts +7 -0
  201. package/dist/cli/commands/cloud/logout.js +1 -0
  202. package/dist/cli/commands/cloud/migrate/apply.d.ts +2 -0
  203. package/dist/cli/commands/cloud/migrate/apply.js +1 -0
  204. package/dist/cli/commands/cloud/migrate/plan.d.ts +7 -0
  205. package/dist/cli/commands/cloud/migrate/plan.js +1 -0
  206. package/dist/cli/commands/cloud/migrate/progress.d.ts +2 -0
  207. package/dist/cli/commands/cloud/migrate/progress.js +2 -0
  208. package/dist/cli/commands/cloud/migrate/reconcile.d.ts +2 -0
  209. package/dist/cli/commands/cloud/migrate/reconcile.js +1 -0
  210. package/dist/cli/commands/cloud/policy/preview.d.ts +5 -0
  211. package/dist/cli/commands/cloud/policy/preview.js +1 -0
  212. package/dist/cli/commands/cloud/project/create.d.ts +5 -0
  213. package/dist/cli/commands/cloud/project/create.js +1 -0
  214. package/dist/cli/commands/cloud/publish.d.ts +7 -0
  215. package/dist/cli/commands/cloud/publish.js +1 -0
  216. package/dist/cli/commands/cloud/session/revoke.d.ts +8 -0
  217. package/dist/cli/commands/cloud/session/revoke.js +1 -0
  218. package/dist/cli/commands/cloud/show.d.ts +5 -0
  219. package/dist/cli/commands/cloud/show.js +1 -0
  220. package/dist/cli/commands/cloud/snapshot.d.ts +5 -0
  221. package/dist/cli/commands/cloud/snapshot.js +1 -0
  222. package/dist/cli/commands/cloud/status.d.ts +33 -0
  223. package/dist/cli/commands/cloud/status.js +1 -0
  224. package/dist/cli/commands/db/schema/refresh.d.ts +2 -0
  225. package/dist/cli/commands/db/schema/refresh.js +1 -0
  226. package/dist/cli/commands/db/schema/verify.d.ts +2 -0
  227. package/dist/cli/commands/db/schema/verify.js +1 -0
  228. package/dist/cli/commands/destroy.d.ts +9 -0
  229. package/dist/cli/commands/destroy.js +1 -0
  230. package/dist/cli/commands/discover.d.ts +2 -0
  231. package/dist/cli/commands/discover.js +1 -0
  232. package/dist/cli/commands/doctor.d.ts +2 -0
  233. package/dist/cli/commands/doctor.js +1 -0
  234. package/dist/cli/commands/guard/unsafe-entrypoint.d.ts +2 -0
  235. package/dist/cli/commands/guard/unsafe-entrypoint.js +2 -0
  236. package/dist/cli/commands/lint.d.ts +2 -0
  237. package/dist/cli/commands/lint.js +1 -0
  238. package/dist/cli/commands/run/status.d.ts +5 -0
  239. package/dist/cli/commands/run/status.js +1 -0
  240. package/dist/cli/commands/run/stop.d.ts +7 -0
  241. package/dist/cli/commands/run/stop.js +1 -0
  242. package/dist/cli/commands/run.d.ts +9 -0
  243. package/dist/cli/commands/run.js +1 -0
  244. package/dist/cli/commands/setup/playwright.d.ts +2 -0
  245. package/dist/cli/commands/setup/playwright.js +1 -0
  246. package/dist/cli/commands/status.d.ts +5 -0
  247. package/dist/cli/commands/status.js +1 -0
  248. package/dist/cli/commands/stop.d.ts +12 -0
  249. package/dist/cli/commands/stop.js +1 -0
  250. package/dist/cli/commands/typecheck.d.ts +2 -0
  251. package/dist/cli/commands/typecheck.js +1 -0
  252. package/dist/cli/commands/workspace.d.ts +2 -0
  253. package/dist/cli/commands/workspace.js +1 -0
  254. package/dist/cli/entrypoint.d.ts +1 -0
  255. package/dist/cli/entrypoint.js +1 -0
  256. package/dist/cli/framework/command.d.ts +21 -0
  257. package/dist/cli/framework/command.js +1 -0
  258. package/dist/cli/framework/definitions.d.ts +100 -0
  259. package/dist/cli/framework/definitions.js +1 -0
  260. package/dist/cli/framework/errors.d.ts +6 -0
  261. package/dist/cli/framework/errors.js +1 -0
  262. package/dist/cli/framework/execute.d.ts +13 -0
  263. package/dist/cli/framework/execute.js +6 -0
  264. package/dist/cli/framework/help.d.ts +11 -0
  265. package/dist/cli/framework/help.js +8 -0
  266. package/dist/cli/framework/index.d.ts +3 -0
  267. package/dist/cli/framework/index.js +1 -0
  268. package/dist/cli/framework/parser.d.ts +6 -0
  269. package/dist/cli/framework/parser.js +1 -0
  270. package/dist/cli/index.d.ts +4 -0
  271. package/dist/cli/index.js +1 -0
  272. package/dist/cli/json-errors.d.ts +3 -0
  273. package/dist/cli/json-errors.js +1 -0
  274. package/dist/cli/operations/db/schema/refresh/operation.d.ts +6 -0
  275. package/dist/cli/operations/db/schema/refresh/operation.js +1 -0
  276. package/dist/cli/operations/db/schema/verify/operation.d.ts +6 -0
  277. package/dist/cli/operations/db/schema/verify/operation.js +1 -0
  278. package/dist/cli/operations/run/operation.d.ts +24 -0
  279. package/dist/cli/operations/run/operation.js +2 -0
  280. package/dist/cli/process-signal.d.ts +1 -0
  281. package/dist/cli/process-signal.js +1 -0
  282. package/dist/cli/renderers/artifact-preview.d.ts +4 -0
  283. package/dist/cli/renderers/artifact-preview.js +1 -0
  284. package/dist/cli/renderers/cleanup/format.d.ts +14 -0
  285. package/dist/cli/renderers/cleanup/format.js +1 -0
  286. package/dist/cli/renderers/db-schema/text.d.ts +4 -0
  287. package/dist/cli/renderers/db-schema/text.js +1 -0
  288. package/dist/cli/renderers/destroy/text.d.ts +4 -0
  289. package/dist/cli/renderers/destroy/text.js +1 -0
  290. package/dist/cli/renderers/discover/report.d.ts +7 -0
  291. package/dist/cli/renderers/discover/report.js +1 -0
  292. package/dist/cli/renderers/discover/text.d.ts +3 -0
  293. package/dist/cli/renderers/discover/text.js +1 -0
  294. package/dist/cli/renderers/doctor/text.d.ts +2 -0
  295. package/dist/cli/renderers/doctor/text.js +1 -0
  296. package/dist/cli/renderers/lint/text.d.ts +2 -0
  297. package/dist/cli/renderers/lint/text.js +1 -0
  298. package/dist/cli/renderers/run/events.d.ts +8 -0
  299. package/dist/cli/renderers/run/events.js +2 -0
  300. package/dist/cli/renderers/run/failure.d.ts +8 -0
  301. package/dist/cli/renderers/run/failure.js +1 -0
  302. package/dist/cli/renderers/run/formatting.d.ts +79 -0
  303. package/dist/cli/renderers/run/formatting.js +1 -0
  304. package/dist/cli/renderers/run/status.d.ts +6 -0
  305. package/dist/cli/renderers/run/status.js +1 -0
  306. package/dist/cli/renderers/run/text-reporter.d.ts +19 -0
  307. package/dist/cli/renderers/run/text-reporter.js +23 -0
  308. package/dist/cli/renderers/status/text.d.ts +2 -0
  309. package/dist/cli/renderers/status/text.js +1 -0
  310. package/dist/cli/renderers/stop/text.d.ts +7 -0
  311. package/dist/cli/renderers/stop/text.js +1 -0
  312. package/dist/cli/renderers/typecheck/text.d.ts +2 -0
  313. package/dist/cli/renderers/typecheck/text.js +1 -0
  314. package/dist/cli/terminal/colors.d.ts +10 -0
  315. package/dist/cli/terminal/colors.js +1 -0
  316. package/dist/cli/terminal/layout.d.ts +11 -0
  317. package/dist/cli/terminal/layout.js +2 -0
  318. package/dist/cli/version-drift.d.ts +25 -0
  319. package/dist/cli/version-drift.js +7 -0
  320. package/dist/cloud/account.d.ts +34 -0
  321. package/dist/cloud/account.js +1 -0
  322. package/dist/cloud/archive-contract.d.ts +1 -0
  323. package/dist/cloud/archive-contract.js +1 -0
  324. package/dist/cloud/archive.d.ts +12 -0
  325. package/dist/cloud/archive.js +1 -0
  326. package/dist/cloud/campaigns.d.ts +200 -0
  327. package/dist/cloud/campaigns.js +2 -0
  328. package/dist/cloud/client.d.ts +68 -0
  329. package/dist/cloud/client.js +4 -0
  330. package/dist/cloud/download.d.ts +5 -0
  331. package/dist/cloud/download.js +1 -0
  332. package/dist/cloud/historical-contract.d.ts +224 -0
  333. package/dist/cloud/historical-contract.js +1 -0
  334. package/dist/cloud/historical-json.d.ts +16 -0
  335. package/dist/cloud/historical-json.js +1 -0
  336. package/dist/cloud/historical.d.ts +69 -0
  337. package/dist/cloud/historical.js +1 -0
  338. package/dist/cloud/pagination.d.ts +5 -0
  339. package/dist/cloud/pagination.js +1 -0
  340. package/dist/cloud/transport.d.ts +18 -0
  341. package/dist/cloud/transport.js +1 -0
  342. package/dist/config/authoring/build-config-contract.d.ts +27 -0
  343. package/dist/config/authoring/build-config-contract.js +1 -0
  344. package/dist/config/authoring/configured-step-contract.d.ts +18 -0
  345. package/dist/config/authoring/configured-step-contract.js +1 -0
  346. package/dist/config/authoring/http-execution-contract.d.ts +70 -0
  347. package/dist/config/authoring/http-execution-contract.js +1 -0
  348. package/dist/config/authoring/http-methods.d.ts +18 -0
  349. package/dist/config/authoring/http-methods.js +1 -0
  350. package/dist/config/authoring/index.d.ts +376 -0
  351. package/dist/config/authoring/index.js +1 -0
  352. package/dist/config/authoring/preset-env.d.ts +19 -0
  353. package/dist/config/authoring/preset-env.js +1 -0
  354. package/dist/config/authoring/runtime.d.ts +64 -0
  355. package/dist/config/authoring/runtime.js +1 -0
  356. package/dist/config/loader/cloud.d.ts +2 -0
  357. package/dist/config/loader/cloud.js +1 -0
  358. package/dist/config/loader/config-loader.d.ts +9 -0
  359. package/dist/config/loader/config-loader.js +1 -0
  360. package/dist/config/loader/database-materialization.d.ts +19 -0
  361. package/dist/config/loader/database-materialization.js +1 -0
  362. package/dist/config/loader/database-roles.d.ts +2 -0
  363. package/dist/config/loader/database-roles.js +1 -0
  364. package/dist/config/loader/database.d.ts +55 -0
  365. package/dist/config/loader/database.js +1 -0
  366. package/dist/config/loader/decode-discovery.d.ts +5 -0
  367. package/dist/config/loader/decode-discovery.js +1 -0
  368. package/dist/config/loader/decode-execution.d.ts +9 -0
  369. package/dist/config/loader/decode-execution.js +1 -0
  370. package/dist/config/loader/dependencies.d.ts +7 -0
  371. package/dist/config/loader/dependencies.js +1 -0
  372. package/dist/config/loader/discover-tests.d.ts +101 -0
  373. package/dist/config/loader/discover-tests.js +1 -0
  374. package/dist/config/loader/discovery-summary.d.ts +29 -0
  375. package/dist/config/loader/discovery-summary.js +1 -0
  376. package/dist/config/loader/discovery.d.ts +54 -0
  377. package/dist/config/loader/discovery.js +2 -0
  378. package/dist/config/loader/env.d.ts +4 -0
  379. package/dist/config/loader/env.js +1 -0
  380. package/dist/config/loader/execution-model.d.ts +16 -0
  381. package/dist/config/loader/execution-model.js +1 -0
  382. package/dist/config/loader/file-metadata.d.ts +19 -0
  383. package/dist/config/loader/file-metadata.js +1 -0
  384. package/dist/config/loader/index.d.ts +10 -0
  385. package/dist/config/loader/index.js +1 -0
  386. package/dist/config/loader/load.d.ts +89 -0
  387. package/dist/config/loader/load.js +1 -0
  388. package/dist/config/loader/managed-configs.d.ts +21 -0
  389. package/dist/config/loader/managed-configs.js +1 -0
  390. package/dist/config/loader/path-policy.d.ts +9 -0
  391. package/dist/config/loader/path-policy.js +1 -0
  392. package/dist/config/loader/paths.d.ts +5 -0
  393. package/dist/config/loader/paths.js +1 -0
  394. package/dist/config/loader/runtime-isolation.d.ts +44 -0
  395. package/dist/config/loader/runtime-isolation.js +1 -0
  396. package/dist/config/loader/runtime.d.ts +25 -0
  397. package/dist/config/loader/runtime.js +1 -0
  398. package/dist/config/loader/skip-config.d.ts +44 -0
  399. package/dist/config/loader/skip-config.js +1 -0
  400. package/dist/config/loader/validation.d.ts +16 -0
  401. package/dist/config/loader/validation.js +1 -0
  402. package/dist/config/loader/values.d.ts +4 -0
  403. package/dist/config/loader/values.js +1 -0
  404. package/dist/config/runtime/build-assets.d.ts +6 -0
  405. package/dist/config/runtime/build-assets.js +1 -0
  406. package/dist/config/runtime/env/index.d.ts +35 -0
  407. package/dist/config/runtime/env/index.js +1 -0
  408. package/dist/config/runtime/next-runtime-tsconfig.d.ts +6 -0
  409. package/dist/config/runtime/next-runtime-tsconfig.js +2 -0
  410. package/dist/database/activity-gate.d.ts +22 -0
  411. package/dist/database/activity-gate.js +1 -0
  412. package/dist/database/admin.d.ts +31 -0
  413. package/dist/database/admin.js +2 -0
  414. package/dist/database/cleanup.d.ts +36 -0
  415. package/dist/database/cleanup.js +1 -0
  416. package/dist/database/configured-steps.d.ts +27 -0
  417. package/dist/database/configured-steps.js +1 -0
  418. package/dist/database/constants.d.ts +11 -0
  419. package/dist/database/constants.js +1 -0
  420. package/dist/database/docker.d.ts +65 -0
  421. package/dist/database/docker.js +5 -0
  422. package/dist/database/drizzle/index.d.ts +13 -0
  423. package/dist/database/drizzle/index.js +1 -0
  424. package/dist/database/fingerprint.d.ts +12 -0
  425. package/dist/database/fingerprint.js +1 -0
  426. package/dist/database/index.d.ts +41 -0
  427. package/dist/database/index.js +1 -0
  428. package/dist/database/local-postgres.d.ts +71 -0
  429. package/dist/database/local-postgres.js +2 -0
  430. package/dist/database/naming.d.ts +17 -0
  431. package/dist/database/naming.js +1 -0
  432. package/dist/database/postgres/index.d.ts +71 -0
  433. package/dist/database/postgres/index.js +2 -0
  434. package/dist/database/progress.d.ts +6 -0
  435. package/dist/database/progress.js +1 -0
  436. package/dist/database/roles.d.ts +19 -0
  437. package/dist/database/roles.js +41 -0
  438. package/dist/database/runtime-config.d.ts +16 -0
  439. package/dist/database/runtime-config.js +1 -0
  440. package/dist/database/runtime-reservations.d.ts +19 -0
  441. package/dist/database/runtime-reservations.js +1 -0
  442. package/dist/database/schema-operations.d.ts +18 -0
  443. package/dist/database/schema-operations.js +1 -0
  444. package/dist/database/schema-source.d.ts +93 -0
  445. package/dist/database/schema-source.js +3 -0
  446. package/dist/database/source-refresh-lock.d.ts +8 -0
  447. package/dist/database/source-refresh-lock.js +1 -0
  448. package/dist/database/source-url.d.ts +22 -0
  449. package/dist/database/source-url.js +2 -0
  450. package/dist/database/state-files.d.ts +13 -0
  451. package/dist/database/state-files.js +1 -0
  452. package/dist/database/state.d.ts +26 -0
  453. package/dist/database/state.js +1 -0
  454. package/dist/database/steps.d.ts +16 -0
  455. package/dist/database/steps.js +4 -0
  456. package/dist/database/template-steps.d.ts +35 -0
  457. package/dist/database/template-steps.js +4 -0
  458. package/dist/domain/file-timeout.d.ts +28 -0
  459. package/dist/domain/file-timeout.js +1 -0
  460. package/dist/domain/identifiers.d.ts +9 -0
  461. package/dist/domain/identifiers.js +1 -0
  462. package/dist/domain/operation-display.d.ts +10 -0
  463. package/dist/domain/operation-display.js +1 -0
  464. package/dist/domain/operation-reason.d.ts +5 -0
  465. package/dist/domain/operation-reason.js +1 -0
  466. package/dist/domain/postgres-route.d.ts +4 -0
  467. package/dist/domain/postgres-route.js +1 -0
  468. package/dist/domain/runtime-identity.d.ts +1 -0
  469. package/dist/domain/runtime-identity.js +1 -0
  470. package/dist/domain/runtime-isolation-contract.d.ts +5 -0
  471. package/dist/domain/runtime-isolation-contract.js +1 -0
  472. package/dist/domain/service-name.d.ts +2 -0
  473. package/dist/domain/service-name.js +1 -0
  474. package/dist/domain/suite-selection.d.ts +20 -0
  475. package/dist/domain/suite-selection.js +1 -0
  476. package/dist/domain/test-outcomes.d.ts +3 -0
  477. package/dist/domain/test-outcomes.js +1 -0
  478. package/dist/domain/test-types.d.ts +16 -0
  479. package/dist/domain/test-types.js +1 -0
  480. package/dist/engines/adapters/evidence-files.d.ts +32 -0
  481. package/dist/engines/adapters/evidence-files.js +1 -0
  482. package/dist/engines/adapters/evidence-identity.d.ts +12 -0
  483. package/dist/engines/adapters/evidence-identity.js +1 -0
  484. package/dist/engines/adapters/execution.d.ts +38 -0
  485. package/dist/engines/adapters/execution.js +1 -0
  486. package/dist/engines/adapters/native-report.d.ts +25 -0
  487. package/dist/engines/adapters/native-report.js +1 -0
  488. package/dist/engines/adapters/workspace.d.ts +4 -0
  489. package/dist/engines/adapters/workspace.js +1 -0
  490. package/dist/engines/api/capabilities.d.ts +31 -0
  491. package/dist/engines/api/capabilities.js +1 -0
  492. package/dist/engines/api/evidence.d.ts +38 -0
  493. package/dist/engines/api/evidence.js +1 -0
  494. package/dist/engines/api/execution-observer.d.ts +8 -0
  495. package/dist/engines/api/execution-observer.js +1 -0
  496. package/dist/engines/api/execution-scope.d.ts +17 -0
  497. package/dist/engines/api/execution-scope.js +1 -0
  498. package/dist/engines/api/execution.d.ts +99 -0
  499. package/dist/engines/api/execution.js +1 -0
  500. package/dist/engines/api/index.d.ts +5 -0
  501. package/dist/engines/api/index.js +1 -0
  502. package/dist/engines/api/k6-runtime-input.d.ts +26 -0
  503. package/dist/engines/api/k6-runtime-input.js +1 -0
  504. package/dist/engines/api/runtime-artifact.d.ts +19 -0
  505. package/dist/engines/api/runtime-artifact.js +1 -0
  506. package/dist/engines/bundle-cache.d.ts +32 -0
  507. package/dist/engines/bundle-cache.js +1 -0
  508. package/dist/engines/catalog.d.ts +32 -0
  509. package/dist/engines/catalog.js +1 -0
  510. package/dist/engines/contracts/fixture-manifest.d.ts +34 -0
  511. package/dist/engines/contracts/fixture-manifest.js +1 -0
  512. package/dist/engines/contracts/json-bounds.d.ts +36 -0
  513. package/dist/engines/contracts/json-bounds.js +2 -0
  514. package/dist/engines/contracts/k6-repository-configuration.d.ts +12 -0
  515. package/dist/engines/contracts/k6-repository-configuration.js +1 -0
  516. package/dist/engines/contracts/test-context.d.ts +15 -0
  517. package/dist/engines/contracts/test-context.js +1 -0
  518. package/dist/engines/definitions.d.ts +15 -0
  519. package/dist/engines/definitions.js +1 -0
  520. package/dist/engines/factory.d.ts +6 -0
  521. package/dist/engines/factory.js +1 -0
  522. package/dist/engines/installation-catalog.d.ts +27 -0
  523. package/dist/engines/installation-catalog.js +1 -0
  524. package/dist/engines/installations/k6.d.ts +98 -0
  525. package/dist/engines/installations/k6.js +1 -0
  526. package/dist/engines/installations/node-vitest.d.ts +47 -0
  527. package/dist/engines/installations/node-vitest.js +1 -0
  528. package/dist/engines/installations/package-resolution.d.ts +51 -0
  529. package/dist/engines/installations/package-resolution.js +1 -0
  530. package/dist/engines/installations/playwright-resolution-child.d.ts +1 -0
  531. package/dist/engines/installations/playwright-resolution-child.js +2 -0
  532. package/dist/engines/installations/playwright.d.ts +85 -0
  533. package/dist/engines/installations/playwright.js +1 -0
  534. package/dist/engines/installations/types.d.ts +10 -0
  535. package/dist/engines/installations/types.js +1 -0
  536. package/dist/engines/k6/adapter/bundle.d.ts +25 -0
  537. package/dist/engines/k6/adapter/bundle.js +112 -0
  538. package/dist/engines/k6/adapter/evidence.d.ts +15 -0
  539. package/dist/engines/k6/adapter/evidence.js +4 -0
  540. package/dist/engines/k6/adapter/executor.d.ts +13 -0
  541. package/dist/engines/k6/adapter/executor.js +1 -0
  542. package/dist/engines/k6/adapter/index.d.ts +1 -0
  543. package/dist/engines/k6/adapter/index.js +1 -0
  544. package/dist/engines/k6/adapter/input.d.ts +21 -0
  545. package/dist/engines/k6/adapter/input.js +1 -0
  546. package/dist/engines/k6/adapter/native-summary.d.ts +11 -0
  547. package/dist/engines/k6/adapter/native-summary.js +1 -0
  548. package/dist/engines/k6/adapter/repository-configuration.d.ts +2 -0
  549. package/dist/engines/k6/adapter/repository-configuration.js +1 -0
  550. package/dist/engines/k6/authoring-type-paths.d.ts +3 -0
  551. package/dist/engines/k6/authoring-type-paths.js +1 -0
  552. package/dist/engines/k6/runtime/ambient-types/bundle-manifest.json +146 -0
  553. package/dist/engines/k6/runtime/ambient-types/k6/LICENSE +21 -0
  554. package/dist/engines/k6/runtime/ambient-types/k6/browser/index.d.ts +6332 -0
  555. package/dist/engines/k6/runtime/ambient-types/k6/crypto/index.d.ts +218 -0
  556. package/dist/engines/k6/runtime/ambient-types/k6/data/index.d.ts +16 -0
  557. package/dist/engines/k6/runtime/ambient-types/k6/encoding/index.d.ts +46 -0
  558. package/dist/engines/k6/runtime/ambient-types/k6/execution/index.d.ts +127 -0
  559. package/dist/engines/k6/runtime/ambient-types/k6/experimental/csv/index.d.ts +96 -0
  560. package/dist/engines/k6/runtime/ambient-types/k6/experimental/fs/index.d.ts +104 -0
  561. package/dist/engines/k6/runtime/ambient-types/k6/experimental/redis/index.d.ts +821 -0
  562. package/dist/engines/k6/runtime/ambient-types/k6/experimental/streams/index.d.ts +198 -0
  563. package/dist/engines/k6/runtime/ambient-types/k6/global.d.ts +83 -0
  564. package/dist/engines/k6/runtime/ambient-types/k6/html/index.d.ts +1325 -0
  565. package/dist/engines/k6/runtime/ambient-types/k6/http/index.d.ts +806 -0
  566. package/dist/engines/k6/runtime/ambient-types/k6/index.d.ts +126 -0
  567. package/dist/engines/k6/runtime/ambient-types/k6/metrics/index.d.ts +66 -0
  568. package/dist/engines/k6/runtime/ambient-types/k6/net/grpc/index.d.ts +247 -0
  569. package/dist/engines/k6/runtime/ambient-types/k6/options/index.d.ts +459 -0
  570. package/dist/engines/k6/runtime/ambient-types/k6/package.json +79 -0
  571. package/dist/engines/k6/runtime/ambient-types/k6/secrets/index.d.ts +36 -0
  572. package/dist/engines/k6/runtime/ambient-types/k6/timers/index.d.ts +47 -0
  573. package/dist/engines/k6/runtime/ambient-types/k6/websockets/index.d.ts +324 -0
  574. package/dist/engines/k6/runtime/ambient-types/k6/ws/index.d.ts +283 -0
  575. package/dist/engines/k6/runtime/ambient-types/xk6-sql/LICENSE +201 -0
  576. package/dist/engines/k6/runtime/ambient-types/xk6-sql/index.d.ts +397 -0
  577. package/dist/engines/k6/runtime/ambient-types/xk6-sql/package.json +15 -0
  578. package/dist/engines/k6/runtime/artifacts.d.ts +2 -0
  579. package/dist/engines/k6/runtime/artifacts.js +1 -0
  580. package/dist/engines/k6/runtime/checks.d.ts +17 -0
  581. package/dist/engines/k6/runtime/checks.js +1 -0
  582. package/dist/engines/k6/runtime/dal-fixtures.d.ts +24 -0
  583. package/dist/engines/k6/runtime/dal-fixtures.js +1 -0
  584. package/dist/engines/k6/runtime/dal-suite.d.ts +24 -0
  585. package/dist/engines/k6/runtime/dal-suite.js +1 -0
  586. package/dist/engines/k6/runtime/dal.d.ts +10 -0
  587. package/dist/engines/k6/runtime/dal.js +1 -0
  588. package/dist/engines/k6/runtime/fixtures.d.ts +3 -0
  589. package/dist/engines/k6/runtime/fixtures.js +1 -0
  590. package/dist/engines/k6/runtime/http-assertions.d.ts +19 -0
  591. package/dist/engines/k6/runtime/http-assertions.js +1 -0
  592. package/dist/engines/k6/runtime/http-checks.d.ts +19 -0
  593. package/dist/engines/k6/runtime/http-checks.js +1 -0
  594. package/dist/engines/k6/runtime/http-suite-runtime.d.ts +103 -0
  595. package/dist/engines/k6/runtime/http-suite-runtime.js +1 -0
  596. package/dist/engines/k6/runtime/http.d.ts +15 -0
  597. package/dist/engines/k6/runtime/http.js +1 -0
  598. package/dist/engines/k6/runtime/index.d.ts +11 -0
  599. package/dist/engines/k6/runtime/index.js +1 -0
  600. package/dist/engines/k6/runtime/input.d.ts +3 -0
  601. package/dist/engines/k6/runtime/input.js +1 -0
  602. package/dist/engines/k6/runtime/k6-repository-configuration.d.ts +9 -0
  603. package/dist/engines/k6/runtime/k6-repository-configuration.js +1 -0
  604. package/dist/engines/k6/runtime/node-setup.d.ts +13 -0
  605. package/dist/engines/k6/runtime/node-setup.js +1 -0
  606. package/dist/engines/k6/runtime/runtime-globals.d.ts +10 -0
  607. package/dist/engines/k6/runtime/runtime-globals.js +1 -0
  608. package/dist/engines/k6/runtime/runtime.d.ts +54 -0
  609. package/dist/engines/k6/runtime/runtime.js +1 -0
  610. package/dist/engines/k6/runtime/shared/assertion-details.d.ts +19 -0
  611. package/dist/engines/k6/runtime/shared/assertion-details.js +2 -0
  612. package/dist/engines/k6/runtime/shared/db-normalization.d.ts +19 -0
  613. package/dist/engines/k6/runtime/shared/db-normalization.js +1 -0
  614. package/dist/engines/k6/runtime/shared/error-body.d.ts +3 -0
  615. package/dist/engines/k6/runtime/shared/error-body.js +1 -0
  616. package/dist/engines/k6/runtime/shared/file-data.d.ts +1 -0
  617. package/dist/engines/k6/runtime/shared/file-data.js +1 -0
  618. package/dist/engines/k6/runtime/shared/fixture-engine.d.ts +8 -0
  619. package/dist/engines/k6/runtime/shared/fixture-engine.js +2 -0
  620. package/dist/engines/k6/runtime/shared/http-check-plan.d.ts +29 -0
  621. package/dist/engines/k6/runtime/shared/http-check-plan.js +1 -0
  622. package/dist/engines/k6/runtime/shared/http-parsing.d.ts +10 -0
  623. package/dist/engines/k6/runtime/shared/http-parsing.js +3 -0
  624. package/dist/engines/k6/runtime/shared/ordering.d.ts +2 -0
  625. package/dist/engines/k6/runtime/shared/ordering.js +1 -0
  626. package/dist/engines/k6/runtime/shared/properties.d.ts +1 -0
  627. package/dist/engines/k6/runtime/shared/properties.js +1 -0
  628. package/dist/engines/k6/runtime/suite.d.ts +4 -0
  629. package/dist/engines/k6/runtime/suite.js +1 -0
  630. package/dist/engines/k6/runtime/types.d.ts +242 -0
  631. package/dist/engines/k6/runtime/types.js +1 -0
  632. package/dist/engines/k6/runtime/xk6-sql-driver-postgres.d.ts +7 -0
  633. package/dist/engines/k6/runtime/xk6-sql-driver-postgres.js +1 -0
  634. package/dist/engines/managed-module-resolution-policy-input.d.ts +9 -0
  635. package/dist/engines/managed-module-resolution-policy-input.js +1 -0
  636. package/dist/engines/managed-module-resolution-policy.d.ts +25 -0
  637. package/dist/engines/managed-module-resolution-policy.js +1 -0
  638. package/dist/engines/managed-module-resolution.d.ts +13 -0
  639. package/dist/engines/managed-module-resolution.js +697 -0
  640. package/dist/engines/manager.d.ts +24 -0
  641. package/dist/engines/manager.js +1 -0
  642. package/dist/engines/node-vitest/adapter/adapter.d.ts +16 -0
  643. package/dist/engines/node-vitest/adapter/adapter.js +1 -0
  644. package/dist/engines/node-vitest/adapter/consumer-typescript-paths.d.ts +17 -0
  645. package/dist/engines/node-vitest/adapter/consumer-typescript-paths.js +3 -0
  646. package/dist/engines/node-vitest/adapter/evidence.d.ts +33 -0
  647. package/dist/engines/node-vitest/adapter/evidence.js +2 -0
  648. package/dist/engines/node-vitest/adapter/failure-details.d.ts +2 -0
  649. package/dist/engines/node-vitest/adapter/failure-details.js +2 -0
  650. package/dist/engines/node-vitest/adapter/index.d.ts +1 -0
  651. package/dist/engines/node-vitest/adapter/index.js +1 -0
  652. package/dist/engines/node-vitest/adapter/reporter.d.ts +7 -0
  653. package/dist/engines/node-vitest/adapter/reporter.js +1 -0
  654. package/dist/engines/node-vitest/adapter/resolution.d.ts +12 -0
  655. package/dist/engines/node-vitest/adapter/resolution.js +1 -0
  656. package/dist/engines/node-vitest/adapter/workspace.d.ts +19 -0
  657. package/dist/engines/node-vitest/adapter/workspace.js +177 -0
  658. package/dist/engines/node-vitest/runtime/contract/index.d.ts +64 -0
  659. package/dist/engines/node-vitest/runtime/contract/index.js +1 -0
  660. package/dist/engines/node-vitest/runtime/data/http.d.ts +4 -0
  661. package/dist/engines/node-vitest/runtime/data/http.js +1 -0
  662. package/dist/engines/node-vitest/runtime/data/index.d.ts +8 -0
  663. package/dist/engines/node-vitest/runtime/data/index.js +1 -0
  664. package/dist/engines/node-vitest/runtime/data/primitives.d.ts +1 -0
  665. package/dist/engines/node-vitest/runtime/data/primitives.js +1 -0
  666. package/dist/engines/node-vitest/runtime/data/report.d.ts +3 -0
  667. package/dist/engines/node-vitest/runtime/data/report.js +6 -0
  668. package/dist/engines/node-vitest/runtime/data/runner.d.ts +4 -0
  669. package/dist/engines/node-vitest/runtime/data/runner.js +1 -0
  670. package/dist/engines/node-vitest/runtime/data/scenario.d.ts +12 -0
  671. package/dist/engines/node-vitest/runtime/data/scenario.js +2 -0
  672. package/dist/engines/node-vitest/runtime/data/types.d.ts +412 -0
  673. package/dist/engines/node-vitest/runtime/data/types.js +1 -0
  674. package/dist/engines/node-vitest/runtime/runtime-input.d.ts +63 -0
  675. package/dist/engines/node-vitest/runtime/runtime-input.js +1 -0
  676. package/dist/engines/playwright/adapter/adapter.d.ts +18 -0
  677. package/dist/engines/playwright/adapter/adapter.js +1 -0
  678. package/dist/engines/playwright/adapter/attachments.d.ts +25 -0
  679. package/dist/engines/playwright/adapter/attachments.js +1 -0
  680. package/dist/engines/playwright/adapter/config.d.ts +45 -0
  681. package/dist/engines/playwright/adapter/config.js +167 -0
  682. package/dist/engines/playwright/adapter/evidence-validation.d.ts +12 -0
  683. package/dist/engines/playwright/adapter/evidence-validation.js +1 -0
  684. package/dist/engines/playwright/adapter/evidence.d.ts +32 -0
  685. package/dist/engines/playwright/adapter/evidence.js +1 -0
  686. package/dist/engines/playwright/adapter/failure-details.d.ts +2 -0
  687. package/dist/engines/playwright/adapter/failure-details.js +2 -0
  688. package/dist/engines/playwright/adapter/index.d.ts +3 -0
  689. package/dist/engines/playwright/adapter/index.js +1 -0
  690. package/dist/engines/playwright/adapter/reporter.d.ts +12 -0
  691. package/dist/engines/playwright/adapter/reporter.js +1 -0
  692. package/dist/engines/playwright/runtime/config-file.d.ts +2 -0
  693. package/dist/engines/playwright/runtime/config-file.js +1 -0
  694. package/dist/engines/playwright/runtime/config.d.ts +24 -0
  695. package/dist/engines/playwright/runtime/config.js +1 -0
  696. package/dist/engines/playwright/runtime/index.d.ts +4 -0
  697. package/dist/engines/playwright/runtime/index.js +1 -0
  698. package/dist/engines/playwright/runtime/runtime-input.d.ts +36 -0
  699. package/dist/engines/playwright/runtime/runtime-input.js +151 -0
  700. package/dist/engines/playwright/runtime/sandbox.d.ts +84 -0
  701. package/dist/engines/playwright/runtime/sandbox.js +1 -0
  702. package/dist/engines/runtime-input-file.d.ts +25 -0
  703. package/dist/engines/runtime-input-file.js +1 -0
  704. package/dist/environment/lifecycle-artifacts.d.ts +7 -0
  705. package/dist/environment/lifecycle-artifacts.js +1 -0
  706. package/dist/environment/lifecycle-controller.d.ts +71 -0
  707. package/dist/environment/lifecycle-controller.js +1 -0
  708. package/dist/environment/lifecycle.d.ts +29 -0
  709. package/dist/environment/lifecycle.js +1 -0
  710. package/dist/environment/maintenance.d.ts +68 -0
  711. package/dist/environment/maintenance.js +1 -0
  712. package/dist/environment/planning-types.d.ts +35 -0
  713. package/dist/environment/planning-types.js +1 -0
  714. package/dist/environment/readiness.d.ts +12 -0
  715. package/dist/environment/readiness.js +1 -0
  716. package/dist/environment/ready-environment.d.ts +17 -0
  717. package/dist/environment/ready-environment.js +1 -0
  718. package/dist/environment/run-environment.d.ts +38 -0
  719. package/dist/environment/run-environment.js +1 -0
  720. package/dist/environment/run-stopping.d.ts +13 -0
  721. package/dist/environment/run-stopping.js +1 -0
  722. package/dist/environment/runtime-contexts.d.ts +32 -0
  723. package/dist/environment/runtime-contexts.js +1 -0
  724. package/dist/environment/runtime-manager.d.ts +95 -0
  725. package/dist/environment/runtime-manager.js +1 -0
  726. package/dist/environment/runtime-planning.d.ts +16 -0
  727. package/dist/environment/runtime-planning.js +1 -0
  728. package/dist/environment/runtime-preparation.d.ts +30 -0
  729. package/dist/environment/runtime-preparation.js +1 -0
  730. package/dist/environment/runtime-service.d.ts +18 -0
  731. package/dist/environment/runtime-service.js +1 -0
  732. package/dist/environment/services.d.ts +48 -0
  733. package/dist/environment/services.js +1 -0
  734. package/dist/environment/state.d.ts +18 -0
  735. package/dist/environment/state.js +1 -0
  736. package/dist/environment/status-runtime.d.ts +53 -0
  737. package/dist/environment/status-runtime.js +1 -0
  738. package/dist/environment/template.d.ts +180 -0
  739. package/dist/environment/template.js +1 -0
  740. package/dist/evidence/artifact-config.d.ts +14 -0
  741. package/dist/evidence/artifact-config.js +1 -0
  742. package/dist/evidence/artifact-validation.d.ts +5 -0
  743. package/dist/evidence/artifact-validation.js +1 -0
  744. package/dist/evidence/artifacts.d.ts +75 -0
  745. package/dist/evidence/artifacts.js +2 -0
  746. package/dist/evidence/bundles.d.ts +28 -0
  747. package/dist/evidence/bundles.js +1 -0
  748. package/dist/evidence/ci-provenance.d.ts +9 -0
  749. package/dist/evidence/ci-provenance.js +1 -0
  750. package/dist/evidence/contracts.d.ts +162 -0
  751. package/dist/evidence/contracts.js +1 -0
  752. package/dist/evidence/file-evidence.d.ts +23 -0
  753. package/dist/evidence/file-evidence.js +1 -0
  754. package/dist/evidence/finalization.d.ts +9 -0
  755. package/dist/evidence/finalization.js +1 -0
  756. package/dist/evidence/index.d.ts +8 -0
  757. package/dist/evidence/index.js +1 -0
  758. package/dist/evidence/logs.d.ts +31 -0
  759. package/dist/evidence/logs.js +2 -0
  760. package/dist/evidence/operation-timings.d.ts +60 -0
  761. package/dist/evidence/operation-timings.js +1 -0
  762. package/dist/evidence/read-bundle.d.ts +4 -0
  763. package/dist/evidence/read-bundle.js +1 -0
  764. package/dist/evidence/read-fields.d.ts +22 -0
  765. package/dist/evidence/read-fields.js +1 -0
  766. package/dist/evidence/read-provenance.d.ts +2 -0
  767. package/dist/evidence/read-provenance.js +1 -0
  768. package/dist/evidence/read-redaction.d.ts +2 -0
  769. package/dist/evidence/read-redaction.js +1 -0
  770. package/dist/evidence/read-retention.d.ts +2 -0
  771. package/dist/evidence/read-retention.js +1 -0
  772. package/dist/evidence/read-run.d.ts +2 -0
  773. package/dist/evidence/read-run.js +1 -0
  774. package/dist/evidence/reading.d.ts +28 -0
  775. package/dist/evidence/reading.js +1 -0
  776. package/dist/evidence/reporting-types.d.ts +330 -0
  777. package/dist/evidence/reporting-types.js +1 -0
  778. package/dist/evidence/reporting.d.ts +3 -0
  779. package/dist/evidence/reporting.js +1 -0
  780. package/dist/evidence/secure-file-copy.d.ts +24 -0
  781. package/dist/evidence/secure-file-copy.js +1 -0
  782. package/dist/evidence/setup-progress.d.ts +63 -0
  783. package/dist/evidence/setup-progress.js +1 -0
  784. package/dist/evidence/step-output.d.ts +16 -0
  785. package/dist/evidence/step-output.js +6 -0
  786. package/dist/evidence/storage-inventory.d.ts +27 -0
  787. package/dist/evidence/storage-inventory.js +1 -0
  788. package/dist/evidence/storage.d.ts +27 -0
  789. package/dist/evidence/storage.js +2 -0
  790. package/dist/evidence/timing.d.ts +23 -0
  791. package/dist/evidence/timing.js +1 -0
  792. package/dist/file.d.ts +11 -0
  793. package/dist/file.js +1 -0
  794. package/dist/index.d.ts +4 -0
  795. package/dist/index.js +1 -0
  796. package/dist/kernel/error-serialization.d.ts +38 -0
  797. package/dist/kernel/error-serialization.js +1 -0
  798. package/dist/kernel/redaction.d.ts +1 -0
  799. package/dist/kernel/redaction.js +1 -0
  800. package/dist/kernel/unknown-values.d.ts +6 -0
  801. package/dist/kernel/unknown-values.js +1 -0
  802. package/dist/process/capture-output.d.ts +7 -0
  803. package/dist/process/capture-output.js +1 -0
  804. package/dist/process/command-shell.d.ts +1 -0
  805. package/dist/process/command-shell.js +1 -0
  806. package/dist/process/environment-overlay.d.ts +17 -0
  807. package/dist/process/environment-overlay.js +1 -0
  808. package/dist/process/environment.d.ts +33 -0
  809. package/dist/process/environment.js +1 -0
  810. package/dist/process/files/contained-path.d.ts +8 -0
  811. package/dist/process/files/contained-path.js +1 -0
  812. package/dist/process/files/directory-status.d.ts +14 -0
  813. package/dist/process/files/directory-status.js +1 -0
  814. package/dist/process/files/dotenv.d.ts +2 -0
  815. package/dist/process/files/dotenv.js +1 -0
  816. package/dist/process/files/file-snapshot.d.ts +34 -0
  817. package/dist/process/files/file-snapshot.js +1 -0
  818. package/dist/process/files/json-file.d.ts +11 -0
  819. package/dist/process/files/json-file.js +1 -0
  820. package/dist/process/files/paths.d.ts +1 -0
  821. package/dist/process/files/paths.js +1 -0
  822. package/dist/process/files/temp-dir.d.ts +11 -0
  823. package/dist/process/files/temp-dir.js +1 -0
  824. package/dist/process/host/metadata.d.ts +6 -0
  825. package/dist/process/host/metadata.js +1 -0
  826. package/dist/process/host/platform.d.ts +57 -0
  827. package/dist/process/host/platform.js +1 -0
  828. package/dist/process/host-command.d.ts +4 -0
  829. package/dist/process/host-command.js +3 -0
  830. package/dist/process/host-inspection-command.d.ts +13 -0
  831. package/dist/process/host-inspection-command.js +1 -0
  832. package/dist/process/host-process.d.ts +14 -0
  833. package/dist/process/host-process.js +1 -0
  834. package/dist/process/index.d.ts +9 -0
  835. package/dist/process/index.js +1 -0
  836. package/dist/process/lifecycle-fence.d.ts +11 -0
  837. package/dist/process/lifecycle-fence.js +1 -0
  838. package/dist/process/locks.d.ts +28 -0
  839. package/dist/process/locks.js +4 -0
  840. package/dist/process/process-contracts.d.ts +70 -0
  841. package/dist/process/process-contracts.js +1 -0
  842. package/dist/process/process-group.d.ts +12 -0
  843. package/dist/process/process-group.js +1 -0
  844. package/dist/process/process-identity.d.ts +27 -0
  845. package/dist/process/process-identity.js +1 -0
  846. package/dist/process/process-limits.d.ts +6 -0
  847. package/dist/process/process-limits.js +1 -0
  848. package/dist/process/process.d.ts +11 -0
  849. package/dist/process/process.js +1 -0
  850. package/dist/process/readiness.d.ts +37 -0
  851. package/dist/process/readiness.js +1 -0
  852. package/dist/process/recovery.d.ts +3 -0
  853. package/dist/process/recovery.js +1 -0
  854. package/dist/process/runs/manifest.d.ts +85 -0
  855. package/dist/process/runs/manifest.js +1 -0
  856. package/dist/process/runs/ownership.d.ts +11 -0
  857. package/dist/process/runs/ownership.js +1 -0
  858. package/dist/process/runs/product-state.d.ts +2 -0
  859. package/dist/process/runs/product-state.js +1 -0
  860. package/dist/process/runs/schema.d.ts +3 -0
  861. package/dist/process/runs/schema.js +1 -0
  862. package/dist/process/runs/stop.d.ts +19 -0
  863. package/dist/process/runs/stop.js +1 -0
  864. package/dist/process/runtime-socket.d.ts +4 -0
  865. package/dist/process/runtime-socket.js +1 -0
  866. package/dist/process/service-processes.d.ts +13 -0
  867. package/dist/process/service-processes.js +1 -0
  868. package/dist/process/shutdown.d.ts +10 -0
  869. package/dist/process/shutdown.js +1 -0
  870. package/dist/process/windows-cli-owner.d.ts +2 -0
  871. package/dist/process/windows-cli-owner.js +3 -0
  872. package/dist/process/windows-native.d.ts +6 -0
  873. package/dist/process/windows-native.js +1 -0
  874. package/dist/process/windows-process-identity.d.ts +4 -0
  875. package/dist/process/windows-process-identity.js +1 -0
  876. package/dist/repo/ci-environment.d.ts +7 -0
  877. package/dist/repo/ci-environment.js +1 -0
  878. package/dist/repo/fingerprint-policy.d.ts +15 -0
  879. package/dist/repo/fingerprint-policy.js +1 -0
  880. package/dist/repo/git-path.d.ts +2 -0
  881. package/dist/repo/git-path.js +1 -0
  882. package/dist/repo/managed-git.d.ts +10 -0
  883. package/dist/repo/managed-git.js +1 -0
  884. package/dist/repo/metadata.d.ts +3 -0
  885. package/dist/repo/metadata.js +1 -0
  886. package/dist/repo/physical-tree.d.ts +37 -0
  887. package/dist/repo/physical-tree.js +1 -0
  888. package/dist/repo/remote.d.ts +6 -0
  889. package/dist/repo/remote.js +1 -0
  890. package/dist/repo/state.d.ts +25 -0
  891. package/dist/repo/state.js +5 -0
  892. package/dist/steps/build-config.d.ts +35 -0
  893. package/dist/steps/build-config.js +1 -0
  894. package/dist/steps/configured-step-testkit-modules.d.ts +19 -0
  895. package/dist/steps/configured-step-testkit-modules.js +1 -0
  896. package/dist/steps/configured-steps.d.ts +51 -0
  897. package/dist/steps/configured-steps.js +1 -0
  898. package/dist/steps/environment.d.ts +78 -0
  899. package/dist/steps/environment.js +1 -0
  900. package/dist/steps/index.d.ts +2 -0
  901. package/dist/steps/index.js +1 -0
  902. package/dist/steps/module-runner.d.ts +1 -0
  903. package/dist/steps/module-runner.js +1 -0
  904. package/dist/steps/run.d.ts +36 -0
  905. package/dist/steps/run.js +3 -0
  906. package/dist/toolchains/archive.d.ts +53 -0
  907. package/dist/toolchains/archive.js +1 -0
  908. package/dist/toolchains/esbuild.d.ts +9 -0
  909. package/dist/toolchains/esbuild.js +1 -0
  910. package/dist/toolchains/host-node-support.d.ts +3 -0
  911. package/dist/toolchains/host-node-support.js +1 -0
  912. package/dist/toolchains/index.d.ts +114 -0
  913. package/dist/toolchains/index.js +4 -0
  914. package/dist/toolchains/managed-node-releases.d.ts +28 -0
  915. package/dist/toolchains/managed-node-releases.js +1 -0
  916. package/dist/toolchains/node-cache.d.ts +20 -0
  917. package/dist/toolchains/node-cache.js +1 -0
  918. package/dist/toolchains/node-integrity.d.ts +16 -0
  919. package/dist/toolchains/node-integrity.js +1 -0
  920. package/dist/toolchains/node-provisioning.d.ts +29 -0
  921. package/dist/toolchains/node-provisioning.js +2 -0
  922. package/dist/toolchains/semver.d.ts +13 -0
  923. package/dist/toolchains/semver.js +1 -0
  924. package/dist/toolchains/shared-operation.d.ts +11 -0
  925. package/dist/toolchains/shared-operation.js +1 -0
  926. package/dist/toolchains/timeouts.d.ts +1 -0
  927. package/dist/toolchains/timeouts.js +1 -0
  928. package/dist/toolchains/vitest/index.d.ts +13 -0
  929. package/dist/toolchains/vitest/index.js +1 -0
  930. package/docs/cloud-control.md +105 -0
  931. package/docs/engine-architecture.md +631 -0
  932. package/docs/test-types.md +120 -0
  933. package/docs/testkit-cloud-boundary.md +640 -0
  934. package/node_modules/@isaacs/fs-minipass/LICENSE +15 -0
  935. package/node_modules/@isaacs/fs-minipass/README.md +71 -0
  936. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts +118 -0
  937. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.d.ts.map +1 -0
  938. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js +430 -0
  939. package/node_modules/@isaacs/fs-minipass/dist/commonjs/index.js.map +1 -0
  940. package/node_modules/@isaacs/fs-minipass/dist/commonjs/package.json +3 -0
  941. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts +118 -0
  942. package/node_modules/@isaacs/fs-minipass/dist/esm/index.d.ts.map +1 -0
  943. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js +420 -0
  944. package/node_modules/@isaacs/fs-minipass/dist/esm/index.js.map +1 -0
  945. package/node_modules/@isaacs/fs-minipass/dist/esm/package.json +3 -0
  946. package/node_modules/@isaacs/fs-minipass/package.json +72 -0
  947. package/node_modules/buffer-crc32/LICENSE +19 -0
  948. package/node_modules/buffer-crc32/README.md +55 -0
  949. package/node_modules/buffer-crc32/dist/index.cjs +306 -0
  950. package/node_modules/buffer-crc32/dist/index.d.cts +35 -0
  951. package/node_modules/buffer-crc32/dist/index.d.mts +35 -0
  952. package/node_modules/buffer-crc32/dist/index.mjs +304 -0
  953. package/node_modules/buffer-crc32/index.d.ts +35 -0
  954. package/node_modules/buffer-crc32/package.json +54 -0
  955. package/node_modules/chownr/LICENSE.md +63 -0
  956. package/node_modules/chownr/README.md +3 -0
  957. package/node_modules/chownr/dist/commonjs/index.d.ts +3 -0
  958. package/node_modules/chownr/dist/commonjs/index.d.ts.map +1 -0
  959. package/node_modules/chownr/dist/commonjs/index.js +93 -0
  960. package/node_modules/chownr/dist/commonjs/index.js.map +1 -0
  961. package/node_modules/chownr/dist/commonjs/package.json +3 -0
  962. package/node_modules/chownr/dist/esm/index.d.ts +3 -0
  963. package/node_modules/chownr/dist/esm/index.d.ts.map +1 -0
  964. package/node_modules/chownr/dist/esm/index.js +85 -0
  965. package/node_modules/chownr/dist/esm/index.js.map +1 -0
  966. package/node_modules/chownr/dist/esm/package.json +3 -0
  967. package/node_modules/chownr/package.json +69 -0
  968. package/node_modules/diff/CONTRIBUTING.md +28 -0
  969. package/node_modules/diff/LICENSE +29 -0
  970. package/node_modules/diff/README.md +468 -0
  971. package/node_modules/diff/dist/diff.js +2313 -0
  972. package/node_modules/diff/dist/diff.min.js +1 -0
  973. package/node_modules/diff/eslint.config.mjs +182 -0
  974. package/node_modules/diff/libcjs/convert/dmp.d.ts +8 -0
  975. package/node_modules/diff/libcjs/convert/dmp.d.ts.map +1 -0
  976. package/node_modules/diff/libcjs/convert/dmp.js +24 -0
  977. package/node_modules/diff/libcjs/convert/xml.d.ts +6 -0
  978. package/node_modules/diff/libcjs/convert/xml.d.ts.map +1 -0
  979. package/node_modules/diff/libcjs/convert/xml.js +34 -0
  980. package/node_modules/diff/libcjs/diff/array.d.ts +19 -0
  981. package/node_modules/diff/libcjs/diff/array.d.ts.map +1 -0
  982. package/node_modules/diff/libcjs/diff/array.js +23 -0
  983. package/node_modules/diff/libcjs/diff/base.d.ts +20 -0
  984. package/node_modules/diff/libcjs/diff/base.d.ts.map +1 -0
  985. package/node_modules/diff/libcjs/diff/base.js +256 -0
  986. package/node_modules/diff/libcjs/diff/character.d.ts +19 -0
  987. package/node_modules/diff/libcjs/diff/character.d.ts.map +1 -0
  988. package/node_modules/diff/libcjs/diff/character.js +14 -0
  989. package/node_modules/diff/libcjs/diff/css.d.ts +18 -0
  990. package/node_modules/diff/libcjs/diff/css.d.ts.map +1 -0
  991. package/node_modules/diff/libcjs/diff/css.js +17 -0
  992. package/node_modules/diff/libcjs/diff/json.d.ts +24 -0
  993. package/node_modules/diff/libcjs/diff/json.d.ts.map +1 -0
  994. package/node_modules/diff/libcjs/diff/json.js +86 -0
  995. package/node_modules/diff/libcjs/diff/line.d.ts +24 -0
  996. package/node_modules/diff/libcjs/diff/line.d.ts.map +1 -0
  997. package/node_modules/diff/libcjs/diff/line.js +74 -0
  998. package/node_modules/diff/libcjs/diff/sentence.d.ts +21 -0
  999. package/node_modules/diff/libcjs/diff/sentence.d.ts.map +1 -0
  1000. package/node_modules/diff/libcjs/diff/sentence.js +50 -0
  1001. package/node_modules/diff/libcjs/diff/word.d.ts +35 -0
  1002. package/node_modules/diff/libcjs/diff/word.d.ts.map +1 -0
  1003. package/node_modules/diff/libcjs/diff/word.js +289 -0
  1004. package/node_modules/diff/libcjs/index.d.ts +20 -0
  1005. package/node_modules/diff/libcjs/index.d.ts.map +1 -0
  1006. package/node_modules/diff/libcjs/index.js +67 -0
  1007. package/node_modules/diff/libcjs/package.json +1 -0
  1008. package/node_modules/diff/libcjs/patch/apply.d.ts +62 -0
  1009. package/node_modules/diff/libcjs/patch/apply.d.ts.map +1 -0
  1010. package/node_modules/diff/libcjs/patch/apply.js +264 -0
  1011. package/node_modules/diff/libcjs/patch/create.d.ts +131 -0
  1012. package/node_modules/diff/libcjs/patch/create.d.ts.map +1 -0
  1013. package/node_modules/diff/libcjs/patch/create.js +364 -0
  1014. package/node_modules/diff/libcjs/patch/line-endings.d.ts +17 -0
  1015. package/node_modules/diff/libcjs/patch/line-endings.d.ts.map +1 -0
  1016. package/node_modules/diff/libcjs/patch/line-endings.js +50 -0
  1017. package/node_modules/diff/libcjs/patch/parse.d.ts +16 -0
  1018. package/node_modules/diff/libcjs/patch/parse.d.ts.map +1 -0
  1019. package/node_modules/diff/libcjs/patch/parse.js +515 -0
  1020. package/node_modules/diff/libcjs/patch/reverse.d.ts +22 -0
  1021. package/node_modules/diff/libcjs/patch/reverse.d.ts.map +1 -0
  1022. package/node_modules/diff/libcjs/patch/reverse.js +63 -0
  1023. package/node_modules/diff/libcjs/types.d.ts +260 -0
  1024. package/node_modules/diff/libcjs/types.d.ts.map +1 -0
  1025. package/node_modules/diff/libcjs/types.js +2 -0
  1026. package/node_modules/diff/libcjs/util/array.d.ts +3 -0
  1027. package/node_modules/diff/libcjs/util/array.d.ts.map +1 -0
  1028. package/node_modules/diff/libcjs/util/array.js +21 -0
  1029. package/node_modules/diff/libcjs/util/distance-iterator.d.ts +2 -0
  1030. package/node_modules/diff/libcjs/util/distance-iterator.d.ts.map +1 -0
  1031. package/node_modules/diff/libcjs/util/distance-iterator.js +40 -0
  1032. package/node_modules/diff/libcjs/util/params.d.ts +4 -0
  1033. package/node_modules/diff/libcjs/util/params.d.ts.map +1 -0
  1034. package/node_modules/diff/libcjs/util/params.js +17 -0
  1035. package/node_modules/diff/libcjs/util/string.d.ts +30 -0
  1036. package/node_modules/diff/libcjs/util/string.d.ts.map +1 -0
  1037. package/node_modules/diff/libcjs/util/string.js +199 -0
  1038. package/node_modules/diff/libesm/convert/dmp.d.ts +8 -0
  1039. package/node_modules/diff/libesm/convert/dmp.d.ts.map +1 -0
  1040. package/node_modules/diff/libesm/convert/dmp.js +21 -0
  1041. package/node_modules/diff/libesm/convert/xml.d.ts +6 -0
  1042. package/node_modules/diff/libesm/convert/xml.d.ts.map +1 -0
  1043. package/node_modules/diff/libesm/convert/xml.js +31 -0
  1044. package/node_modules/diff/libesm/diff/array.d.ts +19 -0
  1045. package/node_modules/diff/libesm/diff/array.d.ts.map +1 -0
  1046. package/node_modules/diff/libesm/diff/array.js +16 -0
  1047. package/node_modules/diff/libesm/diff/base.d.ts +20 -0
  1048. package/node_modules/diff/libesm/diff/base.d.ts.map +1 -0
  1049. package/node_modules/diff/libesm/diff/base.js +253 -0
  1050. package/node_modules/diff/libesm/diff/character.d.ts +19 -0
  1051. package/node_modules/diff/libesm/diff/character.d.ts.map +1 -0
  1052. package/node_modules/diff/libesm/diff/character.js +7 -0
  1053. package/node_modules/diff/libesm/diff/css.d.ts +18 -0
  1054. package/node_modules/diff/libesm/diff/css.d.ts.map +1 -0
  1055. package/node_modules/diff/libesm/diff/css.js +10 -0
  1056. package/node_modules/diff/libesm/diff/json.d.ts +24 -0
  1057. package/node_modules/diff/libesm/diff/json.d.ts.map +1 -0
  1058. package/node_modules/diff/libesm/diff/json.js +78 -0
  1059. package/node_modules/diff/libesm/diff/line.d.ts +24 -0
  1060. package/node_modules/diff/libesm/diff/line.d.ts.map +1 -0
  1061. package/node_modules/diff/libesm/diff/line.js +65 -0
  1062. package/node_modules/diff/libesm/diff/sentence.d.ts +21 -0
  1063. package/node_modules/diff/libesm/diff/sentence.d.ts.map +1 -0
  1064. package/node_modules/diff/libesm/diff/sentence.js +43 -0
  1065. package/node_modules/diff/libesm/diff/word.d.ts +35 -0
  1066. package/node_modules/diff/libesm/diff/word.d.ts.map +1 -0
  1067. package/node_modules/diff/libesm/diff/word.js +281 -0
  1068. package/node_modules/diff/libesm/index.d.ts +20 -0
  1069. package/node_modules/diff/libesm/index.d.ts.map +1 -0
  1070. package/node_modules/diff/libesm/index.js +30 -0
  1071. package/node_modules/diff/libesm/package.json +1 -0
  1072. package/node_modules/diff/libesm/patch/apply.d.ts +62 -0
  1073. package/node_modules/diff/libesm/patch/apply.d.ts.map +1 -0
  1074. package/node_modules/diff/libesm/patch/apply.js +257 -0
  1075. package/node_modules/diff/libesm/patch/create.d.ts +131 -0
  1076. package/node_modules/diff/libesm/patch/create.d.ts.map +1 -0
  1077. package/node_modules/diff/libesm/patch/create.js +357 -0
  1078. package/node_modules/diff/libesm/patch/line-endings.d.ts +17 -0
  1079. package/node_modules/diff/libesm/patch/line-endings.d.ts.map +1 -0
  1080. package/node_modules/diff/libesm/patch/line-endings.js +44 -0
  1081. package/node_modules/diff/libesm/patch/parse.d.ts +16 -0
  1082. package/node_modules/diff/libesm/patch/parse.d.ts.map +1 -0
  1083. package/node_modules/diff/libesm/patch/parse.js +512 -0
  1084. package/node_modules/diff/libesm/patch/reverse.d.ts +22 -0
  1085. package/node_modules/diff/libesm/patch/reverse.d.ts.map +1 -0
  1086. package/node_modules/diff/libesm/patch/reverse.js +60 -0
  1087. package/node_modules/diff/libesm/types.d.ts +260 -0
  1088. package/node_modules/diff/libesm/types.d.ts.map +1 -0
  1089. package/node_modules/diff/libesm/types.js +1 -0
  1090. package/node_modules/diff/libesm/util/array.d.ts +3 -0
  1091. package/node_modules/diff/libesm/util/array.d.ts.map +1 -0
  1092. package/node_modules/diff/libesm/util/array.js +17 -0
  1093. package/node_modules/diff/libesm/util/distance-iterator.d.ts +2 -0
  1094. package/node_modules/diff/libesm/util/distance-iterator.d.ts.map +1 -0
  1095. package/node_modules/diff/libesm/util/distance-iterator.js +37 -0
  1096. package/node_modules/diff/libesm/util/params.d.ts +4 -0
  1097. package/node_modules/diff/libesm/util/params.d.ts.map +1 -0
  1098. package/node_modules/diff/libesm/util/params.js +14 -0
  1099. package/node_modules/diff/libesm/util/string.d.ts +30 -0
  1100. package/node_modules/diff/libesm/util/string.d.ts.map +1 -0
  1101. package/node_modules/diff/libesm/util/string.js +184 -0
  1102. package/node_modules/diff/package.json +130 -0
  1103. package/node_modules/diff/release-notes.md +474 -0
  1104. package/node_modules/minipass/LICENSE.md +55 -0
  1105. package/node_modules/minipass/README.md +825 -0
  1106. package/node_modules/minipass/dist/commonjs/index.d.ts +545 -0
  1107. package/node_modules/minipass/dist/commonjs/index.d.ts.map +1 -0
  1108. package/node_modules/minipass/dist/commonjs/index.js +1038 -0
  1109. package/node_modules/minipass/dist/commonjs/index.js.map +1 -0
  1110. package/node_modules/minipass/dist/commonjs/package.json +3 -0
  1111. package/node_modules/minipass/dist/esm/index.d.ts +545 -0
  1112. package/node_modules/minipass/dist/esm/index.d.ts.map +1 -0
  1113. package/node_modules/minipass/dist/esm/index.js +1020 -0
  1114. package/node_modules/minipass/dist/esm/index.js.map +1 -0
  1115. package/node_modules/minipass/dist/esm/package.json +3 -0
  1116. package/node_modules/minipass/package.json +77 -0
  1117. package/node_modules/minizlib/LICENSE +26 -0
  1118. package/node_modules/minizlib/README.md +64 -0
  1119. package/node_modules/minizlib/dist/commonjs/constants.d.ts +2 -0
  1120. package/node_modules/minizlib/dist/commonjs/constants.d.ts.map +1 -0
  1121. package/node_modules/minizlib/dist/commonjs/constants.js +123 -0
  1122. package/node_modules/minizlib/dist/commonjs/constants.js.map +1 -0
  1123. package/node_modules/minizlib/dist/commonjs/index.d.ts +99 -0
  1124. package/node_modules/minizlib/dist/commonjs/index.d.ts.map +1 -0
  1125. package/node_modules/minizlib/dist/commonjs/index.js +416 -0
  1126. package/node_modules/minizlib/dist/commonjs/index.js.map +1 -0
  1127. package/node_modules/minizlib/dist/commonjs/package.json +3 -0
  1128. package/node_modules/minizlib/dist/esm/constants.d.ts +2 -0
  1129. package/node_modules/minizlib/dist/esm/constants.d.ts.map +1 -0
  1130. package/node_modules/minizlib/dist/esm/constants.js +117 -0
  1131. package/node_modules/minizlib/dist/esm/constants.js.map +1 -0
  1132. package/node_modules/minizlib/dist/esm/index.d.ts +99 -0
  1133. package/node_modules/minizlib/dist/esm/index.d.ts.map +1 -0
  1134. package/node_modules/minizlib/dist/esm/index.js +363 -0
  1135. package/node_modules/minizlib/dist/esm/index.js.map +1 -0
  1136. package/node_modules/minizlib/dist/esm/package.json +3 -0
  1137. package/node_modules/minizlib/package.json +80 -0
  1138. package/node_modules/pend/LICENSE +23 -0
  1139. package/node_modules/pend/README.md +41 -0
  1140. package/node_modules/pend/index.js +55 -0
  1141. package/node_modules/pend/package.json +18 -0
  1142. package/node_modules/pend/test.js +137 -0
  1143. package/node_modules/tar/LICENSE.md +55 -0
  1144. package/node_modules/tar/README.md +1233 -0
  1145. package/node_modules/tar/dist/commonjs/create.d.ts +3 -0
  1146. package/node_modules/tar/dist/commonjs/create.d.ts.map +1 -0
  1147. package/node_modules/tar/dist/commonjs/create.js +82 -0
  1148. package/node_modules/tar/dist/commonjs/create.js.map +1 -0
  1149. package/node_modules/tar/dist/commonjs/cwd-error.d.ts +8 -0
  1150. package/node_modules/tar/dist/commonjs/cwd-error.d.ts.map +1 -0
  1151. package/node_modules/tar/dist/commonjs/cwd-error.js +18 -0
  1152. package/node_modules/tar/dist/commonjs/cwd-error.js.map +1 -0
  1153. package/node_modules/tar/dist/commonjs/extract.d.ts +3 -0
  1154. package/node_modules/tar/dist/commonjs/extract.d.ts.map +1 -0
  1155. package/node_modules/tar/dist/commonjs/extract.js +88 -0
  1156. package/node_modules/tar/dist/commonjs/extract.js.map +1 -0
  1157. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts +2 -0
  1158. package/node_modules/tar/dist/commonjs/get-write-flag.d.ts.map +1 -0
  1159. package/node_modules/tar/dist/commonjs/get-write-flag.js +32 -0
  1160. package/node_modules/tar/dist/commonjs/get-write-flag.js.map +1 -0
  1161. package/node_modules/tar/dist/commonjs/header.d.ts +53 -0
  1162. package/node_modules/tar/dist/commonjs/header.d.ts.map +1 -0
  1163. package/node_modules/tar/dist/commonjs/header.js +348 -0
  1164. package/node_modules/tar/dist/commonjs/header.js.map +1 -0
  1165. package/node_modules/tar/dist/commonjs/index.d.ts +20 -0
  1166. package/node_modules/tar/dist/commonjs/index.d.ts.map +1 -0
  1167. package/node_modules/tar/dist/commonjs/index.js +64 -0
  1168. package/node_modules/tar/dist/commonjs/index.js.map +1 -0
  1169. package/node_modules/tar/dist/commonjs/index.min.js +4 -0
  1170. package/node_modules/tar/dist/commonjs/index.min.js.map +7 -0
  1171. package/node_modules/tar/dist/commonjs/large-numbers.d.ts +3 -0
  1172. package/node_modules/tar/dist/commonjs/large-numbers.d.ts.map +1 -0
  1173. package/node_modules/tar/dist/commonjs/large-numbers.js +99 -0
  1174. package/node_modules/tar/dist/commonjs/large-numbers.js.map +1 -0
  1175. package/node_modules/tar/dist/commonjs/list.d.ts +7 -0
  1176. package/node_modules/tar/dist/commonjs/list.d.ts.map +1 -0
  1177. package/node_modules/tar/dist/commonjs/list.js +153 -0
  1178. package/node_modules/tar/dist/commonjs/list.js.map +1 -0
  1179. package/node_modules/tar/dist/commonjs/make-command.d.ts +49 -0
  1180. package/node_modules/tar/dist/commonjs/make-command.d.ts.map +1 -0
  1181. package/node_modules/tar/dist/commonjs/make-command.js +52 -0
  1182. package/node_modules/tar/dist/commonjs/make-command.js.map +1 -0
  1183. package/node_modules/tar/dist/commonjs/mkdir.d.ts +25 -0
  1184. package/node_modules/tar/dist/commonjs/mkdir.d.ts.map +1 -0
  1185. package/node_modules/tar/dist/commonjs/mkdir.js +187 -0
  1186. package/node_modules/tar/dist/commonjs/mkdir.js.map +1 -0
  1187. package/node_modules/tar/dist/commonjs/mode-fix.d.ts +2 -0
  1188. package/node_modules/tar/dist/commonjs/mode-fix.d.ts.map +1 -0
  1189. package/node_modules/tar/dist/commonjs/mode-fix.js +29 -0
  1190. package/node_modules/tar/dist/commonjs/mode-fix.js.map +1 -0
  1191. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts +2 -0
  1192. package/node_modules/tar/dist/commonjs/normalize-unicode.d.ts.map +1 -0
  1193. package/node_modules/tar/dist/commonjs/normalize-unicode.js +38 -0
  1194. package/node_modules/tar/dist/commonjs/normalize-unicode.js.map +1 -0
  1195. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts +2 -0
  1196. package/node_modules/tar/dist/commonjs/normalize-windows-path.d.ts.map +1 -0
  1197. package/node_modules/tar/dist/commonjs/normalize-windows-path.js +12 -0
  1198. package/node_modules/tar/dist/commonjs/normalize-windows-path.js.map +1 -0
  1199. package/node_modules/tar/dist/commonjs/options.d.ts +604 -0
  1200. package/node_modules/tar/dist/commonjs/options.d.ts.map +1 -0
  1201. package/node_modules/tar/dist/commonjs/options.js +66 -0
  1202. package/node_modules/tar/dist/commonjs/options.js.map +1 -0
  1203. package/node_modules/tar/dist/commonjs/pack.d.ts +105 -0
  1204. package/node_modules/tar/dist/commonjs/pack.d.ts.map +1 -0
  1205. package/node_modules/tar/dist/commonjs/pack.js +544 -0
  1206. package/node_modules/tar/dist/commonjs/pack.js.map +1 -0
  1207. package/node_modules/tar/dist/commonjs/package.json +3 -0
  1208. package/node_modules/tar/dist/commonjs/parse.d.ts +92 -0
  1209. package/node_modules/tar/dist/commonjs/parse.d.ts.map +1 -0
  1210. package/node_modules/tar/dist/commonjs/parse.js +655 -0
  1211. package/node_modules/tar/dist/commonjs/parse.js.map +1 -0
  1212. package/node_modules/tar/dist/commonjs/path-reservations.d.ts +11 -0
  1213. package/node_modules/tar/dist/commonjs/path-reservations.d.ts.map +1 -0
  1214. package/node_modules/tar/dist/commonjs/path-reservations.js +170 -0
  1215. package/node_modules/tar/dist/commonjs/path-reservations.js.map +1 -0
  1216. package/node_modules/tar/dist/commonjs/pax.d.ts +26 -0
  1217. package/node_modules/tar/dist/commonjs/pax.d.ts.map +1 -0
  1218. package/node_modules/tar/dist/commonjs/pax.js +182 -0
  1219. package/node_modules/tar/dist/commonjs/pax.js.map +1 -0
  1220. package/node_modules/tar/dist/commonjs/process-umask.d.ts +2 -0
  1221. package/node_modules/tar/dist/commonjs/process-umask.d.ts.map +1 -0
  1222. package/node_modules/tar/dist/commonjs/process-umask.js +7 -0
  1223. package/node_modules/tar/dist/commonjs/process-umask.js.map +1 -0
  1224. package/node_modules/tar/dist/commonjs/read-entry.d.ts +36 -0
  1225. package/node_modules/tar/dist/commonjs/read-entry.d.ts.map +1 -0
  1226. package/node_modules/tar/dist/commonjs/read-entry.js +136 -0
  1227. package/node_modules/tar/dist/commonjs/read-entry.js.map +1 -0
  1228. package/node_modules/tar/dist/commonjs/replace.d.ts +2 -0
  1229. package/node_modules/tar/dist/commonjs/replace.d.ts.map +1 -0
  1230. package/node_modules/tar/dist/commonjs/replace.js +227 -0
  1231. package/node_modules/tar/dist/commonjs/replace.js.map +1 -0
  1232. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts +2 -0
  1233. package/node_modules/tar/dist/commonjs/strip-absolute-path.d.ts.map +1 -0
  1234. package/node_modules/tar/dist/commonjs/strip-absolute-path.js +29 -0
  1235. package/node_modules/tar/dist/commonjs/strip-absolute-path.js.map +1 -0
  1236. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts +2 -0
  1237. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.d.ts.map +1 -0
  1238. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js +18 -0
  1239. package/node_modules/tar/dist/commonjs/strip-trailing-slashes.js.map +1 -0
  1240. package/node_modules/tar/dist/commonjs/symlink-error.d.ts +9 -0
  1241. package/node_modules/tar/dist/commonjs/symlink-error.d.ts.map +1 -0
  1242. package/node_modules/tar/dist/commonjs/symlink-error.js +19 -0
  1243. package/node_modules/tar/dist/commonjs/symlink-error.js.map +1 -0
  1244. package/node_modules/tar/dist/commonjs/types.d.ts +16 -0
  1245. package/node_modules/tar/dist/commonjs/types.d.ts.map +1 -0
  1246. package/node_modules/tar/dist/commonjs/types.js +70 -0
  1247. package/node_modules/tar/dist/commonjs/types.js.map +1 -0
  1248. package/node_modules/tar/dist/commonjs/unpack.d.ts +101 -0
  1249. package/node_modules/tar/dist/commonjs/unpack.d.ts.map +1 -0
  1250. package/node_modules/tar/dist/commonjs/unpack.js +932 -0
  1251. package/node_modules/tar/dist/commonjs/unpack.js.map +1 -0
  1252. package/node_modules/tar/dist/commonjs/update.d.ts +2 -0
  1253. package/node_modules/tar/dist/commonjs/update.d.ts.map +1 -0
  1254. package/node_modules/tar/dist/commonjs/update.js +33 -0
  1255. package/node_modules/tar/dist/commonjs/update.js.map +1 -0
  1256. package/node_modules/tar/dist/commonjs/warn-method.d.ts +24 -0
  1257. package/node_modules/tar/dist/commonjs/warn-method.d.ts.map +1 -0
  1258. package/node_modules/tar/dist/commonjs/warn-method.js +31 -0
  1259. package/node_modules/tar/dist/commonjs/warn-method.js.map +1 -0
  1260. package/node_modules/tar/dist/commonjs/winchars.d.ts +3 -0
  1261. package/node_modules/tar/dist/commonjs/winchars.d.ts.map +1 -0
  1262. package/node_modules/tar/dist/commonjs/winchars.js +14 -0
  1263. package/node_modules/tar/dist/commonjs/winchars.js.map +1 -0
  1264. package/node_modules/tar/dist/commonjs/write-entry.d.ts +129 -0
  1265. package/node_modules/tar/dist/commonjs/write-entry.d.ts.map +1 -0
  1266. package/node_modules/tar/dist/commonjs/write-entry.js +698 -0
  1267. package/node_modules/tar/dist/commonjs/write-entry.js.map +1 -0
  1268. package/node_modules/tar/dist/esm/create.d.ts +3 -0
  1269. package/node_modules/tar/dist/esm/create.d.ts.map +1 -0
  1270. package/node_modules/tar/dist/esm/create.js +76 -0
  1271. package/node_modules/tar/dist/esm/create.js.map +1 -0
  1272. package/node_modules/tar/dist/esm/cwd-error.d.ts +8 -0
  1273. package/node_modules/tar/dist/esm/cwd-error.d.ts.map +1 -0
  1274. package/node_modules/tar/dist/esm/cwd-error.js +14 -0
  1275. package/node_modules/tar/dist/esm/cwd-error.js.map +1 -0
  1276. package/node_modules/tar/dist/esm/extract.d.ts +3 -0
  1277. package/node_modules/tar/dist/esm/extract.d.ts.map +1 -0
  1278. package/node_modules/tar/dist/esm/extract.js +49 -0
  1279. package/node_modules/tar/dist/esm/extract.js.map +1 -0
  1280. package/node_modules/tar/dist/esm/get-write-flag.d.ts +2 -0
  1281. package/node_modules/tar/dist/esm/get-write-flag.d.ts.map +1 -0
  1282. package/node_modules/tar/dist/esm/get-write-flag.js +26 -0
  1283. package/node_modules/tar/dist/esm/get-write-flag.js.map +1 -0
  1284. package/node_modules/tar/dist/esm/header.d.ts +53 -0
  1285. package/node_modules/tar/dist/esm/header.d.ts.map +1 -0
  1286. package/node_modules/tar/dist/esm/header.js +311 -0
  1287. package/node_modules/tar/dist/esm/header.js.map +1 -0
  1288. package/node_modules/tar/dist/esm/index.d.ts +20 -0
  1289. package/node_modules/tar/dist/esm/index.d.ts.map +1 -0
  1290. package/node_modules/tar/dist/esm/index.js +20 -0
  1291. package/node_modules/tar/dist/esm/index.js.map +1 -0
  1292. package/node_modules/tar/dist/esm/index.min.js +4 -0
  1293. package/node_modules/tar/dist/esm/index.min.js.map +7 -0
  1294. package/node_modules/tar/dist/esm/large-numbers.d.ts +3 -0
  1295. package/node_modules/tar/dist/esm/large-numbers.d.ts.map +1 -0
  1296. package/node_modules/tar/dist/esm/large-numbers.js +94 -0
  1297. package/node_modules/tar/dist/esm/large-numbers.js.map +1 -0
  1298. package/node_modules/tar/dist/esm/list.d.ts +7 -0
  1299. package/node_modules/tar/dist/esm/list.d.ts.map +1 -0
  1300. package/node_modules/tar/dist/esm/list.js +113 -0
  1301. package/node_modules/tar/dist/esm/list.js.map +1 -0
  1302. package/node_modules/tar/dist/esm/make-command.d.ts +49 -0
  1303. package/node_modules/tar/dist/esm/make-command.d.ts.map +1 -0
  1304. package/node_modules/tar/dist/esm/make-command.js +48 -0
  1305. package/node_modules/tar/dist/esm/make-command.js.map +1 -0
  1306. package/node_modules/tar/dist/esm/mkdir.d.ts +25 -0
  1307. package/node_modules/tar/dist/esm/mkdir.d.ts.map +1 -0
  1308. package/node_modules/tar/dist/esm/mkdir.js +179 -0
  1309. package/node_modules/tar/dist/esm/mkdir.js.map +1 -0
  1310. package/node_modules/tar/dist/esm/mode-fix.d.ts +2 -0
  1311. package/node_modules/tar/dist/esm/mode-fix.d.ts.map +1 -0
  1312. package/node_modules/tar/dist/esm/mode-fix.js +25 -0
  1313. package/node_modules/tar/dist/esm/mode-fix.js.map +1 -0
  1314. package/node_modules/tar/dist/esm/normalize-unicode.d.ts +2 -0
  1315. package/node_modules/tar/dist/esm/normalize-unicode.d.ts.map +1 -0
  1316. package/node_modules/tar/dist/esm/normalize-unicode.js +34 -0
  1317. package/node_modules/tar/dist/esm/normalize-unicode.js.map +1 -0
  1318. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts +2 -0
  1319. package/node_modules/tar/dist/esm/normalize-windows-path.d.ts.map +1 -0
  1320. package/node_modules/tar/dist/esm/normalize-windows-path.js +9 -0
  1321. package/node_modules/tar/dist/esm/normalize-windows-path.js.map +1 -0
  1322. package/node_modules/tar/dist/esm/options.d.ts +604 -0
  1323. package/node_modules/tar/dist/esm/options.d.ts.map +1 -0
  1324. package/node_modules/tar/dist/esm/options.js +54 -0
  1325. package/node_modules/tar/dist/esm/options.js.map +1 -0
  1326. package/node_modules/tar/dist/esm/pack.d.ts +105 -0
  1327. package/node_modules/tar/dist/esm/pack.d.ts.map +1 -0
  1328. package/node_modules/tar/dist/esm/pack.js +502 -0
  1329. package/node_modules/tar/dist/esm/pack.js.map +1 -0
  1330. package/node_modules/tar/dist/esm/package.json +3 -0
  1331. package/node_modules/tar/dist/esm/parse.d.ts +92 -0
  1332. package/node_modules/tar/dist/esm/parse.d.ts.map +1 -0
  1333. package/node_modules/tar/dist/esm/parse.js +651 -0
  1334. package/node_modules/tar/dist/esm/parse.js.map +1 -0
  1335. package/node_modules/tar/dist/esm/path-reservations.d.ts +11 -0
  1336. package/node_modules/tar/dist/esm/path-reservations.d.ts.map +1 -0
  1337. package/node_modules/tar/dist/esm/path-reservations.js +166 -0
  1338. package/node_modules/tar/dist/esm/path-reservations.js.map +1 -0
  1339. package/node_modules/tar/dist/esm/pax.d.ts +26 -0
  1340. package/node_modules/tar/dist/esm/pax.d.ts.map +1 -0
  1341. package/node_modules/tar/dist/esm/pax.js +178 -0
  1342. package/node_modules/tar/dist/esm/pax.js.map +1 -0
  1343. package/node_modules/tar/dist/esm/process-umask.d.ts +2 -0
  1344. package/node_modules/tar/dist/esm/process-umask.d.ts.map +1 -0
  1345. package/node_modules/tar/dist/esm/process-umask.js +3 -0
  1346. package/node_modules/tar/dist/esm/process-umask.js.map +1 -0
  1347. package/node_modules/tar/dist/esm/read-entry.d.ts +36 -0
  1348. package/node_modules/tar/dist/esm/read-entry.d.ts.map +1 -0
  1349. package/node_modules/tar/dist/esm/read-entry.js +132 -0
  1350. package/node_modules/tar/dist/esm/read-entry.js.map +1 -0
  1351. package/node_modules/tar/dist/esm/replace.d.ts +2 -0
  1352. package/node_modules/tar/dist/esm/replace.d.ts.map +1 -0
  1353. package/node_modules/tar/dist/esm/replace.js +221 -0
  1354. package/node_modules/tar/dist/esm/replace.js.map +1 -0
  1355. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts +2 -0
  1356. package/node_modules/tar/dist/esm/strip-absolute-path.d.ts.map +1 -0
  1357. package/node_modules/tar/dist/esm/strip-absolute-path.js +25 -0
  1358. package/node_modules/tar/dist/esm/strip-absolute-path.js.map +1 -0
  1359. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts +2 -0
  1360. package/node_modules/tar/dist/esm/strip-trailing-slashes.d.ts.map +1 -0
  1361. package/node_modules/tar/dist/esm/strip-trailing-slashes.js +14 -0
  1362. package/node_modules/tar/dist/esm/strip-trailing-slashes.js.map +1 -0
  1363. package/node_modules/tar/dist/esm/symlink-error.d.ts +9 -0
  1364. package/node_modules/tar/dist/esm/symlink-error.d.ts.map +1 -0
  1365. package/node_modules/tar/dist/esm/symlink-error.js +15 -0
  1366. package/node_modules/tar/dist/esm/symlink-error.js.map +1 -0
  1367. package/node_modules/tar/dist/esm/types.d.ts +16 -0
  1368. package/node_modules/tar/dist/esm/types.d.ts.map +1 -0
  1369. package/node_modules/tar/dist/esm/types.js +65 -0
  1370. package/node_modules/tar/dist/esm/types.js.map +1 -0
  1371. package/node_modules/tar/dist/esm/unpack.d.ts +101 -0
  1372. package/node_modules/tar/dist/esm/unpack.d.ts.map +1 -0
  1373. package/node_modules/tar/dist/esm/unpack.js +891 -0
  1374. package/node_modules/tar/dist/esm/unpack.js.map +1 -0
  1375. package/node_modules/tar/dist/esm/update.d.ts +2 -0
  1376. package/node_modules/tar/dist/esm/update.d.ts.map +1 -0
  1377. package/node_modules/tar/dist/esm/update.js +30 -0
  1378. package/node_modules/tar/dist/esm/update.js.map +1 -0
  1379. package/node_modules/tar/dist/esm/warn-method.d.ts +24 -0
  1380. package/node_modules/tar/dist/esm/warn-method.d.ts.map +1 -0
  1381. package/node_modules/tar/dist/esm/warn-method.js +27 -0
  1382. package/node_modules/tar/dist/esm/warn-method.js.map +1 -0
  1383. package/node_modules/tar/dist/esm/winchars.d.ts +3 -0
  1384. package/node_modules/tar/dist/esm/winchars.d.ts.map +1 -0
  1385. package/node_modules/tar/dist/esm/winchars.js +9 -0
  1386. package/node_modules/tar/dist/esm/winchars.js.map +1 -0
  1387. package/node_modules/tar/dist/esm/write-entry.d.ts +129 -0
  1388. package/node_modules/tar/dist/esm/write-entry.d.ts.map +1 -0
  1389. package/node_modules/tar/dist/esm/write-entry.js +656 -0
  1390. package/node_modules/tar/dist/esm/write-entry.js.map +1 -0
  1391. package/node_modules/tar/package.json +298 -0
  1392. package/node_modules/typescript/LICENSE.txt +55 -0
  1393. package/node_modules/typescript/README.md +50 -0
  1394. package/node_modules/typescript/SECURITY.md +41 -0
  1395. package/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  1396. package/node_modules/typescript/bin/tsc +2 -0
  1397. package/node_modules/typescript/bin/tsserver +2 -0
  1398. package/node_modules/typescript/lib/_tsc.js +133818 -0
  1399. package/node_modules/typescript/lib/_tsserver.js +659 -0
  1400. package/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  1401. package/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  1402. package/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  1403. package/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  1404. package/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  1405. package/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  1406. package/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  1407. package/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  1408. package/node_modules/typescript/lib/lib.d.ts +22 -0
  1409. package/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  1410. package/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  1411. package/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  1412. package/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  1413. package/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  1414. package/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  1415. package/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  1416. package/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  1417. package/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  1418. package/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  1419. package/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  1420. package/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  1421. package/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  1422. package/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  1423. package/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  1424. package/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  1425. package/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  1426. package/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  1427. package/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  1428. package/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  1429. package/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  1430. package/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  1431. package/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  1432. package/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  1433. package/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  1434. package/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  1435. package/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  1436. package/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  1437. package/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  1438. package/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  1439. package/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  1440. package/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  1441. package/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  1442. package/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  1443. package/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  1444. package/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  1445. package/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  1446. package/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  1447. package/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  1448. package/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  1449. package/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  1450. package/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  1451. package/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  1452. package/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  1453. package/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  1454. package/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  1455. package/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  1456. package/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  1457. package/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  1458. package/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  1459. package/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  1460. package/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  1461. package/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  1462. package/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  1463. package/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  1464. package/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  1465. package/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  1466. package/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  1467. package/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  1468. package/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  1469. package/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  1470. package/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  1471. package/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  1472. package/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  1473. package/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  1474. package/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  1475. package/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  1476. package/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  1477. package/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  1478. package/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  1479. package/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  1480. package/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  1481. package/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  1482. package/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  1483. package/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  1484. package/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  1485. package/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  1486. package/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  1487. package/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  1488. package/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  1489. package/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  1490. package/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  1491. package/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  1492. package/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  1493. package/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  1494. package/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  1495. package/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  1496. package/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  1497. package/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
  1498. package/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  1499. package/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  1500. package/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  1501. package/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  1502. package/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  1503. package/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  1504. package/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  1505. package/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  1506. package/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  1507. package/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  1508. package/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  1509. package/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  1510. package/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  1511. package/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  1512. package/node_modules/typescript/lib/tsc.js +8 -0
  1513. package/node_modules/typescript/lib/tsserver.js +8 -0
  1514. package/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  1515. package/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  1516. package/node_modules/typescript/lib/typesMap.json +497 -0
  1517. package/node_modules/typescript/lib/typescript.d.ts +11437 -0
  1518. package/node_modules/typescript/lib/typescript.js +200276 -0
  1519. package/node_modules/typescript/lib/typingsInstaller.js +8 -0
  1520. package/node_modules/typescript/lib/watchGuard.js +53 -0
  1521. package/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
  1522. package/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
  1523. package/node_modules/typescript/package.json +120 -0
  1524. package/node_modules/yallist/LICENSE.md +63 -0
  1525. package/node_modules/yallist/README.md +205 -0
  1526. package/node_modules/yallist/dist/commonjs/index.d.ts +39 -0
  1527. package/node_modules/yallist/dist/commonjs/index.d.ts.map +1 -0
  1528. package/node_modules/yallist/dist/commonjs/index.js +384 -0
  1529. package/node_modules/yallist/dist/commonjs/index.js.map +1 -0
  1530. package/node_modules/yallist/dist/commonjs/package.json +3 -0
  1531. package/node_modules/yallist/dist/esm/index.d.ts +39 -0
  1532. package/node_modules/yallist/dist/esm/index.d.ts.map +1 -0
  1533. package/node_modules/yallist/dist/esm/index.js +379 -0
  1534. package/node_modules/yallist/dist/esm/index.js.map +1 -0
  1535. package/node_modules/yallist/dist/esm/package.json +3 -0
  1536. package/node_modules/yallist/package.json +68 -0
  1537. package/node_modules/yauzl/LICENSE +21 -0
  1538. package/node_modules/yauzl/README.md +1015 -0
  1539. package/node_modules/yauzl/crc32.js +45 -0
  1540. package/node_modules/yauzl/fd-slicer.js +188 -0
  1541. package/node_modules/yauzl/index.js +1096 -0
  1542. package/node_modules/yauzl/package.json +40 -0
  1543. package/node_modules/yazl/LICENSE +21 -0
  1544. package/node_modules/yazl/README.md +457 -0
  1545. package/node_modules/yazl/index.js +826 -0
  1546. package/node_modules/yazl/package.json +34 -0
  1547. package/package.json +163 -0
  1548. package/testkit-config-schema.md +718 -0
package/README.md ADDED
@@ -0,0 +1,1125 @@
1
+ <p align="center">
2
+ <img src="assets/logo.png" alt="Testkit logo" width="240">
3
+ </p>
4
+
5
+ # @gfdelarue/testkit
6
+
7
+ `@gfdelarue/testkit` is the orchestrator and managed distribution for product test
8
+ suites. It discovers `*.testkit.ts` files, infers suite ownership from the
9
+ filesystem, starts local services, provisions Docker-managed local Postgres
10
+ databases, schedules suites, and collects results and artifacts.
11
+
12
+ Testkit exists to replace false confidence with inspectable execution evidence.
13
+ It cannot prove that an entire application works. It can make narrower claims
14
+ that deserve trust: these tests genuinely executed; these were the runtimes,
15
+ fixtures, and inputs supplied to the run; this is what passed, failed, was
16
+ skipped, or did not run; and this is the evidence behind the result. Testkit
17
+ retains provenance, logs, and verifiable artifacts so those claims can be
18
+ audited rather than accepted on the strength of a green check mark.
19
+
20
+ Configure Testkit with an optional repo-root `testkit.config.ts`.
21
+
22
+ ## CI gate
23
+
24
+ Give the installed CLI one stable package script and use that script locally and
25
+ in CI:
26
+
27
+ ```json
28
+ {
29
+ "scripts": {
30
+ "testkit": "testkit run"
31
+ }
32
+ }
33
+ ```
34
+
35
+ ```bash
36
+ npm ci
37
+ npm run testkit
38
+ ```
39
+
40
+ The command exits zero only when at least one test file completed and every
41
+ required file passed. Test failures, infrastructure failures, interrupted or
42
+ not-run files, an all-skipped selection, and an empty selection all fail the
43
+ gate. `npm run testkit -- --allow-empty` is an explicit escape hatch for a job
44
+ whose empty selection is intentional; it should not be the default CI command.
45
+
46
+ Testkit writes the immutable, verifiable run bundle under
47
+ `.testkit/results/runs/<run-id>/`. Upload `.testkit/results` with `if: always()`
48
+ when CI evidence should survive a failed job.
49
+
50
+ Publishing that evidence to Testkit Cloud is an additional explicit step. Set
51
+ `TESTKIT_CLOUD_PROJECT_ID` and the secret `TESTKIT_CLOUD_TOKEN`, then run:
52
+
53
+ ```bash
54
+ npx testkit cloud publish
55
+ ```
56
+
57
+ The command verifies the immutable bundle before upload. Ordinary runs never
58
+ contact Cloud, and the presence of `CI` does not authorize publication.
59
+
60
+ ## Connect to Cloud
61
+
62
+ For interactive use, approve your CLI through the browser once:
63
+
64
+ ```sh
65
+ npx testkit cloud login
66
+ npx testkit cloud project create
67
+ npx testkit cloud publish --project PROJECT_ID --run RUN_ID
68
+ ```
69
+
70
+ Login works outside Git. Project creation infers the repository from Git origin
71
+ or accepts `--repository owner/repo`. It resumes after any required provider
72
+ consent. `cloud list`, `cloud show`, and `cloud apply --file` provide discovery,
73
+ settings and product control. See the [Cloud control boundary](docs/testkit-cloud-boundary.md#complete-cloud-control)
74
+ and [complete operation reference](https://github.com/gfdelarue/testkit-cloud/blob/master/docs/cloud-control.md).
75
+ Explicit `TESTKIT_CLOUD_TOKEN` still takes precedence over the saved account.
76
+
77
+ ## Execution engines
78
+
79
+ Testkit has three explicit built-in engines rather than one implicit runtime:
80
+
81
+ - `k6` runs `int`, `e2e`, `load`, and `dal` files with native k6
82
+ and xk6-sql semantics.
83
+ - `node-vitest` runs purpose-built `data` and `contract` files with Node and
84
+ Vitest.
85
+ - `playwright` runs `ui` files with Playwright and a managed Chromium.
86
+
87
+ Every test file must export `defineFile({ engine: "..." })`. The filename
88
+ suffix supplies the public test type; Testkit validates that explicit pair and
89
+ derives a runner profile. It never infers a default engine or falls back to a
90
+ different engine.
91
+
92
+ Consumers declare only `@gfdelarue/testkit`. The root package owns the three
93
+ adapters and exact JavaScript tools it executes. The k6 engine ships as
94
+ separately versioned npm packages built from
95
+ [gfdelarue/testkit-k6](https://github.com/gfdelarue/testkit-k6); npm installs
96
+ the compatible k6 target package and its shared source package through the
97
+ root's optional dependency graph, and Testkit resolves that direct executable
98
+ without consulting `PATH`. Node/Vitest and Playwright resolve their managed public packages from the
99
+ installed Testkit root, so product-local tool copies do not select Testkit's
100
+ runtime.
101
+
102
+ Playwright browser installation is explicit:
103
+
104
+ ```bash
105
+ npx @gfdelarue/testkit setup playwright
106
+ npx @gfdelarue/testkit setup playwright --with-deps # CI and fresh hosts
107
+ ```
108
+
109
+ Setup and execution share one canonical Playwright registry. Normal runs never
110
+ install or download a browser. See [Engine Architecture](docs/engine-architecture.md)
111
+ for the authoring, installation, trust, and failure contracts.
112
+
113
+ Managed commands use the same Execa-backed adapter on hosted Linux and Windows
114
+ runners. Testkit passes exact argv, cwd, and environment values, bounds captured
115
+ output, applies cancellation and timeouts, and asks the platform adapter to
116
+ terminate descendants. Persisted recovery identities remain birth-fenced so a
117
+ later cleanup does not signal a reused process ID.
118
+
119
+ The five k6 target packages share one exact-version source package that carries
120
+ the AGPL corresponding source archive and licenses. Runtime evidence records
121
+ the package name and version and the k6 version observed by executing the
122
+ installed binary. The
123
+ [testkit-k6 README](https://github.com/gfdelarue/testkit-k6#readme) documents
124
+ the reproducible build, the expected executable digests, and the license
125
+ notes.
126
+
127
+ Managed task environment is engine input rather than ambient host state. k6
128
+ suites read it through native `__ENV`; Node/Vitest data and contract callbacks
129
+ read immutable, enumerable `context.env`; and Playwright suites can read the
130
+ same contract from `readPlaywrightContext()?.env`. Managed Node processes also
131
+ expose each value as an immutable, non-enumerable `process.env.KEY` property so
132
+ libraries that read `process.env` directly see it, but non-Node child processes
133
+ do not receive consumer values unless the suite explicitly passes them.
134
+
135
+ Consumer environment names are checked case-insensitively. Every engine
136
+ reserves `APPDATA`, `ComSpec`, `HOME`, `LANG`, `LC_ALL`, `LOCALAPPDATA`, `PATH`,
137
+ `PATHEXT`, `SystemRoot`, `TEMP`, `TMP`, `TMPDIR`, `USERPROFILE`,
138
+ `XDG_CACHE_HOME`, `XDG_CONFIG_HOME`, and `XDG_DATA_HOME`. In addition:
139
+
140
+ - k6 reserves the `K6_` and `TESTKIT_` prefixes plus `BASE_URL` and `GODEBUG`;
141
+ - Node/Vitest reserves the `TESTKIT_` and `VITEST_` prefixes plus `BASE_URL`,
142
+ `FORCE_COLOR`, `NODE_OPTIONS`, `NO_COLOR`, and `UPDATE_SNAPSHOT`;
143
+ - Playwright reserves the `TESTKIT_`, `PLAYWRIGHT_`, `PWTEST_`, and `PW_TEST_`
144
+ prefixes plus `BASE_URL`, `FORCE_COLOR`, `NODE_OPTIONS`, and `NO_COLOR`.
145
+
146
+ Case-variant duplicates and invalid names or NUL-containing values fail instead
147
+ of being normalized. k6 accepts at most 128 consumer entries and 16,384
148
+ environment-block character units. Node/Vitest accepts at most 512 entries and
149
+ 4 MiB of UTF-8 key/value data. Playwright accepts at most 512 entries and 2 MiB
150
+ of UTF-8 key/value data. The smaller k6 limit is required because native k6
151
+ receives consumer values in its physical process environment; Node/Vitest and
152
+ Playwright transport them through owned runtime-input files. See
153
+ [Engine Architecture](docs/engine-architecture.md#managed-environment) for the
154
+ complete transport and aggregate-input limits.
155
+
156
+ ## Usage
157
+
158
+ ```bash
159
+ cd my-product
160
+
161
+ # Run every testkit-managed suite in batch mode
162
+ npx @gfdelarue/testkit run
163
+
164
+ # Inspect discovered tests without running them
165
+ npx @gfdelarue/testkit discover
166
+ npx @gfdelarue/testkit discover --output-mode verbose
167
+ npx @gfdelarue/testkit discover --json > .testkit/discovery.json
168
+ npx @gfdelarue/testkit discover --output .testkit/discovery.json
169
+
170
+ # Filter by type
171
+ npx @gfdelarue/testkit --type int
172
+ npx @gfdelarue/testkit --type dal
173
+ npx @gfdelarue/testkit --type e2e
174
+ npx @gfdelarue/testkit --type int,e2e,dal
175
+ npx @gfdelarue/testkit --type ui
176
+
177
+ # Parallel file execution
178
+ npx @gfdelarue/testkit --task-concurrency 8
179
+
180
+ # One file-level wall clock budget for every suite file
181
+ npx @gfdelarue/testkit --file-timeout-seconds 60
182
+
183
+ # Specific service / suite
184
+ npx @gfdelarue/testkit --service frontend --type ui -s navigation
185
+ npx @gfdelarue/testkit --service api --type int -s health
186
+ npx @gfdelarue/testkit --type int,e2e,dal -s dal:queries
187
+
188
+ # Exact file
189
+ npx @gfdelarue/testkit --type int --file __testkit__/health.int.testkit.ts
190
+
191
+ # Temporarily ignore repo-declared skip rules
192
+ npx @gfdelarue/testkit --ignore-skip-rules --file __testkit__/billing.int.testkit.ts
193
+
194
+ # Lifecycle
195
+ npx @gfdelarue/testkit status
196
+ npx @gfdelarue/testkit lint
197
+ npx @gfdelarue/testkit destroy
198
+ npx @gfdelarue/testkit cleanup
199
+ npx @gfdelarue/testkit cleanup --resources --dry-run
200
+
201
+
202
+ # Diagnostics: refresh or verify the source schema cache
203
+ npx @gfdelarue/testkit db schema refresh --service api
204
+ npx @gfdelarue/testkit db schema verify --service api
205
+ ```
206
+
207
+ Database cleanup is scoped to the selected product. `cleanup --resources --global`
208
+ is retired; use `--dir <product> cleanup --resources` for each product. After
209
+ deleting a product directory, remove its orphaned containers and volumes
210
+ explicitly through Docker.
211
+
212
+ Use `execution.taskConcurrency` in config and `--task-concurrency` on the CLI.
213
+ `execution.workers`, `presets.nodeNext({ workers })` and `--workers` remain
214
+ deprecated aliases through 0.2.x and will be removed in 0.3.0. When both names are
215
+ provided in config or on the CLI, their values must match. The CLI value overrides
216
+ config after those checks. See the [execution settings](testkit-config-schema.md#execution).
217
+
218
+ Batch `run` output stays intentionally short: one line per completed file,
219
+ concise failure blocks, and a final summary. Service logs, captured runtime
220
+ output, and emitted artifacts are persisted under `.testkit/results/`.
221
+
222
+ Testkit produces an immutable local run bundle and, when requested, a Cloud
223
+ publication receipt. `testkit run` prints `Run ID: <id>` after sealing in text
224
+ output and returns `runId` in `--json` output, for passed and failed runs.
225
+ Publish that exact evidence with `testkit cloud publish --run <id>`. Omitting
226
+ `--run` selects the newest bundle for interactive use. Historical summaries
227
+ and trends belong to Testkit Cloud.
228
+
229
+ For CI, preserve the run exit status and publish the ID from that invocation:
230
+
231
+ ```sh
232
+ run_exit=0
233
+ testkit run --json > testkit-run.json || run_exit=$?
234
+ run_id=$(node -e 'const r = JSON.parse(require("node:fs").readFileSync("testkit-run.json", "utf8")); if (typeof r.runId !== "string" || !r.runId) process.exit(1); process.stdout.write(r.runId)') || {
235
+ if [ "$run_exit" -ne 0 ]; then exit "$run_exit"; fi
236
+ exit 1
237
+ }
238
+ publish_exit=0
239
+ testkit cloud publish --run "$run_id" || publish_exit=$?
240
+ if [ "$publish_exit" -ne 0 ]; then
241
+ echo "Cloud publication failed with exit $publish_exit" >&2
242
+ fi
243
+ exit "$run_exit"
244
+ ```
245
+
246
+ Set `TESTKIT_CLOUD_PROJECT_ID` and `TESTKIT_CLOUD_TOKEN` in the CI environment.
247
+ `TESTKIT_CLOUD_URL`, or the `--url` flag on `cloud publish`, `cloud apply`, and
248
+ `cloud snapshot`, changes the Testkit Cloud origin. The bearer token and the
249
+ run bundle are sent only to that origin, so protect the variable like the
250
+ token itself. Leave it unset to use `https://testkit.cloud`.
251
+ A failed run can still publish a valid sealed bundle. Publication reports its
252
+ own exit status and does not change the test outcome. This recipe reports a
253
+ publication failure and retains the run status as the job status. See the
254
+ [Cloud boundary](docs/testkit-cloud-boundary.md) and
255
+ [breaking-change migration](https://github.com/gfdelarue/testkit/blob/master/docs/release-notes.md).
256
+
257
+ Test execution also maintains a scheduler cache at `.testkit/timings.json`.
258
+ Completed file-level task durations are used to rank future runs with a
259
+ longest-estimated-duration-first policy, so slow files start earlier when
260
+ workers are available. Run artifacts include compact scheduler metadata under
261
+ `planning` so ordering decisions are inspectable.
262
+
263
+ ## Tooling Adapters
264
+
265
+ `testkit` also ships tool-specific config helpers so consumer repos do not need
266
+ repo-local runtime policy files just to cooperate with managed runs.
267
+
268
+ ```ts
269
+ // drizzle.config.ts
270
+ import { defineConfig } from "@gfdelarue/testkit/drizzle";
271
+
272
+ export default defineConfig({
273
+ schema: "./src/db/schema/index.ts",
274
+ out: "./src/db/migrations",
275
+ dialect: "postgresql",
276
+ dbCredentials: {
277
+ url: process.env.DATABASE_URL!,
278
+ },
279
+ });
280
+ ```
281
+
282
+ ```ts
283
+ // vitest.config.ts
284
+ import { defineConfig } from "@gfdelarue/testkit/tooling/vitest";
285
+
286
+ export default defineConfig({
287
+ test: {
288
+ include: ["src/**/*.test.ts"],
289
+ },
290
+ });
291
+ ```
292
+
293
+ ```ts
294
+ // playwright.config.ts
295
+ import { defineTestkitConfig, devices } from "@gfdelarue/testkit/playwright";
296
+
297
+ export default defineTestkitConfig(
298
+ {
299
+ testDir: "./__testkit__",
300
+ projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }],
301
+ },
302
+ {
303
+ dotenvFiles: [".env.local"],
304
+ },
305
+ );
306
+ ```
307
+
308
+ Managed UI suites use `@gfdelarue/testkit/playwright` for Testkit's Playwright
309
+ helpers and re-exported authoring API. They may also import exact public exports
310
+ from the managed `@playwright/test`, `playwright`, and `playwright-core`
311
+ packages. Testkit pins both runtime resolution and type resolution, so
312
+ product-local Playwright installs cannot split the test registry or supply a
313
+ different compile-time API.
314
+
315
+ For scripts and app-runtime code, `@gfdelarue/testkit/env` provides shared helpers
316
+ for managed runtime detection, dotenv loading, and local-database safety:
317
+
318
+ ```ts
319
+ import { assertLocalDatabaseUrl, loadDotenvFiles, shouldLoadDotenv } from "@gfdelarue/testkit/env";
320
+
321
+ if (shouldLoadDotenv()) {
322
+ loadDotenvFiles({ files: [".env", ".env.local"] });
323
+ }
324
+
325
+ assertLocalDatabaseUrl(process.env, "seed.ts");
326
+ ```
327
+
328
+ ## Setup
329
+
330
+ See the [configuration schema](testkit-config-schema.md) for the complete,
331
+ strict `testkit.config.ts` contract.
332
+
333
+ Create `testkit.config.ts` at repo root:
334
+
335
+ ```ts
336
+ import { app, database, defineConfig, toolchain } from "@gfdelarue/testkit/config";
337
+
338
+ export default defineConfig({
339
+ execution: {
340
+ taskConcurrency: 8,
341
+ fileTimeoutSeconds: 60,
342
+ },
343
+ lint: {
344
+ rules: {
345
+ unitTestBoundaries: true,
346
+ },
347
+ },
348
+ fingerprints: {
349
+ exclude: ["next-env.d.ts"],
350
+ },
351
+ toolchains: {
352
+ frontendNode: toolchain.node({
353
+ cwd: "frontend",
354
+ detect: "auto",
355
+ install: "download",
356
+ }),
357
+ },
358
+ services: {
359
+ api: app.node({
360
+ cwd: ".",
361
+ entry: "src/index.ts",
362
+ port: 3004,
363
+ envFiles: [".env.testkit"],
364
+ database: database.postgres({
365
+ runtimeConnections: 20,
366
+ sourceSchema: database.schema.fromEnv("PRODUCTION_DATABASE_URL"),
367
+ template: {
368
+ inputs: ["db/schema.sql", "scripts/seed.ts"],
369
+ migrate: [{ kind: "sql-file", path: "db/schema.sql" }],
370
+ seed: [{ kind: "command", run: "npm run db:seed" }],
371
+ verify: [{ kind: "module", target: "src/testkit/verify-seed.ts#verifySeed" }],
372
+ },
373
+ }),
374
+ runtime: {
375
+ instances: 1,
376
+ maxConcurrentTasks: 4,
377
+ },
378
+ }),
379
+ frontend: app.next({
380
+ cwd: "frontend",
381
+ mode: "start",
382
+ port: 3000,
383
+ dependsOn: ["api"],
384
+ envFiles: ["frontend/.env.testkit"],
385
+ env: {
386
+ values: {
387
+ NEXT_PUBLIC_API_URL: "{baseUrl:api}",
388
+ },
389
+ },
390
+ runtime: {
391
+ instances: 1,
392
+ maxConcurrentTasks: 2,
393
+ toolchain: "frontendNode",
394
+ },
395
+ }),
396
+ },
397
+ });
398
+ ```
399
+
400
+ Every test file declares its execution engine and any file-local scheduling
401
+ metadata next to the test:
402
+
403
+ ```ts
404
+ import { defineFile } from "@gfdelarue/testkit";
405
+
406
+ export const testkit = defineFile({
407
+ engine: "k6",
408
+ skip: "Billing is currently unavailable locally",
409
+ locks: ["global-worker-loop"],
410
+ });
411
+ ```
412
+
413
+ The engine value is a required literal. The supported public authoring paths
414
+ are `@gfdelarue/testkit/k6`, `@gfdelarue/testkit/node-vitest/data`,
415
+ `@gfdelarue/testkit/node-vitest/contract`, and `@gfdelarue/testkit/playwright`.
416
+ Node/Vitest and Playwright suites may also import exact public APIs directly
417
+ from Testkit's managed `vitest`, `@playwright/test`, `playwright`, and
418
+ `playwright-core` packages.
419
+ There are no legacy aliases or implicit-runner compatibility paths.
420
+
421
+ `testkit.config.ts` is optional for simple repos, but it is the primary escape hatch
422
+ for:
423
+
424
+ - worker count and per-file runtime budget
425
+ - per-file wall clock timeout budget
426
+ - multi-service graphs
427
+ - local runtime instance counts
428
+ - per-runtime concurrent task caps
429
+ - repo-managed Node toolchains for prepare/start commands
430
+ - one-time runtime preparation steps for stable shared servers
431
+ - local DB binding configuration
432
+ - source-backed schema verification
433
+ - template database migrate / seed / verify stages
434
+ - explicit per-file or per-suite locks
435
+ - named HTTP suite profiles
436
+ - repo-level fingerprint include/exclude policy
437
+ - repo-declared suite/file skip policies with explicit reasons
438
+
439
+ `runtime.prepare` is the generic build-once hook for shared runtimes. It runs
440
+ once per runtime generation before local services start, fingerprints declared
441
+ inputs, and writes cache state under the service runtime directory. This is the
442
+ right way to move expensive browser targets from `next dev` / watch mode to
443
+ stable build-and-start flows.
444
+
445
+ Setup steps (`runtime.prepare`, database `template`, and other Testkit-run
446
+ Node commands) inherit `NODE_OPTIONS`. `TESTKIT_SETUP_NODE_OPTIONS` appends
447
+ extra flags to `NODE_OPTIONS` for those steps only, for example a larger heap
448
+ for a heavy migration. Anything preloaded through it runs inside your product's
449
+ setup processes, so set it deliberately.
450
+
451
+ Testkit-owned Docker resources are labelled at creation time so they can be
452
+ found again even if product-local `.testkit` state is deleted. `testkit destroy`
453
+ removes labelled resources for the current product after service state is
454
+ destroyed. `testkit cleanup --resources` cleans stale resources for the current
455
+ product. Both commands filter Docker inventory by the product ownership label
456
+ and preserve other products, including idle caches. Host-local Postgres data
457
+ lives in a Testkit-labelled named Docker
458
+ volume instead of an image-declared anonymous volume, so cleanup can account for
459
+ and remove it safely. Each created volume receives a never-reused random
460
+ generation in both its name and labels; cleanup re-inspects the complete
461
+ generation immediately before Docker's name-based removal. Docker has no
462
+ immutable volume ID or conditional-delete API, so direct Docker-daemon
463
+ principals are part of the host trust boundary and must not replace that
464
+ unguessable name during the final removal call. Testkit serializes database
465
+ mutations for the same product; independent products can proceed concurrently.
466
+ Use `cleanup --resources --dry-run` to preview the selected product's cleanup.
467
+
468
+ `database.template` is the database-side equivalent for reusable template DB
469
+ state. When `database.sourceSchema` is configured, Testkit treats the configured
470
+ source database as the schema source of truth. A normal `testkit run` resolves a
471
+ commit-aware source schema cache under
472
+ `.testkit/db/<service>/source-schemas/`, applies that cached schema to the local
473
+ template DB, runs local template setup, and verifies that the replayed local
474
+ schema still matches the source dump. If local replay differs, Testkit refreshes
475
+ from the source once for the current cache key and retries. If it still differs,
476
+ the run fails with schema diagnostics under `.testkit/results/schema`.
477
+
478
+ Source schema cache keys are derived automatically from repo state:
479
+
480
+ - clean git worktrees use `commits/<sha>`
481
+ - dirty git worktrees use `dirty/<sha>-<fingerprint>`
482
+ - non-git directories use `nogit/<fingerprint>`
483
+
484
+ Dirty worktree fingerprints compare the complete index to `HEAD`, then compare
485
+ the physical worktree bytes, node types, and executable modes to the index.
486
+ This intentionally detects changes hidden by Git stat flags, sparse checkout,
487
+ or clean/smudge and EOL normalization. For untracked files, repository
488
+ `.gitignore` files are respected; host-global excludes, `core.excludesFile`, and
489
+ `.git/info/exclude` do not alter Testkit's cache identity.
490
+
491
+ Fingerprint Git commands disable replacement objects and optional locks and do
492
+ not read system or user Git configuration. Git path records are decoded from
493
+ their byte-preserving quoted form and must be valid UTF-8. Uninitialized
494
+ gitlinks and special filesystem nodes fail explicitly instead of being assigned
495
+ an incomplete or ambiguous identity. Testkit reads the complete HEAD, index,
496
+ untracked, submodule, and physical snapshot twice and fails if the observations
497
+ differ.
498
+
499
+ Physical reads open regular files by descriptor and verify every pathname
500
+ component before and after use; on POSIX, ancestor directory descriptors remain
501
+ open during the read. Node does not expose a portable `openat`/Windows reparse-
502
+ handle traversal API, so this detects ordinary replacement races but is not a
503
+ security boundary against a same-user adversary able to perform a perfectly
504
+ timed replace-and-restore ABA attack. Run Testkit against source trees that are
505
+ not concurrently controlled by an untrusted local process.
506
+
507
+ Testkit-owned outputs are always excluded from fingerprints: `.testkit/`,
508
+ and `.next-testkit/`. `testkit.config.ts` is normal repo
509
+ configuration and is not excluded automatically. For user-managed generated
510
+ files, add repo-level `fingerprints.exclude` patterns;
511
+ `fingerprints.include` can opt specific paths back in below an excluded
512
+ directory, including through wildcard directory patterns. Fingerprint patterns
513
+ use `/` as the only separator; a single backslash is rejected when the config
514
+ loads. A doubled backslash addresses a literal POSIX backslash in a filename
515
+ (for example, `"fixtures\\\\literal.txt"` in `testkit.config.ts` source).
516
+
517
+ Branch names and worktree paths are recorded as metadata but do not affect clean
518
+ commit cache keys, so branch renames and clean worktrees at the same commit
519
+ reuse the same source schema. Dirty worktrees are isolated by content
520
+ fingerprint so local experiments cannot overwrite a clean commit baseline.
521
+
522
+ Template setup executes in three explicit phases:
523
+
524
+ - `migrate`
525
+ - `seed`
526
+ - `verify`
527
+
528
+ Schema drift is checked after each successful `migrate` and `seed` step, and
529
+ `verify` only runs once local replay matches the source schema. Source refreshes
530
+ use Dockerized `pg_dump --schema-only --no-owner --no-privileges`, so
531
+ seed/reference data is never written into the baseline and host `pg_dump`
532
+ installations are not used. Keep schema-changing setup in its own step where
533
+ possible; a single command that changes schema and then fails before exiting
534
+ cannot be refreshed at the midpoint.
535
+
536
+ Source schema refreshes are intentionally single-connection and pooler-safe.
537
+ If a Neon pooled source URL is configured, Testkit rewrites it to the matching
538
+ direct Neon endpoint before running Dockerized `pg_dump` and records the
539
+ original/resolved host classifications beside the resolved cache entry. Unknown
540
+ PgBouncer/pooler URLs fail closed; configure a direct source URL for those
541
+ providers. Concurrent refreshes for the same service and cache key are
542
+ serialized with a cache-local lock so multiple Testkit processes do not
543
+ stampede the source database. Testkit also maintains
544
+ `.testkit/db/<service>/source-schemas/index.json` and prunes old inactive cache
545
+ entries automatically.
546
+
547
+ For most repos, prefer declarative step objects directly inside
548
+ `database.postgres({ template: ... })` and `runtime.prepare.steps`.
549
+ The supported shapes are:
550
+
551
+ - `{ kind: "command", run: "..." }`
552
+ - `{ kind: "sql-file", path: "..." }`
553
+ - `{ kind: "module", target: "file.ts#exportName" }`
554
+
555
+ Local files and ordinary external packages remain valid module targets.
556
+ Testkit-owned `@gfdelarue/testkit` targets are validated against Testkit's exact
557
+ configured-step module registry while config is loaded, so a misspelled or
558
+ private Testkit subpath fails before preparation or database setup starts.
559
+
560
+ `runtime.toolchain` is the first-class way to make those prepare/start commands
561
+ run under the correct Node toolchain instead of whatever `node`/`npm` happened
562
+ to launch `testkit`. Node toolchains support:
563
+
564
+ - host verification mode: `install: "require-host"`
565
+ - cached repo-local provisioning mode: `install: "download"`
566
+ - auto-detection from:
567
+ - `package.json#volta.node`
568
+ - `.nvmrc`
569
+ - `.node-version`
570
+ - `.tool-versions` (`nodejs`)
571
+ - `package.json#engines.node`
572
+ - `package.json#volta.npm`
573
+ - `package.json#packageManager`
574
+ - `package.json#engines.npm`
575
+
576
+ Downloaded toolchains resolve only through Testkit's target-specific trusted
577
+ Node release manifest. The archive URL, compressed size, SHA-256, archive
578
+ shape, unpacked size, and complete installed-tree digest are fixed before any
579
+ download. An unlisted version or platform fails closed. The verified cache is
580
+ kept under `.testkit/_toolchains/node`; external cache redirects, linked cache
581
+ ancestors, modified installed content, and escaping executable links are
582
+ rejected. `runtime.toolchain.cwd` is always a normalized product-relative path
583
+ and cannot contain a parent-directory segment. The trusted official Linux Node
584
+ archives are glibc builds; `install: "download"` fails before fetch or cache
585
+ mutation on musl instead of pretending those binaries are compatible.
586
+
587
+ Example:
588
+
589
+ ```ts
590
+ toolchains: {
591
+ frontendNode: toolchain.node({
592
+ cwd: "frontend",
593
+ detect: "auto",
594
+ install: "download",
595
+ }),
596
+ },
597
+ services: {
598
+ frontend: app.next({
599
+ cwd: "frontend",
600
+ port: 3000,
601
+ runtime: {
602
+ toolchain: "frontendNode",
603
+ },
604
+ }),
605
+ }
606
+ ```
607
+
608
+ Every terminal run is sealed under `.testkit/results/runs/<run-id>/` with a
609
+ canonical `run.json`, `provenance.json`, `manifest.json`, and the run's exact
610
+ artifact/log/setup files. Payloads are SHA-256 addressed under
611
+ `.testkit/results/objects/sha256`, so repeated bytes are deduplicated without
612
+ removing their logical per-run paths. `.testkit/results/latest.json` remains a
613
+ convenience projection; it is not the historical authority.
614
+
615
+ Use the artifact archive config to opt into pruning or atomic publication to
616
+ an external directory. Local retention is indefinite by default:
617
+
618
+ ```ts
619
+ export default defineConfig({
620
+ artifacts: {
621
+ retention: {
622
+ maxRuns: 50,
623
+ maxAgeDays: 30,
624
+ preserveSuites: ["ui:performance"],
625
+ },
626
+ publication: {
627
+ directory: "/var/lib/testkit-run-archive",
628
+ required: true,
629
+ },
630
+ },
631
+ services: {
632
+ // ...
633
+ },
634
+ });
635
+ ```
636
+
637
+ Retention decisions and publication receipts are recorded under
638
+ `.testkit/results/retention` and `.testkit/results/publications`. A required
639
+ publication failure fails the command but leaves the verified local bundle in
640
+ place. Discover and verify retained evidence with:
641
+
642
+ ```sh
643
+ testkit artifacts --list --json
644
+ testkit artifacts --run <run-id> --verify --json
645
+ testkit artifacts --run <run-id> path/to/test.testkit.ts --json
646
+ ```
647
+
648
+ Programmatic consumers can import `listRunBundles`, `loadRunBundleArtifact`,
649
+ `loadRunBundleManifest`, and `verifyRunBundle` from
650
+ `@gfdelarue/testkit/workspace`.
651
+
652
+ The run bundle is also the boundary for Testkit Cloud. The local runner never
653
+ reads regression state or mutates GitHub. See
654
+ [`docs/testkit-cloud-boundary.md`](docs/testkit-cloud-boundary.md) for ownership,
655
+ ingestion, and migration rules.
656
+
657
+ Use `testkit cloud snapshot` to read versioned Cloud regression state. Apply
658
+ reviewed mutations from a file with `testkit cloud apply --file commands.json`;
659
+ the file must contain a schema version, idempotency key, expected snapshot
660
+ version, and commands.
661
+
662
+ ## Authoring
663
+
664
+ ### Node setup beside a test
665
+
666
+ A test such as `tests/webhook.int.testkit.ts` can have a sibling
667
+ `tests/webhook.int.testkit.setup.mjs`. Testkit runs its named `setup` export,
668
+ or its default export, before starting the test engine:
669
+
670
+ ```js
671
+ // tests/webhook.int.testkit.setup.mjs
672
+ export async function setup({ sidecars }) {
673
+ const capture = await sidecars.httpCapture({ path: "/webhook" });
674
+ return {
675
+ data: { webhookUrl: capture.url, requestsUrl: capture.requestsUrl },
676
+ };
677
+ }
678
+ ```
679
+
680
+ Setup runs in a Node worker thread with its own JavaScript state. It can use
681
+ Node APIs, prepare external resources, and start HTTP capture listeners.
682
+ The context contains `deadlineMs`, `signal`, `env`, `leaseDir`, `productDir`,
683
+ `serviceName`, `testFile`, and `sidecars`. The worker shares the host process's
684
+ permissions. It is not a sandbox for untrusted code.
685
+
686
+ Return plain JSON, or `{ data, cleanup }` with an optional cleanup function.
687
+ Testkit passes the data to the engine as `setupData` and records it with the
688
+ setup module path and sidecar handles. Bare `null` or `undefined`, and a
689
+ cleanup-only result, give empty data. `{ data: null }` preserves `null`.
690
+ Data must encode to at most 1 MiB of JSON. Invalid data reports its JSON path,
691
+ such as `$.items[1]`, without invoking property getters.
692
+
693
+ Setup shares the task's absolute deadline. On failure or cancellation, Testkit
694
+ runs registered cleanup and closes its sidecars. Once setup succeeds, those
695
+ resources remain available until task cleanup. Cleanup callbacks run in reverse
696
+ registration order. The runner uses the task timeout for cleanup, capped at
697
+ 60 seconds. A hung worker is terminated so it cannot keep its listeners open.
698
+
699
+ Thrown setup errors, deadline expiry, and invalid data fail the task with the
700
+ setup module path. Consumer cleanup errors fail the task; Testkit cleanup or
701
+ worker failures count as infrastructure failures. Cleanup remains idempotent.
702
+ HTTP capture retains at most 100 requests by default, configurable up to 1,000.
703
+ Each body defaults to 1 MiB, configurable up to 8 MiB, and retained bodies total
704
+ at most 8 MiB per listener. A setup can create up to 16 listeners, each with at
705
+ most 256 connections.
706
+
707
+ Discovery tries sibling `.setup.mjs`, sibling `.setup.js`, then the matching
708
+ `.mjs` and `.js` files in `__setup__`, in that order. For the example above,
709
+ the fallback is `tests/__setup__/webhook.int.testkit.mjs`.
710
+
711
+ ### HTTP suites
712
+
713
+ ```ts
714
+ import { defineFile } from "@gfdelarue/testkit";
715
+ import { defineHttpSuite, expect } from "@gfdelarue/testkit/k6";
716
+
717
+ export const testkit = defineFile({ engine: "k6" });
718
+
719
+ const suite = defineHttpSuite(({ rawReq }) => {
720
+ const response = rawReq.get("/health");
721
+ expect.status(response, 200, "health returns 200");
722
+ });
723
+
724
+ export const options = suite.options;
725
+ export const setup = suite.setup;
726
+ export default suite.exec;
727
+ ```
728
+
729
+ Testkit helper suites are authored as native-shaped k6 modules: re-export the
730
+ helper's `options` and `setup`, and default-export its `exec` function. Testkit
731
+ does not inspect source text or invent k6 lifecycle exports.
732
+
733
+ Suite-owned authentication lives in the k6 module. `auth.setup` receives the
734
+ resolved env and a raw HTTP client, returns a session bundle of named actors,
735
+ and `auth.headers` turns the bundle plus the requested actor into headers:
736
+
737
+ ```ts
738
+ import { defineFile } from "@gfdelarue/testkit";
739
+ import { defineHttpSuite } from "@gfdelarue/testkit/k6";
740
+
741
+ import { organizationHeaders, sessionAuth } from "../helpers/session.js";
742
+
743
+ export const testkit = defineFile({ engine: "k6" });
744
+
745
+ const suite = defineHttpSuite(
746
+ {
747
+ auth: sessionAuth(["reviewer", "outsider"]),
748
+ rawHeaders: organizationHeaders,
749
+ },
750
+ ({ actor, actors, req }) => {
751
+ req.get("/api/auth/session");
752
+ req("GET", "/api/auth/session");
753
+ actor?.req.get("/api/auth/session");
754
+ req.as("outsider").get("/api/auth/session");
755
+ actors.get("reviewer").rawReq.get("/api/auth/session");
756
+ },
757
+ );
758
+
759
+ export const options = suite.options;
760
+ export const setup = suite.setup;
761
+ export default suite.exec;
762
+ ```
763
+
764
+ ```ts
765
+ // __testkit__/helpers/session.ts
766
+ import type { AuthAdapter, AuthSessionBundle } from "@gfdelarue/testkit/k6";
767
+
768
+ export function sessionAuth(actorNames: string[]): AuthAdapter<AuthSessionBundle> {
769
+ return {
770
+ setup({ env, http }) {
771
+ const actors = Object.fromEntries(
772
+ actorNames.map((actorName, actorIndex) => [
773
+ actorName,
774
+ { actorIndex, actorName, session: login(http, env.BASE, actorName) },
775
+ ]),
776
+ );
777
+ return { actors, primaryActor: actorNames[0] };
778
+ },
779
+ headers(bundle, { actor }) {
780
+ const session = bundle?.actors[actor ?? bundle.primaryActor ?? ""]?.session;
781
+ return session ? { Authorization: `Bearer ${session.jwt}` } : {};
782
+ },
783
+ };
784
+ }
785
+ ```
786
+
787
+ Named HTTP profiles in `testkit.config.ts` stay JSON-only for k6 suites, because
788
+ the orchestrator serializes them across the Node/k6 boundary. Node/Vitest data
789
+ profiles are loaded in-process and may define `auth` and header functions
790
+ directly. See the [config reference](testkit-config-schema.md#profileshttp).
791
+
792
+ DAL suites:
793
+
794
+ ```ts
795
+ import { defineFile } from "@gfdelarue/testkit";
796
+ import { defineDalFixtures, defineDalSuite } from "@gfdelarue/testkit/k6";
797
+
798
+ export const testkit = defineFile({ engine: "k6" });
799
+
800
+ const fixtures = defineDalFixtures(({ db, fixtureScope }) => ({
801
+ widget() {
802
+ return fixtureScope.seed("widget", "primary", { name: "Primary Widget" }, () => {
803
+ const widgetId = fixtureScope.id("widget");
804
+ db.exec(`
805
+ INSERT INTO widgets (id, name)
806
+ VALUES ('${widgetId}', 'Primary Widget')
807
+ `);
808
+ return { widgetId };
809
+ });
810
+ },
811
+ }));
812
+
813
+ const suite = defineDalSuite({ fixtures }, ({ db, fixtureScope, fixtures }) => {
814
+ const widget = fixtures.widget();
815
+ db.query(`select id from widgets where id = '${widget.widgetId}'`);
816
+ fixtureScope.records();
817
+ });
818
+
819
+ export const options = suite.options;
820
+ export const setup = suite.setup;
821
+ export default suite.exec;
822
+ ```
823
+
824
+ DAL files for the same service database are serialized by default to avoid
825
+ exhausting Postgres connection limits during highly parallel runs.
826
+ Runtime services also reserve a configurable Postgres connection budget for each
827
+ active runtime slot. Use `database.postgres({ runtimeConnections })` for the
828
+ service pool size and `database.postgres({ maxConnections,
829
+ reservedConnections })` for the backing Postgres capacity.
830
+
831
+ `defineDalFixtures(...)` is the package-owned DAL seeding model. It gives every
832
+ suite a deterministic `fixtureScope` with:
833
+
834
+ - `fixtureScope.id(label)` / `uuid(label)`
835
+ - `fixtureScope.slug(label)`
836
+ - `fixtureScope.email(label)`
837
+ - `fixtureScope.string(label, options)`
838
+ - `fixtureScope.token(label)`
839
+ - `fixtureScope.seed(kind, key, signature, create)`
840
+ - `fixtureScope.records()`
841
+
842
+ `testkit` enforces strict fixture behavior:
843
+
844
+ - one logical fixture per `kind + key`
845
+ - identical reseeds reuse the same seeded value
846
+ - conflicting reseeds fail immediately
847
+ - dependency cycles fail immediately
848
+ - seeded fixture records are persisted as a `testkit.dal-fixtures` artifact
849
+
850
+ The first-class k6 authoring namespace:
851
+
852
+ ```ts
853
+ import { checks, expect, parse, waitFor } from "@gfdelarue/testkit/k6";
854
+
855
+ const suite = defineHttpSuite(({ actor, rawReq, req }) => {
856
+ const me = req.get("/api/v1/me");
857
+ expect.status(me, 200, "authenticated session loads");
858
+ expect.json(me, (body) => typeof body.data?.id === "string", "response includes user id");
859
+
860
+ checks.authGate(rawReq, "sessions", {
861
+ get: ["/api/v1/sessions"],
862
+ });
863
+
864
+ actor?.rawHeaders();
865
+
866
+ const upload = req.multipart.post("/api/v1/uploads", {
867
+ fields: { name: "fixture" },
868
+ files: [
869
+ {
870
+ field: "file",
871
+ data: "hello",
872
+ filename: "fixture.txt",
873
+ contentType: "text/plain",
874
+ },
875
+ ],
876
+ });
877
+
878
+ expect.status(upload, 201, "upload is accepted");
879
+ parse.safeJson(upload);
880
+ });
881
+ ```
882
+
883
+ Use native k6 imports for checks, groups, metrics, and low-level HTTP:
884
+
885
+ ```ts
886
+ import { check, group } from "k6";
887
+ import http from "k6/http";
888
+ import { Rate, Trend } from "k6/metrics";
889
+ ```
890
+
891
+ The [k6 authoring guide](https://github.com/gfdelarue/testkit/blob/master/docs/k6-authoring-layer.md)
892
+ describes the optional evidence recorder and migration from retired Testkit
893
+ primitive, metric, option, and assertion aliases.
894
+
895
+ `waitFor()` consumes the file budget configured by `execution.fileTimeoutSeconds`.
896
+ Consumers should not set local timeout values in test files.
897
+
898
+ ```ts
899
+ import { parse, waitFor } from "@gfdelarue/testkit/k6";
900
+
901
+ const response = waitFor(
902
+ () => req.get("/api/v1/jobs/123"),
903
+ (res) => parse.json(res).data?.status === "completed",
904
+ { description: "job 123 to complete" },
905
+ );
906
+ ```
907
+
908
+ ## Discovery
909
+
910
+ `testkit` discovers suites from `__testkit__/` directories.
911
+
912
+ Place each `__testkit__/` directory as a peer of the thing being tested. The
913
+ target is the smallest owned directory or package surface that honestly contains
914
+ the behavior under test. This is a single target-relative rule, not a list of
915
+ allowed or forbidden locations.
916
+
917
+ Examples:
918
+
919
+ - tests for `src/api/routes/*` live in `src/api/routes/__testkit__/*`
920
+ - tests for `src/db/*` live in `src/db/__testkit__/*`
921
+ - tests for `frontend/src/components/layout/*` live in
922
+ `frontend/src/components/layout/__testkit__/*`
923
+ - tests for package-root behavior such as `package.json`, root scripts, release
924
+ shape, or the whole package contract live in `__testkit__/*`
925
+
926
+ Do not put tests in a higher-level `__testkit__/` merely because it is
927
+ convenient. For example, a repository-root `__testkit__/` is appropriate for
928
+ repository/package-level behavior, but it is a dumping ground if it contains
929
+ tests for `src/api/routes/*`, `src/db/*`, or a specific frontend component tree.
930
+
931
+ Do not create child directories inside a `__testkit__/` directory. The
932
+ `__testkit__/` directory already names the owner boundary; additional grouping
933
+ folders create a second, non-production hierarchy that weakens ownership. Use
934
+ clear flat filenames instead, and colocate another `__testkit__/` at a lower
935
+ production owner when a narrower owner exists.
936
+
937
+ Concrete layouts:
938
+
939
+ - `src/api/routes/__testkit__/auth-me.int.testkit.ts`
940
+ - `src/db/__testkit__/sessions-count-type.dal.testkit.ts`
941
+ - `frontend/src/components/layout/__testkit__/navigation.ui.testkit.ts`
942
+ - `src/internal/handler/repos/__testkit__/crud.int.testkit.ts`
943
+
944
+ `testkit` uses these suffixes automatically:
945
+
946
+ - `*.int.testkit.ts`
947
+ - `*.e2e.testkit.ts`
948
+ - `*.contract.testkit.ts`
949
+ - `*.data.testkit.ts`
950
+ - `*.dal.testkit.ts`
951
+ - `*.load.testkit.ts`
952
+ - `*.ui.testkit.ts`
953
+
954
+ The suffix never chooses an engine. Each discovered file must also contain one
955
+ root-package `defineFile(...)` declaration with a supported literal engine.
956
+ Unsupported pairs fail discovery; for example, a `*.ui.testkit.ts` file cannot
957
+ declare `engine: "k6"`.
958
+
959
+ See [docs/test-types.md](docs/test-types.md) for the canonical type model.
960
+ `*.contract.testkit.ts` files are Node-backed service/runtime contract suites.
961
+ They use `contractScenario(...)` from
962
+ `@gfdelarue/testkit/node-vitest/contract`, declare `engine: "node-vitest"`, and run
963
+ through the `node-vitest-contract` profile for checks that need Node APIs but
964
+ are not data-flow evidence suites. They are native Vitest suites:
965
+ `contractScenario(...)` is the managed-context convenience, while direct public
966
+ Vitest runner APIs remain valid for behavior such as `test.skip(...)` and
967
+ `test.todo(...)`.
968
+
969
+ `*.data.testkit.ts` files are Testkit data-flow/data-contract suites, not raw
970
+ Vitest files with a Testkit suffix. They must use `dataScenario(...)` from
971
+ `@gfdelarue/testkit/node-vitest/data`, declare `engine: "node-vitest"`, and record
972
+ structured data-flow evidence through the data context. Supporting
973
+ `count(...)`/`event(...)` calls are not enough by themselves; model actors,
974
+ systems, records, transitions, external calls, payloads, budgets, cache/LLM/RPC
975
+ usage, or reconciliation evidence. Data suites run through the
976
+ `node-vitest-data` profile. Use `contract` for plain Node assertions and
977
+ Node-side service or protocol contracts, `int` or `e2e` for k6-backed HTTP
978
+ integration, and `ui` when a browser is part of the assertion.
979
+ Data suites use Vitest directly for assertions, hooks, and mocking.
980
+ `dataScenario(...)` owns case registration: `testkit lint` reports native
981
+ registration imports in data suites, and the data runner rejects any case that
982
+ was not registered through the DSL.
983
+
984
+ Ownership is inferred from:
985
+
986
+ - the deepest matching service root from `services.<name>.local.cwd`
987
+ - optional `services.<name>.discovery.roots` overrides for shared-root edge cases
988
+
989
+ Suite names are inferred from the colocated path:
990
+
991
+ - `auth/__testkit__/*.int.testkit.ts` => `auth`
992
+ - `routes/__testkit__/auth-me.int.testkit.ts` => `routes`
993
+
994
+ Discovery is also a first-class CLI/API surface:
995
+
996
+ - `testkit discover`
997
+ - human-first compact output with service -> type -> suite -> file hierarchy
998
+ - `testkit discover --output-mode verbose`
999
+ - explicit paths, IDs, locks, dependencies, and skip reasons
1000
+ - `testkit discover --json`
1001
+ - machine-readable output with stable enums, canonical paths, and summary data
1002
+ - `testkit discover --output .testkit/discovery.json`
1003
+ - writes the same machine-readable JSON document to a file artifact
1004
+
1005
+ Compact mode prefers derived human labels such as `Agent Configs Auth Gate`
1006
+ instead of printing long file paths as the primary row label. Exact paths remain
1007
+ available in verbose and JSON output.
1008
+
1009
+ The public API is exported from `@gfdelarue/testkit/workspace`:
1010
+
1011
+ ```ts
1012
+ import { discoverTests } from "@gfdelarue/testkit/workspace";
1013
+
1014
+ const result = await discoverTests({
1015
+ dir: process.cwd(),
1016
+ runnableOnly: true,
1017
+ diagnostics: "report",
1018
+ });
1019
+ ```
1020
+
1021
+ JSON and file output are machine-first. Each discovered file carries a stable
1022
+ identifier plus canonical metadata such as:
1023
+
1024
+ - `id`
1025
+ - `path`
1026
+ - `service`
1027
+ - `suiteName`
1028
+ - `testType`
1029
+ - `engineId`
1030
+ - `profileId`
1031
+ - `contract`
1032
+ - `skipped`
1033
+ - `skipReason`
1034
+ - `locks`
1035
+ - `dependsOn`
1036
+ - `displayName`
1037
+
1038
+ For cross-run counts, last outcomes, durations, or trends, use Testkit Cloud.
1039
+ See the [status and history migration](https://github.com/gfdelarue/testkit/blob/master/docs/release-notes.md#local-status-and-history-removal)
1040
+ for the removed discovery fields and consumer migration.
1041
+
1042
+ ## Local Databases
1043
+
1044
+ `@gfdelarue/testkit` provisions Docker-managed local Postgres automatically for
1045
+ services that define `database: database.postgres(...)`.
1046
+
1047
+ Docker is also the required Postgres client runtime for Testkit-owned database
1048
+ operations. Testkit runs `psql` and `pg_dump` inside the configured Postgres
1049
+ client image instead of using host-installed binaries, which keeps local runs
1050
+ consistent across Linux, macOS, and native Windows. Override the client image
1051
+ with `TESTKIT_POSTGRES_CLIENT_IMAGE` when needed.
1052
+
1053
+ Client containers for a Testkit-owned database join that database container's
1054
+ network namespace (`--network container:<id>`) and connect over loopback. The
1055
+ route does not depend on the Docker daemon sharing the Testkit process's host
1056
+ network, so template steps, schema snapshots, and `database.steps` helpers work
1057
+ the same under Docker Desktop, rootless Docker, and Docker-in-Docker. Clients
1058
+ for external databases, such as `sourceSchema` URLs, still connect from the
1059
+ platform's host address.
1060
+
1061
+ - normal test runs always use transient host-managed Postgres
1062
+ - template databases are cached
1063
+ - runtime databases are cloned from templates when binding is `per-runtime`
1064
+ - shared databases are reused when binding is `shared`
1065
+ - source schema caches are refreshed only from the configured source database
1066
+ - clean commits, dirty worktrees, and non-git directories get separate source
1067
+ schema cache entries automatically
1068
+ - template fingerprints are derived automatically from env files, source schema
1069
+ cache, migrate/seed config, and repo contents
1070
+
1071
+ `db schema refresh` forces a source database dump into the `.testkit` source
1072
+ schema cache. `db schema verify` prepares local templates and verifies local
1073
+ replay against the cached/refreshed source schema. `--skip-schema-source-verify`
1074
+ is available as a narrow escape hatch when users need to run tests while schema
1075
+ verification is temporarily blocked.
1076
+
1077
+ ## Development Tests
1078
+
1079
+ ```bash
1080
+ npm test
1081
+ npm run test:unit
1082
+ npm run test:integration
1083
+ npm run test:system
1084
+ npm run test:live
1085
+ npm run test:integration -- fixture-package
1086
+ ```
1087
+
1088
+ The four lanes use Vitest directly. Unit tests (source and pure tooling) run in
1089
+ parallel; integration and system files run serially; live tests are explicitly
1090
+ opt-in and serial. Pass ordinary Vitest filters after npm's `--` separator.
1091
+ `npm test` runs the first three lanes and never collects live cases.
1092
+
1093
+ Live tests cover credentials, external services, network-acquired runtimes,
1094
+ alternate toolchains, and Docker/platform matrices. An explicitly selected live
1095
+ test fails clearly when its prerequisites are unavailable; it does not silently
1096
+ skip.
1097
+
1098
+ Repository commands use npm's native timing support, enabled project-wide by
1099
+ the tracked `.npmrc`. Build, lint, and release modes support `help`; release
1100
+ provides `bump` and `check` modes.
1101
+ Every merge to `master` publishes the next patch version. The existing
1102
+ pre-merge CI checks provide verification. The
1103
+ [release workflow](https://github.com/gfdelarue/testkit/blob/master/docs/release-gates.md) tags the merge and publishes through npm
1104
+ trusted publishing; merge a `package.json` bump to start a new minor or major.
1105
+
1106
+ The static audit retains package/lock/runtime policy, engine dependency/import
1107
+ intent, retired engine/product references, minimal repository traversal, and
1108
+ the dependency direction between top-level `src/` modules. The edge table in
1109
+ `scripts/lint/audits/import-direction.ts` mirrors the import graph exactly: an
1110
+ import outside the table fails lint, and so does an entry that no import
1111
+ exercises. Module direction is the one structural rule lint enforces; other
1112
+ implementation-shape audits stay out of lint.
1113
+
1114
+ JavaScript modules under `test/fixtures/**` describe fixture behavior and keep
1115
+ their fixture-owned paths. Outside fixtures, only `bin/testkit.mjs` and the
1116
+ documented raw Node process probe remain `.mjs`; the probe is a program, not a
1117
+ Vitest suite.
1118
+
1119
+ GitHub Actions run a narrow installed Node/Vitest consumer smoke on dedicated
1120
+ Orthrus Ubuntu x64 and Windows x64 self-hosted runners for pull requests from
1121
+ this repository and manual dispatches. Fork pull requests skip this workflow's
1122
+ jobs. Local `npm test`,
1123
+ `npm run test:unit`, `npm run test:integration`, and `npm run test:system` remain
1124
+ the full developer entrypoints. PostgreSQL and Docker compatibility are explicit
1125
+ opt-in dispatcher cases. The smoke workflow is not five-platform release proof.