tuffgal 0.2.0-alpha.2 → 0.2.0-alpha.4

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 (110) hide show
  1. package/CHANGELOG.md +41 -19
  2. package/README.md +6 -6
  3. package/dist/cli.d.ts +5 -5
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +12 -5
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/init.d.ts +1 -1
  8. package/dist/commands/init.js +6 -6
  9. package/dist/commands/supervise.d.ts +3 -3
  10. package/dist/commands/supervise.js +8 -4
  11. package/dist/commands/supervise.js.map +1 -1
  12. package/dist/config.d.ts +29 -13
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +5 -2
  15. package/dist/config.js.map +1 -1
  16. package/dist/coverage/screens.d.ts +10 -5
  17. package/dist/coverage/screens.d.ts.map +1 -1
  18. package/dist/coverage/screens.js +18 -8
  19. package/dist/coverage/screens.js.map +1 -1
  20. package/dist/reporter/assets/report.css +11 -11
  21. package/dist/reporter/assets/report.js +81 -21
  22. package/dist/reporter/template.js +56 -45
  23. package/dist/reporter/template.js.map +1 -1
  24. package/dist/runner/approve.d.ts +5 -5
  25. package/dist/runner/approve.js +5 -5
  26. package/dist/runner/approveFrom.d.ts +8 -8
  27. package/dist/runner/approveFrom.js +32 -31
  28. package/dist/runner/approveFrom.js.map +1 -1
  29. package/dist/runner/breakpointPasses.d.ts +16 -9
  30. package/dist/runner/breakpointPasses.d.ts.map +1 -1
  31. package/dist/runner/breakpointPasses.js +17 -9
  32. package/dist/runner/breakpointPasses.js.map +1 -1
  33. package/dist/runner/bridges/devServers.d.ts +10 -1
  34. package/dist/runner/bridges/devServers.d.ts.map +1 -1
  35. package/dist/runner/bridges/devServers.js +16 -8
  36. package/dist/runner/bridges/devServers.js.map +1 -1
  37. package/dist/runner/coverage.d.ts +3 -3
  38. package/dist/runner/coverage.js +5 -5
  39. package/dist/runner/coverage.js.map +1 -1
  40. package/dist/runner/exitCode.d.ts +7 -7
  41. package/dist/runner/exitCode.js +7 -7
  42. package/dist/runner/interpolate.js +1 -1
  43. package/dist/runner/interpolate.js.map +1 -1
  44. package/dist/runner/manifest.d.ts +16 -16
  45. package/dist/runner/manifest.js +12 -12
  46. package/dist/runner/mode.d.ts +2 -2
  47. package/dist/runner/mode.js +4 -4
  48. package/dist/runner/orphanScan.d.ts +3 -3
  49. package/dist/runner/orphanScan.js +5 -5
  50. package/dist/runner/orphanScan.js.map +1 -1
  51. package/dist/runner/resolveLocator.d.ts +5 -5
  52. package/dist/runner/resolveLocator.js +6 -6
  53. package/dist/runner/resolveLocator.js.map +1 -1
  54. package/dist/runner/run.d.ts +55 -18
  55. package/dist/runner/run.d.ts.map +1 -1
  56. package/dist/runner/run.js +118 -67
  57. package/dist/runner/run.js.map +1 -1
  58. package/dist/runner/runAction.d.ts +4 -4
  59. package/dist/runner/runAction.d.ts.map +1 -1
  60. package/dist/runner/runAction.js +72 -34
  61. package/dist/runner/runAction.js.map +1 -1
  62. package/dist/runner/runStory.d.ts +29 -18
  63. package/dist/runner/runStory.d.ts.map +1 -1
  64. package/dist/runner/runStory.js +38 -42
  65. package/dist/runner/runStory.js.map +1 -1
  66. package/dist/runner/scheduler.d.ts +11 -0
  67. package/dist/runner/scheduler.d.ts.map +1 -1
  68. package/dist/runner/scheduler.js +1 -1
  69. package/dist/runner/scheduler.js.map +1 -1
  70. package/dist/runner/steps/intercept.d.ts +6 -4
  71. package/dist/runner/steps/intercept.d.ts.map +1 -1
  72. package/dist/runner/steps/intercept.js.map +1 -1
  73. package/dist/runner/steps/navigate.d.ts +5 -2
  74. package/dist/runner/steps/navigate.d.ts.map +1 -1
  75. package/dist/runner/steps/navigate.js +17 -3
  76. package/dist/runner/steps/navigate.js.map +1 -1
  77. package/dist/runner/steps/read.d.ts +1 -1
  78. package/dist/runner/steps/read.js +1 -1
  79. package/dist/runner/steps/scroll.d.ts +1 -1
  80. package/dist/runner/steps/scroll.d.ts.map +1 -1
  81. package/dist/runner/steps/scroll.js +3 -2
  82. package/dist/runner/steps/scroll.js.map +1 -1
  83. package/dist/schema/action.d.ts +2 -2
  84. package/dist/schema/action.d.ts.map +1 -1
  85. package/dist/schema/action.js +58 -13
  86. package/dist/schema/action.js.map +1 -1
  87. package/dist/schema/load.js +1 -1
  88. package/dist/schema/load.js.map +1 -1
  89. package/dist/schema/result.d.ts +22 -22
  90. package/dist/schema/result.d.ts.map +1 -1
  91. package/dist/schema/result.js +1 -1
  92. package/dist/schema/story.d.ts +1 -1
  93. package/dist/schema/story.js +5 -5
  94. package/dist/screenshots/baselineStore.d.ts +44 -21
  95. package/dist/screenshots/baselineStore.d.ts.map +1 -1
  96. package/dist/screenshots/baselineStore.js +59 -28
  97. package/dist/screenshots/baselineStore.js.map +1 -1
  98. package/dist/screenshots/capture.d.ts +35 -4
  99. package/dist/screenshots/capture.d.ts.map +1 -1
  100. package/dist/screenshots/capture.js +61 -9
  101. package/dist/screenshots/capture.js.map +1 -1
  102. package/dist/screenshots/diff.d.ts +57 -8
  103. package/dist/screenshots/diff.d.ts.map +1 -1
  104. package/dist/screenshots/diff.js +78 -28
  105. package/dist/screenshots/diff.js.map +1 -1
  106. package/dist/util.d.ts +23 -2
  107. package/dist/util.d.ts.map +1 -1
  108. package/dist/util.js +42 -2
  109. package/dist/util.js.map +1 -1
  110. package/package.json +4 -8
@@ -1,6 +1,6 @@
1
1
  import { capturePage } from "../screenshots/capture.js";
