@zappie/verify 0.1.5 → 0.2.2
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 +31 -0
- package/README.md +18 -1
- package/dist/{category-page-UBHOB5IN.js → category-page-I3HDIAJA.js} +7 -3
- package/dist/category-page-I3HDIAJA.js.map +1 -0
- package/dist/{chunk-JYFSFOIS.js → chunk-47RIF6JW.js} +23 -11
- package/dist/chunk-47RIF6JW.js.map +1 -0
- package/dist/{debug-C3UDGUED.js → debug-LOXPIQRS.js} +1 -1
- package/dist/debug-LOXPIQRS.js.map +1 -0
- package/dist/index.d.ts +53 -5
- package/dist/index.js +842 -30
- package/dist/index.js.map +1 -1
- package/dist/presentation-TKOXOILG.js +68 -0
- package/dist/presentation-TKOXOILG.js.map +1 -0
- package/dist/{quote-body-NAFPZOGR.js → quote-body-S5LELT7L.js} +1 -1
- package/dist/quote-body-S5LELT7L.js.map +1 -0
- package/dist/{quote-client-3NC5KSBE.js → quote-client-4RUY3TKQ.js} +8 -3
- package/dist/quote-client-4RUY3TKQ.js.map +1 -0
- package/dist/{search-YIHT6CXN.js → search-OF62VKI3.js} +7 -2
- package/dist/search-OF62VKI3.js.map +1 -0
- package/dist/{selected-menu-5AIX7JHU.js → selected-menu-AQHWDELR.js} +8 -3
- package/dist/selected-menu-AQHWDELR.js.map +1 -0
- package/dist/{store-AOU2FRUX.js → store-OPM3OFLC.js} +1 -1
- package/dist/store-OPM3OFLC.js.map +1 -0
- package/package.json +2 -2
- package/schema/verify-report.v1.json +17 -1
- package/dist/category-page-UBHOB5IN.js.map +0 -1
- package/dist/chunk-JYFSFOIS.js.map +0 -1
- package/dist/debug-C3UDGUED.js.map +0 -1
- package/dist/quote-body-NAFPZOGR.js.map +0 -1
- package/dist/quote-client-3NC5KSBE.js.map +0 -1
- package/dist/search-YIHT6CXN.js.map +0 -1
- package/dist/selected-menu-5AIX7JHU.js.map +0 -1
- package/dist/store-AOU2FRUX.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# @zappie/verify
|
|
2
2
|
|
|
3
|
+
## 0.2.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d73fe38: V16 and V17 now wait for the menu to hydrate, then for the work it leaves for idle time, such as overlay preloads, and for the downloads that work starts, before they tap a trigger. That is what a shopper who has read the menu sees. A tap still times everything it starts, so an overlay whose code loads only on tap still fails V16.
|
|
8
|
+
- 959024d: V16 opens each overlay three times, each on a freshly loaded and settled menu, and judges the median against the 100 ms budget, so one slow sample on a busy machine doesn't fail it. `overlayOpenMs` holds the medians and the new `overlayOpenSamplesMs` holds every sample.
|
|
9
|
+
|
|
10
|
+
The phone profile's CPU slowdown is now calibrated to the machine. Before the checks run, verify scores the browser's CPU with a short fixed benchmark and sets the throttling rate so that V14, V15 and V16 see the same phone on a fast laptop and on a slow CI runner. A developer laptop still gets about four times. The rate stays between one and eight times, and the report's `environment` records `cpuBenchmark` and `cpuThrottlingRate`. The budgets are unchanged.
|
|
11
|
+
|
|
12
|
+
## 0.2.1
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- 82fa181: Local mode now answers `/_zappie/session` as the test site host does, signed out until a check sets its test session cookie, so a template that checks the session as soon as a page loads no longer fails the routes check in a local preview.
|
|
17
|
+
|
|
18
|
+
## 0.2.0
|
|
19
|
+
|
|
20
|
+
### Minor Changes
|
|
21
|
+
|
|
22
|
+
- 79deec3: Hold every template to the same accessibility, semantics, performance and CSS bar.
|
|
23
|
+
|
|
24
|
+
- `eslint-plugin-zappie`: `zappie/no-lazy-overlay` reports `React.lazy` and `Suspense` and points at `deferred()` from `@zappie/foundations`. It is an error in `recommended`.
|
|
25
|
+
- `@zappie/check`: `lint` fails when a project turns down a `jsx-a11y` rule from `recommended`. A new `css` step reports `css/important` and `css/class-patch` as errors, and `css/duplicate-keyframes`, `css/duplicate-selector`, `css/arbitrary-token`, `css/literal-token`, `css/unused-custom-property`, `css/reduced-motion` and `css/unreadable` as warnings.
|
|
26
|
+
- `@zappie/verify`: V13 fails on a missing main landmark, a page without exactly one h1, a dialog without a name, a positive tabindex, a phone control under 44×44 px and focus that doesn't return after the item or cart closes. V16 times each marked overlay from tap to first paint on a phone profile. V17 checks each marked overlay's focus, Escape and scroll lock. Both are skipped while a menu has no overlay markers. V14 records `menuCssKbGz`. `findRegressions` compares two reports' metrics.
|
|
27
|
+
- `@zappie/starter`: menu controls are at least 44×44 px on a phone.
|
|
28
|
+
|
|
29
|
+
### Patch Changes
|
|
30
|
+
|
|
31
|
+
- Updated dependencies [4f3cdc3]
|
|
32
|
+
- @zappie/sdk@0.1.8
|
|
33
|
+
|
|
3
34
|
## 0.1.5
|
|
4
35
|
|
|
5
36
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ ZAPPIE_KEY=pk_test_... npx zappie verify
|
|
|
18
18
|
ZAPPIE_KEY=pk_test_... npx zappie verify https://your-store.example
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
With no URL, it builds your project, starts a local preview, runs the checks and stops the preview. It only accepts test keys, so it never touches live orders.
|
|
21
|
+
With no URL, it builds your project, starts a local preview, runs the checks and stops the preview. It only accepts test keys, so it never touches live orders. A local preview has no site host, so verify answers `/_zappie/session` itself: signed out until a check signs in. Don't build or typecheck the project while it runs, because a rebuild under the preview stops the page from hydrating and fails checks that would pass.
|
|
22
22
|
|
|
23
23
|
| Option | What it does |
|
|
24
24
|
| -------------------------------- | ---------------------------------------------------- |
|
|
@@ -42,6 +42,23 @@ console.log(printSummary(report));
|
|
|
42
42
|
|
|
43
43
|
The report's shape is the JSON Schema at `@zappie/verify/schema/verify-report.v1.json`.
|
|
44
44
|
|
|
45
|
+
## Overlays
|
|
46
|
+
|
|
47
|
+
Mark each control that opens an overlay with `data-zappie-overlay-trigger="bag"`, `"branch"`, `"search"` or `"item"`, and the overlay's `role="dialog"` element with `data-zappie-overlay` and the same name. V16 waits until the menu has hydrated and its idle work, such as overlay preloads, and the downloads that work starts are done, as they would be for a shopper who has read the menu. Then it taps each marked trigger on a phone profile with the CPU slowed four times, and fails when the overlay takes more than 100 ms to paint. Anything the tap itself loads counts toward that time. It opens each overlay three times, each on a freshly loaded and settled menu, and judges the median, so one slow sample on a busy machine doesn't fail it. The CPU slowdown is calibrated to the machine: before the checks run, verify scores the browser's CPU with a short fixed benchmark and sets the throttling rate so that V14, V15 and V16 see the same phone everywhere. A developer laptop gets about four times, a slower CI runner less, between one and eight times. The report's `environment` records `cpuBenchmark` and the `cpuThrottlingRate` the checks used. The report's `overlayOpenMs` holds the medians and `overlayOpenSamplesMs` holds every sample, in the order they ran. V17 opens each one from the keyboard and checks that focus moves in, Tab stays in, the page behind doesn't scroll, Escape closes it and focus returns to the trigger. Both are skipped while the menu has no markers.
|
|
48
|
+
|
|
49
|
+
## Compare with a baseline
|
|
50
|
+
|
|
51
|
+
`findRegressions(baseline, head)` compares the metrics of two reports and returns each one that grew past its threshold, even when it is still inside the budget:
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import { findRegressions } from "@zappie/verify";
|
|
55
|
+
|
|
56
|
+
const regressions = findRegressions(baselineReport, report);
|
|
57
|
+
// [{ metric: "overlayOpenMs.bag", base: 60, head: 81, allowed: 80 }]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
A metric regresses when it grows by more than its relative threshold or its absolute floor, whichever is larger. The defaults are in `DEFAULT_REGRESSION_THRESHOLDS`. A metric the baseline records and the new report doesn't also counts as a regression.
|
|
61
|
+
|
|
45
62
|
## Docs
|
|
46
63
|
|
|
47
64
|
- [CLI: zappie verify](https://docs.zappie.ai/cli/verify)
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// ../sdk/src/transport/category-page.ts
|
|
2
|
-
function categoryPage(raw, ctx, mapMenu, invalid) {
|
|
3
|
-
const menu =
|
|
2
|
+
async function categoryPage(raw, ctx, mapMenu, invalid) {
|
|
3
|
+
const menu = (await import("./presentation-TKOXOILG.js")).presentMenu(
|
|
4
|
+
mapMenu(raw, ctx.branchId),
|
|
5
|
+
raw,
|
|
6
|
+
invalid
|
|
7
|
+
);
|
|
4
8
|
if (raw.next_cursor != null && (typeof raw.next_cursor !== "string" || !raw.next_cursor || raw.next_cursor === ctx.cursor) || menu.categories.some((c) => c.id !== ctx.categoryId) || Object.keys(menu.items).some(
|
|
5
9
|
(id) => !menu.categories.some((c) => c.itemIds.includes(id))
|
|
6
10
|
) || !menu.menus?.some(
|
|
@@ -18,4 +22,4 @@ function categoryPage(raw, ctx, mapMenu, invalid) {
|
|
|
18
22
|
export {
|
|
19
23
|
categoryPage
|
|
20
24
|
};
|
|
21
|
-
//# sourceMappingURL=category-page-
|
|
25
|
+
//# sourceMappingURL=category-page-I3HDIAJA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../sdk/src/transport/category-page.ts"],"mappings":";AASA,eAAsB,aACpB,KACA,KAMA,SACA,SACuB;AACvB,QAAM,QAAQ,MAAM,OAAO,4BAAgB,GAAG;AAAA,IAC5C,QAAQ,KAAK,IAAI,QAAQ;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACA,MACG,IAAI,eAAe,SACjB,OAAO,IAAI,gBAAgB,YAC1B,CAAC,IAAI,eACL,IAAI,gBAAgB,IAAI,WAC5B,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,IAAI,UAAU,KACnD,OAAO,KAAK,KAAK,KAAK,EAAE;AAAA,IACtB,CAAC,OAAO,CAAC,KAAK,WAAW,KAAK,CAAC,MAAM,EAAE,QAAQ,SAAS,EAAE,CAAC;AAAA,EAC7D,KACA,CAAC,KAAK,OAAO;AAAA,IACX,CAAC,MAAM,EAAE,OAAO,IAAI,UAAU,EAAE,YAAY,SAAS,IAAI,UAAU;AAAA,EACrE,GACA;AACA,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AAAA,IACL,MAAM,EAAE,GAAG,MAAM,cAAc,UAAU;AAAA,IACzC,QAAQ,IAAI;AAAA,IACZ,YAAY,IAAI;AAAA,IAChB,GAAI,OAAO,IAAI,gBAAgB,YAAY,IAAI,cAC3C,EAAE,YAAY,IAAI,YAAY,IAC9B,CAAC;AAAA,EACP;AACF;","names":[]}
|
|
@@ -821,7 +821,7 @@ function createCart(deps) {
|
|
|
821
821
|
};
|
|
822
822
|
let quotes;
|
|
823
823
|
let loadingQuotes;
|
|
824
|
-
const quoteClient = () => loadingQuotes ??= import("./quote-client-
|
|
824
|
+
const quoteClient = () => loadingQuotes ??= import("./quote-client-4RUY3TKQ.js").then(
|
|
825
825
|
({ createQuoteClient }) => quotes = createQuoteClient(deps.transport, deps.context, config),
|
|
826
826
|
(error) => {
|
|
827
827
|
loadingQuotes = void 0;
|
|
@@ -2138,6 +2138,7 @@ function mapSeo(value) {
|
|
|
2138
2138
|
// ../sdk/src/transport/rest.ts
|
|
2139
2139
|
var MAX_RETRY_WAIT_MS = 5e3;
|
|
2140
2140
|
var wireFulfilment2 = (value) => value === "dineIn" ? "dine_in" : value;
|
|
2141
|
+
var presentationError = () => new ZappieError("server_error", "Invalid storefront presentation");
|
|
2141
2142
|
var RestTransport = class {
|
|
2142
2143
|
constructor(opts = {}) {
|
|
2143
2144
|
const url = new URL(opts.baseUrl ?? "https://api.zappie.ai/storefront/v1");
|
|
@@ -2226,7 +2227,7 @@ var RestTransport = class {
|
|
|
2226
2227
|
}
|
|
2227
2228
|
}
|
|
2228
2229
|
async quote(ctx, body) {
|
|
2229
|
-
body = (await import("./quote-body-
|
|
2230
|
+
body = (await import("./quote-body-S5LELT7L.js")).quoteBody(body);
|
|
2230
2231
|
const request = {
|
|
2231
2232
|
...ctx,
|
|
2232
2233
|
idempotencyKey: ctx.idempotencyKey ?? await payloadKey(JSON.stringify(body))
|
|
@@ -2237,18 +2238,23 @@ var RestTransport = class {
|
|
|
2237
2238
|
return raw;
|
|
2238
2239
|
}
|
|
2239
2240
|
async getStore(ctx) {
|
|
2240
|
-
const mapper = import("./store-
|
|
2241
|
+
const mapper = import("./store-OPM3OFLC.js").catch((cause) => {
|
|
2241
2242
|
throw new ZappieError(
|
|
2242
2243
|
"server_error",
|
|
2243
2244
|
"Could not load the storefront store mapper",
|
|
2244
2245
|
{ cause }
|
|
2245
2246
|
);
|
|
2246
2247
|
});
|
|
2248
|
+
const presentation = import("./presentation-TKOXOILG.js");
|
|
2247
2249
|
const response = this.request("/store", ctx).then(
|
|
2248
2250
|
(value) => this.json(value)
|
|
2249
2251
|
);
|
|
2250
|
-
const [{ mapStore }, raw] = await Promise.all([
|
|
2251
|
-
|
|
2252
|
+
const [{ mapStore }, { presentStore }, raw] = await Promise.all([
|
|
2253
|
+
mapper,
|
|
2254
|
+
presentation,
|
|
2255
|
+
response
|
|
2256
|
+
]);
|
|
2257
|
+
const store = mapStore(
|
|
2252
2258
|
raw,
|
|
2253
2259
|
record,
|
|
2254
2260
|
text,
|
|
@@ -2261,8 +2267,10 @@ var RestTransport = class {
|
|
|
2261
2267
|
isBoolean,
|
|
2262
2268
|
mapSeo
|
|
2263
2269
|
);
|
|
2270
|
+
return presentStore(store, raw, presentationError);
|
|
2264
2271
|
}
|
|
2265
2272
|
async getMenu(ctx) {
|
|
2273
|
+
const presentation = import("./presentation-TKOXOILG.js");
|
|
2266
2274
|
let cursor;
|
|
2267
2275
|
const seen = /* @__PURE__ */ new Set();
|
|
2268
2276
|
let output;
|
|
@@ -2292,7 +2300,11 @@ var RestTransport = class {
|
|
|
2292
2300
|
};
|
|
2293
2301
|
}
|
|
2294
2302
|
const raw = record(await this.json(response));
|
|
2295
|
-
const page =
|
|
2303
|
+
const page = (await presentation).presentMenu(
|
|
2304
|
+
mapMenu(raw, ctx.branchId),
|
|
2305
|
+
raw,
|
|
2306
|
+
presentationError
|
|
2307
|
+
);
|
|
2296
2308
|
if (ctx.metadataOnly) {
|
|
2297
2309
|
if (Object.keys(page.items).length || raw.next_cursor) {
|
|
2298
2310
|
throw new ZappieError("server_error", "Invalid metadata response");
|
|
@@ -2363,7 +2375,7 @@ var RestTransport = class {
|
|
|
2363
2375
|
return { menu: output, ...etag ? { etag } : {} };
|
|
2364
2376
|
}
|
|
2365
2377
|
async getSelectedMenu(ctx) {
|
|
2366
|
-
return (await import("./selected-menu-
|
|
2378
|
+
return (await import("./selected-menu-AQHWDELR.js")).selectedMenu(
|
|
2367
2379
|
ctx,
|
|
2368
2380
|
(path) => this.request(path, ctx, ctx.ifNoneMatch),
|
|
2369
2381
|
(response) => this.json(response),
|
|
@@ -2372,7 +2384,7 @@ var RestTransport = class {
|
|
|
2372
2384
|
);
|
|
2373
2385
|
}
|
|
2374
2386
|
async search(ctx) {
|
|
2375
|
-
return (await import("./search-
|
|
2387
|
+
return (await import("./search-OF62VKI3.js")).searchPage(
|
|
2376
2388
|
ctx,
|
|
2377
2389
|
async (path) => this.json(await this.request(path, ctx)),
|
|
2378
2390
|
mapMenu,
|
|
@@ -2390,7 +2402,7 @@ var RestTransport = class {
|
|
|
2390
2402
|
ctx
|
|
2391
2403
|
)
|
|
2392
2404
|
);
|
|
2393
|
-
return (await import("./category-page-
|
|
2405
|
+
return (await import("./category-page-I3HDIAJA.js")).categoryPage(
|
|
2394
2406
|
record(raw),
|
|
2395
2407
|
ctx,
|
|
2396
2408
|
mapMenu,
|
|
@@ -2674,7 +2686,7 @@ function buildClient(input, secret = false) {
|
|
|
2674
2686
|
function createZappie(config) {
|
|
2675
2687
|
const client = buildClient(config);
|
|
2676
2688
|
if (client.mode === "test" && typeof window !== "undefined") {
|
|
2677
|
-
void import("./debug-
|
|
2689
|
+
void import("./debug-LOXPIQRS.js").then(({ installDebug }) => installDebug(client));
|
|
2678
2690
|
}
|
|
2679
2691
|
return client;
|
|
2680
2692
|
}
|
|
@@ -2792,4 +2804,4 @@ export {
|
|
|
2792
2804
|
createZappie,
|
|
2793
2805
|
previewItem
|
|
2794
2806
|
};
|
|
2795
|
-
//# sourceMappingURL=chunk-
|
|
2807
|
+
//# sourceMappingURL=chunk-47RIF6JW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../sdk/src/errors.ts","../../sdk/src/money.ts","../../sdk/src/internal/money-math.ts","../../sdk/src/cart/errors.ts","../../sdk/src/cart/price.ts","../../sdk/src/cart/source-menu.ts","../../sdk/src/cart/validate.ts","../../sdk/src/cart/reconcile.ts","../../sdk/src/cart/storage.ts","../../sdk/src/cart/wire.ts","../../sdk/src/cart/index.ts","../../sdk/src/cart/working-set.ts","../../sdk/src/config.ts","../../sdk/src/internal/abort.ts","../../sdk/src/internal/cache.ts","../../sdk/src/internal/emitter.ts","../../sdk/src/internal/digest.ts","../../sdk/src/transport/mappers.ts","../../sdk/src/transport/rest.ts","../../sdk/src/client.ts","../../sdk/src/cart/preview.ts","../../sdk/src/internal/customer-http.ts"],"mappings":"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","names":["codes","text","schedule","current","wireFulfilment","wait"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../sdk/src/debug.ts"],"mappings":";AAOA,IAAM,UACJ,OAAO,2BAA2B,WAC9B,yBACA;AAoCC,SAAS,aAAa,QAAgB;AAC3C,MAAI,OAAO,WAAW,eAAe,OAAO,SAAS,QAAQ;AAC3D;AAAA,EACF;AACA,QAAM,SAAuB,CAAC;AAC9B,MAAI;AACJ,QAAM,OAAO,CAAC,MAAc,WAAoB;AAC9C,UAAM,QAAQ,EAAE,MAAM,QAAQ,KAAI,oBAAI,KAAK,GAAE,YAAY,EAAE;AAC3D,WAAO,KAAK,KAAK;AACjB,WAAO,cAAc,IAAI,YAAY,gBAAgB,EAAE,QAAQ,MAAM,CAAC,CAAC;AAAA,EACzE;AACA,aAAW,eAAe;AAC1B,SAAO,WAAW;AAAA,IAChB,SAAS;AAAA,IACT,OAAO,OAAO,OAAO;AAAA,IACrB,MAAM,YAAY;AAChB,YAAM,OAAO,KAAK,QAAQ;AAC1B,YAAM,UAAU,MAAM,OAAO,MAAM,IAAI,GAAG,SAAS;AAAA,QACjD,CAAC,UAAU,MAAM,OAAO,OAAO,KAAK,YAAY,EAAE;AAAA,MACpD;AACA,aAAO,EAAE,QAAQ,MAAM,MAAM,OAAO,KAAK,IAAI,EAAE,QAAQ,OAAO,GAAG,CAAC,EAAE;AAAA,IACtE;AAAA,IACA,MAAM,OAAO,OAAO,MAAM,OAAO,KAAK,YAAY,GAAG;AAAA,MACnD,MAAM,OAAO,OAEV;AACD,cAAM,OAAO,KAAK,QAAQ;AAC1B,YACE,MAAM,MAAM,SAAS,OACrB,MAAM,MAAM;AAAA,UACV,CAAC,SACC,CAAC,OAAO,UAAU,KAAK,YAAY,CAAC,MACnC,KAAK,YAAY,KAAK,MACtB,KAAK,YAAY,KAAK;AAAA,QAC3B,GACA;AACA,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AAAA,QACF;AACA,cAAM,WAAW,OAAO,KAAK,YAAY;AACzC,cAAM,QAAQ;AAAA,UACZ,GAAG;AAAA,UACH,aAAa,OAAO,UAAU,cAAc,EAAG;AAAA,UAC/C,WAAW,KAAK,IAAI;AAAA,UACpB,YAAY,SAAS;AAAA,UACrB,WAAW,SAAS;AAAA,UACpB,OAAO,MAAM,MAAM,IAAI,CAAC,MAAM,WAAW;AAAA,YACvC,GAAG;AAAA,YACH,IAAI,SAAS,KAAK;AAAA,YAClB,MAAM,KAAK;AAAA,YACX,UAAU,KAAK,YAAY;AAAA,YAC3B,UAAU,KAAK,WAAW,CAAC,GAAG,IAAI,CAAC,YAAY;AAAA,cAC7C,GAAG;AAAA,cACH,UAAU,OAAO,YAAY;AAAA,YAC/B,EAAE;AAAA,YACF,QAAQ,KAAK,UAAU,CAAC;AAAA,YACxB,UAAS,oBAAI,KAAK,GAAE,YAAY;AAAA,UAClC,EAAE;AAAA,QACJ;AACA,cAAM,QAAQ,OAAO,OAAO,MAAM;AAClC,SAAC,OAAO,OAAO,WAAW,OAAO,cAAc;AAAA,UAC7C,kBAAkB,OAAO,OAAO,KAAK,IAAI,SAAS,QAAQ,GAAG,QAAQ,IAAI,KAAK,KAAK,EAAE;AAAA,UACrF,KAAK,UAAU,KAAK;AAAA,QACtB;AAAA,MACF;AAAA,IACF,CAAC;AAAA,IACD,OAAO,MAAM;AAAA,IACb;AAAA,EACF;AACA,SAAO,GAAG,eAAe,CAAC,WAAW,KAAK,eAAe,MAAM,CAAC;AAChE,SAAO,KAAK,UAAU,MAAM;AAC1B,UAAM,QAAQ,OAAO,KAAK;AAC1B,UAAM,OAAO,WAAW,QAAQ,MAAM,QAAQ;AAC9C,QAAI,QAAQ,SAAS,OAAO;AAC1B,cAAQ;AACR,WAAK,SAAS,IAAI;AAAA,IACpB;AAAA,EACF,CAAC;AACH;","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -36,6 +36,10 @@ type VerifyReport = {
|
|
|
36
36
|
verifyVersion: string;
|
|
37
37
|
sdkVersion: string;
|
|
38
38
|
browser: string;
|
|
39
|
+
/** The browser's CPU benchmark score at the start of the run. Higher is faster. */
|
|
40
|
+
cpuBenchmark?: number;
|
|
41
|
+
/** The CPU throttling rate the timed checks ran at, calibrated from `cpuBenchmark`. */
|
|
42
|
+
cpuThrottlingRate?: number;
|
|
39
43
|
};
|
|
40
44
|
startedAt: string;
|
|
41
45
|
durationMs: number;
|
|
@@ -52,6 +56,11 @@ type VerifyReport = {
|
|
|
52
56
|
cls?: number;
|
|
53
57
|
productCardTappableMs?: number;
|
|
54
58
|
productCardOpenMs?: number;
|
|
59
|
+
menuCssKbGz?: number;
|
|
60
|
+
/** Tap to first paint of each marked overlay, by its `data-zappie-overlay` name: the median of its samples. */
|
|
61
|
+
overlayOpenMs?: Record<string, number>;
|
|
62
|
+
/** Each overlay's timed opens, in the order they ran. */
|
|
63
|
+
overlayOpenSamplesMs?: Record<string, number[]>;
|
|
55
64
|
};
|
|
56
65
|
signature?: string;
|
|
57
66
|
};
|
|
@@ -72,9 +81,11 @@ type VerifyOptions = {
|
|
|
72
81
|
status: "running" | "passed" | "failed" | "skipped";
|
|
73
82
|
}) => void;
|
|
74
83
|
/**
|
|
75
|
-
* Answer `/_zappie/view` with 204
|
|
76
|
-
*
|
|
77
|
-
*
|
|
84
|
+
* Answer `/_zappie/view` with 204 and `/_zappie/session` as the test site
|
|
85
|
+
* host does: signed out until a check sets its test session cookie. Set it
|
|
86
|
+
* for a local preview, which has no site host, so the page-view beacon and
|
|
87
|
+
* the session check don't fail the routes check. Never set it for a
|
|
88
|
+
* deployed URL.
|
|
78
89
|
*/
|
|
79
90
|
standInForPlatform?: boolean;
|
|
80
91
|
signingKey?: string;
|
|
@@ -90,13 +101,50 @@ type VerifyProjectOptions = Omit<VerifyOptions, "url" | "store" | "runner"> & {
|
|
|
90
101
|
declare class VerifyError extends Error {
|
|
91
102
|
readonly code: string;
|
|
92
103
|
readonly hint: string;
|
|
93
|
-
|
|
104
|
+
/** Report the check as skipped, not failed. */
|
|
105
|
+
readonly skip: boolean;
|
|
106
|
+
constructor(code: string, message: string, hint: string,
|
|
107
|
+
/** Report the check as skipped, not failed. */
|
|
108
|
+
skip?: boolean);
|
|
94
109
|
}
|
|
95
110
|
|
|
96
111
|
declare function verifyProject(options: VerifyProjectOptions): Promise<VerifyReport>;
|
|
97
112
|
|
|
113
|
+
/** How far a metric may grow over the baseline before it counts as a regression. */
|
|
114
|
+
type RegressionThreshold = {
|
|
115
|
+
/** Growth allowed as a fraction of the baseline value, such as 0.1 for 10%. */
|
|
116
|
+
relative: number;
|
|
117
|
+
/** Growth always allowed, in the metric's own unit, so small values don't trip on noise. */
|
|
118
|
+
absolute: number;
|
|
119
|
+
};
|
|
120
|
+
type RegressionMetric = "menuJsKbGz" | "menuCssKbGz" | "lcpMs" | "cls" | "productCardTappableMs" | "productCardOpenMs" | "overlayOpenMs";
|
|
121
|
+
/**
|
|
122
|
+
* A metric regresses when `head - base > max(absolute, relative × base)`. Sizes are
|
|
123
|
+
* deterministic, so their allowance is small; timings carry runner noise, so theirs is wider.
|
|
124
|
+
*/
|
|
125
|
+
declare const DEFAULT_REGRESSION_THRESHOLDS: Record<RegressionMetric, RegressionThreshold>;
|
|
126
|
+
type MetricRegression = {
|
|
127
|
+
/** `menuJsKbGz`, or `overlayOpenMs.<name>` for one overlay. */
|
|
128
|
+
metric: string;
|
|
129
|
+
base: number;
|
|
130
|
+
/** Undefined when the head run no longer records a metric the baseline had. */
|
|
131
|
+
head: number | undefined;
|
|
132
|
+
/** The largest head value the threshold allows. */
|
|
133
|
+
allowed: number;
|
|
134
|
+
};
|
|
135
|
+
type Metrics = VerifyReport["metrics"];
|
|
136
|
+
type ReportMetrics = {
|
|
137
|
+
metrics: Metrics;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Compares a head report's metrics with the target branch's baseline report. A metric the
|
|
141
|
+
* baseline lacks is new and never regresses. A metric the baseline has and the head lacks
|
|
142
|
+
* regresses, so a run can't pass by dropping a measurement.
|
|
143
|
+
*/
|
|
144
|
+
declare function findRegressions(baseline: ReportMetrics, head: ReportMetrics, thresholds?: Partial<Record<RegressionMetric, RegressionThreshold>>): MetricRegression[];
|
|
145
|
+
|
|
98
146
|
declare function printSummary(report: VerifyReport): string;
|
|
99
147
|
|
|
100
148
|
declare function verify(options: VerifyOptions): Promise<VerifyReport>;
|
|
101
149
|
|
|
102
|
-
export { type CheckResult, type PackageManager, VerifyError, type VerifyOptions, type VerifyProjectOptions, type VerifyReport, printSummary, verify, verifyProject };
|
|
150
|
+
export { type CheckResult, DEFAULT_REGRESSION_THRESHOLDS, type MetricRegression, type PackageManager, type RegressionMetric, type RegressionThreshold, VerifyError, type VerifyOptions, type VerifyProjectOptions, type VerifyReport, findRegressions, printSummary, verify, verifyProject };
|