@storyshelf/core 0.6.2 → 0.8.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 (727) hide show
  1. package/README.md +49 -32
  2. package/dist/adapter/capture-queue.d.mts +44 -4
  3. package/dist/adapter/capture-runner.d.mts +134 -12
  4. package/dist/adapter/capture-runner.mjs +9 -12
  5. package/dist/adapter/database.d.mts +89 -10
  6. package/dist/adapter/database.mjs +4 -3
  7. package/dist/adapter/database.mjs.map +1 -1
  8. package/dist/adapter/design.d.mts +83 -0
  9. package/dist/adapter/design.mjs +27 -0
  10. package/dist/adapter/design.mjs.map +1 -0
  11. package/dist/adapter/email-sender.d.mts +0 -2
  12. package/dist/adapter/metadata.d.mts +3 -12
  13. package/dist/adapter/notifier.d.mts +6 -3
  14. package/dist/adapter/notifier.mjs +5 -1
  15. package/dist/adapter/oauth.d.mts +50 -0
  16. package/dist/adapter/setup.d.mts +4 -7
  17. package/dist/adapter/setup.mjs +3 -3
  18. package/dist/adapter/setup.mjs.map +1 -1
  19. package/dist/adapter/storage.d.mts +1 -3
  20. package/dist/adapter/webhook-events.d.mts +0 -2
  21. package/dist/adapter/webhook-events.mjs +13 -14
  22. package/dist/adapter/webhook-events.mjs.map +1 -1
  23. package/dist/adapters/capture-target-offers.d.mts +26 -0
  24. package/dist/adapters/capture-target-offers.mjs +57 -0
  25. package/dist/adapters/capture-target-offers.mjs.map +1 -0
  26. package/dist/adapters/capture-target.d.mts +69 -0
  27. package/dist/adapters/capture-target.mjs +75 -0
  28. package/dist/adapters/capture-target.mjs.map +1 -0
  29. package/dist/adapters/notifier/build-comment.d.mts +22 -0
  30. package/dist/adapters/notifier/build-comment.mjs +23 -0
  31. package/dist/adapters/notifier/build-comment.mjs.map +1 -0
  32. package/dist/adapters/notifier/build-state.d.mts +97 -0
  33. package/dist/adapters/notifier/build-state.mjs +217 -0
  34. package/dist/adapters/notifier/build-state.mjs.map +1 -0
  35. package/dist/adapters/notifier/events.d.mts +4 -4
  36. package/dist/adapters/notifier/events.mjs +32 -20
  37. package/dist/adapters/notifier/events.mjs.map +1 -1
  38. package/dist/adapters/notifier/format.d.mts +0 -2
  39. package/dist/adapters/notifier/format.mjs +1 -2
  40. package/dist/adapters/notifier/provider.d.mts +53 -9
  41. package/dist/adapters/notifier/provider.mjs +11 -0
  42. package/dist/adapters/notifier/provider.mjs.map +1 -0
  43. package/dist/adapters/notifier/state.d.mts +22 -0
  44. package/dist/adapters/notifier/state.mjs +65 -0
  45. package/dist/adapters/notifier/state.mjs.map +1 -0
  46. package/dist/adapters/notifier/types.d.mts +51 -4
  47. package/dist/adapters/remote-browser.d.mts +168 -0
  48. package/dist/adapters/remote-browser.mjs +201 -0
  49. package/dist/adapters/remote-browser.mjs.map +1 -0
  50. package/dist/adapters/remote-lease-attempt.mjs +39 -0
  51. package/dist/adapters/remote-lease-attempt.mjs.map +1 -0
  52. package/dist/adapters/remote-lease-error.d.mts +25 -0
  53. package/dist/adapters/remote-lease-error.mjs +54 -0
  54. package/dist/adapters/remote-lease-error.mjs.map +1 -0
  55. package/dist/adapters/remote-lease-held.d.mts +15 -0
  56. package/dist/adapters/remote-lease-held.mjs +86 -0
  57. package/dist/adapters/remote-lease-held.mjs.map +1 -0
  58. package/dist/adapters/remote-lease-shutdown.d.mts +12 -0
  59. package/dist/adapters/remote-lease-shutdown.mjs +32 -0
  60. package/dist/adapters/remote-lease-shutdown.mjs.map +1 -0
  61. package/dist/adapters/remote-lease.d.mts +39 -0
  62. package/dist/adapters/remote-lease.mjs +175 -0
  63. package/dist/adapters/remote-lease.mjs.map +1 -0
  64. package/dist/adapters/remote-limiter.mjs +121 -0
  65. package/dist/adapters/remote-limiter.mjs.map +1 -0
  66. package/dist/adapters/remote-pool.d.mts +56 -0
  67. package/dist/adapters/remote-pool.mjs +195 -0
  68. package/dist/adapters/remote-pool.mjs.map +1 -0
  69. package/dist/adapters/render-runs.d.mts +23 -0
  70. package/dist/adapters/render-runs.mjs +40 -0
  71. package/dist/adapters/render-runs.mjs.map +1 -0
  72. package/dist/adapters/setup-runner.d.mts +0 -2
  73. package/dist/adapters/setup-runner.mjs +3 -6
  74. package/dist/adapters/setup-runner.mjs.map +1 -1
  75. package/dist/adapters/sources.d.mts +10 -0
  76. package/dist/adapters/sources.mjs +19 -0
  77. package/dist/adapters/sources.mjs.map +1 -0
  78. package/dist/adapters/validate.d.mts +0 -2
  79. package/dist/adapters/validate.mjs +27 -20
  80. package/dist/adapters/validate.mjs.map +1 -1
  81. package/dist/ai.d.mts +103 -0
  82. package/dist/ai.mjs +18 -0
  83. package/dist/ai.mjs.map +1 -0
  84. package/dist/auth.d.mts +0 -2
  85. package/dist/auth.mjs +1 -2
  86. package/dist/brand-packs.d.mts +0 -2
  87. package/dist/brand-packs.mjs +0 -1
  88. package/dist/capture/a11y/axe-source.d.mts +16 -0
  89. package/dist/capture/a11y/axe-source.mjs +36 -0
  90. package/dist/capture/a11y/axe-source.mjs.map +1 -0
  91. package/dist/capture/a11y/in-page.d.mts +25 -0
  92. package/dist/capture/a11y/in-page.mjs +59 -0
  93. package/dist/capture/a11y/in-page.mjs.map +1 -0
  94. package/dist/capture/a11y/map.d.mts +22 -0
  95. package/dist/capture/a11y/map.mjs +47 -0
  96. package/dist/capture/a11y/map.mjs.map +1 -0
  97. package/dist/capture/a11y/options.d.mts +21 -0
  98. package/dist/capture/a11y/options.mjs +74 -0
  99. package/dist/capture/a11y/options.mjs.map +1 -0
  100. package/dist/capture/adapter.d.mts +46 -5
  101. package/dist/capture/adapter.mjs +1 -2
  102. package/dist/capture/adapter.mjs.map +1 -1
  103. package/dist/capture/affected.d.mts +2 -2
  104. package/dist/capture/affected.mjs +14 -6
  105. package/dist/capture/affected.mjs.map +1 -1
  106. package/dist/capture/attempt-logger.mjs +83 -0
  107. package/dist/capture/attempt-logger.mjs.map +1 -0
  108. package/dist/capture/browsers.d.mts +33 -0
  109. package/dist/capture/browsers.mjs +66 -0
  110. package/dist/capture/browsers.mjs.map +1 -0
  111. package/dist/capture/build-state/deliver.d.mts +30 -0
  112. package/dist/capture/build-state/deliver.mjs +117 -0
  113. package/dist/capture/build-state/deliver.mjs.map +1 -0
  114. package/dist/capture/build-state/index.d.mts +8 -0
  115. package/dist/capture/build-state/notify-job.d.mts +54 -0
  116. package/dist/capture/build-state/notify-job.mjs +132 -0
  117. package/dist/capture/build-state/notify-job.mjs.map +1 -0
  118. package/dist/capture/build-state/publisher.d.mts +21 -0
  119. package/dist/capture/build-state/publisher.mjs +106 -0
  120. package/dist/capture/build-state/publisher.mjs.map +1 -0
  121. package/dist/capture/build-state/resume.d.mts +7 -0
  122. package/dist/capture/build-state/resume.mjs +46 -0
  123. package/dist/capture/build-state/resume.mjs.map +1 -0
  124. package/dist/capture/build-state/types.d.mts +47 -0
  125. package/dist/capture/catalog/catalogue.d.mts +20 -0
  126. package/dist/capture/catalog/catalogue.mjs +52 -0
  127. package/dist/capture/catalog/catalogue.mjs.map +1 -0
  128. package/dist/capture/catalog/components.d.mts +21 -0
  129. package/dist/capture/catalog/components.mjs +54 -0
  130. package/dist/capture/catalog/components.mjs.map +1 -0
  131. package/dist/capture/catalog/history.d.mts +28 -0
  132. package/dist/capture/catalog/history.mjs +50 -0
  133. package/dist/capture/catalog/history.mjs.map +1 -0
  134. package/dist/capture/catalog/hook.d.mts +12 -0
  135. package/dist/capture/catalog/hook.mjs +18 -0
  136. package/dist/capture/catalog/hook.mjs.map +1 -0
  137. package/dist/capture/catalog/index.d.mts +11 -0
  138. package/dist/capture/catalog/load.d.mts +24 -0
  139. package/dist/capture/catalog/load.mjs +48 -0
  140. package/dist/capture/catalog/load.mjs.map +1 -0
  141. package/dist/capture/catalog/parse.d.mts +13 -0
  142. package/dist/capture/catalog/parse.mjs +55 -0
  143. package/dist/capture/catalog/parse.mjs.map +1 -0
  144. package/dist/capture/catalog/read.d.mts +15 -0
  145. package/dist/capture/catalog/read.mjs +39 -0
  146. package/dist/capture/catalog/read.mjs.map +1 -0
  147. package/dist/capture/catalog/types.d.mts +31 -0
  148. package/dist/capture/comparison-reference.d.mts +27 -0
  149. package/dist/capture/comparison-reference.mjs +75 -0
  150. package/dist/capture/comparison-reference.mjs.map +1 -0
  151. package/dist/capture/consumer/capture-handler.d.mts +56 -0
  152. package/dist/capture/consumer/capture-handler.mjs +117 -0
  153. package/dist/capture/consumer/capture-handler.mjs.map +1 -0
  154. package/dist/capture/consumer/idle.d.mts +15 -0
  155. package/dist/capture/consumer/idle.mjs +24 -0
  156. package/dist/capture/consumer/idle.mjs.map +1 -0
  157. package/dist/capture/consumer/index.d.mts +11 -0
  158. package/dist/capture/consumer/index.mjs +138 -0
  159. package/dist/capture/consumer/index.mjs.map +1 -0
  160. package/dist/capture/consumer/loop.mjs +109 -0
  161. package/dist/capture/consumer/loop.mjs.map +1 -0
  162. package/dist/capture/consumer/metrics.d.mts +39 -0
  163. package/dist/capture/consumer/metrics.mjs +37 -0
  164. package/dist/capture/consumer/metrics.mjs.map +1 -0
  165. package/dist/capture/consumer/retry.d.mts +31 -0
  166. package/dist/capture/consumer/retry.mjs +33 -0
  167. package/dist/capture/consumer/retry.mjs.map +1 -0
  168. package/dist/capture/consumer/run-job.mjs +194 -0
  169. package/dist/capture/consumer/run-job.mjs.map +1 -0
  170. package/dist/capture/consumer/startup.mjs +37 -0
  171. package/dist/capture/consumer/startup.mjs.map +1 -0
  172. package/dist/capture/consumer/types.d.mts +95 -0
  173. package/dist/capture/crash-failure.d.mts +23 -0
  174. package/dist/capture/crash-failure.mjs +69 -0
  175. package/dist/capture/crash-failure.mjs.map +1 -0
  176. package/dist/capture/db-queue/cadence.d.mts +30 -0
  177. package/dist/capture/db-queue/cadence.mjs +37 -0
  178. package/dist/capture/db-queue/cadence.mjs.map +1 -0
  179. package/dist/capture/db-queue/claim.d.mts +7 -0
  180. package/dist/capture/db-queue/claim.mjs +148 -0
  181. package/dist/capture/db-queue/claim.mjs.map +1 -0
  182. package/dist/capture/db-queue/clock.mjs +11 -0
  183. package/dist/capture/db-queue/clock.mjs.map +1 -0
  184. package/dist/capture/db-queue/codec.mjs +75 -0
  185. package/dist/capture/db-queue/codec.mjs.map +1 -0
  186. package/dist/capture/db-queue/index.d.mts +18 -0
  187. package/dist/capture/db-queue/index.mjs +89 -0
  188. package/dist/capture/db-queue/index.mjs.map +1 -0
  189. package/dist/capture/db-queue/keeper.d.mts +34 -0
  190. package/dist/capture/db-queue/keeper.mjs +91 -0
  191. package/dist/capture/db-queue/keeper.mjs.map +1 -0
  192. package/dist/capture/db-queue/lease.mjs +45 -0
  193. package/dist/capture/db-queue/lease.mjs.map +1 -0
  194. package/dist/capture/db-queue/lifecycle.mjs +35 -0
  195. package/dist/capture/db-queue/lifecycle.mjs.map +1 -0
  196. package/dist/capture/db-queue/operations.mjs +93 -0
  197. package/dist/capture/db-queue/operations.mjs.map +1 -0
  198. package/dist/capture/db-queue/poll-loop.d.mts +28 -0
  199. package/dist/capture/db-queue/poll-loop.mjs +88 -0
  200. package/dist/capture/db-queue/poll-loop.mjs.map +1 -0
  201. package/dist/capture/db-queue/poll.d.mts +8 -0
  202. package/dist/capture/db-queue/poll.mjs +68 -0
  203. package/dist/capture/db-queue/poll.mjs.map +1 -0
  204. package/dist/capture/db-queue/timers.d.mts +10 -0
  205. package/dist/capture/db-queue/timers.mjs +36 -0
  206. package/dist/capture/db-queue/timers.mjs.map +1 -0
  207. package/dist/capture/db-queue/types.d.mts +81 -0
  208. package/dist/capture/db-queue/types.mjs +11 -0
  209. package/dist/capture/db-queue/types.mjs.map +1 -0
  210. package/dist/capture/db-queue/wake.mjs +47 -0
  211. package/dist/capture/db-queue/wake.mjs.map +1 -0
  212. package/dist/capture/design.mjs +38 -0
  213. package/dist/capture/design.mjs.map +1 -0
  214. package/dist/capture/diff-record.mjs +24 -5
  215. package/dist/capture/diff-record.mjs.map +1 -1
  216. package/dist/capture/dispatch.d.mts +13 -10
  217. package/dist/capture/dispatch.mjs +102 -111
  218. package/dist/capture/dispatch.mjs.map +1 -1
  219. package/dist/capture/enrich.mjs +59 -0
  220. package/dist/capture/enrich.mjs.map +1 -0
  221. package/dist/capture/failure-sets.mjs +21 -0
  222. package/dist/capture/failure-sets.mjs.map +1 -0
  223. package/dist/capture/fingerprint.d.mts +40 -0
  224. package/dist/capture/fingerprint.mjs +82 -0
  225. package/dist/capture/fingerprint.mjs.map +1 -0
  226. package/dist/capture/forked/channel.d.mts +23 -0
  227. package/dist/capture/forked/child.d.mts +32 -0
  228. package/dist/capture/forked/child.mjs +201 -0
  229. package/dist/capture/forked/child.mjs.map +1 -0
  230. package/dist/capture/forked/crash-tracker.mjs +22 -0
  231. package/dist/capture/forked/crash-tracker.mjs.map +1 -0
  232. package/dist/capture/forked/decision.d.mts +24 -0
  233. package/dist/capture/forked/decision.mjs +26 -0
  234. package/dist/capture/forked/decision.mjs.map +1 -0
  235. package/dist/capture/forked/exit.mjs +11 -0
  236. package/dist/capture/forked/exit.mjs.map +1 -0
  237. package/dist/capture/forked/fork.d.mts +29 -0
  238. package/dist/capture/forked/fork.mjs +92 -0
  239. package/dist/capture/forked/fork.mjs.map +1 -0
  240. package/dist/capture/forked/forked-capture.d.mts +38 -0
  241. package/dist/capture/forked/forked-capture.mjs +239 -0
  242. package/dist/capture/forked/forked-capture.mjs.map +1 -0
  243. package/dist/capture/forked/lease-book.mjs +45 -0
  244. package/dist/capture/forked/lease-book.mjs.map +1 -0
  245. package/dist/capture/forked/protocol.d.mts +36 -0
  246. package/dist/capture/forked/protocol.mjs +24 -0
  247. package/dist/capture/forked/protocol.mjs.map +1 -0
  248. package/dist/capture/forked/runs.mjs +74 -0
  249. package/dist/capture/forked/runs.mjs.map +1 -0
  250. package/dist/capture/guards.mjs +1 -2
  251. package/dist/capture/ignore-regions.d.mts +36 -0
  252. package/dist/capture/ignore-regions.mjs +65 -0
  253. package/dist/capture/ignore-regions.mjs.map +1 -0
  254. package/dist/capture/isolate.mjs +140 -0
  255. package/dist/capture/isolate.mjs.map +1 -0
  256. package/dist/capture/job-lease.d.mts +26 -0
  257. package/dist/capture/job-lease.mjs +56 -0
  258. package/dist/capture/job-lease.mjs.map +1 -0
  259. package/dist/capture/matrix.mjs +298 -0
  260. package/dist/capture/matrix.mjs.map +1 -0
  261. package/dist/capture/modes.d.mts +23 -0
  262. package/dist/capture/modes.mjs +106 -0
  263. package/dist/capture/modes.mjs.map +1 -0
  264. package/dist/capture/orchestrator.d.mts +37 -7
  265. package/dist/capture/orchestrator.mjs +120 -110
  266. package/dist/capture/orchestrator.mjs.map +1 -1
  267. package/dist/capture/pipeline.d.mts +9 -4
  268. package/dist/capture/pipeline.mjs +284 -48
  269. package/dist/capture/pipeline.mjs.map +1 -1
  270. package/dist/capture/progress.d.mts +9 -0
  271. package/dist/capture/progress.mjs +27 -0
  272. package/dist/capture/progress.mjs.map +1 -0
  273. package/dist/capture/publish/accept.d.mts +37 -0
  274. package/dist/capture/publish/accept.mjs +27 -0
  275. package/dist/capture/publish/accept.mjs.map +1 -0
  276. package/dist/capture/publish/complete.d.mts +44 -0
  277. package/dist/capture/publish/complete.mjs +63 -0
  278. package/dist/capture/publish/complete.mjs.map +1 -0
  279. package/dist/capture/publish/extract.d.mts +18 -0
  280. package/dist/capture/publish/extract.mjs +120 -0
  281. package/dist/capture/publish/extract.mjs.map +1 -0
  282. package/dist/capture/publish/handler.d.mts +26 -0
  283. package/dist/capture/publish/handler.mjs +61 -0
  284. package/dist/capture/publish/handler.mjs.map +1 -0
  285. package/dist/capture/publish/index.d.mts +11 -0
  286. package/dist/capture/publish/invalid-zip.d.mts +8 -0
  287. package/dist/capture/publish/invalid-zip.mjs +11 -0
  288. package/dist/capture/publish/invalid-zip.mjs.map +1 -0
  289. package/dist/capture/publish/limits.d.mts +35 -0
  290. package/dist/capture/publish/limits.mjs +38 -0
  291. package/dist/capture/publish/limits.mjs.map +1 -0
  292. package/dist/capture/publish/published.d.mts +13 -0
  293. package/dist/capture/publish/published.mjs +17 -0
  294. package/dist/capture/publish/published.mjs.map +1 -0
  295. package/dist/capture/publish/run.d.mts +31 -0
  296. package/dist/capture/publish/run.mjs +29 -0
  297. package/dist/capture/publish/run.mjs.map +1 -0
  298. package/dist/capture/rediff.d.mts +1 -3
  299. package/dist/capture/rediff.mjs +23 -9
  300. package/dist/capture/rediff.mjs.map +1 -1
  301. package/dist/capture/render.mjs +52 -0
  302. package/dist/capture/render.mjs.map +1 -0
  303. package/dist/capture/scratch.d.mts +42 -0
  304. package/dist/capture/scratch.mjs +136 -0
  305. package/dist/capture/scratch.mjs.map +1 -0
  306. package/dist/capture/shard-plan.mjs +127 -0
  307. package/dist/capture/shard-plan.mjs.map +1 -0
  308. package/dist/capture/shards/context.mjs +51 -0
  309. package/dist/capture/shards/context.mjs.map +1 -0
  310. package/dist/capture/shards/execute.mjs +175 -0
  311. package/dist/capture/shards/execute.mjs.map +1 -0
  312. package/dist/capture/shards/fan-out.mjs +125 -0
  313. package/dist/capture/shards/fan-out.mjs.map +1 -0
  314. package/dist/capture/shards/history.mjs +34 -0
  315. package/dist/capture/shards/history.mjs.map +1 -0
  316. package/dist/capture/shards/reduce.mjs +96 -0
  317. package/dist/capture/shards/reduce.mjs.map +1 -0
  318. package/dist/capture/sizing.d.mts +0 -2
  319. package/dist/capture/sizing.mjs +2 -13
  320. package/dist/capture/sizing.mjs.map +1 -1
  321. package/dist/capture/skip-checks.mjs +3 -67
  322. package/dist/capture/skip-checks.mjs.map +1 -1
  323. package/dist/capture/statics.d.mts +7 -10
  324. package/dist/capture/statics.mjs +26 -74
  325. package/dist/capture/statics.mjs.map +1 -1
  326. package/dist/capture/storybook-urls.d.mts +38 -0
  327. package/dist/capture/storybook-urls.mjs +41 -0
  328. package/dist/capture/storybook-urls.mjs.map +1 -0
  329. package/dist/capture/storybook.d.mts +12 -6
  330. package/dist/capture/storybook.mjs +63 -19
  331. package/dist/capture/storybook.mjs.map +1 -1
  332. package/dist/capture/target.mjs +20 -0
  333. package/dist/capture/target.mjs.map +1 -0
  334. package/dist/capture/targets.d.mts +23 -0
  335. package/dist/capture/targets.mjs +31 -0
  336. package/dist/capture/targets.mjs.map +1 -0
  337. package/dist/capture/tests.d.mts +35 -0
  338. package/dist/capture/tests.mjs +136 -0
  339. package/dist/capture/tests.mjs.map +1 -0
  340. package/dist/capture/token-chunks.mjs +91 -0
  341. package/dist/capture/token-chunks.mjs.map +1 -0
  342. package/dist/capture.d.mts +63 -7
  343. package/dist/capture.mjs +51 -3
  344. package/dist/config.d.mts +136 -14
  345. package/dist/config.mjs +14 -8
  346. package/dist/config.mjs.map +1 -1
  347. package/dist/diff.d.mts +7 -3
  348. package/dist/diff.mjs +15 -3
  349. package/dist/diff.mjs.map +1 -0
  350. package/dist/index.d.mts +3 -3
  351. package/dist/index.mjs +2 -2
  352. package/dist/insights/budget.d.mts +18 -0
  353. package/dist/insights/budget.mjs +32 -0
  354. package/dist/insights/budget.mjs.map +1 -0
  355. package/dist/insights/envelope.d.mts +57 -0
  356. package/dist/insights/envelope.mjs +59 -0
  357. package/dist/insights/envelope.mjs.map +1 -0
  358. package/dist/insights/evidence-health.d.mts +30 -0
  359. package/dist/insights/evidence-health.mjs +27 -0
  360. package/dist/insights/evidence-health.mjs.map +1 -0
  361. package/dist/insights/evidence.d.mts +53 -0
  362. package/dist/insights/evidence.mjs +63 -0
  363. package/dist/insights/evidence.mjs.map +1 -0
  364. package/dist/insights/hash.d.mts +16 -0
  365. package/dist/insights/hash.mjs +20 -0
  366. package/dist/insights/hash.mjs.map +1 -0
  367. package/dist/insights/limits.d.mts +22 -0
  368. package/dist/insights/limits.mjs +23 -0
  369. package/dist/insights/limits.mjs.map +1 -0
  370. package/dist/insights/prompts/v1.d.mts +11 -0
  371. package/dist/insights/prompts/v1.mjs +33 -0
  372. package/dist/insights/prompts/v1.mjs.map +1 -0
  373. package/dist/insights/redact.d.mts +7 -0
  374. package/dist/insights/redact.mjs +23 -0
  375. package/dist/insights/redact.mjs.map +1 -0
  376. package/dist/insights/text.mjs +43 -0
  377. package/dist/insights/text.mjs.map +1 -0
  378. package/dist/insights.d.mts +11 -0
  379. package/dist/insights.mjs +12 -0
  380. package/dist/logger.d.mts +0 -2
  381. package/dist/logger.mjs +18 -3
  382. package/dist/logger.mjs.map +1 -1
  383. package/dist/models/ai-budget-alert.d.mts +21 -0
  384. package/dist/models/ai-budget-alert.mjs +37 -0
  385. package/dist/models/ai-budget-alert.mjs.map +1 -0
  386. package/dist/models/ai-usage.d.mts +38 -0
  387. package/dist/models/ai-usage.mjs +60 -0
  388. package/dist/models/ai-usage.mjs.map +1 -0
  389. package/dist/models/baseline-approval.d.mts +18 -0
  390. package/dist/models/baseline-approval.mjs +41 -0
  391. package/dist/models/baseline-approval.mjs.map +1 -0
  392. package/dist/models/baseline-archive.d.mts +82 -0
  393. package/dist/models/baseline-archive.mjs +105 -0
  394. package/dist/models/baseline-archive.mjs.map +1 -0
  395. package/dist/models/baseline-atomic.mjs +66 -0
  396. package/dist/models/baseline-atomic.mjs.map +1 -0
  397. package/dist/models/baseline-conflict.d.mts +6 -0
  398. package/dist/models/baseline-conflict.mjs +9 -0
  399. package/dist/models/baseline-conflict.mjs.map +1 -0
  400. package/dist/models/baseline-export.d.mts +17 -0
  401. package/dist/models/baseline-export.mjs +135 -0
  402. package/dist/models/baseline-export.mjs.map +1 -0
  403. package/dist/models/baseline-import.mjs +117 -0
  404. package/dist/models/baseline-import.mjs.map +1 -0
  405. package/dist/models/baseline-origin.d.mts +16 -0
  406. package/dist/models/baseline-origin.mjs +35 -0
  407. package/dist/models/baseline-origin.mjs.map +1 -0
  408. package/dist/models/baseline-status.d.mts +0 -2
  409. package/dist/models/baseline-status.mjs +1 -2
  410. package/dist/models/baseline-transfer.d.mts +48 -0
  411. package/dist/models/baseline-transfer.mjs +149 -0
  412. package/dist/models/baseline-transfer.mjs.map +1 -0
  413. package/dist/models/baseline.d.mts +37 -7
  414. package/dist/models/baseline.mjs +152 -28
  415. package/dist/models/baseline.mjs.map +1 -1
  416. package/dist/models/build-component.d.mts +26 -0
  417. package/dist/models/build-component.mjs +54 -0
  418. package/dist/models/build-component.mjs.map +1 -0
  419. package/dist/models/build-review-status.d.mts +27 -0
  420. package/dist/models/build-review-status.mjs +36 -0
  421. package/dist/models/build-review-status.mjs.map +1 -0
  422. package/dist/models/build-review.d.mts +26 -0
  423. package/dist/models/build-review.mjs +53 -0
  424. package/dist/models/build-review.mjs.map +1 -0
  425. package/dist/models/build.d.mts +25 -5
  426. package/dist/models/build.mjs +53 -15
  427. package/dist/models/build.mjs.map +1 -1
  428. package/dist/models/capture-attempt.d.mts +7 -3
  429. package/dist/models/capture-attempt.mjs +30 -6
  430. package/dist/models/capture-attempt.mjs.map +1 -1
  431. package/dist/models/capture-job.d.mts +104 -0
  432. package/dist/models/capture-job.mjs +287 -0
  433. package/dist/models/capture-job.mjs.map +1 -0
  434. package/dist/models/capture-log.d.mts +1 -3
  435. package/dist/models/capture-log.mjs +5 -5
  436. package/dist/models/capture-log.mjs.map +1 -1
  437. package/dist/models/capture-shard.d.mts +60 -0
  438. package/dist/models/capture-shard.mjs +189 -0
  439. package/dist/models/capture-shard.mjs.map +1 -0
  440. package/dist/models/changeset.d.mts +46 -0
  441. package/dist/models/changeset.mjs +80 -0
  442. package/dist/models/changeset.mjs.map +1 -0
  443. package/dist/models/columns.mjs +18 -0
  444. package/dist/models/columns.mjs.map +1 -0
  445. package/dist/models/comment.d.mts +4 -3
  446. package/dist/models/comment.mjs +8 -6
  447. package/dist/models/comment.mjs.map +1 -1
  448. package/dist/models/component.d.mts +41 -0
  449. package/dist/models/component.mjs +59 -0
  450. package/dist/models/component.mjs.map +1 -0
  451. package/dist/models/connections.d.mts +39 -0
  452. package/dist/models/connections.mjs +111 -0
  453. package/dist/models/connections.mjs.map +1 -0
  454. package/dist/models/content-ref.d.mts +1 -3
  455. package/dist/models/content-ref.mjs +2 -3
  456. package/dist/models/content-ref.mjs.map +1 -1
  457. package/dist/models/credentials.d.mts +0 -2
  458. package/dist/models/credentials.mjs +13 -4
  459. package/dist/models/credentials.mjs.map +1 -1
  460. package/dist/models/design-credentials.d.mts +39 -0
  461. package/dist/models/design-credentials.mjs +85 -0
  462. package/dist/models/design-credentials.mjs.map +1 -0
  463. package/dist/models/design-health.d.mts +14 -0
  464. package/dist/models/design-health.mjs +24 -0
  465. package/dist/models/design-health.mjs.map +1 -0
  466. package/dist/models/design-nodes.d.mts +81 -0
  467. package/dist/models/design-nodes.mjs +221 -0
  468. package/dist/models/design-nodes.mjs.map +1 -0
  469. package/dist/models/design-renders.mjs +73 -0
  470. package/dist/models/design-renders.mjs.map +1 -0
  471. package/dist/models/design-resolve.d.mts +27 -0
  472. package/dist/models/design-resolve.mjs +40 -0
  473. package/dist/models/design-resolve.mjs.map +1 -0
  474. package/dist/models/design.d.mts +37 -0
  475. package/dist/models/design.mjs +89 -0
  476. package/dist/models/design.mjs.map +1 -0
  477. package/dist/models/inherited-ratio.d.mts +19 -0
  478. package/dist/models/inherited-ratio.mjs +21 -0
  479. package/dist/models/inherited-ratio.mjs.map +1 -0
  480. package/dist/models/insight.d.mts +68 -0
  481. package/dist/models/insight.mjs +161 -0
  482. package/dist/models/insight.mjs.map +1 -0
  483. package/dist/models/label.d.mts +4 -4
  484. package/dist/models/label.mjs +26 -12
  485. package/dist/models/label.mjs.map +1 -1
  486. package/dist/models/member.d.mts +1 -3
  487. package/dist/models/member.mjs +6 -6
  488. package/dist/models/member.mjs.map +1 -1
  489. package/dist/models/notification-channel.d.mts +37 -5
  490. package/dist/models/notification-channel.mjs +89 -11
  491. package/dist/models/notification-channel.mjs.map +1 -1
  492. package/dist/models/notification-subscription.d.mts +1 -4
  493. package/dist/models/notification-subscription.mjs +8 -11
  494. package/dist/models/notification-subscription.mjs.map +1 -1
  495. package/dist/models/project-group-mapping.d.mts +6 -3
  496. package/dist/models/project-group-mapping.mjs +15 -6
  497. package/dist/models/project-group-mapping.mjs.map +1 -1
  498. package/dist/models/project.d.mts +9 -3
  499. package/dist/models/project.mjs +10 -6
  500. package/dist/models/project.mjs.map +1 -1
  501. package/dist/models/public-origin.d.mts +61 -0
  502. package/dist/models/public-origin.mjs +113 -0
  503. package/dist/models/public-origin.mjs.map +1 -0
  504. package/dist/models/review-switch-off.d.mts +12 -0
  505. package/dist/models/review-switch-off.mjs +25 -0
  506. package/dist/models/review-switch-off.mjs.map +1 -0
  507. package/dist/models/site-settings.d.mts +21 -0
  508. package/dist/models/site-settings.mjs +47 -0
  509. package/dist/models/site-settings.mjs.map +1 -0
  510. package/dist/models/snapshot.d.mts +39 -3
  511. package/dist/models/snapshot.mjs +54 -5
  512. package/dist/models/snapshot.mjs.map +1 -1
  513. package/dist/models/token.d.mts +13 -3
  514. package/dist/models/token.mjs +24 -7
  515. package/dist/models/token.mjs.map +1 -1
  516. package/dist/models/usage.d.mts +74 -0
  517. package/dist/models/usage.mjs +148 -0
  518. package/dist/models/usage.mjs.map +1 -0
  519. package/dist/models/user.d.mts +1 -3
  520. package/dist/models/user.mjs +5 -5
  521. package/dist/models/user.mjs.map +1 -1
  522. package/dist/models/webhook.d.mts +15 -3
  523. package/dist/models/webhook.mjs +34 -6
  524. package/dist/models/webhook.mjs.map +1 -1
  525. package/dist/models.d.mts +30 -4
  526. package/dist/models.mjs +31 -6
  527. package/dist/options.d.mts +16 -0
  528. package/dist/options.mjs +88 -0
  529. package/dist/options.mjs.map +1 -0
  530. package/dist/paths.d.mts +21 -6
  531. package/dist/paths.mjs +57 -12
  532. package/dist/paths.mjs.map +1 -1
  533. package/dist/retention/ai.d.mts +16 -0
  534. package/dist/retention/ai.mjs +22 -0
  535. package/dist/retention/ai.mjs.map +1 -0
  536. package/dist/retention/pending.mjs +46 -0
  537. package/dist/retention/pending.mjs.map +1 -0
  538. package/dist/retention/published-gzip-sweep.mjs +28 -0
  539. package/dist/retention/published-gzip-sweep.mjs.map +1 -0
  540. package/dist/retention/screenshot-sweep.d.mts +49 -0
  541. package/dist/retention/screenshot-sweep.mjs +127 -0
  542. package/dist/retention/screenshot-sweep.mjs.map +1 -0
  543. package/dist/retention.d.mts +16 -4
  544. package/dist/retention.mjs +76 -16
  545. package/dist/retention.mjs.map +1 -1
  546. package/dist/schema/baseline.d.mts +8 -2
  547. package/dist/schema/build-component.d.mts +23 -0
  548. package/dist/schema/build-review.d.mts +15 -0
  549. package/dist/schema/build.d.mts +7 -2
  550. package/dist/schema/capture-attempt.d.mts +0 -2
  551. package/dist/schema/capture-job.d.mts +58 -0
  552. package/dist/schema/capture-shard.d.mts +33 -0
  553. package/dist/schema/comment.d.mts +2 -2
  554. package/dist/schema/connection.d.mts +22 -0
  555. package/dist/schema/content-ref.d.mts +0 -2
  556. package/dist/schema/design.d.mts +56 -0
  557. package/dist/schema/insight.d.mts +52 -0
  558. package/dist/schema/label.d.mts +0 -2
  559. package/dist/schema/member.d.mts +0 -2
  560. package/dist/schema/notification.d.mts +4 -2
  561. package/dist/schema/project-group-mapping.d.mts +0 -2
  562. package/dist/schema/project.d.mts +21 -2
  563. package/dist/schema/site-setting.d.mts +19 -0
  564. package/dist/schema/snapshot.d.mts +17 -2
  565. package/dist/schema/token.d.mts +0 -2
  566. package/dist/schema/usage.d.mts +28 -0
  567. package/dist/schema/user.d.mts +0 -2
  568. package/dist/schema/webhook.d.mts +0 -2
  569. package/dist/schema.d.mts +12 -6
  570. package/dist/serverless.d.mts +19 -0
  571. package/dist/serverless.mjs +36 -0
  572. package/dist/serverless.mjs.map +1 -0
  573. package/dist/test-helpers/build-reference-contract.d.mts +14 -0
  574. package/dist/test-helpers/build-reference-contract.mjs +66 -0
  575. package/dist/test-helpers/build-reference-contract.mjs.map +1 -0
  576. package/dist/test-helpers/create-project.d.mts +1 -3
  577. package/dist/test-helpers/create-project.mjs +1 -2
  578. package/dist/test-helpers/database-contract.d.mts +0 -2
  579. package/dist/test-helpers/database-contract.mjs +37 -2
  580. package/dist/test-helpers/database-contract.mjs.map +1 -1
  581. package/dist/test-helpers/deferred.d.mts +37 -0
  582. package/dist/test-helpers/deferred.mjs +60 -0
  583. package/dist/test-helpers/deferred.mjs.map +1 -0
  584. package/dist/test-helpers/design-contract.d.mts +19 -0
  585. package/dist/test-helpers/design-contract.mjs +39 -0
  586. package/dist/test-helpers/design-contract.mjs.map +1 -0
  587. package/dist/test-helpers/fake-adapters.d.mts +0 -2
  588. package/dist/test-helpers/fake-adapters.mjs +1 -2
  589. package/dist/test-helpers/fake-database.d.mts +0 -2
  590. package/dist/test-helpers/fake-database.mjs +21 -4
  591. package/dist/test-helpers/fake-database.mjs.map +1 -1
  592. package/dist/test-helpers/fake-design.d.mts +41 -0
  593. package/dist/test-helpers/fake-design.mjs +113 -0
  594. package/dist/test-helpers/fake-design.mjs.map +1 -0
  595. package/dist/test-helpers/fake-notifier.d.mts +19 -0
  596. package/dist/test-helpers/fake-notifier.mjs +43 -0
  597. package/dist/test-helpers/fake-notifier.mjs.map +1 -0
  598. package/dist/test-helpers/fake-storage.d.mts +0 -2
  599. package/dist/test-helpers/fake-storage.mjs +1 -2
  600. package/dist/test-helpers/fake-tables.mjs +260 -69
  601. package/dist/test-helpers/fake-tables.mjs.map +1 -1
  602. package/dist/test-helpers/manual-clock.d.mts +25 -0
  603. package/dist/test-helpers/manual-clock.mjs +55 -0
  604. package/dist/test-helpers/manual-clock.mjs.map +1 -0
  605. package/dist/test-helpers/notifier-contract.d.mts +7 -3
  606. package/dist/test-helpers/notifier-contract.mjs +33 -5
  607. package/dist/test-helpers/notifier-contract.mjs.map +1 -1
  608. package/dist/test-helpers/queue-contract.d.mts +16 -4
  609. package/dist/test-helpers/queue-contract.mjs +196 -3
  610. package/dist/test-helpers/queue-contract.mjs.map +1 -1
  611. package/dist/test-helpers/queue-multi-instance.d.mts +18 -0
  612. package/dist/test-helpers/queue-multi-instance.mjs +205 -0
  613. package/dist/test-helpers/queue-multi-instance.mjs.map +1 -0
  614. package/dist/test-helpers/runner-contract.d.mts +0 -2
  615. package/dist/test-helpers/runner-contract.mjs +12 -2
  616. package/dist/test-helpers/runner-contract.mjs.map +1 -1
  617. package/dist/test-helpers/sql-chunks.mjs +25 -2
  618. package/dist/test-helpers/sql-chunks.mjs.map +1 -1
  619. package/dist/test-helpers/storage-contract.d.mts +0 -2
  620. package/dist/test-helpers/storage-contract.mjs +2 -3
  621. package/dist/test-helpers.d.mts +10 -4
  622. package/dist/test-helpers.mjs +9 -3
  623. package/dist/tracing.mjs +36 -6
  624. package/dist/tracing.mjs.map +1 -1
  625. package/dist/types.d.mts +14 -5
  626. package/dist/types.mjs +22 -6
  627. package/dist/types.mjs.map +1 -1
  628. package/dist/urls.d.mts +4 -2
  629. package/dist/urls.mjs +12 -4
  630. package/dist/urls.mjs.map +1 -1
  631. package/dist/utils/adaptive-concurrency.d.mts +64 -0
  632. package/dist/utils/adaptive-concurrency.mjs +148 -0
  633. package/dist/utils/adaptive-concurrency.mjs.map +1 -0
  634. package/dist/utils/connect-retry.d.mts +26 -0
  635. package/dist/utils/connect-retry.mjs +42 -0
  636. package/dist/utils/connect-retry.mjs.map +1 -0
  637. package/dist/utils/encrypt.d.mts +0 -2
  638. package/dist/utils/encrypt.mjs +1 -2
  639. package/dist/utils/environment.d.mts +17 -0
  640. package/dist/utils/environment.mjs +58 -0
  641. package/dist/utils/environment.mjs.map +1 -0
  642. package/dist/utils/hash.d.mts +0 -2
  643. package/dist/utils/hash.mjs +1 -2
  644. package/dist/utils/http.d.mts +29 -3
  645. package/dist/utils/http.mjs +100 -19
  646. package/dist/utils/http.mjs.map +1 -1
  647. package/dist/utils/map-adaptive.d.mts +13 -0
  648. package/dist/utils/map-adaptive.mjs +71 -0
  649. package/dist/utils/map-adaptive.mjs.map +1 -0
  650. package/dist/utils/map-limit.d.mts +8 -0
  651. package/dist/utils/map-limit.mjs +31 -0
  652. package/dist/utils/map-limit.mjs.map +1 -0
  653. package/dist/utils/mime.d.mts +0 -2
  654. package/dist/utils/mime.mjs +1 -2
  655. package/dist/utils/page-limiter.d.mts +35 -0
  656. package/dist/utils/page-limiter.mjs +55 -0
  657. package/dist/utils/page-limiter.mjs.map +1 -0
  658. package/dist/utils/path-security.d.mts +0 -2
  659. package/dist/utils/path-security.mjs +2 -4
  660. package/dist/utils/path-security.mjs.map +1 -1
  661. package/dist/utils/public-origin.d.mts +18 -0
  662. package/dist/utils/public-origin.mjs +74 -0
  663. package/dist/utils/public-origin.mjs.map +1 -0
  664. package/dist/utils/redact.d.mts +0 -2
  665. package/dist/utils/redact.mjs +4 -2
  666. package/dist/utils/redact.mjs.map +1 -1
  667. package/dist/utils/remote-environment.d.mts +76 -0
  668. package/dist/utils/remote-environment.mjs +163 -0
  669. package/dist/utils/remote-environment.mjs.map +1 -0
  670. package/dist/utils/resources.d.mts +62 -0
  671. package/dist/utils/resources.mjs +121 -0
  672. package/dist/utils/resources.mjs.map +1 -0
  673. package/dist/utils/screenshot-store.d.mts +13 -0
  674. package/dist/utils/screenshot-store.mjs +40 -0
  675. package/dist/utils/screenshot-store.mjs.map +1 -0
  676. package/dist/utils/session-gate.d.mts +23 -0
  677. package/dist/utils/session-gate.mjs +69 -0
  678. package/dist/utils/session-gate.mjs.map +1 -0
  679. package/dist/utils/storybook-token.d.mts +89 -0
  680. package/dist/utils/storybook-token.mjs +135 -0
  681. package/dist/utils/storybook-token.mjs.map +1 -0
  682. package/dist/utils/storybook-url.d.mts +13 -0
  683. package/dist/utils/storybook-url.mjs +20 -0
  684. package/dist/utils/storybook-url.mjs.map +1 -0
  685. package/dist/utils/timing.d.mts +0 -2
  686. package/dist/utils/timing.mjs +2 -3
  687. package/dist/utils/timing.mjs.map +1 -1
  688. package/dist/utils/ulid.d.mts +0 -2
  689. package/dist/utils/ulid.mjs +1 -2
  690. package/dist/utils/zip-read.mjs +128 -0
  691. package/dist/utils/zip-read.mjs.map +1 -0
  692. package/dist/utils/zip-write.d.mts +16 -0
  693. package/dist/utils/zip-write.mjs +187 -0
  694. package/dist/utils/zip-write.mjs.map +1 -0
  695. package/dist/utils.d.mts +17 -3
  696. package/dist/utils.mjs +18 -4
  697. package/package.json +35 -26
  698. package/dist/adapter/capture-runner.mjs.map +0 -1
  699. package/dist/adapter/git-host/comments.d.mts +0 -41
  700. package/dist/adapter/git-host/comments.mjs +0 -54
  701. package/dist/adapter/git-host/comments.mjs.map +0 -1
  702. package/dist/adapter/git-host/helpers.d.mts +0 -13
  703. package/dist/adapter/git-host/helpers.mjs +0 -30
  704. package/dist/adapter/git-host/helpers.mjs.map +0 -1
  705. package/dist/adapter/git-host.d.mts +0 -42
  706. package/dist/capture/queue.d.mts +0 -38
  707. package/dist/capture/queue.mjs +0 -98
  708. package/dist/capture/queue.mjs.map +0 -1
  709. package/dist/capture/recovery.d.mts +0 -21
  710. package/dist/capture/recovery.mjs +0 -83
  711. package/dist/capture/recovery.mjs.map +0 -1
  712. package/dist/capture/status-fanout.mjs +0 -72
  713. package/dist/capture/status-fanout.mjs.map +0 -1
  714. package/dist/diff/engine.d.mts +0 -16
  715. package/dist/diff/engine.mjs +0 -87
  716. package/dist/diff/engine.mjs.map +0 -1
  717. package/dist/diff/options.d.mts +0 -42
  718. package/dist/diff/options.mjs +0 -15
  719. package/dist/diff/options.mjs.map +0 -1
  720. package/dist/models/status-config.d.mts +0 -38
  721. package/dist/models/status-config.mjs +0 -63
  722. package/dist/models/status-config.mjs.map +0 -1
  723. package/dist/schema/status-config.d.mts +0 -16
  724. package/dist/test-helpers/git-contract.d.mts +0 -11
  725. package/dist/test-helpers/git-contract.mjs +0 -34
  726. package/dist/test-helpers/git-contract.mjs.map +0 -1
  727. /package/dist/adapter/{git-host.mjs → oauth.mjs} +0 -0