2
- import { diffPngs, ScreenshotSizeMismatchError } from "../screenshots/diff.js";
3
- import { deleteIfExists, pathsFor, readBaseline, readJsonBaseline, withBaselineLock, writePng, writeText, } from "../screenshots/baselineStore.js";
2
+ import { renderDiffOverlay, scoreDiff, ScreenshotSizeMismatchError, } from "../screenshots/diff.js";
3
+ import { deleteIfExists, pathsFor, readBaseline, readJsonBaseline, withBaselineLock, writeDurablePng, writeText, writeTransientPng, } from "../screenshots/baselineStore.js";
4
4
  import { sleep } from "../util.js";
5
5
  import { comparisonRootFor } from "./mode.js";
6
6
  import { interpolate, interpolateHint } from "./interpolate.js";
@@ -32,7 +32,7 @@ export async function runAction(options) {
32
32
  // so a story can key test-created data per mode (e.g. registering
33
33
  // `fresh+${breakpoint}@example.test` at each viewport instead of colliding on
34
34
  // a shared email). It is injected only into the interpolation map, never the
35
- // validated `parameters` — `validateParameters` rejects undeclared keys, and
35
+ // validated `parameters`, `validateParameters` rejects undeclared keys, and
36
36
  // the ActionResult must still report the author's parameters verbatim. A
37
37
  // story parameter literally named `breakpoint` overrides the injected value.
38
38
  const interpolationParameters = {
@@ -85,7 +85,7 @@ async function dispatchWithRetry(page, step, parameters, config, attempts, backo
85
85
  }
86
86
  catch (error) {
87
87
  lastError = error;
88
- if (!(error instanceof LocatorNotFoundError) || attempt === attempts) {
88
+ if (!isRetryable(error) || attempt === attempts) {
89
89
  throw error;
90
90
  }
91
91
  await sleep(backoffMs * attempt);
@@ -93,6 +93,26 @@ async function dispatchWithRetry(page, step, parameters, config, attempts, backo
93
93
  }
94
94
  throw lastError;
95
95
  }
96
+ /**
97
+ * Only transient faults are retried; real infrastructure errors rethrow
98
+ * immediately so a genuine fault is not masked by burning the retry budget:
99
+ * - `LocatorNotFoundError`: the UI has not hydrated the target element yet.
100
+ * - any bounded Playwright `TimeoutError`: every step whose dispatch is
101
+ * bounded by a Playwright timeout qualifies, not just navigation: a
102
+ * `page.goto` that did not reach its ready signal, AND the step-level
103
+ * click/input/waitFor timeouts (a slow first paint, a lagging dev server, a
104
+ * control still rendering), each of which a re-drive routinely clears.
105
+ * Classified by `name` so it holds for any Playwright timeout whether it
106
+ * arrives as `errors.TimeoutError` or is reconstructed across an async
107
+ * boundary.
108
+ * Anything else (connection refused, protocol error, an origin-escape throw)
109
+ * is a NON-retryable fault and rethrows on the first occurrence.
110
+ */
111
+ function isRetryable(error) {
112
+ if (error instanceof LocatorNotFoundError)
113
+ return true;
114
+ return error instanceof Error && error.name === 'TimeoutError';
115
+ }
96
116
  async function dispatch(page, step, parameters, config) {
97
117
  switch (step.kind) {
98
118
  case 'navigate':
@@ -118,7 +138,7 @@ async function dispatch(page, step, parameters, config) {
118
138
  /**
119
139
  * Polls every hint in `expect.anyOf` concurrently and resolves as soon as one
120
140
  * becomes visible. Throws when none resolve within the configured timeout.
121
- * Race semantics: any single match satisfies the expectation — this is what
141
+ * Race semantics: any single match satisfies the expectation. This is what
122
142
  * lets a single action declare "success looks like list-item OR toast OR
123
143
  * status banner" without the story knowing which renderer the app picked.
124
144
  */
@@ -147,7 +167,7 @@ async function captureAndCompare(options) {
147
167
  // The comparison target moves with the mode (see `comparisonRootFor`, the
148
168
  // single owner of the mode→root mapping). CI compares against (and, on
149
169
  // approval, promotes into) the committed `paths.baselines`; local mode
150
- // self-diffs against — and auto-seeds — the per-machine, gitignored
170
+ // self-diffs against (and auto-seeds) the per-machine, gitignored
151
171
  // `paths.localCache`, never reading or writing `paths.baselines`. Report-side
152
172
  // artifacts (actual, diff, candidate) stay report-rooted regardless; only the
153
173
  // baseline/legacy side follows `comparisonRoot`. Legacy `<action>/0.png`
@@ -164,8 +184,13 @@ async function captureAndCompare(options) {
164
184
  breakpoint,
165
185
  });
166
186
  const masks = resolveMasks(page, action.mask, interpolationParameters);
167
- const actualPng = await capturePage(page, masks, config.captureMode);
168
- await writePng(paths.actual, actualPng);
187
+ const actualPng = await capturePage(page, masks, config.captureMode, {
188
+ maxPixels: config.maxFullPagePixels,
189
+ label: `story "${storyFile}" action "${action.action}" (${breakpoint})`,
190
+ });
191
+ // The run's `actual` is a transient report artifact (overwritten next run,
192
+ // never re-read as a comparison target), so it skips the max-effort recompress.
193
+ await writeTransientPng(paths.actual, actualPng);
169
194
  const a11yJson = await captureA11yTree(page);
170
195
  await writeText(paths.a11yActual, a11yJson);
171
196
  const baseResult = baseResultFor(action.action, parameters, breakpoint, startedAt);
@@ -174,17 +199,17 @@ async function captureAndCompare(options) {
174
199
  // The first holder decides; later holders observe the baseline it produced.
175
200
  //
176
201
  // Read order under the lock:
177
- // 1. breakpoint-keyed baseline (`<action>/<bp>.png`) — the canonical
202
+ // 1. breakpoint-keyed baseline (`<action>/<bp>.png`): the canonical
178
203
  // location once a project has migrated to named breakpoints;
179
- // 2. legacy baseline (`<action>/0.png`) — a project baselined before this
204
+ // 2. legacy baseline (`<action>/0.png`): a project baselined before this
180
205
  // feature has only this file. We compare against it (so it still gates
181
206
  // pass/changed) but deliberately do NOT copy it forward to the
182
207
  // breakpoint location: a real baseline already lives at the legacy path,
183
208
  // and promotion to the new layout is `tuffgal approve`'s job, not a
184
209
  // silent side effect of a read. Auto-creating here would also clobber
185
210
  // the legacy file's role as the shared fallback for every breakpoint.
186
- // 3. neither — the missing-baseline branch, and it splits on mode:
187
- // - `local`: auto-seed the per-machine cache — write a fresh
211
+ // 3. neither, the missing-baseline branch, and it splits on mode:
212
+ // - `local`: auto-seed the per-machine cache, write a fresh
188
213
  // breakpoint baseline under the lock (rooted at `comparisonRoot`,
189
214
  // i.e. `paths.localCache`) and report `new`. Zero-ceremony first run.
190
215
  // `paths.baselines` is never touched.
@@ -203,7 +228,9 @@ async function captureAndCompare(options) {
203
228
  return { png: legacy, source: 'legacy' };
204
229
  }
205
230
  if (mode === 'local') {
206
- await writePng(paths.baseline, actualPng);
231
+ // A local-cache baseline is durable (re-read on every later run), so
232
+ // it earns the lossless recompress.
233
+ await writeDurablePng(paths.baseline, actualPng);
207
234
  await writeText(paths.a11yBaseline, a11yJson);
208
235
  }
209
236
  return undefined;
@@ -224,7 +251,7 @@ async function captureAndCompare(options) {
224
251
  }
225
252
  const baselinePng = found.png;
226
253
  // When the comparison ran against the legacy baseline, its a11y companion
227
- // lives at the legacy a11y path too — read that one so the a11yChanged
254
+ // lives at the legacy a11y path too. Read that one so the a11yChanged
228
255
  // signal reflects the baseline we actually diffed against.
229
256
  const a11yBaselinePathForRead = found.source === 'legacy' ? paths.legacyA11yBaseline : paths.a11yBaseline;
230
257
  const baselineA11y = await readJsonBaseline(a11yBaselinePathForRead);
@@ -232,20 +259,26 @@ async function captureAndCompare(options) {
232
259
  try {
233
260
  const pixelThreshold = action.diff?.pixelThreshold ?? 0.1;
234
261
  const ssimThreshold = action.diff?.ssimThreshold ?? 0.99;
235
- const outcome = diffPngs(baselinePng, actualPng, pixelThreshold);
236
- const passesSsim = outcome.ssimScore >= ssimThreshold;
262
+ // Score first (SSIM plus the reported pixel metrics) without encoding
263
+ // the overlay. The red-highlight diff image is expensive to encode and is
264
+ // discarded on a pass, so it is rendered only on the changed branch below.
265
+ // One decode of the pair serves both the score and (on the changed branch
266
+ // below) the overlay render. `decoded` is threaded into renderDiffOverlay
267
+ // so the failing path reads the image pair once, not twice.
268
+ const { score, decoded } = scoreDiff(baselinePng, actualPng, pixelThreshold);
269
+ const passesSsim = score.ssimScore >= ssimThreshold;
237
270
  if (passesSsim) {
238
271
  await deleteIfExists(paths.diff);
239
272
  // A11y-only drift: pixels match but the committed aria snapshot has moved.
240
273
  // In CI mode this must surface as `changed` with a candidate pair, not a
241
- // silent `pass` — under the sole-writer model a `pass` writes no candidate,
274
+ // silent `pass`. Under the sole-writer model a `pass` writes no candidate,
242
275
  // so a drifted committed `a11y.yaml` would be permanently unre-approvable
243
276
  // (`approve --from` has nothing to promote). The pixel-drift path below is
244
277
  // mutually exclusive with this branch, so exactly one candidate pair is
245
- // ever written per action. Local mode keeps the advisory behaviour — the
278
+ // ever written per action. Local mode keeps the advisory behaviour. The
246
279
  // cache is auto-managed, there is no human-approval step, so the flag stays
247
280
  // informational and no candidate is proposed. There is no pixel diff here
248
- // (pixels passed), so `diffPath` is omitted — that, alongside
281
+ // (pixels passed), so `diffPath` is omitted. That, alongside
249
282
  // `a11yChanged`, is what marks a11y-only drift apart from pixel drift
250
283
  // downstream.
251
284
  const a11yDriftInCi = mode === 'ci' && a11yChanged;
@@ -256,16 +289,21 @@ async function captureAndCompare(options) {
256
289
  status: a11yDriftInCi ? 'changed' : 'pass',
257
290
  baselinePath: paths.baseline,
258
291
  actualPath: paths.actual,
259
- diffPixels: outcome.diffPixels,
260
- diffRatio: outcome.diffRatio,
261
- ssimScore: outcome.ssimScore,
292
+ diffPixels: score.diffPixels,
293
+ diffRatio: score.diffRatio,
294
+ ssimScore: score.ssimScore,
262
295
  a11yChanged: a11yChanged || undefined,
263
296
  a11yBaselinePath: a11yBaselinePathForRead,
264
297
  a11yActualPath: paths.a11yActual,
265
298
  });
266
299
  }
267
- await writePng(paths.diff, outcome.diffPng);
268
- // A `changed` action in CI mode proposes a new baseline — emit it to the
300
+ // Changed → the human needs the red-highlight overlay. This is the only
301
+ // branch that pays the pixelmatch-fill + PNG encode cost; it reuses the
302
+ // decode from scoreDiff above. The overlay is a transient report artifact
303
+ // (deleted the moment a later run passes), so it skips the recompress pass.
304
+ // It is already deflate-encoded by renderDiffOverlay.
305
+ await writeTransientPng(paths.diff, renderDiffOverlay(decoded, pixelThreshold));
306
+ // A `changed` action in CI mode proposes a new baseline. Emit it to the
269
307
  // candidate tree so approval is a plain tree copy. Local mode does not
270
308
  // (its comparison target is the auto-managed cache, not a human-approved
271
309
  // set); `writeCandidate` no-ops there.
@@ -275,9 +313,9 @@ async function captureAndCompare(options) {
275
313
  baselinePath: paths.baseline,
276
314
  actualPath: paths.actual,
277
315
  diffPath: paths.diff,
278
- diffPixels: outcome.diffPixels,
279
- diffRatio: outcome.diffRatio,
280
- ssimScore: outcome.ssimScore,
316
+ diffPixels: score.diffPixels,
317
+ diffRatio: score.diffRatio,
318
+ ssimScore: score.ssimScore,
281
319
  a11yChanged: a11yChanged || undefined,
282
320
  a11yBaselinePath: a11yBaselinePathForRead,
283
321
  a11yActualPath: paths.a11yActual,
@@ -285,14 +323,14 @@ async function captureAndCompare(options) {
285
323
  }
286
324
  catch (error) {
287
325
  if (error instanceof ScreenshotSizeMismatchError) {
288
- // Dimension drift is still a `changed` outcome — same candidate emission
326
+ // Dimension drift is still a `changed` outcome, same candidate emission
289
327
  // (CI only; `writeCandidate` no-ops in local mode).
290
328
  await writeCandidate(mode, paths, actualPng, a11yJson);
291
329
  // CONTRACT: this branch must NEVER emit `a11yChanged`. The a11y-only-drift
292
330
  // discriminator downstream is `a11yChanged === true`, and this pixel-drift
293
331
  // (size-mismatch) result already carries no `diffPath`. Were it to also set
294
332
  // `a11yChanged`, a consumer that (incorrectly) inferred a11y-only drift from
295
- // `!diffPath` would misclassify it — but the positive `a11yChanged` gate,
333
+ // `!diffPath` would misclassify it, but the positive `a11yChanged` gate,
296
334
  // which this branch deliberately leaves unset, keeps the two apart. The
297
335
  // locking test `never carries a11yChanged` guards this omission against a
298
336
  // future "cleanup" that would add it. See the `a11yChanged` doc in
@@ -316,20 +354,20 @@ async function captureAndCompare(options) {
316
354
  * Emits the proposed-new-baseline render (PNG + a11y companion) to the
317
355
  * report-rooted candidate tree (`<report>/candidates/<action>/<breakpoint>.*`).
318
356
  * The layout mirrors `paths.baselines` exactly, so approving a candidate set is
319
- * a plain tree copy. Routed through the same `writePng`/`writeText` seams as
320
- * every other write, so candidates inherit the lossless recompress pass for
321
- * free.
357
+ * a plain tree copy. A candidate is a proposed durable baseline, so it is
358
+ * routed through the durable `writeDurablePng`/`writeText` seams and inherits
359
+ * the lossless recompress pass. The promoted baseline is dense from the start.
322
360
  *
323
361
  * The candidate tree is a CI-only artifact: local mode self-diffs against the
324
362
  * per-machine cache and has no human-approval step, so it never proposes
325
- * candidates. The mode guard lives here — a single early-return — rather than
363
+ * candidates. The mode guard lives here (a single early-return) rather than
326
364
  * being repeated at each of the four call sites (`new`, pixel-`changed`,
327
365
  * size-mismatch, and CI a11y-only drift).
328
366
  */
329
367
  async function writeCandidate(mode, paths, actualPng, a11yJson) {
330
368
  if (mode !== 'ci')
331
369
  return;
332
- await writePng(paths.candidate, actualPng);
370
+ await writeDurablePng(paths.candidate, actualPng);
333
371
  await writeText(paths.a11yCandidate, a11yJson);
334
372
  }
335
373
  function resolveMasks(page, maskHints, parameters) {
@@ -1 +1 @@
1
- {"version":3,"file":"runAction.js","sourceRoot":"","sources":["../../src/runner/runAction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runAction.js","sourceRoot":"","sources":["../../src/runner/runAction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAEL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,SAAS,EACT,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAgB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA+BhD,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEzC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAyB;IAEzB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC5E,MAAM,IAAI,GAAY,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;IAC9C,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvC,6EAA6E;IAC7E,kEAAkE;IAClE,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,uBAAuB,GAA2B;QACtD,UAAU;QACV,GAAG,UAAU;KACd,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,QAAQ,IAAI,sBAAsB,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,wBAAwB,CAAC;IAEtE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,CAAC;YACH,MAAM,iBAAiB,CACrB,IAAI,EACJ,IAAI,EACJ,uBAAuB,EACvB,MAAM,EACN,QAAQ,EACR,SAAS,CACV,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,YAAY,CACjB,MAAM,EACN,UAAU,EACV,UAAU,EACV,SAAS,EACT,KAAK,EACL,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,YAAY,CACjB,MAAM,EACN,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,CAAC,KAAK,CAAC,MAAM,EACnB,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,8BAA8B,CACnC,MAAM,EACN,UAAU,EACV,UAAU,EACV,SAAS,CACV,CAAC;IACJ,CAAC;IAED,OAAO,iBAAiB,CAAC;QACvB,MAAM;QACN,IAAI;QACJ,UAAU;QACV,uBAAuB;QACvB,MAAM;QACN,SAAS;QACT,SAAS;QACT,UAAU;QACV,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,IAAU,EACV,IAAU,EACV,UAAkC,EAClC,MAAsB,EACtB,QAAgB,EAChB,SAAiB;IAEjB,IAAI,SAAkB,CAAC;IACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,oBAAoB;QAAE,OAAO,IAAI,CAAC;IACvD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,IAAU,EACV,IAAU,EACV,UAAkC,EAClC,MAAsB;IAEtB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,WAAW,CAChB,IAAI,EACJ,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAClC,MAAM,EACN,IAAI,CAAC,SAAS,CACf,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,QAAQ,CACb,IAAI,EACJ,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EACtC,MAAM,CAAC,gBAAgB,CACxB,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,QAAQ,CACb,IAAI,EACJ,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EACtC,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EACnC,MAAM,CAAC,gBAAgB,CACxB,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,KAAK,WAAW;YACd,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,KAAK,SAAS;YACZ,OAAO,UAAU,CACf,IAAI,EACJ,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EACtC,MAAM,CAAC,gBAAgB,CACxB,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;QAC/D,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5D,KAAK,MAAM;YACT,OAAO,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,kBAAkB,CAC/B,IAAU,EACV,WAA0C,EAC1C,UAAkC;IAElC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,IAAI,yBAAyB,CAAC;IACrE,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAClC,CAAC;IACF,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjD,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;SACvB,KAAK,EAAE;SACP,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;SACjD,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;SAChB,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,MAAM,IAAI,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CACL,CAAC;IACF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,GACT,KAAK,YAAY,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACxD,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACvC,CAAC,CAAC,KAAK,CAAC;QACZ,MAAM,IAAI,wBAAwB,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AA8BD,KAAK,UAAU,iBAAiB,CAC9B,OAAuB;IAEvB,MAAM,EACJ,MAAM,EACN,IAAI,EACJ,UAAU,EACV,uBAAuB,EACvB,MAAM,EACN,SAAS,EACT,SAAS,EACT,UAAU,EACV,IAAI,GACL,GAAG,OAAO,CAAC;IACZ,0EAA0E;IAC1E,uEAAuE;IACvE,uEAAuE;IACvE,kEAAkE;IAClE,8EAA8E;IAC9E,8EAA8E;IAC9E,yEAAyE;IACzE,4EAA4E;IAC5E,2EAA2E;IAC3E,iDAAiD;IACjD,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;QACpC,cAAc;QACd,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;QAC9B,SAAS;QACT,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,UAAU;KACX,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE;QACnE,SAAS,EAAE,MAAM,CAAC,iBAAiB;QACnC,KAAK,EAAE,UAAU,SAAS,aAAa,MAAM,CAAC,MAAM,MAAM,UAAU,GAAG;KACxE,CAAC,CAAC;IACH,2EAA2E;IAC3E,gFAAgF;IAChF,MAAM,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,aAAa,CAC9B,MAAM,CAAC,MAAM,EACb,UAAU,EACV,UAAU,EACV,SAAS,CACV,CAAC;IAEF,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,EAAE;IACF,6BAA6B;IAC7B,sEAAsE;IACtE,kEAAkE;IAClE,2EAA2E;IAC3E,4EAA4E;IAC5E,oEAAoE;IACpE,8EAA8E;IAC9E,yEAAyE;IACzE,2EAA2E;IAC3E,2EAA2E;IAC3E,oEAAoE;IACpE,mEAAmE;IACnE,2EAA2E;IAC3E,+EAA+E;IAC/E,+CAA+C;IAC/C,wEAAwE;IACxE,6EAA6E;IAC7E,sEAAsE;IACtE,6EAA6E;IAC7E,uDAAuD;IACvD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAClC,KAAK,CAAC,QAAQ,EACd,KAAK,IAAkE,EAAE;QACvE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QACjD,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,qEAAqE;YACrE,oCAAoC;YACpC,MAAM,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACjD,MAAM,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CACF,CAAC;IAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,4EAA4E;QAC5E,0EAA0E;QAC1E,yEAAyE;QACzE,0BAA0B;QAC1B,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,YAAY,CAAC,UAAU,EAAE;YAC9B,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,KAAK,CAAC,QAAQ;YAC5B,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,gBAAgB,EAAE,KAAK,CAAC,YAAY;YACpC,cAAc,EAAE,KAAK,CAAC,UAAU;SACjC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC;IAC9B,0EAA0E;IAC1E,sEAAsE;IACtE,2DAA2D;IAC3D,MAAM,uBAAuB,GAC3B,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;IAC5E,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,QAAQ,CAAC;IAE5E,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc,IAAI,GAAG,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC;QACzD,sEAAsE;QACtE,0EAA0E;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,0EAA0E;QAC1E,4DAA4D;QAC5D,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,SAAS,CAClC,WAAW,EACX,SAAS,EACT,cAAc,CACf,CAAC;QACF,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,aAAa,CAAC;QACpD,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjC,2EAA2E;YAC3E,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,2EAA2E;YAC3E,wEAAwE;YACxE,wEAAwE;YACxE,4EAA4E;YAC5E,0EAA0E;YAC1E,6DAA6D;YAC7D,sEAAsE;YACtE,cAAc;YACd,MAAM,aAAa,GAAG,IAAI,KAAK,IAAI,IAAI,WAAW,CAAC;YACnD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,YAAY,CAAC,UAAU,EAAE;gBAC9B,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;gBAC1C,YAAY,EAAE,KAAK,CAAC,QAAQ;gBAC5B,UAAU,EAAE,KAAK,CAAC,MAAM;gBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,WAAW,EAAE,WAAW,IAAI,SAAS;gBACrC,gBAAgB,EAAE,uBAAuB;gBACzC,cAAc,EAAE,KAAK,CAAC,UAAU;aACjC,CAAC,CAAC;QACL,CAAC;QACD,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,4EAA4E;QAC5E,sDAAsD;QACtD,MAAM,iBAAiB,CACrB,KAAK,CAAC,IAAI,EACV,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAC3C,CAAC;QACF,wEAAwE;QACxE,uEAAuE;QACvE,yEAAyE;QACzE,uCAAuC;QACvC,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,YAAY,CAAC,UAAU,EAAE;YAC9B,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,KAAK,CAAC,QAAQ;YAC5B,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,WAAW,EAAE,WAAW,IAAI,SAAS;YACrC,gBAAgB,EAAE,uBAAuB;YACzC,cAAc,EAAE,KAAK,CAAC,UAAU;SACjC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,2BAA2B,EAAE,CAAC;YACjD,wEAAwE;YACxE,oDAAoD;YACpD,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YACvD,2EAA2E;YAC3E,2EAA2E;YAC3E,4EAA4E;YAC5E,6EAA6E;YAC7E,yEAAyE;YACzE,wEAAwE;YACxE,0EAA0E;YAC1E,mEAAmE;YACnE,+CAA+C;YAC/C,OAAO,YAAY,CAAC,UAAU,EAAE;gBAC9B,MAAM,EAAE,SAAS;gBACjB,YAAY,EAAE,KAAK,CAAC,QAAQ;gBAC5B,UAAU,EAAE,KAAK,CAAC,MAAM;gBACxB,cAAc,EAAE,KAAK,CAAC,OAAO;gBAC7B,mEAAmE;gBACnE,yEAAyE;gBACzE,YAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;gBAChE,gBAAgB,EAAE,uBAAuB;gBACzC,cAAc,EAAE,KAAK,CAAC,UAAU;aACjC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,cAAc,CAC3B,IAAa,EACb,KAAoB,EACpB,SAAiB,EACjB,QAAgB;IAEhB,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAC1B,MAAM,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CACnB,IAAU,EACV,SAA6B,EAC7B,UAAkC;IAElC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5B,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CACxD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAC,IAAU;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,aAAa,CACpB,UAAkB,EAClB,UAAkC,EAClC,UAAkB,EAClB,SAAe;IAEf,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,UAAU;QACV,UAAU;QACV,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,UAAU,EAAE,SAAS,CAAC,WAAW,EAAE;QACnC,UAAU,EAAE,CAAC;KACd,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CACrC,MAAc,EACd,UAAkC,EAClC,UAAkB,EAClB,SAAe;IAEf,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;QACV,UAAU;QACV,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;QACpC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,MAAc,EACd,UAAkC,EAClC,UAAkB,EAClB,SAAe,EACf,WAAmB,EACnB,KAAc;IAEd,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;QACV,UAAU;QACV,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;QACpC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;QACtD,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,IAAkB,EAClB,SAA2D;IAE3D,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,OAAO;QACL,GAAG,IAAI;QACP,GAAG,SAAS;QACZ,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;QACpC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;KACtE,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,MAAc,EACd,UAAkC;IAElC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,CAAC,MAAM,iCAAiC,GAAG,GAAG,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;QAChC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,WAAW,MAAM,CAAC,MAAM,2BAA2B,QAAQ,GAAG,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxC,WAAW,CAAgC;IAC3C,UAAU,CAAU;IAC7B,YACE,WAA0C,EAC1C,UAAmB,EACnB,SAAiB;QAEjB,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK;aAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;aACnC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CACH,uCAAuC,SAAS,mBAAmB,OAAO,GAAG,CAC9E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF"}
@@ -9,10 +9,18 @@ export interface RunStoryOptions {
9
9
  story: Story;
10
10
  file: string;
11
11
  needs: string[];
12
+ /**
13
+ * The needs used to resolve on-disk auth state, distinct from the
14
+ * scheduler-facing `needs` which a breakpoint pass strips to its in-pass
15
+ * subset (see {@link adaptNeedsForPass}). Retains the story's ORIGINAL needs
16
+ * so a consumer whose producer rendered in a different pass still loads that
17
+ * producer's persisted auth. Otherwise the consumer renders logged-out.
18
+ * Omitted by direct callers/tests, where it falls back to `needs`.
19
+ */
20
+ authNeeds?: string[];
12
21
  produces: string[];
13
22
  actions: Map<string, Action>;
14
23
  config: ResolvedConfig;
15
- headed: boolean;
16
24
  coverage?: CoverageCollector;
17
25
  /**
18
26
  * Render only this breakpoint. The run driver passes one breakpoint per
@@ -30,33 +38,36 @@ export interface RunStoryOptions {
30
38
  mode?: RunMode;
31
39
  }
32
40
  /**
33
- * Drives one story end-to-end on a freshly launched browser. Wraps the
34
- * context in Playwright tracing so a failed action leaves behind a
35
- * full-fidelity `trace.zip` for post-mortem in the Playwright trace viewer.
36
- * If the story declares `produces` labels, the post-run storage state is
37
- * persisted under `<authState>/<label>.json` so consumer stories can attach
38
- * to it without replaying the producer's actions.
39
- */
40
- export declare function runStory(options: RunStoryOptions): Promise<StoryResult>;
41
- /**
42
- * Drives every selected breakpoint of one story against an already-launched
43
- * browser. Split out from `runStory` (which owns browser lifecycle + fixtures)
44
- * so tests can exercise the per-breakpoint loop — context isolation, the
45
- * failed-action-does-not-abort-others guarantee, trace-zip uniqueness, `produces`
46
- * persistence, and the throw-closes-context invariant — against fake
47
- * Browser/BrowserContext/Page objects without launching a real Chromium.
41
+ * Drives every selected breakpoint of one story against the run's shared,
42
+ * already-launched browser. The run driver (`runAll`) launches ONE browser for
43
+ * the whole run and closes it once at the end, so this function never owns
44
+ * browser lifecycle. It only opens a fresh `browser.newContext()` per
45
+ * breakpoint. That per-breakpoint context is the isolation boundary: cookies,
46
+ * storage, and cache live on the context, not the browser, so stories sharing a
47
+ * browser never leak state into one another. Wraps each context in Playwright
48
+ * tracing so a failed action leaves behind a full-fidelity `trace.zip` for
49
+ * post-mortem in the Playwright trace viewer. If the story declares `produces`
50
+ * labels, the post-run storage state is persisted under
51
+ * `<authState>/<label>.json` so consumer stories can attach to it without
52
+ * replaying the producer's actions.
53
+ *
54
+ * Taking the browser as a parameter also lets tests exercise the per-breakpoint
55
+ * loop (context isolation, the failed-action-does-not-abort-others guarantee,
56
+ * trace-zip uniqueness, `produces` persistence, and the throw-closes-context
57
+ * invariant) against fake Browser/BrowserContext/Page objects without
58
+ * launching a real Chromium.
48
59
  */
49
60
  export declare function runStoryWithBrowser(browser: Browser, options: RunStoryOptions, startedAt: Date): Promise<StoryResult>;
50
61
  /**
51
62
  * Picks the breakpoint(s) this story runs at:
52
63
  *
53
- * - `story.breakpoints` set — run exactly those, REPLACING the project's
64
+ * - `story.breakpoints` set: run exactly those, REPLACING the project's
54
65
  * `config.breakpoints` (not intersected). The story's list stands alone:
55
66
  * it may name a mode the project does not, each selector resolved against
56
67
  * the registry, order preserved, duplicate names dropped (first wins). The
57
68
  * schema guarantees a non-empty list when the field is present.
58
69
  *
59
- * - omitted — run the project's `config.breakpoints`, in order (the default).
70
+ * - omitted: run the project's `config.breakpoints`, in order (the default).
60
71
  */
61
72
  export declare function resolveRunSet(story: Story, config: ResolvedConfig): ResolvedBreakpoint[];
62
73
  export declare function mergeStoryStatus(current: StoryStatus, next: StoryStatus): StoryStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"runStory.d.ts","sourceRoot":"","sources":["../../src/runner/runStory.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,OAAO,EAGb,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAEV,WAAW,EACX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAID;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAU7E;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,WAAW,CAAC,CA6HtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,GACrB,kBAAkB,EAAE,CAKtB;AAeD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,WAAW,GAChB,WAAW,CAEb"}
1
+ {"version":3,"file":"runStory.d.ts","sourceRoot":"","sources":["../../src/runner/runStory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,YAAY,CAAC;AAC1E,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAEV,WAAW,EACX,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,IAAI,GACd,OAAO,CAAC,WAAW,CAAC,CAoItB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,cAAc,GACrB,kBAAkB,EAAE,CAKtB;AAeD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,WAAW,GAChB,WAAW,CAEb"}
@@ -1,43 +1,39 @@
1
1
  import { access, mkdir } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
- import { chromium, } from 'playwright';
3
+ import {} from 'playwright';
4
4
  import { resolveSelectorList, } from "../config.js";
5
5
  import { applyFixture } from "./bridges/database.js";
6
6
  import { runAction } from "./runAction.js";
7
7
  const TRACE_SUBDIR = 'traces';
8
8
  /**
9
- * Drives one story end-to-end on a freshly launched browser. Wraps the
10
- * context in Playwright tracing so a failed action leaves behind a
11
- * full-fidelity `trace.zip` for post-mortem in the Playwright trace viewer.
12
- * If the story declares `produces` labels, the post-run storage state is
13
- * persisted under `<authState>/<label>.json` so consumer stories can attach
14
- * to it without replaying the producer's actions.
15
- */
16
- export async function runStory(options) {
17
- const startedAt = new Date();
18
- // Fixtures are applied per breakpoint inside `runStoryWithBrowser`, not once
19
- // here — see the reseed comment in the breakpoint loop.
20
- const browser = await chromium.launch({ headless: !options.headed });
21
- try {
22
- return await runStoryWithBrowser(browser, options, startedAt);
23
- }
24
- finally {
25
- await browser.close();
26
- }
27
- }
28
- /**
29
- * Drives every selected breakpoint of one story against an already-launched
30
- * browser. Split out from `runStory` (which owns browser lifecycle + fixtures)
31
- * so tests can exercise the per-breakpoint loop — context isolation, the
32
- * failed-action-does-not-abort-others guarantee, trace-zip uniqueness, `produces`
33
- * persistence, and the throw-closes-context invariant — against fake
34
- * Browser/BrowserContext/Page objects without launching a real Chromium.
9
+ * Drives every selected breakpoint of one story against the run's shared,
10
+ * already-launched browser. The run driver (`runAll`) launches ONE browser for
11
+ * the whole run and closes it once at the end, so this function never owns
12
+ * browser lifecycle. It only opens a fresh `browser.newContext()` per
13
+ * breakpoint. That per-breakpoint context is the isolation boundary: cookies,
14
+ * storage, and cache live on the context, not the browser, so stories sharing a
15
+ * browser never leak state into one another. Wraps each context in Playwright
16
+ * tracing so a failed action leaves behind a full-fidelity `trace.zip` for
17
+ * post-mortem in the Playwright trace viewer. If the story declares `produces`
18
+ * labels, the post-run storage state is persisted under
19
+ * `<authState>/<label>.json` so consumer stories can attach to it without
20
+ * replaying the producer's actions.
21
+ *
22
+ * Taking the browser as a parameter also lets tests exercise the per-breakpoint
23
+ * loop (context isolation, the failed-action-does-not-abort-others guarantee,
24
+ * trace-zip uniqueness, `produces` persistence, and the throw-closes-context
25
+ * invariant) against fake Browser/BrowserContext/Page objects without
26
+ * launching a real Chromium.
35
27
  */
36
28
  export async function runStoryWithBrowser(browser, options, startedAt) {
37
- const { story, file, needs, produces, config, coverage } = options;
29
+ const { story, file, needs, authNeeds, produces, config, coverage } = options;
38
30
  // Resolve the storage state once: it is viewport-independent, so every
39
- // breakpoint context loads the same `needs` auth payload.
40
- const storageStatePath = await resolveStorageStateForNeeds(config, needs);
31
+ // breakpoint context loads the same auth payload. Uses `authNeeds` (the
32
+ // story's ORIGINAL needs) rather than the scheduler-facing `needs`, which a
33
+ // breakpoint pass strips to its in-pass subset. A consumer whose producer
34
+ // rendered in a different pass must still load that producer's off-disk auth.
35
+ // Falls back to `needs` for direct callers/tests that omit `authNeeds`.
36
+ const storageStatePath = await resolveStorageStateForNeeds(config, authNeeds ?? needs);
41
37
  // The run driver hands us a single breakpoint per call so each breakpoint is
42
38
  // its own reset/seed pass (the database-isolation guarantee). Direct
43
39
  // callers/tests that omit it fall back to the story's full run set, which
@@ -50,7 +46,7 @@ export async function runStoryWithBrowser(browser, options, startedAt) {
50
46
  // failed if any breakpoint had a failed/skipped action, else changed if any
51
47
  // breakpoint drifted or introduced a new baseline, else pass.
52
48
  let storyStatus = 'pass';
53
- // `produces` writes the post-run storage state exactly once — from the first
49
+ // `produces` writes the post-run storage state exactly once, from the first
54
50
  // breakpoint whose action sequence did not fail. Persisting per breakpoint
55
51
  // would redundantly rewrite (and risk clobbering) the same `<label>.json`
56
52
  // with state that is identical for auth purposes; one good run is enough.
@@ -62,15 +58,15 @@ export async function runStoryWithBrowser(browser, options, startedAt) {
62
58
  let firstTracePath;
63
59
  for (const breakpoint of runSet) {
64
60
  // Apply the story's own fixtures before the breakpoint context launches.
65
- // The deeper cross-breakpoint isolation — a destructive story (change
61
+ // The deeper cross-breakpoint isolation, a destructive story (change
66
62
  // password, empty read history) mutating globally-seeded rows it does not
67
- // own a fixture for — is handled one level up: the run driver executes each
63
+ // own a fixture for, is handled one level up: the run driver executes each
68
64
  // breakpoint as a separate pass behind a full `database.reset()`, so this
69
65
  // call only owns the story-local seed. Fixtures stay idempotent (each
70
66
  // deletes its own rows before re-inserting), so a non-mutating story pays
71
67
  // just a cheap re-apply. When this loop runs multiple breakpoints itself
72
68
  // (a direct caller that passed no single `breakpoint`), the fixture re-apply
73
- // is the only reset between them — that path does not get the per-pass DB
69
+ // is the only reset between them. That path does not get the per-pass DB
74
70
  // reset, so destructive multi-breakpoint stories must run through the driver.
75
71
  for (const fixture of story.fixtures ?? []) {
76
72
  await applyFixture(config, fixture);
@@ -84,13 +80,13 @@ export async function runStoryWithBrowser(browser, options, startedAt) {
84
80
  });
85
81
  // The whole per-breakpoint lifecycle runs under try/finally so the context
86
82
  // is ALWAYS closed, even when something inside throws. Throw policy: an
87
- // *action* failing is a normal visual-regression outcome — it returns a
83
+ // *action* failing is a normal visual-regression outcome. It returns a
88
84
  // `failed` ActionResult, the loop records it, and the remaining breakpoints
89
85
  // still run (the documented "one breakpoint failing does not abort the
90
86
  // others" guarantee). A *thrown* exception here is different: it means the
91
87
  // harness itself faulted (tracing/coverage threw, the page crashed, an
92
88
  // unexpected error escaped `runActionsForBreakpoint`). That is not a diff to
93
- // report — it is an infra fault, so we let it propagate and abort the whole
89
+ // report. It is an infra fault, so we let it propagate and abort the whole
94
90
  // story. The `finally` guarantees we still close this context first, so a
95
91
  // throw can never leak the in-flight BrowserContext (the bug this guards).
96
92
  try {
@@ -117,8 +113,8 @@ export async function runStoryWithBrowser(browser, options, startedAt) {
117
113
  firstTracePath = tracePath;
118
114
  }
119
115
  // Persist once, from the first breakpoint that ran clean. A failure in
120
- // this breakpoint does not abort the loop — the remaining breakpoints
121
- // still run so the report shows every mode — but it cannot supply the
116
+ // this breakpoint does not abort the loop (the remaining breakpoints
117
+ // still run so the report shows every mode) but it cannot supply the
122
118
  // auth state.
123
119
  if (!producedPersisted &&
124
120
  breakpointRun.status !== 'failed' &&
@@ -146,13 +142,13 @@ export async function runStoryWithBrowser(browser, options, startedAt) {
146
142
  /**
147
143
  * Picks the breakpoint(s) this story runs at:
148
144
  *
149
- * - `story.breakpoints` set — run exactly those, REPLACING the project's
145
+ * - `story.breakpoints` set: run exactly those, REPLACING the project's
150
146
  * `config.breakpoints` (not intersected). The story's list stands alone:
151
147
  * it may name a mode the project does not, each selector resolved against
152
148
  * the registry, order preserved, duplicate names dropped (first wins). The
153
149
  * schema guarantees a non-empty list when the field is present.
154
150
  *
155
- * - omitted — run the project's `config.breakpoints`, in order (the default).
151
+ * - omitted: run the project's `config.breakpoints`, in order (the default).
156
152
  */
157
153
  export function resolveRunSet(story, config) {
158
154
  if (story.breakpoints && story.breakpoints.length > 0) {
@@ -179,7 +175,7 @@ export function mergeStoryStatus(current, next) {
179
175
  * Runs every action of the story once, in order, against a single breakpoint's
180
176
  * page. Preserves the existing within-breakpoint fail-fast: once an action
181
177
  * fails (or names an unknown action), the remaining actions of THIS breakpoint
182
- * are skipped — we never screenshot state that follows a broken step. The
178
+ * are skipped. We never screenshot state that follows a broken step. The
183
179
  * returned status is scoped to this breakpoint; the caller merges it into the
184
180
  * story-wide status across all breakpoints.
185
181
  */
@@ -256,7 +252,7 @@ async function resolveStorageStateForNeeds(config, needs) {
256
252
  catch {
257
253
  // Producer ran but did not emit a storage state file. That is fine
258
254
  // when the label only carries an ordering constraint, not an auth
259
- // payload — fall through to the next label.
255
+ // payload. Fall through to the next label.
260
256
  }
261
257
  }
262
258
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"runStory.js","sourceRoot":"","sources":["../../src/runner/runStory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EACL,QAAQ,GAIT,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AAQtB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA2B3C,MAAM,YAAY,GAAG,QAAQ,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,6EAA6E;IAC7E,wDAAwD;IACxD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,OAAO,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAAgB,EAChB,OAAwB,EACxB,SAAe;IAEf,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACnE,uEAAuE;IACvE,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1E,6EAA6E;IAC7E,qEAAqE;IACrE,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU;QAC/B,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QACtB,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,6EAA6E;IAC7E,4EAA4E;IAC5E,8DAA8D;IAC9D,IAAI,WAAW,GAAgB,MAAM,CAAC;IACtC,6EAA6E;IAC7E,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,6EAA6E;IAC7E,4EAA4E;IAC5E,uEAAuE;IACvE,2DAA2D;IAC3D,IAAI,cAAkC,CAAC;IAEvC,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;QAChC,yEAAyE;QACzE,sEAAsE;QACtE,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,sEAAsE;QACtE,0EAA0E;QAC1E,yEAAyE;QACzE,6EAA6E;QAC7E,0EAA0E;QAC1E,8EAA8E;QAC9E,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC3C,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YACvC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE;YAChE,YAAY,EAAE,gBAAgB;YAC9B,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;SACnD,CAAC,CAAC;QACH,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,4EAA4E;QAC5E,uEAAuE;QACvE,2EAA2E;QAC3E,uEAAuE;QACvE,6EAA6E;QAC7E,4EAA4E;QAC5E,0EAA0E;QAC1E,2EAA2E;QAC3E,IAAI,CAAC;YACH,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACnD,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC1B,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,GAAG,IAAI,KAAK,UAAU,CAAC,IAAI,GAAG;aACtC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,uBAAuB,CACjD,IAAI,EACJ,UAAU,EACV,OAAO,CACR,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACvC,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;YAElE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,OAAO,EACP,MAAM,EACN,IAAI,EACJ,UAAU,CAAC,IAAI,EACf,aAAa,CAAC,MAAM,CACrB,CAAC;YACF,IAAI,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBAC9C,cAAc,GAAG,SAAS,CAAC;YAC7B,CAAC;YACD,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,cAAc;YACd,IACE,CAAC,iBAAiB;gBAClB,aAAa,CAAC,MAAM,KAAK,QAAQ;gBACjC,QAAQ,CAAC,MAAM,GAAG,CAAC,EACnB,CAAC;gBACD,MAAM,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC1D,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI;QACJ,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;QAClC,UAAU,EAAE,UAAU,CAAC,WAAW,EAAE;QACpC,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE;QACtD,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,cAAc;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAY,EACZ,MAAsB;IAEtB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,OAAO,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAgC;IACrD,IAAI,EAAE,CAAC;IACP,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAC9B,OAAoB,EACpB,IAAiB;IAEjB,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/E,CAAC;AAOD;;;;;;;GAOG;AACH,KAAK,UAAU,uBAAuB,CACpC,IAAU,EACV,UAA8B,EAC9B,OAAwB;IAExB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACjD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,MAAM,GAAgB,MAAM,CAAC;IAEjC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CACV,OAAO,CACL,SAAS,CAAC,MAAM,EAChB,UAAU,CAAC,IAAI,EACf,gBAAgB,EAChB,SAAS,CAAC,UAAU,CACrB,CACF,CAAC;YACF,MAAM,GAAG,QAAQ,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CACV,OAAO,CACL,SAAS,CAAC,MAAM,EAChB,UAAU,CAAC,IAAI,EACf,uBAAuB,EACvB,SAAS,CAAC,UAAU,CACrB,CACF,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,IAAI;YACJ,MAAM;YACN,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,EAAE;YACtC,SAAS,EAAE,IAAI;YACf,MAAM;YACN,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,2EAA2E;QAC3E,0EAA0E;QAC1E,6EAA6E;QAC7E,IACE,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC1B,MAAM,CAAC,MAAM,KAAK,SAAS;YAC3B,MAAM,CAAC,MAAM,KAAK,KAAK,EACvB,CAAC;YACD,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,6EAA6E;IAC7E,0CAA0C;IAC1C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC;QAC1C,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,WAAW,CACxB,OAAuB,EACvB,MAAsB,EACtB,SAAiB,EACjB,UAAkB,EAClB,gBAA6B;IAE7B,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC/D,MAAM,KAAK,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,IAAI,UAAU,MAAM,CAAC,CAAC;IACpE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,MAAsB,EACtB,KAAe;IAEf,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;YACnE,kEAAkE;YAClE,4CAA4C;QAC9C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAAuB,EACvB,MAAsB,EACtB,QAAkB;IAElB,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC;QAC3D,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CACd,UAAkB,EAClB,UAAkB,EAClB,MAAc,EACd,UAAmC;IAEnC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,UAAU;QACV,MAAM,EAAE,SAAS;QACjB,UAAU;QACV,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,GAAG;QACf,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,MAAM;KACvB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runStory.js","sourceRoot":"","sources":["../../src/runner/runStory.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,17 @@ import type { StoryResult } from '../schema/result.ts';
3
3
  export interface ScheduledStory extends StoryFile {
4
4
  needs: string[];
5
5
  produces: string[];
6
+ /**
7
+ * The story's ORIGINAL needs, retained for AUTH resolution across a
8
+ * breakpoint pass even when `needs` (the scheduler-facing set) is stripped to
9
+ * the in-pass subset by {@link adaptNeedsForPass}. `resolveStorageStateForNeeds`
10
+ * reads this so a consumer whose producer rendered in a DIFFERENT pass still
11
+ * loads that producer's on-disk auth state. Otherwise the consumer would
12
+ * render logged-out. Absent on stories that never went through
13
+ * `adaptNeedsForPass` (direct callers/tests), where `needs` is already the
14
+ * full set; the auth path falls back to `needs` then.
15
+ */
16
+ authNeeds?: string[];
6
17
  }
7
18
  export interface ScheduleSummary {
8
19
  ready: ScheduledStory[];
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/runner/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AAEpE,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAgCpE;AASD,MAAM,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,cAAc,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE9E;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,GAC5D,OAAO,CAAC,WAAW,EAAE,CAAC,CA6GxB;AAgFD,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/runner/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAgCpE;AASD,MAAM,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,cAAc,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAE9E;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,cAAc,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,EACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,GAC5D,OAAO,CAAC,WAAW,EAAE,CAAC,CA6GxB;AAgFD,qBAAa,cAAe,SAAQ,KAAK;gBAC3B,OAAO,EAAE,MAAM;CAI5B"}