tuffgal 0.1.0-alpha.8 → 0.2.0-alpha.1
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.
- package/CHANGELOG.md +140 -1
- package/README.md +82 -4
- package/dist/cli.d.ts +50 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +204 -18
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +19 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/config.d.ts +121 -10
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +114 -9
- package/dist/config.js.map +1 -1
- package/dist/coverage/screens.d.ts +11 -6
- package/dist/coverage/screens.d.ts.map +1 -1
- package/dist/coverage/screens.js +12 -7
- package/dist/coverage/screens.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/reporter/assets/report.css +330 -50
- package/dist/reporter/assets/report.js +361 -55
- package/dist/reporter/template.d.ts +8 -1
- package/dist/reporter/template.d.ts.map +1 -1
- package/dist/reporter/template.js +447 -78
- package/dist/reporter/template.js.map +1 -1
- package/dist/reporter/writeReport.d.ts +2 -2
- package/dist/reporter/writeReport.d.ts.map +1 -1
- package/dist/reporter/writeReport.js +3 -3
- package/dist/reporter/writeReport.js.map +1 -1
- package/dist/runner/approve.d.ts +34 -9
- package/dist/runner/approve.d.ts.map +1 -1
- package/dist/runner/approve.js +54 -10
- package/dist/runner/approve.js.map +1 -1
- package/dist/runner/approveFrom.d.ts +58 -0
- package/dist/runner/approveFrom.d.ts.map +1 -0
- package/dist/runner/approveFrom.js +384 -0
- package/dist/runner/approveFrom.js.map +1 -0
- package/dist/runner/breakpointPasses.d.ts +39 -0
- package/dist/runner/breakpointPasses.d.ts.map +1 -0
- package/dist/runner/breakpointPasses.js +107 -0
- package/dist/runner/breakpointPasses.js.map +1 -0
- package/dist/runner/bridges/database.d.ts +4 -3
- package/dist/runner/bridges/database.d.ts.map +1 -1
- package/dist/runner/bridges/database.js +4 -3
- package/dist/runner/bridges/database.js.map +1 -1
- package/dist/runner/exitCode.d.ts +34 -0
- package/dist/runner/exitCode.d.ts.map +1 -0
- package/dist/runner/exitCode.js +41 -0
- package/dist/runner/exitCode.js.map +1 -0
- package/dist/runner/manifest.d.ts +149 -0
- package/dist/runner/manifest.d.ts.map +1 -0
- package/dist/runner/manifest.js +229 -0
- package/dist/runner/manifest.js.map +1 -0
- package/dist/runner/mode.d.ts +41 -0
- package/dist/runner/mode.d.ts.map +1 -0
- package/dist/runner/mode.js +43 -0
- package/dist/runner/mode.js.map +1 -0
- package/dist/runner/orphanScan.d.ts +68 -0
- package/dist/runner/orphanScan.d.ts.map +1 -0
- package/dist/runner/orphanScan.js +150 -0
- package/dist/runner/orphanScan.js.map +1 -0
- package/dist/runner/run.d.ts +85 -1
- package/dist/runner/run.d.ts.map +1 -1
- package/dist/runner/run.js +267 -41
- package/dist/runner/run.js.map +1 -1
- package/dist/runner/runAction.d.ts +22 -0
- package/dist/runner/runAction.d.ts.map +1 -1
- package/dist/runner/runAction.js +146 -24
- package/dist/runner/runAction.js.map +1 -1
- package/dist/runner/runStory.d.ts +40 -2
- package/dist/runner/runStory.d.ts.map +1 -1
- package/dist/runner/runStory.js +195 -62
- package/dist/runner/runStory.js.map +1 -1
- package/dist/runner/storyFilter.d.ts +8 -0
- package/dist/runner/storyFilter.d.ts.map +1 -1
- package/dist/runner/storyFilter.js +11 -0
- package/dist/runner/storyFilter.js.map +1 -1
- package/dist/schema/action.d.ts +11 -11
- package/dist/schema/result.d.ts +124 -6
- package/dist/schema/result.d.ts.map +1 -1
- package/dist/schema/result.js.map +1 -1
- package/dist/schema/story.d.ts +15 -4
- package/dist/schema/story.d.ts.map +1 -1
- package/dist/schema/story.js +35 -11
- package/dist/schema/story.js.map +1 -1
- package/dist/screenshots/baselineStore.d.ts +111 -5
- package/dist/screenshots/baselineStore.d.ts.map +1 -1
- package/dist/screenshots/baselineStore.js +132 -20
- package/dist/screenshots/baselineStore.js.map +1 -1
- package/dist/screenshots/capture.d.ts +10 -5
- package/dist/screenshots/capture.d.ts.map +1 -1
- package/dist/screenshots/capture.js +31 -18
- package/dist/screenshots/capture.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export interface InitOptions {
|
|
|
7
7
|
* - tuffgal/actions/.gitkeep
|
|
8
8
|
* - tuffgal/stories/.gitkeep
|
|
9
9
|
* - tuffgal/baselines/.gitkeep
|
|
10
|
-
* - tuffgal/.gitignore (ignores .auth
|
|
10
|
+
* - tuffgal/.gitignore (ignores .auth/, .cache/, and report/)
|
|
11
11
|
*
|
|
12
12
|
* Refuses to overwrite an existing tuffgal.config.{ts,js}. Existing
|
|
13
13
|
* scaffolded directories are left alone — a second \`init\` is safe to run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAyFA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6C9D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -18,6 +18,10 @@ export default defineConfig({
|
|
|
18
18
|
baselines: 'tuffgal/baselines',
|
|
19
19
|
report: 'tuffgal/report',
|
|
20
20
|
authState: 'tuffgal/.auth',
|
|
21
|
+
|
|
22
|
+
// Per-machine, gitignored cache for local (advisory) mode — self-diff
|
|
23
|
+
// against your last accepted local state. Defaults to 'tuffgal/.cache'.
|
|
24
|
+
// localCache: 'tuffgal/.cache',
|
|
21
25
|
},
|
|
22
26
|
|
|
23
27
|
baseUrl: process.env.APP_BASE_URL ?? 'http://localhost:5173',
|
|
@@ -30,7 +34,19 @@ export default defineConfig({
|
|
|
30
34
|
// leave this empty — cookies always persist via Playwright storage state.
|
|
31
35
|
// storageStatePins: ['session_token'],
|
|
32
36
|
|
|
33
|
-
|
|
37
|
+
// Breakpoint modes to run, keyed to Tailwind widths:
|
|
38
|
+
// mobile 375x667 · tablet 768x1024 · laptop 1024x768 · desktop 1280x800
|
|
39
|
+
// Each mode gets its own baseline + a group in the report. Omit to run a
|
|
40
|
+
// single \`desktop\` mode (1280x800). Override a mode's size with an object,
|
|
41
|
+
// e.g. { name: 'desktop', width: 1440, height: 900 }. A story can run its own
|
|
42
|
+
// modes via its own \`breakpoints\` field, which replace these for that story.
|
|
43
|
+
// breakpoints: ['mobile', 'tablet', 'laptop', 'desktop'],
|
|
44
|
+
|
|
45
|
+
// Screenshot scope. 'viewport' (default) crops to each breakpoint's
|
|
46
|
+
// width x height — what the user sees above the fold. 'fullPage' composites
|
|
47
|
+
// the whole scrollable document, however tall.
|
|
48
|
+
// captureMode: 'viewport',
|
|
49
|
+
|
|
34
50
|
defaultTimeoutMs: 10_000,
|
|
35
51
|
navigationTimeoutMs: 15_000,
|
|
36
52
|
frozenTime: '2026-01-15T12:00:00.000Z',
|
|
@@ -63,6 +79,7 @@ const GITKEEP_SUBDIRECTORIES = [
|
|
|
63
79
|
];
|
|
64
80
|
const REPORT_GITIGNORE = `# Generated by Tuffgal — do not commit.
|
|
65
81
|
.auth/
|
|
82
|
+
.cache/
|
|
66
83
|
report/
|
|
67
84
|
`;
|
|
68
85
|
/**
|
|
@@ -71,7 +88,7 @@ report/
|
|
|
71
88
|
* - tuffgal/actions/.gitkeep
|
|
72
89
|
* - tuffgal/stories/.gitkeep
|
|
73
90
|
* - tuffgal/baselines/.gitkeep
|
|
74
|
-
* - tuffgal/.gitignore (ignores .auth
|
|
91
|
+
* - tuffgal/.gitignore (ignores .auth/, .cache/, and report/)
|
|
75
92
|
*
|
|
76
93
|
* Refuses to overwrite an existing tuffgal.config.{ts,js}. Existing
|
|
77
94
|
* scaffolded directories are left alone — a second \`init\` is safe to run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,YAAY,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEhE,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,YAAY,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAEhE,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqEvB,CAAC;AAEF,MAAM,sBAAsB,GAAG;IAC7B,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;CACpB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;CAIxB,CAAC;AAMF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAExB,KAAK,MAAM,SAAS,IAAI,YAAY,EAAE,CAAC;QACrC,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CACb,GAAG,SAAS,sBAAsB,GAAG,2BAA2B;gBAC9D,+CAA+C,CAClD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAClD,MAAM,SAAS,CAAC,UAAU,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,SAAS,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,mBAAmB,IAAI,CAC9D,CAAC;IAEF,KAAK,MAAM,YAAY,IAAI,sBAAsB,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACzC,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,SAAS,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,EAAE;QACF,qCAAqC;QACrC,0DAA0D;QAC1D,sDAAsD;QACtD,qDAAqD;QACrD,kDAAkD;QAClD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
export interface DatabaseBridge {
|
|
7
7
|
/**
|
|
8
8
|
* Wipes the test database and reseeds the deterministic test user. Called
|
|
9
|
-
* once before
|
|
9
|
+
* once per breakpoint pass, before that pass dispatches its first story — so
|
|
10
|
+
* a single-breakpoint run calls it once, and an N-breakpoint run calls it N
|
|
11
|
+
* times, giving each breakpoint a pristine database. Keep it fast.
|
|
10
12
|
*/
|
|
11
13
|
reset?: () => Promise<void>;
|
|
12
14
|
/**
|
|
@@ -41,6 +43,72 @@ export interface DevServerBridge {
|
|
|
41
43
|
/** Grace period before `SIGKILL`. Defaults to 5000. */
|
|
42
44
|
shutdownGraceMs?: number;
|
|
43
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Built-in named viewport modes. Widths track Tailwind's default dimensional
|
|
48
|
+
* breakpoints (sm=640, md=768, lg=1024, xl=1280) so a project's Tuffgal runs
|
|
49
|
+
* line up with the responsive cutoffs its CSS already keys off of:
|
|
50
|
+
* - mobile sits below the sm=640 cutoff (small-phone portrait)
|
|
51
|
+
* - tablet lands exactly on md=768
|
|
52
|
+
* - laptop lands exactly on lg=1024
|
|
53
|
+
* - desktop lands exactly on xl=1280, and preserves the historical
|
|
54
|
+
* 1280x800 default so projects that never opt into breakpoints render
|
|
55
|
+
* identically to before this feature existed.
|
|
56
|
+
* Heights are conventional companions to each width, not Tailwind values
|
|
57
|
+
* (Tailwind breakpoints are width-only).
|
|
58
|
+
*/
|
|
59
|
+
export declare const BREAKPOINTS: {
|
|
60
|
+
readonly mobile: {
|
|
61
|
+
readonly width: 375;
|
|
62
|
+
readonly height: 667;
|
|
63
|
+
};
|
|
64
|
+
readonly tablet: {
|
|
65
|
+
readonly width: 768;
|
|
66
|
+
readonly height: 1024;
|
|
67
|
+
};
|
|
68
|
+
readonly laptop: {
|
|
69
|
+
readonly width: 1024;
|
|
70
|
+
readonly height: 768;
|
|
71
|
+
};
|
|
72
|
+
readonly desktop: {
|
|
73
|
+
readonly width: 1280;
|
|
74
|
+
readonly height: 800;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
/** A built-in breakpoint name. Other modules reuse this for per-mode work. */
|
|
78
|
+
export type BreakpointName = keyof typeof BREAKPOINTS;
|
|
79
|
+
/**
|
|
80
|
+
* How much of the page each screenshot captures:
|
|
81
|
+
* - `viewport` — only the breakpoint's `width x height` box, matching what a
|
|
82
|
+
* real user sees above the fold. The default.
|
|
83
|
+
* - `fullPage` — the whole scrollable document, however tall. Catches
|
|
84
|
+
* below-the-fold regressions at the cost of viewport fidelity (a long page
|
|
85
|
+
* renders at e.g. 1280x2500 instead of 1280x800).
|
|
86
|
+
*/
|
|
87
|
+
export type CaptureMode = 'viewport' | 'fullPage';
|
|
88
|
+
/**
|
|
89
|
+
* One resolved breakpoint mode: a name plus the viewport dimensions to render
|
|
90
|
+
* at. Built from a {@link BreakpointSelector} (a registry entry, optionally
|
|
91
|
+
* with a dimension override). Exported so the runner consumes the same shape
|
|
92
|
+
* `resolveConfig` emits instead of redeclaring its own copy.
|
|
93
|
+
*/
|
|
94
|
+
export type ResolvedBreakpoint = {
|
|
95
|
+
name: string;
|
|
96
|
+
width: number;
|
|
97
|
+
height: number;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* One breakpoint selection in `config.breakpoints` (and per-story
|
|
101
|
+
* `breakpoints`): either a bare registry name — render at that mode's built-in
|
|
102
|
+
* dimensions — or `{ name, width?, height? }` to override the viewport for that
|
|
103
|
+
* mode. An omitted `width`/`height` inherits the registry default for the
|
|
104
|
+
* named mode. Bare-string entries keep older `['mobile', 'desktop']` configs
|
|
105
|
+
* working unchanged.
|
|
106
|
+
*/
|
|
107
|
+
export type BreakpointSelector = BreakpointName | {
|
|
108
|
+
name: BreakpointName;
|
|
109
|
+
width?: number;
|
|
110
|
+
height?: number;
|
|
111
|
+
};
|
|
44
112
|
/**
|
|
45
113
|
* Static paths Tuffgal reads + writes. All relative to the config file's
|
|
46
114
|
* location.
|
|
@@ -56,6 +124,15 @@ export interface PathsConfig {
|
|
|
56
124
|
report: string;
|
|
57
125
|
/** Storage state cache for `produces`/`needs` label inheritance. */
|
|
58
126
|
authState?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Per-machine, gitignored comparison cache for local (advisory) mode. Local
|
|
129
|
+
* runs self-diff against this instead of the committed `baselines` set, so a
|
|
130
|
+
* developer's platform pixels never fight CI's. Defaults to `tuffgal/.cache`
|
|
131
|
+
* (relative to the config dir) — inside the same `tuffgal/` subtree as the
|
|
132
|
+
* scaffolded `tuffgal/.gitignore`, whose `.cache/` entry ignores it. Committed
|
|
133
|
+
* baselines are never written here.
|
|
134
|
+
*/
|
|
135
|
+
localCache?: string;
|
|
59
136
|
}
|
|
60
137
|
/**
|
|
61
138
|
* Root config shape passed to `defineConfig()`.
|
|
@@ -77,11 +154,23 @@ export interface TuffgalConfig {
|
|
|
77
154
|
* state.
|
|
78
155
|
*/
|
|
79
156
|
storageStatePins?: string[];
|
|
80
|
-
/**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Breakpoint modes this project runs, drawn from the built-in
|
|
159
|
+
* {@link BREAKPOINTS} registry (`mobile` | `tablet` | `laptop` | `desktop`).
|
|
160
|
+
* Each entry is either a bare name (registry dimensions) or
|
|
161
|
+
* `{ name, width?, height? }` to override that mode's viewport — an omitted
|
|
162
|
+
* `width`/`height` inherits the registry default. Order is preserved; when a
|
|
163
|
+
* name repeats, the first entry wins and later duplicates are dropped. Omit
|
|
164
|
+
* the field to run a single `desktop` breakpoint (1280x800).
|
|
165
|
+
*/
|
|
166
|
+
breakpoints?: BreakpointSelector[];
|
|
167
|
+
/**
|
|
168
|
+
* How much of the page each screenshot captures. `viewport` (default) crops
|
|
169
|
+
* to the breakpoint's `width x height` so diffs reflect what the user sees
|
|
170
|
+
* above the fold; `fullPage` composites the whole scrollable document. See
|
|
171
|
+
* {@link CaptureMode}.
|
|
172
|
+
*/
|
|
173
|
+
captureMode?: CaptureMode;
|
|
85
174
|
/** Default Playwright locator + action timeout. Defaults to 10_000. */
|
|
86
175
|
defaultTimeoutMs?: number;
|
|
87
176
|
/** Default navigation timeout. Defaults to 15_000. */
|
|
@@ -105,6 +194,12 @@ export interface TuffgalConfig {
|
|
|
105
194
|
* `customCoverage.flows` in the report.
|
|
106
195
|
*/
|
|
107
196
|
flowInventory?: string;
|
|
197
|
+
/**
|
|
198
|
+
* Render the interactive screenshot viewer instead of the static radio-tab
|
|
199
|
+
* report. Defaults to `false`, so the report keeps its historical radio-tab
|
|
200
|
+
* output unless a project explicitly opts in.
|
|
201
|
+
*/
|
|
202
|
+
interactiveMode?: boolean;
|
|
108
203
|
}
|
|
109
204
|
/**
|
|
110
205
|
* Resolved config — every optional field replaced with a concrete value
|
|
@@ -117,10 +212,16 @@ export interface ResolvedConfig {
|
|
|
117
212
|
baseUrl: string;
|
|
118
213
|
apiHost: string | undefined;
|
|
119
214
|
storageStatePins: string[];
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
215
|
+
/**
|
|
216
|
+
* Resolved breakpoint modes, always non-empty. Each entry carries the
|
|
217
|
+
* viewport dimensions to render at. Built from `config.breakpoints` when set,
|
|
218
|
+
* else a single `desktop` default. Typed as a non-empty tuple so callers can
|
|
219
|
+
* read `breakpoints[0]` without an undefined check under
|
|
220
|
+
* noUncheckedIndexedAccess.
|
|
221
|
+
*/
|
|
222
|
+
breakpoints: [ResolvedBreakpoint, ...ResolvedBreakpoint[]];
|
|
223
|
+
/** Resolved screenshot scope; defaults to `viewport`. */
|
|
224
|
+
captureMode: CaptureMode;
|
|
124
225
|
defaultTimeoutMs: number;
|
|
125
226
|
navigationTimeoutMs: number;
|
|
126
227
|
frozenTime: string;
|
|
@@ -128,6 +229,8 @@ export interface ResolvedConfig {
|
|
|
128
229
|
database: DatabaseBridge | undefined;
|
|
129
230
|
devServers: DevServerBridge | undefined;
|
|
130
231
|
flowInventory: string | undefined;
|
|
232
|
+
/** Resolved interactive-viewer flag; defaults to `false`. */
|
|
233
|
+
interactiveMode: boolean;
|
|
131
234
|
}
|
|
132
235
|
/**
|
|
133
236
|
* Helper that returns its argument unchanged. Use in a `tuffgal.config.ts`
|
|
@@ -150,4 +253,12 @@ export declare function loadConfig(cwd: string): Promise<ResolvedConfig>;
|
|
|
150
253
|
* own call sites. `source` is the config file path, surfaced in every message.
|
|
151
254
|
*/
|
|
152
255
|
export declare function assertValidConfig(input: unknown, source: string): void;
|
|
256
|
+
/**
|
|
257
|
+
* Resolves a list of selectors to concrete breakpoints, preserving order and
|
|
258
|
+
* dropping duplicate names (first entry wins). Shared by config-level and
|
|
259
|
+
* per-story breakpoint resolution so both normalise the same way: each list
|
|
260
|
+
* stands alone, resolved against the registry, never cross-referencing the
|
|
261
|
+
* other. The caller guarantees the input is non-empty.
|
|
262
|
+
*/
|
|
263
|
+
export declare function resolveSelectorList(selectors: BreakpointSelector[]): ResolvedBreakpoint[];
|
|
153
264
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -9,12 +9,33 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
9
9
|
import { pathToFileURL } from 'node:url';
|
|
10
10
|
import { resolve } from 'node:path';
|
|
11
11
|
import { access } from 'node:fs/promises';
|
|
12
|
+
/**
|
|
13
|
+
* Built-in named viewport modes. Widths track Tailwind's default dimensional
|
|
14
|
+
* breakpoints (sm=640, md=768, lg=1024, xl=1280) so a project's Tuffgal runs
|
|
15
|
+
* line up with the responsive cutoffs its CSS already keys off of:
|
|
16
|
+
* - mobile sits below the sm=640 cutoff (small-phone portrait)
|
|
17
|
+
* - tablet lands exactly on md=768
|
|
18
|
+
* - laptop lands exactly on lg=1024
|
|
19
|
+
* - desktop lands exactly on xl=1280, and preserves the historical
|
|
20
|
+
* 1280x800 default so projects that never opt into breakpoints render
|
|
21
|
+
* identically to before this feature existed.
|
|
22
|
+
* Heights are conventional companions to each width, not Tailwind values
|
|
23
|
+
* (Tailwind breakpoints are width-only).
|
|
24
|
+
*/
|
|
25
|
+
export const BREAKPOINTS = {
|
|
26
|
+
mobile: { width: 375, height: 667 },
|
|
27
|
+
tablet: { width: 768, height: 1024 },
|
|
28
|
+
laptop: { width: 1024, height: 768 },
|
|
29
|
+
desktop: { width: 1280, height: 800 },
|
|
30
|
+
};
|
|
12
31
|
const DEFAULTS = {
|
|
13
|
-
|
|
32
|
+
captureMode: 'viewport',
|
|
14
33
|
defaultTimeoutMs: 10_000,
|
|
15
34
|
navigationTimeoutMs: 15_000,
|
|
16
35
|
frozenTime: '2026-01-15T12:00:00.000Z',
|
|
17
36
|
authStateRelative: '.auth',
|
|
37
|
+
localCacheRelative: 'tuffgal/.cache',
|
|
38
|
+
interactiveMode: false,
|
|
18
39
|
};
|
|
19
40
|
/**
|
|
20
41
|
* Helper that returns its argument unchanged. Use in a `tuffgal.config.ts`
|
|
@@ -78,6 +99,9 @@ export function assertValidConfig(input, source) {
|
|
|
78
99
|
if (paths.authState !== undefined && typeof paths.authState !== 'string') {
|
|
79
100
|
fail('`paths.authState` must be a string when provided.');
|
|
80
101
|
}
|
|
102
|
+
if (paths.localCache !== undefined && typeof paths.localCache !== 'string') {
|
|
103
|
+
fail('`paths.localCache` must be a string when provided.');
|
|
104
|
+
}
|
|
81
105
|
if (typeof config.baseUrl !== 'string') {
|
|
82
106
|
fail('`baseUrl` is required and must be a string.');
|
|
83
107
|
}
|
|
@@ -96,17 +120,44 @@ export function assertValidConfig(input, source) {
|
|
|
96
120
|
fail(`\`${key}\` must be a string when provided.`);
|
|
97
121
|
}
|
|
98
122
|
}
|
|
99
|
-
if (config.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
123
|
+
if (config.interactiveMode !== undefined &&
|
|
124
|
+
typeof config.interactiveMode !== 'boolean') {
|
|
125
|
+
fail('`interactiveMode` must be a boolean when provided.');
|
|
126
|
+
}
|
|
127
|
+
if (config.captureMode !== undefined &&
|
|
128
|
+
config.captureMode !== 'viewport' &&
|
|
129
|
+
config.captureMode !== 'fullPage') {
|
|
130
|
+
fail("`captureMode` must be 'viewport' or 'fullPage' when provided.");
|
|
131
|
+
}
|
|
132
|
+
if (config.breakpoints !== undefined) {
|
|
133
|
+
const validNames = Object.keys(BREAKPOINTS);
|
|
134
|
+
const breakpoints = config.breakpoints;
|
|
135
|
+
if (!Array.isArray(breakpoints) || breakpoints.length === 0) {
|
|
136
|
+
fail('`breakpoints` must be a non-empty array of breakpoint names or ' +
|
|
137
|
+
'override objects.');
|
|
138
|
+
}
|
|
139
|
+
for (const entry of breakpoints) {
|
|
140
|
+
const name = typeof entry === 'string'
|
|
141
|
+
? entry
|
|
142
|
+
: entry?.name;
|
|
143
|
+
if (typeof name !== 'string' || !validNames.includes(name)) {
|
|
144
|
+
fail(`\`breakpoints\` contains an unknown breakpoint ${JSON.stringify(entry)}. Valid names: ${validNames.join(', ')}.`);
|
|
145
|
+
}
|
|
146
|
+
if (typeof entry === 'object' && entry !== null) {
|
|
147
|
+
const override = entry;
|
|
148
|
+
for (const dim of ['width', 'height']) {
|
|
149
|
+
if (override[dim] !== undefined &&
|
|
150
|
+
(typeof override[dim] !== 'number' ||
|
|
151
|
+
override[dim] <= 0)) {
|
|
152
|
+
fail(`\`breakpoints[].${dim}\` must be a positive number when provided.`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
106
156
|
}
|
|
107
157
|
}
|
|
108
158
|
}
|
|
109
159
|
function resolveConfig(input, rootDir) {
|
|
160
|
+
const breakpoints = resolveBreakpoints(input);
|
|
110
161
|
return {
|
|
111
162
|
rootDir,
|
|
112
163
|
paths: {
|
|
@@ -115,11 +166,13 @@ function resolveConfig(input, rootDir) {
|
|
|
115
166
|
baselines: resolve(rootDir, input.paths.baselines),
|
|
116
167
|
report: resolve(rootDir, input.paths.report),
|
|
117
168
|
authState: resolve(rootDir, input.paths.authState ?? DEFAULTS.authStateRelative),
|
|
169
|
+
localCache: resolve(rootDir, input.paths.localCache ?? DEFAULTS.localCacheRelative),
|
|
118
170
|
},
|
|
119
171
|
baseUrl: input.baseUrl,
|
|
120
172
|
apiHost: input.apiHost,
|
|
121
173
|
storageStatePins: input.storageStatePins ?? [],
|
|
122
|
-
|
|
174
|
+
breakpoints,
|
|
175
|
+
captureMode: input.captureMode ?? DEFAULTS.captureMode,
|
|
123
176
|
defaultTimeoutMs: input.defaultTimeoutMs ?? DEFAULTS.defaultTimeoutMs,
|
|
124
177
|
navigationTimeoutMs: input.navigationTimeoutMs ?? DEFAULTS.navigationTimeoutMs,
|
|
125
178
|
frozenTime: input.frozenTime ?? DEFAULTS.frozenTime,
|
|
@@ -129,6 +182,58 @@ function resolveConfig(input, rootDir) {
|
|
|
129
182
|
flowInventory: input.flowInventory
|
|
130
183
|
? resolve(rootDir, input.flowInventory)
|
|
131
184
|
: undefined,
|
|
185
|
+
interactiveMode: input.interactiveMode ?? DEFAULTS.interactiveMode,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Resolves one {@link BreakpointSelector} to its concrete dimensions: a bare
|
|
190
|
+
* name takes the registry defaults, an override object layers its `width`/
|
|
191
|
+
* `height` over them. Validation guarantees the name is a valid registry key
|
|
192
|
+
* by the time we get here.
|
|
193
|
+
*/
|
|
194
|
+
function normaliseSelector(selector) {
|
|
195
|
+
if (typeof selector === 'string') {
|
|
196
|
+
return { name: selector, ...BREAKPOINTS[selector] };
|
|
197
|
+
}
|
|
198
|
+
const base = BREAKPOINTS[selector.name];
|
|
199
|
+
return {
|
|
200
|
+
name: selector.name,
|
|
201
|
+
width: selector.width ?? base.width,
|
|
202
|
+
height: selector.height ?? base.height,
|
|
132
203
|
};
|
|
133
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Resolves a list of selectors to concrete breakpoints, preserving order and
|
|
207
|
+
* dropping duplicate names (first entry wins). Shared by config-level and
|
|
208
|
+
* per-story breakpoint resolution so both normalise the same way: each list
|
|
209
|
+
* stands alone, resolved against the registry, never cross-referencing the
|
|
210
|
+
* other. The caller guarantees the input is non-empty.
|
|
211
|
+
*/
|
|
212
|
+
export function resolveSelectorList(selectors) {
|
|
213
|
+
const seen = new Set();
|
|
214
|
+
const resolved = [];
|
|
215
|
+
for (const selector of selectors) {
|
|
216
|
+
const breakpoint = normaliseSelector(selector);
|
|
217
|
+
if (seen.has(breakpoint.name))
|
|
218
|
+
continue;
|
|
219
|
+
seen.add(breakpoint.name);
|
|
220
|
+
resolved.push(breakpoint);
|
|
221
|
+
}
|
|
222
|
+
return resolved;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Resolves `config.breakpoints` to an always-non-empty list: the explicit
|
|
226
|
+
* selectors when set (order preserved, duplicate names dropped — first wins),
|
|
227
|
+
* else a single `desktop` breakpoint (1280x800). `assertValidConfig` has
|
|
228
|
+
* already rejected unknown/empty `breakpoints`, so a non-empty input dedupes to
|
|
229
|
+
* at least one entry; the cast restores the non-empty tuple type that lets
|
|
230
|
+
* `breakpoints[0]` read without an undefined check under
|
|
231
|
+
* noUncheckedIndexedAccess.
|
|
232
|
+
*/
|
|
233
|
+
function resolveBreakpoints(input) {
|
|
234
|
+
if (input.breakpoints && input.breakpoints.length > 0) {
|
|
235
|
+
return resolveSelectorList(input.breakpoints);
|
|
236
|
+
}
|
|
237
|
+
return [{ name: 'desktop', ...BREAKPOINTS.desktop }];
|
|
238
|
+
}
|
|
134
239
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import type { CoverageMetric } from '../schema/result.ts';
|
|
2
2
|
/**
|
|
3
|
-
* Walks every `visit-*.json` action under `<actions>/screens/` and reports
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
3
|
+
* Walks every `visit-*.json` action under `<actions>/screens/` and reports how
|
|
4
|
+
* many have a baseline screenshot at `<baselineRoot>/<action-name>/0.png`. The
|
|
5
|
+
* action name is taken from the filename (minus the `.json` suffix), which by
|
|
6
|
+
* convention matches the action's declared `action` field.
|
|
7
|
+
*
|
|
8
|
+
* `baselineRoot` is the set the run compares against: committed `paths.baselines`
|
|
9
|
+
* in CI mode, the per-machine `paths.localCache` in local mode (the caller — see
|
|
10
|
+
* `coverageComparisonRoot` — picks it by mode so a local run never reads
|
|
11
|
+
* `paths.baselines`). The metric's meaning is the same either way: how many
|
|
12
|
+
* screens have a baseline to diff against.
|
|
8
13
|
*/
|
|
9
|
-
export declare function computeScreenCoverage(actionsDir: string,
|
|
14
|
+
export declare function computeScreenCoverage(actionsDir: string, baselineRoot: string): Promise<CoverageMetric>;
|
|
10
15
|
//# sourceMappingURL=screens.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../src/coverage/screens.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D
|
|
1
|
+
{"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../src/coverage/screens.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,cAAc,CAAC,CA6BzB"}
|
package/dist/coverage/screens.js
CHANGED
|
@@ -2,13 +2,18 @@ import { access, readdir } from 'node:fs/promises';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
const SCREENS_SUBDIR = 'screens';
|
|
4
4
|
/**
|
|
5
|
-
* Walks every `visit-*.json` action under `<actions>/screens/` and reports
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* Walks every `visit-*.json` action under `<actions>/screens/` and reports how
|
|
6
|
+
* many have a baseline screenshot at `<baselineRoot>/<action-name>/0.png`. The
|
|
7
|
+
* action name is taken from the filename (minus the `.json` suffix), which by
|
|
8
|
+
* convention matches the action's declared `action` field.
|
|
9
|
+
*
|
|
10
|
+
* `baselineRoot` is the set the run compares against: committed `paths.baselines`
|
|
11
|
+
* in CI mode, the per-machine `paths.localCache` in local mode (the caller — see
|
|
12
|
+
* `coverageComparisonRoot` — picks it by mode so a local run never reads
|
|
13
|
+
* `paths.baselines`). The metric's meaning is the same either way: how many
|
|
14
|
+
* screens have a baseline to diff against.
|
|
10
15
|
*/
|
|
11
|
-
export async function computeScreenCoverage(actionsDir,
|
|
16
|
+
export async function computeScreenCoverage(actionsDir, baselineRoot) {
|
|
12
17
|
const screensRoot = join(actionsDir, SCREENS_SUBDIR);
|
|
13
18
|
let entries = [];
|
|
14
19
|
try {
|
|
@@ -23,7 +28,7 @@ export async function computeScreenCoverage(actionsDir, baselinesDir) {
|
|
|
23
28
|
.sort();
|
|
24
29
|
const missing = [];
|
|
25
30
|
for (const name of screenNames) {
|
|
26
|
-
const baseline = join(
|
|
31
|
+
const baseline = join(baselineRoot, name, '0.png');
|
|
27
32
|
try {
|
|
28
33
|
await access(baseline);
|
|
29
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/coverage/screens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC
|
|
1
|
+
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/coverage/screens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAkB,EAClB,YAAoB;IAEpB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IACrD,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzD,CAAC;IACD,MAAM,WAAW,GAAG,OAAO;SACxB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC3C,IAAI,EAAE,CAAC;IACV,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC;IACjC,MAAM,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IACvC,OAAO;QACL,KAAK;QACL,OAAO;QACP,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK;QACxC,OAAO;KACR,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { defineConfig, loadConfig, type DatabaseBridge, type DevServerBridge, type PathsConfig, type ResolvedConfig, type TuffgalConfig, } from './config.ts';
|
|
1
|
+
export { BREAKPOINTS, defineConfig, loadConfig, type BreakpointName, type BreakpointSelector, type DatabaseBridge, type DevServerBridge, type PathsConfig, type ResolvedConfig, type TuffgalConfig, } from './config.ts';
|
|
2
2
|
export { init, type InitOptions } from './commands/init.ts';
|
|
3
3
|
export { supervise, type SuperviseOptions } from './commands/supervise.ts';
|
|
4
4
|
export { approveAll, type ApproveOptions } from './runner/approve.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,YAAY,EACZ,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE7D,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE7D,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,GACZ,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Public API. Consumer projects only import what's exported here. Anything
|
|
2
2
|
// else comes with a giant "DON'T DO IT" sticker and may change, break, or
|
|
3
3
|
// straight up disappear between releases.
|
|
4
|
-
export { defineConfig, loadConfig, } from "./config.js";
|
|
4
|
+
export { BREAKPOINTS, defineConfig, loadConfig, } from "./config.js";
|
|
5
5
|
export { init } from "./commands/init.js";
|
|
6
6
|
export { supervise } from "./commands/supervise.js";
|
|
7
7
|
export { approveAll } from "./runner/approve.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,0CAA0C;AAE1C,OAAO,EACL,YAAY,EACZ,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0EAA0E;AAC1E,0CAA0C;AAE1C,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,GAQX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,IAAI,EAAoB,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAyB,MAAM,yBAAyB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAuB,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAsB,MAAM,iBAAiB,CAAC"}
|