@@ -0,0 +1,58 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /**
4
+ * Row types of `capture_jobs`, the database queue (ADR 0006, decision 4).
5
+ *
6
+ * One table holds two kinds of row, told apart by `entry`:
7
+ *
8
+ * - a **job** row (`id` = job id, `jobId` = its own id) carries delivery state: `status` is
9
+ * `queued | running | done | failed | cancelled`, `attempt` counts the attempts started so far,
10
+ * and `visibleAt` is when a queued job may next be claimed;
11
+ * - an **attempt** row (`id` = `<jobId>:<attempt>`) is one claim of a job, created by a unique-key
12
+ * insert. It holds the `owner`, the lease expiry (in `visibleAt`) and, once over, its outcome:
13
+ * `status` is `running | done | failed | expired`.
14
+ *
15
+ * `visibleAt` is non-null only while a row is a poll candidate (a queued job row, a running attempt
16
+ * row), so the poll is one indexed range query that reads at most one row.
17
+ */
18
+ /** Which of the two row kinds of `capture_jobs` a row is. */
19
+ type CaptureJobEntry = "job" | "attempt";
20
+ /** What a job does: render a build or shard, publish a zip, or deliver a notification. */
21
+ type CaptureJobKind = "capture" | "publish" | "notify";
22
+ /** Lifecycle of a job row. */
23
+ type CaptureJobStatus = "queued" | "running" | "done" | "failed" | "cancelled";
24
+ /** Lifecycle of an attempt row; `expired` is a lease another instance took over. */
25
+ type CaptureAttemptStatus = "running" | "done" | "failed" | "expired";
26
+ /** One row of `capture_jobs`: a job, or one attempt at it. */
27
+ interface CaptureJobRow {
28
+ id: string;
29
+ entry: CaptureJobEntry;
30
+ /** The job this row belongs to (a job row's own id). */
31
+ jobId: string;
32
+ kind: CaptureJobKind;
33
+ /** Build the job works on; notify jobs may have none. */
34
+ buildId: string | null;
35
+ /** `capture_shards` row a shard job renders; null for the build's own job. */
36
+ shardId: string | null;
37
+ /** Job row: attempts started so far. Attempt row: its number, from 1. */
38
+ attempt: number;
39
+ /** Attempts allowed in total (`testing.retries` + 1); copied onto attempt rows. */
40
+ maxAttempts: number;
41
+ status: CaptureJobStatus | CaptureAttemptStatus;
42
+ /** Queued job: when it may be claimed. Running attempt: its lease expiry. Otherwise null. */
43
+ visibleAt: string | null;
44
+ /** Instance holding an attempt; null on job rows. */
45
+ owner: string | null;
46
+ /** JSON: request id, traceparent and kind-specific fields. */
47
+ payload: string | null;
48
+ /** Set once cancel was asked for; the holder turns it into `runner.cancel`. */
49
+ cancelRequestedAt: string | null;
50
+ /** Job row: the last attempt's error. Attempt row: its own. */
51
+ error: string | null;
52
+ startedAt: string | null;
53
+ finishedAt: string | null;
54
+ createdAt: string;
55
+ updatedAt: string;
56
+ }
57
+ export { CaptureAttemptStatus, CaptureJobEntry, CaptureJobKind, CaptureJobRow, CaptureJobStatus };
58
+ //# sourceMappingURL=capture-job.d.mts.map
@@ -0,0 +1,33 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /** What a row of `capture_shards` is: a stage of a sharded capture, or the claim that finalizes it. */
4
+ type CaptureShardKind = "plan" | "render" | "finalize";
5
+ /** Lifecycle of one shard row. */
6
+ type CaptureShardStatus = "pending" | "running" | "done" | "failed";
7
+ /**
8
+ * One row per stage of a sharded capture: the `plan` (ordinal 0) records the build-level plan, each
9
+ * `render` shard (ordinal 1..n) is a slice of stories, and a `finalize` row (ordinal 0) is the
10
+ * claim that makes exactly one worker finish the build. `(buildId, kind, ordinal)` is unique, so
11
+ * inserting a row is an atomic claim on every database.
12
+ */
13
+ interface CaptureShard {
14
+ id: string;
15
+ projectId: string;
16
+ buildId: string;
17
+ kind: CaptureShardKind;
18
+ ordinal: number;
19
+ status: CaptureShardStatus;
20
+ /** Attempt row the build's log history and result belong to (plan row only). */
21
+ attemptId: string | null;
22
+ /** JSON: the stories and engines of a render shard, or the plan's settings. */
23
+ payload: string | null;
24
+ /** JSON outcome once the stage ended (failed, flaky and a11y story ids, counts, duration). */
25
+ result: string | null;
26
+ error: string | null;
27
+ startedAt: string | null;
28
+ finishedAt: string | null;
29
+ createdAt: string;
30
+ updatedAt: string;
31
+ }
32
+ export { CaptureShard, CaptureShardKind, CaptureShardStatus };
33
+ //# sourceMappingURL=capture-shard.d.mts.map
@@ -1,12 +1,13 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- //#region src/schema/comment.d.ts
4
3
  /** A comment row. */
5
4
  interface Comment {
6
5
  id: string;
7
6
  projectId: string;
8
7
  buildId: string;
9
8
  snapshotId: string | null;
9
+ /** Storybook story id of a story-anchored comment (ADR 0013, decision 2); null otherwise. */
10
+ storyId: string | null;
10
11
  userId: string | null;
11
12
  body: string;
12
13
  parentId: string | null;
@@ -14,6 +15,5 @@ interface Comment {
14
15
  createdAt: string;
15
16
  updatedAt: string;
16
17
  }
17
- //#endregion
18
18
  export { Comment };
19
19
  //# sourceMappingURL=comment.d.mts.map
@@ -0,0 +1,22 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /**
4
+ * A user's own OAuth connection to an external service (`design` providers today,
5
+ * issue trackers later). One per user and service; tokens are encrypted at rest.
6
+ */
7
+ interface UserConnection {
8
+ id: string;
9
+ userId: string;
10
+ /** Service `metadata.kind`, e.g. `figma`. */
11
+ service: string;
12
+ tokenEncrypted: string;
13
+ refreshTokenEncrypted: string | null;
14
+ /** When the access token expires; null when it never does. */
15
+ expiresAt: string | null;
16
+ /** `ok`, or `expired` once a refresh failed and the user must reconnect. */
17
+ status: string;
18
+ createdAt: string;
19
+ updatedAt: string;
20
+ }
21
+ export { UserConnection };
22
+ //# sourceMappingURL=connection.d.mts.map
@@ -1,6 +1,5 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- //#region src/schema/content-ref.d.ts
4
3
  /** Content ref row for deduplicated assets. */
5
4
  interface ContentRef {
6
5
  hash: string;
@@ -8,6 +7,5 @@ interface ContentRef {
8
7
  lastSeenAt: string;
9
8
  createdAt: string;
10
9
  }
11
- //#endregion
12
10
  export { ContentRef };
13
11
  //# sourceMappingURL=content-ref.d.mts.map
@@ -0,0 +1,56 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /** A design link: a project-level file link (`importPath` null) or a component mapping override. */
4
+ interface DesignLink {
5
+ id: string;
6
+ projectId: string;
7
+ /** Story file the URL is mapped to; null for a project-level design file link. */
8
+ importPath: string | null;
9
+ /** Display label of a project-level link. */
10
+ label: string | null;
11
+ url: string;
12
+ createdAt: string;
13
+ updatedAt: string;
14
+ }
15
+ /** The project-wide token of a design provider (an admin pastes it; encrypted at rest). */
16
+ interface DesignCredential {
17
+ id: string;
18
+ projectId: string;
19
+ /** Provider `metadata.kind`, e.g. `figma`. */
20
+ provider: string;
21
+ tokenEncrypted: string;
22
+ /** Last API outcome: `unknown` | `ok` | `unauthorized` | `forbidden`. */
23
+ status: string;
24
+ checkedAt: string | null;
25
+ /** When the credential was set or replaced; drives the rotation clock. */
26
+ createdAt: string;
27
+ updatedAt: string;
28
+ }
29
+ /** Cached design file/node metadata, keyed by project, provider, viewer, file key and node id. */
30
+ interface DesignNode {
31
+ id: string;
32
+ projectId: string;
33
+ /** Provider `metadata.kind`. */
34
+ provider: string;
35
+ /** Whose access fetched the entry: `""` for the project credential, else a user id. */
36
+ viewerId: string;
37
+ fileKey: string;
38
+ /** Provider node id; empty string for a whole-file link. */
39
+ nodeId: string;
40
+ name: string | null;
41
+ /** File version at fetch time. */
42
+ version: string | null;
43
+ /** File `lastModified` at fetch time. */
44
+ lastModified: string | null;
45
+ /** `ok` | `deleted` | `unauthorized` | `forbidden`. */
46
+ state: string;
47
+ /** Storage path of the cached PNG render (node links only); null when none was fetched. */
48
+ renderPath: string | null;
49
+ /** File `version` the cached render was taken at; a newer file version refetches. */
50
+ renderVersion: string | null;
51
+ fetchedAt: string;
52
+ createdAt: string;
53
+ updatedAt: string;
54
+ }
55
+ export { DesignCredential, DesignLink, DesignNode };
56
+ //# sourceMappingURL=design.d.mts.map
@@ -0,0 +1,52 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /** Insight kinds: a build triage or a project-health digest. */
4
+ type InsightKind = "triage" | "health";
5
+ /** Lifecycle of an insight run. */
6
+ type InsightStatus = "pending" | "running" | "done" | "failed";
7
+ /** An insight row (result is an opaque, validated JSON string). */
8
+ interface InsightRow {
9
+ id: string;
10
+ projectId: string;
11
+ /** Null for project-health rows. */
12
+ buildId: string | null;
13
+ kind: InsightKind;
14
+ /** Health window key (e.g. `30d`); null for triage rows. */
15
+ windowKey: string | null;
16
+ inputHash: string;
17
+ status: InsightStatus;
18
+ profile: string;
19
+ model: string;
20
+ promptVersion: string;
21
+ verdict: string | null;
22
+ summary: string | null;
23
+ result: string | null;
24
+ errorCode: string | null;
25
+ createdAt: string;
26
+ startedAt: string | null;
27
+ finishedAt: string | null;
28
+ }
29
+ /** One provider call's usage; survives build purge so budgets stay accurate. */
30
+ interface AiUsageRow {
31
+ id: string;
32
+ insightId: string | null;
33
+ projectId: string;
34
+ profile: string;
35
+ task: string;
36
+ model: string;
37
+ inputTokens: number;
38
+ outputTokens: number;
39
+ estimated: boolean;
40
+ images: number;
41
+ status: "ok" | "failed";
42
+ createdAt: string;
43
+ }
44
+ /** A budget-threshold alert claim (`id` is `${day}:${threshold}`). */
45
+ interface AiBudgetAlertRow {
46
+ id: string;
47
+ day: string;
48
+ threshold: number;
49
+ createdAt: string;
50
+ }
51
+ export { AiBudgetAlertRow, AiUsageRow, InsightKind, InsightRow, InsightStatus };
52
+ //# sourceMappingURL=insight.d.mts.map
@@ -1,6 +1,5 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- //#region src/schema/label.d.ts
4
3
  /** A label-type row. */
5
4
  interface LabelType {
6
5
  id: string;
@@ -20,6 +19,5 @@ interface BuildLabel {
20
19
  value: string;
21
20
  createdAt: string;
22
21
  }
23
- //#endregion
24
22
  export { BuildLabel, LabelType };
25
23
  //# sourceMappingURL=label.d.mts.map
@@ -1,7 +1,6 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { ProjectRole } from "../types.mjs";
4
- //#region src/schema/member.d.ts
5
4
  /** A project-membership row. */
6
5
  interface ProjectMember {
7
6
  id: string;
@@ -12,6 +11,5 @@ interface ProjectMember {
12
11
  source: string;
13
12
  createdAt: string;
14
13
  }
15
- //#endregion
16
14
  export { ProjectMember };
17
15
  //# sourceMappingURL=member.d.mts.map
@@ -1,6 +1,5 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- //#region src/schema/notification.d.ts
4
3
  /** A project (or site-wide) notification channel row. */
5
4
  interface NotificationChannelRow {
6
5
  id: string;
@@ -15,6 +14,10 @@ interface NotificationChannelRow {
15
14
  /** JSON array of subscribed events, or null for all. */
16
15
  events: string | null;
17
16
  enabled: boolean;
17
+ /** Last delivery error (sanitized), null while the channel delivers cleanly. */
18
+ lastError: string | null;
19
+ /** ISO-8601 time of {@link lastError}. */
20
+ lastErrorAt: string | null;
18
21
  createdAt: string;
19
22
  updatedAt: string;
20
23
  }
@@ -30,6 +33,5 @@ interface NotificationSubscriptionRow {
30
33
  enabled: boolean;
31
34
  createdAt: string;
32
35
  }
33
- //#endregion
34
36
  export { NotificationChannelRow, NotificationSubscriptionRow };
35
37
  //# sourceMappingURL=notification.d.mts.map
@@ -1,7 +1,6 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { ProjectRole } from "../types.mjs";
4
- //#region src/schema/project-group-mapping.d.ts
5
4
  /** An identity-provider group to project-role mapping row. */
6
5
  interface ProjectGroupMapping {
7
6
  id: string;
@@ -10,6 +9,5 @@ interface ProjectGroupMapping {
10
9
  role: ProjectRole;
11
10
  createdAt: string;
12
11
  }
13
- //#endregion
14
12
  export { ProjectGroupMapping };
15
13
  //# sourceMappingURL=project-group-mapping.d.mts.map
@@ -1,6 +1,5 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- //#region src/schema/project.d.ts
4
3
  /** A project row. */
5
4
  interface Project {
6
5
  id: string;
@@ -14,10 +13,31 @@ interface Project {
14
13
  storybookMeta: string | null | undefined;
15
14
  executePlay: boolean;
16
15
  playTimeoutMs: number;
16
+ /** Run axe accessibility checks during capture; on by default (annotations never block). */
17
17
  runA11y?: boolean;
18
+ /**
19
+ * Run the Storybook 10 `.test()` entries as interaction tests during capture (ADR 0004,
20
+ * decision 11); off by default because it changes what a build contains.
21
+ */
22
+ runTests?: boolean;
18
23
  browser?: string;
19
24
  viewports?: string | null;
25
+ /** JSON list of browsers to capture (null: legacy single `browser`). */
26
+ browsers?: string | null;
27
+ /** JSON list of mode names to capture (null: all declared modes). */
28
+ modesAllowlist?: string | null;
20
29
  automigrate?: boolean;
30
+ /** AI profile gate: null = AI off for this project; otherwise a profile name. */
31
+ aiProfile?: string | null;
32
+ /** Review is on for this project (ADR 0013, decision 1); the column defaults to true. */
33
+ reviewEnabled?: boolean;
34
+ /** Approvals a build needs when `testing` is off (ADR 0013, decision 3); default 1. */
35
+ reviewApprovals?: number;
36
+ /**
37
+ * Lifetime in seconds of the signed Storybook URLs of this project's renders (ADR 0007,
38
+ * decision 5); null derives it from the build's stories.
39
+ */
40
+ storybookUrlTtlSeconds?: number | null;
21
41
  createdAt: string;
22
42
  updatedAt: string;
23
43
  }
@@ -33,6 +53,5 @@ interface StorybookMeta {
33
53
  packagePath?: string;
34
54
  previewParameters?: Record<string, unknown>;
35
55
  }
36
- //#endregion
37
56
  export { Project, StorybookMeta };
38
57
  //# sourceMappingURL=project.d.mts.map
@@ -0,0 +1,19 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /**
4
+ * Row type of `site_settings`: a small key-value table for facts the app learns while running and
5
+ * must share between instances (ADR 0007, decision 6: the public origin an admin's browser reported).
6
+ */
7
+ /** One site-wide setting; `id` is the setting's key. */
8
+ interface SiteSetting {
9
+ /** Setting key (`public_origin`). */
10
+ id: string;
11
+ /** Value, as text (JSON for structured settings). */
12
+ value: string;
13
+ /** User that last wrote it, when a person did. */
14
+ updatedBy: string | null;
15
+ createdAt: string;
16
+ updatedAt: string;
17
+ }
18
+ export { SiteSetting };
19
+ //# sourceMappingURL=site-setting.d.mts.map
@@ -1,7 +1,6 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { SnapshotStatus } from "../types.mjs";
4
- //#region src/schema/snapshot.d.ts
5
4
  /** A snapshot row. */
6
5
  interface Snapshot {
7
6
  id: string;
@@ -11,6 +10,8 @@ interface Snapshot {
11
10
  storyName: string;
12
11
  storyTitle: string;
13
12
  storyImportPath: string | null;
13
+ /** Figma URL declared by the story at capture time; null when none. */
14
+ designUrl: string | null;
14
15
  viewportName: string;
15
16
  viewportWidth: number;
16
17
  viewportHeight: number;
@@ -23,15 +24,29 @@ interface Snapshot {
23
24
  reviewedBy: string | null;
24
25
  reviewedAt: string | null;
25
26
  infraHash: string | null;
27
+ /** JSON `EnvironmentChange` when the capture environment differed from the baseline and the snapshot was accepted as a migration. */
28
+ envChange: string | null;
26
29
  /** True when inherited unchanged from the baseline without rendering. */
27
30
  inherited: boolean;
31
+ /** Build that rendered the screenshot; inherited captures carry the original source. */
32
+ sourceBuildId?: string | null;
33
+ /** Frozen comparison image and metadata, owned by this snapshot’s build. */
34
+ comparisonImagePath?: string | null;
35
+ comparisonMetadata?: string | null;
28
36
  /** Baseline row the diff was computed against (null: no baseline, or legacy row). */
29
37
  baselineId: string | null;
30
38
  /** That baseline's `updatedAt` at diff time; compared on approval to detect drift. */
31
39
  baselineVersion: string | null;
40
+ /** Resolved mode definition (JSON) — display/capture only; identity is `viewportName`. */
41
+ mode?: string | null;
42
+ /** Engine the image was captured with. */
43
+ browser?: string;
44
+ /** Milliseconds the renderer spent on this capture; null when it reported none or nothing rendered. */
45
+ durationMs: number | null;
46
+ /** JSON array of the axe violations found on this capture (never blocking); null when none or not checked. */
47
+ a11yViolations?: string | null;
32
48
  createdAt: string;
33
49
  updatedAt: string;
34
50
  }
35
- //#endregion
36
51
  export { Snapshot };
37
52
  //# sourceMappingURL=snapshot.d.mts.map
@@ -1,6 +1,5 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- //#region src/schema/token.d.ts
4
3
  /** A CI token row (hash only; the secret itself is never stored). */
5
4
  interface Token {
6
5
  id: string;
@@ -12,6 +11,5 @@ interface Token {
12
11
  lastUsedAt: string | null;
13
12
  createdAt: string;
14
13
  }
15
- //#endregion
16
14
  export { Token };
17
15
  //# sourceMappingURL=token.d.mts.map
@@ -0,0 +1,28 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /** A link from a downstream project to the upstream project that publishes a package it consumes. */
4
+ interface ProjectLink {
5
+ id: string;
6
+ /** Project that consumes the package (the app). */
7
+ downstreamId: string;
8
+ /** Project whose Storybook publishes the package's components (the design system). */
9
+ upstreamId: string;
10
+ packageName: string;
11
+ createdAt: string;
12
+ }
13
+ /** A dependency package a story file reaches in a build. */
14
+ interface BuildPackageUsage {
15
+ id: string;
16
+ projectId: string;
17
+ buildId: string;
18
+ /** Story import path, joined to `snapshots.storyImportPath` at read time. */
19
+ storyImportPath: string;
20
+ packageName: string;
21
+ /** First module inside the package the story reaches. */
22
+ modulePath: string;
23
+ /** Installed package version at upload time; null when it could not be resolved. */
24
+ version: string | null;
25
+ createdAt: string;
26
+ }
27
+ export { BuildPackageUsage, ProjectLink };
28
+ //# sourceMappingURL=usage.d.mts.map
@@ -1,7 +1,6 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { SiteRole } from "../types.mjs";
4
- //#region src/schema/user.d.ts
5
4
  /** How a user authenticates. */
6
5
  type AuthProvider = "local" | "oidc" | "shared";
7
6
  /** A user row. */
@@ -22,6 +21,5 @@ interface User {
22
21
  /** Whether the account is disabled (login rejected). */
23
22
  disabled?: boolean;
24
23
  }
25
- //#endregion
26
24
  export { AuthProvider, User };
27
25
  //# sourceMappingURL=user.d.mts.map
@@ -1,6 +1,5 @@
1
1
  import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
- //#region src/schema/webhook.d.ts
4
3
  /** A webhook subscription row. */
5
4
  interface Webhook {
6
5
  id: string;
@@ -11,6 +10,5 @@ interface Webhook {
11
10
  createdAt: string;
12
11
  updatedAt: string;
13
12
  }
14
- //#endregion
15
13
  export { Webhook };
16
14
  //# sourceMappingURL=webhook.d.mts.map
package/dist/schema.d.mts CHANGED
@@ -2,21 +2,27 @@ import __tsdown_shims_path from 'node:path';
2
2
  import __tsdown_shims_url from 'node:url';
3
3
  import { Webhook } from "./schema/webhook.mjs";
4
4
  import { Build } from "./schema/build.mjs";
5
- import { CaptureAttempt, CaptureLog, CaptureLogLevel } from "./schema/capture-attempt.mjs";
6
5
  import { Project, StorybookMeta } from "./schema/project.mjs";
6
+ import { CaptureAttempt, CaptureLog, CaptureLogLevel } from "./schema/capture-attempt.mjs";
7
7
  import { Baseline } from "./schema/baseline.mjs";
8
8
  import { Snapshot } from "./schema/snapshot.mjs";
9
- import { ProjectStatusConfig } from "./schema/status-config.mjs";
9
+ import { CaptureAttemptStatus, CaptureJobEntry, CaptureJobKind, CaptureJobRow, CaptureJobStatus } from "./schema/capture-job.mjs";
10
+ import { BuildComponent } from "./schema/build-component.mjs";
11
+ import { CaptureShard, CaptureShardKind, CaptureShardStatus } from "./schema/capture-shard.mjs";
12
+ import { BuildReview } from "./schema/build-review.mjs";
13
+ import { SiteSetting } from "./schema/site-setting.mjs";
10
14
  import { Comment } from "./schema/comment.mjs";
11
15
  import { BuildLabel, LabelType } from "./schema/label.mjs";
16
+ import { UserConnection } from "./schema/connection.mjs";
17
+ import { DesignCredential, DesignLink, DesignNode } from "./schema/design.mjs";
18
+ import { BuildPackageUsage, ProjectLink } from "./schema/usage.mjs";
12
19
  import { ProjectMember } from "./schema/member.mjs";
13
- import { NotificationChannelRow, NotificationSubscriptionRow } from "./schema/notification.mjs";
14
20
  import { ProjectGroupMapping } from "./schema/project-group-mapping.mjs";
21
+ import { AiBudgetAlertRow, AiUsageRow, InsightKind, InsightRow, InsightStatus } from "./schema/insight.mjs";
22
+ import { NotificationChannelRow, NotificationSubscriptionRow } from "./schema/notification.mjs";
15
23
  import { Token } from "./schema/token.mjs";
16
24
  import { User } from "./schema/user.mjs";
17
- //#region src/schema/index.d.ts
18
25
  /** Placeholder schema type — Drizzle schema lives in the db adapters. */
19
26
  type Schema = Record<string, unknown>;
20
- //#endregion
21
- export { type Baseline, type Build, type BuildLabel, type CaptureAttempt, type CaptureLog, type CaptureLogLevel, type Comment, type LabelType, type NotificationChannelRow, type NotificationSubscriptionRow, type Project, type ProjectGroupMapping, type ProjectMember, type ProjectStatusConfig, Schema, type Snapshot, type StorybookMeta, type Token, type User, type Webhook };
27
+ export { type AiBudgetAlertRow, type AiUsageRow, type Baseline, type Build, type BuildComponent, type BuildLabel, type BuildPackageUsage, type BuildReview, type CaptureAttempt, type CaptureAttemptStatus, type CaptureJobEntry, type CaptureJobKind, type CaptureJobRow, type CaptureJobStatus, type CaptureLog, type CaptureLogLevel, type CaptureShard, type CaptureShardKind, type CaptureShardStatus, type Comment, type DesignCredential, type DesignLink, type DesignNode, type InsightKind, type InsightRow, type InsightStatus, type LabelType, type NotificationChannelRow, type NotificationSubscriptionRow, type Project, type ProjectGroupMapping, type ProjectLink, type ProjectMember, Schema, type SiteSetting, type Snapshot, type StorybookMeta, type Token, type User, type UserConnection, type Webhook };
22
28
  //# sourceMappingURL=schema.d.mts.map
@@ -0,0 +1,19 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ /**
4
+ * Serverless hosts (ADR 0006, decision 3): `testing` needs a process that keeps running between
5
+ * requests, so it is refused on AWS Lambda and warned about on the other platforms that freeze or
6
+ * end the process after each request. Hosting only works everywhere.
7
+ */
8
+ /** Escape hatch for hosts that look serverless but keep a process alive. */
9
+ declare const ALLOW_SERVERLESS_ENV = "STORYSHELF_ALLOW_SERVERLESS";
10
+ /** Whether the host ends or freezes the process after each request (Lambda, Vercel, Netlify). */
11
+ declare function isServerlessHost(env?: NodeJS.ProcessEnv): boolean;
12
+ /**
13
+ * Boot check for `testing` on a serverless host. Returns a warning to log, or `undefined` when
14
+ * there is nothing to say; throws on AWS Lambda. Does nothing without `testing`, or when
15
+ * `STORYSHELF_ALLOW_SERVERLESS=1`.
16
+ */
17
+ declare function assertServerless(testing: boolean, env?: NodeJS.ProcessEnv): string | undefined;
18
+ export { ALLOW_SERVERLESS_ENV, assertServerless, isServerlessHost };
19
+ //# sourceMappingURL=serverless.d.mts.map
@@ -0,0 +1,36 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ // src/serverless.ts
5
+ /**
6
+ * Serverless hosts (ADR 0006, decision 3): `testing` needs a process that keeps running between
7
+ * requests, so it is refused on AWS Lambda and warned about on the other platforms that freeze or
8
+ * end the process after each request. Hosting only works everywhere.
9
+ */
10
+ /** Set by AWS Lambda; the one host where `testing` is refused outright. */
11
+ const LAMBDA_ENV = "AWS_LAMBDA_FUNCTION_NAME";
12
+ /** Platforms that freeze or end the process after each request. */
13
+ const SERVERLESS_ENV = [
14
+ LAMBDA_ENV,
15
+ "VERCEL",
16
+ "NETLIFY"
17
+ ];
18
+ /** Escape hatch for hosts that look serverless but keep a process alive. */
19
+ const ALLOW_SERVERLESS_ENV = "STORYSHELF_ALLOW_SERVERLESS";
20
+ /** Whether the host ends or freezes the process after each request (Lambda, Vercel, Netlify). */
21
+ function isServerlessHost(env = process.env) {
22
+ return SERVERLESS_ENV.some((name) => Boolean(env[name]));
23
+ }
24
+ /**
25
+ * Boot check for `testing` on a serverless host. Returns a warning to log, or `undefined` when
26
+ * there is nothing to say; throws on AWS Lambda. Does nothing without `testing`, or when
27
+ * `STORYSHELF_ALLOW_SERVERLESS=1`.
28
+ */
29
+ function assertServerless(testing, env = process.env) {
30
+ if (!testing || env["STORYSHELF_ALLOW_SERVERLESS"] === "1" || !isServerlessHost(env)) return;
31
+ if (env[LAMBDA_ENV]) throw new Error(`testing needs a long-running server, and AWS Lambda ends the process after each request. Remove the testing option to host Storybooks only, or run on a container; set ${ALLOW_SERVERLESS_ENV}=1 to override.`);
32
+ return `testing is configured on a serverless host: capture jobs run in the background and may be cut off when the platform ends the process. Run on a container for testing; set ${ALLOW_SERVERLESS_ENV}=1 to silence this warning.`;
33
+ }
34
+ export { ALLOW_SERVERLESS_ENV, assertServerless, isServerlessHost };
35
+
36
+ //# sourceMappingURL=serverless.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverless.mjs","names":[],"sources":["../src/serverless.ts"],"sourcesContent":["/**\n * Serverless hosts (ADR 0006, decision 3): `testing` needs a process that keeps running between\n * requests, so it is refused on AWS Lambda and warned about on the other platforms that freeze or\n * end the process after each request. Hosting only works everywhere.\n */\n\n/** Set by AWS Lambda; the one host where `testing` is refused outright. */\nconst LAMBDA_ENV = \"AWS_LAMBDA_FUNCTION_NAME\";\n\n/** Platforms that freeze or end the process after each request. */\nconst SERVERLESS_ENV = [LAMBDA_ENV, \"VERCEL\", \"NETLIFY\"] as const;\n\n/** Escape hatch for hosts that look serverless but keep a process alive. */\nexport const ALLOW_SERVERLESS_ENV = \"STORYSHELF_ALLOW_SERVERLESS\";\n\n/** Whether the host ends or freezes the process after each request (Lambda, Vercel, Netlify). */\nexport function isServerlessHost(env: NodeJS.ProcessEnv = process.env): boolean {\n return SERVERLESS_ENV.some((name) => Boolean(env[name]));\n}\n\n/**\n * Boot check for `testing` on a serverless host. Returns a warning to log, or `undefined` when\n * there is nothing to say; throws on AWS Lambda. Does nothing without `testing`, or when\n * `STORYSHELF_ALLOW_SERVERLESS=1`.\n */\nexport function assertServerless(\n testing: boolean,\n env: NodeJS.ProcessEnv = process.env,\n): string | undefined {\n if (!testing || env[ALLOW_SERVERLESS_ENV] === \"1\" || !isServerlessHost(env)) {\n return undefined;\n }\n if (env[LAMBDA_ENV]) {\n throw new Error(\n `testing needs a long-running server, and AWS Lambda ends the process after each request. ` +\n `Remove the testing option to host Storybooks only, or run on a container; set ` +\n `${ALLOW_SERVERLESS_ENV}=1 to override.`,\n );\n }\n return (\n `testing is configured on a serverless host: capture jobs run in the background and may be ` +\n `cut off when the platform ends the process. Run on a container for testing; set ` +\n `${ALLOW_SERVERLESS_ENV}=1 to silence this warning.`\n );\n}\n"],"mappings":";;;;;;;;;;AAOA,MAAM,aAAa;;AAGnB,MAAM,iBAAiB;CAAC;CAAY;CAAU;AAAS;;AAGvD,MAAa,uBAAuB;;AAGpC,SAAgB,iBAAiB,MAAyB,QAAQ,KAAc;CAC9E,OAAO,eAAe,MAAM,SAAS,QAAQ,IAAI,KAAK,CAAC;AACzD;;;;;;AAOA,SAAgB,iBACd,SACA,MAAyB,QAAQ,KACb;CACpB,IAAI,CAAC,WAAW,IAAA,mCAA8B,OAAO,CAAC,iBAAiB,GAAG,GACxE;CAEF,IAAI,IAAI,aACN,MAAM,IAAI,MACR,0KAEK,qBAAqB,gBAC5B;CAEF,OACE,6KAEG,qBAAqB;AAE5B"}
@@ -0,0 +1,14 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { BuildReferenceLifecycle, BuildReferenceOwner } from "../adapter/database.mjs";
4
+ interface BuildReferenceContractFixture {
5
+ first: BuildReferenceLifecycle;
6
+ second: BuildReferenceLifecycle;
7
+ owner: BuildReferenceOwner;
8
+ buildIds: readonly [string, string];
9
+ }
10
+ type BuildReferenceContractFixtureRunner = (run: (fixture: BuildReferenceContractFixture) => Promise<void>) => Promise<void>;
11
+ /** Exercise atomic owner replacement and deletion using separate adapter connections. */
12
+ declare function buildReferenceContractSuite(label: string, withFixture: BuildReferenceContractFixtureRunner): void;
13
+ export { BuildReferenceContractFixture, BuildReferenceContractFixtureRunner, buildReferenceContractSuite };
14
+ //# sourceMappingURL=build-reference-contract.d.mts.map