@zappie/verify 0.1.5 → 0.2.3

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 (33) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/README.md +43 -1
  3. package/dist/{category-page-UBHOB5IN.js → category-page-I3HDIAJA.js} +7 -3
  4. package/dist/category-page-I3HDIAJA.js.map +1 -0
  5. package/dist/{chunk-JYFSFOIS.js → chunk-47RIF6JW.js} +23 -11
  6. package/dist/chunk-47RIF6JW.js.map +1 -0
  7. package/dist/{debug-C3UDGUED.js → debug-LOXPIQRS.js} +1 -1
  8. package/dist/debug-LOXPIQRS.js.map +1 -0
  9. package/dist/index.d.ts +55 -5
  10. package/dist/index.js +1475 -86
  11. package/dist/index.js.map +1 -1
  12. package/dist/presentation-TKOXOILG.js +68 -0
  13. package/dist/presentation-TKOXOILG.js.map +1 -0
  14. package/dist/{quote-body-NAFPZOGR.js → quote-body-S5LELT7L.js} +1 -1
  15. package/dist/quote-body-S5LELT7L.js.map +1 -0
  16. package/dist/{quote-client-3NC5KSBE.js → quote-client-4RUY3TKQ.js} +8 -3
  17. package/dist/quote-client-4RUY3TKQ.js.map +1 -0
  18. package/dist/{search-YIHT6CXN.js → search-OF62VKI3.js} +7 -2
  19. package/dist/search-OF62VKI3.js.map +1 -0
  20. package/dist/{selected-menu-5AIX7JHU.js → selected-menu-AQHWDELR.js} +8 -3
  21. package/dist/selected-menu-AQHWDELR.js.map +1 -0
  22. package/dist/{store-AOU2FRUX.js → store-OPM3OFLC.js} +1 -1
  23. package/dist/store-OPM3OFLC.js.map +1 -0
  24. package/package.json +2 -2
  25. package/schema/verify-report.v1.json +25 -1
  26. package/dist/category-page-UBHOB5IN.js.map +0 -1
  27. package/dist/chunk-JYFSFOIS.js.map +0 -1
  28. package/dist/debug-C3UDGUED.js.map +0 -1
  29. package/dist/quote-body-NAFPZOGR.js.map +0 -1
  30. package/dist/quote-client-3NC5KSBE.js.map +0 -1
  31. package/dist/search-YIHT6CXN.js.map +0 -1
  32. package/dist/selected-menu-5AIX7JHU.js.map +0 -1
  33. package/dist/store-AOU2FRUX.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/error.ts","../src/local-preview.ts","../src/project-command.ts","../src/project-config.ts","../src/runner.ts","../src/checks/common.ts","../src/checks/v01-routes.ts","../src/checks/v02-sdk.ts","../src/fixtures.ts","../src/checks/catalogue.ts","../src/checks/menu-match.ts","../src/checks/v03-menu.ts","../src/checks/v04-add-simple.ts","../src/checks/v05-add-options.ts","../src/checks/v06-quote.ts","../src/checks/stale-cart.ts","../src/checks/v07-quote-issues.ts","../src/checks/v09-pickup.ts","../../sdk/src/places/error.ts","../../sdk/src/places/request.ts","../../sdk/src/places/search.ts","../../sdk/src/places/client.ts","../src/checks/v10-delivery.ts","../src/checks/v13-accessibility.ts","../src/checks/v14-performance.ts","../src/checks/v15-tappable-product-cards.ts","../src/checks/index.ts","../src/report.ts","../src/reset.ts","../src/version.ts","../src/project.ts","../src/index.ts"],"sourcesContent":["export class VerifyError extends Error {\n constructor(\n readonly code: string,\n message: string,\n readonly hint: string,\n ) {\n super(message);\n this.name = \"VerifyError\";\n }\n}\n\nexport function assertion(\n condition: unknown,\n code: string,\n message: string,\n hint: string,\n): asserts condition {\n if (!condition) {\n throw new VerifyError(code, message, hint);\n }\n}\n","import { spawn, type ChildProcess } from \"node:child_process\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { VerifyError } from \"./error\";\nimport {\n execArgs,\n freePort,\n outputTail,\n type LocalPreviewOptions,\n} from \"./project-command\";\n\nexport async function startLocalPreview(options: LocalPreviewOptions) {\n const manifest = JSON.parse(\n await readFile(path.join(options.cwd, \"package.json\"), \"utf8\"),\n ) as Record<string, Record<string, string> | undefined>;\n const packages = { ...manifest.dependencies, ...manifest.devDependencies };\n const framework = packages[\"react-router\"]\n ? \"react-router\"\n : packages.vite\n ? \"vite\"\n : undefined;\n if (!framework || (framework === \"react-router\" && !packages.wrangler)) {\n throw new VerifyError(\n \"preview_unsupported\",\n \"Local verify supports React Router on Cloudflare and Vite. Pass a URL for this project.\",\n \"Pass the deployed or externally started preview URL to zappie verify.\",\n );\n }\n await run(\n options,\n execArgs(options.packageManager, framework, [\"build\"]),\n \"build\",\n );\n const port = await freePort();\n const command = previewCommand(options, framework, port);\n const child = spawn(command.executable, command.args, {\n cwd: options.cwd,\n env: options.environment ?? process.env,\n detached: process.platform !== \"win32\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n let output = \"\";\n child.stdout?.on(\"data\", (value) => (output += String(value)));\n child.stderr?.on(\"data\", (value) => (output += String(value)));\n const abort = () => void stop(child);\n options.signal?.addEventListener(\"abort\", abort, { once: true });\n const url = `http://127.0.0.1:${port}`;\n try {\n await ready(url, child, options.signal, () => output);\n } catch (error) {\n await stop(child);\n options.signal?.removeEventListener(\"abort\", abort);\n throw error;\n }\n return {\n url,\n close: async () => {\n options.signal?.removeEventListener(\"abort\", abort);\n await stop(child);\n },\n };\n}\n\nfunction previewCommand(\n options: LocalPreviewOptions,\n framework: string,\n port: number,\n) {\n if (framework === \"vite\") {\n return execArgs(options.packageManager, \"vite\", [\n \"preview\",\n \"--host\",\n \"127.0.0.1\",\n \"--port\",\n String(port),\n \"--strictPort\",\n ]);\n }\n const args = [\n \"dev\",\n \"--port\",\n String(port),\n \"--ip\",\n \"127.0.0.1\",\n \"--inspector-port\",\n \"0\",\n \"--no-show-interactive-dev-session\",\n ];\n for (const [name, value] of Object.entries({\n ZAPPIE_KEY: options.key,\n ZAPPIE_STORE: options.store,\n ZAPPIE_API: options.environment?.ZAPPIE_API ?? process.env.ZAPPIE_API,\n ZAPPIE_BRANCH:\n options.environment?.ZAPPIE_BRANCH ?? process.env.ZAPPIE_BRANCH,\n ZAPPIE_IMAGES:\n options.environment?.ZAPPIE_IMAGES ?? process.env.ZAPPIE_IMAGES,\n })) {\n if (value) {\n args.push(\"--var\", `${name}:${value}`);\n }\n }\n return execArgs(options.packageManager, \"wrangler\", args);\n}\n\nasync function run(\n options: LocalPreviewOptions,\n command: { executable: string; args: string[] },\n label: string,\n) {\n const child = spawn(command.executable, command.args, {\n cwd: options.cwd,\n env: options.environment ?? process.env,\n signal: options.signal,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n let output = \"\";\n child.stdout.on(\"data\", (value) => (output += String(value)));\n child.stderr.on(\"data\", (value) => (output += String(value)));\n const code = await new Promise<number>((resolve, reject) => {\n child.once(\"error\", reject);\n child.once(\"close\", (value) => resolve(value ?? 1));\n });\n if (code !== 0) {\n throw new VerifyError(\n `${label}_failed`,\n `${label} failed:\\n${outputTail(output)}`,\n `Fix the project ${label} and rerun verify.`,\n );\n }\n}\n\nasync function ready(\n url: string,\n child: ChildProcess,\n signal: AbortSignal | undefined,\n output: () => string,\n) {\n const expires = Date.now() + 60_000;\n while (Date.now() < expires) {\n signal?.throwIfAborted();\n if (child.exitCode !== null) {\n throw new VerifyError(\n \"preview_exited\",\n `Preview exited before it was ready:\\n${outputTail(output())}`,\n \"Run the project preview directly and fix its startup error.\",\n );\n }\n try {\n const response = await fetch(url, signal ? { signal } : {});\n if (response.status < 500) {\n return;\n }\n } catch (error) {\n if (signal?.aborted) {\n throw error;\n }\n }\n await new Promise((resolve) => setTimeout(resolve, 100));\n }\n throw new VerifyError(\n \"preview_timeout\",\n `Preview did not become ready:\\n${outputTail(output())}`,\n \"Make the preview answer on its assigned port within 60 seconds.\",\n );\n}\n\nasync function stop(child: ChildProcess) {\n if (child.exitCode !== null || !child.pid) {\n return;\n }\n signal(child, \"SIGTERM\");\n await Promise.race([\n new Promise((resolve) => child.once(\"close\", resolve)),\n new Promise((resolve) => setTimeout(resolve, 2_000)),\n ]);\n if (child.exitCode === null) {\n signal(child, \"SIGKILL\");\n }\n}\n\nfunction signal(child: ChildProcess, value: NodeJS.Signals) {\n try {\n if (process.platform === \"win32\") {\n child.kill(value);\n } else if (child.pid) {\n process.kill(-child.pid, value);\n }\n } catch (error) {\n if (!(\n error instanceof Error &&\n \"code\" in error &&\n error.code === \"ESRCH\"\n )) {\n throw error;\n }\n }\n}\n","import { createServer } from \"node:net\";\nimport type { PackageManager } from \"./types\";\n\nexport type LocalPreviewOptions = {\n cwd: string;\n key: string;\n store: string;\n packageManager: PackageManager;\n signal?: AbortSignal;\n environment?: NodeJS.ProcessEnv;\n};\n\nexport function execArgs(\n manager: PackageManager,\n binary: string,\n args: string[],\n) {\n if (manager === \"npm\") {\n return { executable: \"npm\", args: [\"exec\", \"--no\", \"--\", binary, ...args] };\n }\n if (manager === \"yarn\") {\n return { executable: \"yarn\", args: [\"exec\", binary, ...args] };\n }\n if (manager === \"bun\") {\n return { executable: \"bun\", args: [\"x\", \"--no-install\", binary, ...args] };\n }\n return { executable: \"pnpm\", args: [\"exec\", binary, ...args] };\n}\n\nexport function freePort() {\n return new Promise<number>((resolve, reject) => {\n const server = createServer();\n server.once(\"error\", reject);\n server.listen(0, \"127.0.0.1\", () => {\n const address = server.address();\n server.close(() =>\n typeof address === \"object\" && address\n ? resolve(address.port)\n : reject(new Error(\"No free port was assigned.\")),\n );\n });\n });\n}\n\nexport const outputTail = (value: string) =>\n value.trim().split(\"\\n\").slice(-12).join(\"\\n\");\n","import { readFile, stat } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { VerifyError } from \"./error\";\n\nexport function supportsTypeScriptImport(version = process.versions.node) {\n const [major = 0, minor = 0] = version.split(\".\").map(Number);\n return major > 22 || (major === 22 && minor >= 18);\n}\n\nexport async function readStore(cwd: string) {\n if (!supportsTypeScriptImport()) {\n throw new VerifyError(\n \"unsupported_node\",\n \"zappie verify needs Node 22.18 or later to read zappie.config.ts\",\n \"Use Node 22.18 or later, or pass --store.\",\n );\n }\n const file = path.join(cwd, \"zappie.config.ts\");\n try {\n const version = (await stat(file)).mtimeMs;\n await readFile(file, \"utf8\");\n const loaded = (await import(\n `${pathToFileURL(file).href}?verify=${version}`\n )) as { default?: unknown };\n const value = loaded.default;\n if (\n value &&\n typeof value === \"object\" &&\n \"store\" in value &&\n typeof value.store === \"string\"\n ) {\n return value.store;\n }\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new VerifyError(\n \"config_unreadable\",\n `Could not read zappie.config.ts: ${message}`,\n \"Create a readable zappie.config.ts or pass --store.\",\n );\n }\n throw new VerifyError(\n \"store_missing\",\n \"zappie.config.ts must define a store\",\n \"Define store in zappie.config.ts or pass --store.\",\n );\n}\n","import { chromium, errors } from \"@playwright/test\";\nimport { mkdir } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { checks, skippedChecks } from \"./checks\";\nimport { desktop, mobile } from \"./checks/common\";\nimport { VerifyError } from \"./error\";\nimport { installFault } from \"./fixtures\";\nimport {\n REPORT_SCHEMA,\n reportId,\n signReport,\n summarize,\n target,\n} from \"./report\";\nimport { reset } from \"./reset\";\nimport type {\n CheckResult,\n Fault,\n RunContext,\n VerifyCheck,\n VerifyOptions,\n VerifyReport,\n Viewport,\n} from \"./types\";\nimport { PACKAGE_VERSION } from \"./version\";\n\nconst VERSION = PACKAGE_VERSION;\n\nexport const browserOptions = (options: VerifyOptions) => ({\n viewport: mobile,\n baseURL: options.url,\n});\n\nfunction selectedViewports(check: VerifyCheck, options: VerifyOptions) {\n const configured = options.viewports ?? [mobile, desktop];\n return check.viewports === \"mobile\" ? [configured[0] ?? mobile] : configured;\n}\n\nexport async function retryTimeout<T>(task: () => Promise<T>) {\n try {\n return { value: await task(), retried: false };\n } catch (failure) {\n if (!(failure instanceof errors.TimeoutError)) {\n throw failure;\n }\n return { value: await task(), retried: true };\n }\n}\n\nasync function execute(\n check: VerifyCheck,\n run: RunContext,\n): Promise<CheckResult> {\n const started = performance.now();\n const viewports = selectedViewports(check, run.options);\n let retried = false;\n let attempts = 0;\n try {\n await retryTimeout(async () => {\n retried = attempts++ > 0;\n for (const viewport of viewports) {\n run.options.signal?.throwIfAborted();\n await check.run(run, viewport);\n }\n });\n return {\n id: check.id,\n title: check.title,\n result: \"passed\",\n durationMs: performance.now() - started,\n viewport: viewports.map(label).join(\",\"),\n ...(retried ? { retried } : {}),\n };\n } catch (failure) {\n const error =\n failure instanceof VerifyError\n ? { code: failure.code, message: failure.message, hint: failure.hint }\n : {\n code: \"check_failed\",\n message:\n failure instanceof Error ? failure.message : String(failure),\n hint: `Fix the failure in ${check.id} (${check.title.toLowerCase()}) and rerun verify.`,\n };\n if (error.code === \"dependency_blocked\") {\n return {\n id: check.id,\n title: check.title,\n result: \"skipped\",\n durationMs: performance.now() - started,\n error,\n };\n }\n const screenshot = path.join(\n run.options.artifactsDir ?? \"verify-artifacts\",\n `${check.id}.png`,\n );\n const trace = path.join(\n run.options.artifactsDir ?? \"verify-artifacts\",\n \"verify.trace.zip\",\n );\n await mkdir(path.dirname(screenshot), { recursive: true });\n await run.page\n .screenshot({ path: screenshot, fullPage: true })\n .catch(() => undefined);\n return {\n id: check.id,\n title: check.title,\n result: \"failed\",\n durationMs: performance.now() - started,\n viewport: viewports.map(label).join(\",\"),\n ...(retried ? { retried } : {}),\n error,\n artifacts: { screenshot, trace },\n };\n }\n}\n\nconst label = (viewport: Viewport) => `${viewport.width}x${viewport.height}`;\n\nexport async function runVerify(\n options: VerifyOptions,\n fault?: Fault,\n): Promise<VerifyReport> {\n if (!/^pk_test_.+/.test(options.key)) {\n throw new VerifyError(\n \"live_key_refused\",\n \"Verify accepts only pk_test_ keys\",\n \"Create a test publishable key and rerun verify.\",\n );\n }\n const started = Date.now();\n const browser = await chromium.launch();\n const context = await browser.newContext(browserOptions(options));\n if (options.standInForPlatform) {\n await context.route(\"**/_zappie/view\", (route) =>\n route.fulfill({ status: 204 }),\n );\n }\n await context.tracing.start({ screenshots: true, snapshots: true });\n const page = await context.newPage();\n page.setDefaultTimeout(Math.min(options.timeoutMs ?? 20_000, 20_000));\n await installFault(page, fault);\n const metrics: VerifyReport[\"metrics\"] = {};\n const run = {\n options,\n browser,\n context,\n page,\n metrics,\n ...(fault ? { fault } : {}),\n };\n const results: CheckResult[] = [await reset(options)];\n try {\n const wanted = options.only ? new Set(options.only) : undefined;\n for (const check of checks) {\n if (wanted && !wanted.has(check.id)) {\n continue;\n }\n options.onProgress?.({ id: check.id, status: \"running\" });\n const result = await execute(check, run);\n results.push(result);\n options.onProgress?.({ id: check.id, status: result.result });\n }\n if (!wanted) {\n results.push(...skippedChecks(options.suite));\n }\n const sdkVersion = await page\n .evaluate(() => window.__zappie?.version ?? \"unknown\")\n .catch(() => \"unknown\");\n const summary = summarize(results);\n const report: VerifyReport = {\n schema: REPORT_SCHEMA,\n id: reportId(),\n suite: options.suite,\n target: target(options),\n environment: {\n runner: options.runner ?? \"cli\",\n verifyVersion: VERSION,\n sdkVersion,\n browser: `chromium ${browser.version()}`,\n },\n startedAt: new Date(started).toISOString(),\n durationMs: Date.now() - started,\n result: summary.failed ? \"failed\" : \"passed\",\n summary,\n checks: results,\n metrics,\n };\n return signReport(\n report,\n options.signingKey ?? process.env.ZAPPIE_VERIFY_SIGNING_KEY,\n );\n } finally {\n const trace = path.join(\n options.artifactsDir ?? \"verify-artifacts\",\n \"verify.trace.zip\",\n );\n await mkdir(path.dirname(trace), { recursive: true });\n await context.tracing.stop({ path: trace }).catch(() => undefined);\n await browser.close();\n }\n}\n","import type { CDPSession, Page } from \"@playwright/test\";\nimport { assertion } from \"../error\";\n\nexport async function open(page: Page, path = \"/\") {\n const response = await page.goto(path, { waitUntil: \"domcontentloaded\" });\n assertion(\n response?.status() === 200,\n \"route_not_rendered\",\n `${path} answered ${response?.status() ?? \"without a response\"}`,\n \"Make the route return a 200 response and render its page shell.\",\n );\n}\n\nexport async function debugValue<T>(page: Page, expression: () => T) {\n await page.waitForFunction(() => Boolean(window.__zappie));\n return page.evaluate(expression);\n}\n\nexport const mobile = { width: 390, height: 844 };\nexport const desktop = { width: 1440, height: 900 };\n\nexport async function applyPhoneProfile(page: Page): Promise<CDPSession> {\n const cdp = await page.context().newCDPSession(page);\n await cdp.send(\"Network.enable\");\n await cdp.send(\"Network.setCacheDisabled\", { cacheDisabled: true });\n await cdp.send(\"Network.emulateNetworkConditions\", {\n offline: false,\n latency: 150,\n downloadThroughput: 200_000,\n uploadThroughput: 100_000,\n connectionType: \"cellular3g\",\n });\n await cdp.send(\"Emulation.setCPUThrottlingRate\", { rate: 4 });\n return cdp;\n}\n","import { assertion } from \"../error\";\nimport type { VerifyCheck } from \"../types\";\nimport { open } from \"./common\";\n\nexport const v01: VerifyCheck = {\n id: \"V01\",\n title: \"Routes render\",\n viewports: \"both\",\n async run({ page, options }, viewport) {\n await page.setViewportSize(viewport);\n const errors: string[] = [];\n const onPageError = (error: Error) => errors.push(error.message);\n const onConsole = (message: { type(): string; text(): string }) => {\n if (message.type() === \"error\" && !/favicon.*404/i.test(message.text())) {\n errors.push(message.text());\n }\n };\n page.on(\"pageerror\", onPageError);\n page.on(\"console\", onConsole);\n const paths = new Set([\"/\"]);\n const sitemap = await page.request.get(\n new URL(\"/sitemap.xml\", options.url).href,\n );\n if (sitemap.ok()) {\n for (const match of (await sitemap.text()).matchAll(\n /<loc>([^<]+)<\\/loc>/g,\n )) {\n paths.add(new URL(match[1]!).pathname);\n }\n }\n for (const path of [...paths].sort()) {\n await open(page, path);\n }\n page.off(\"pageerror\", onPageError);\n page.off(\"console\", onConsole);\n assertion(\n errors.length === 0,\n \"page_error\",\n errors[0] ?? \"A route logged an error\",\n \"Fix uncaught page errors and console errors on every public route.\",\n );\n },\n};\n","import { assertion } from \"../error\";\nimport type { VerifyCheck } from \"../types\";\nimport { debugValue, open } from \"./common\";\n\nexport const v02: VerifyCheck = {\n id: \"V02\",\n title: \"SDK test mode and store\",\n viewports: \"mobile\",\n async run({ page, options }, viewport) {\n await page.setViewportSize(viewport);\n await open(page);\n const debug = await debugValue(page, () => ({\n store: window.__zappie?.store,\n version: window.__zappie?.version,\n }));\n assertion(\n debug.store === options.store,\n \"sdk_store_mismatch\",\n `SDK store is ${debug.store ?? \"missing\"}, expected ${options.store}`,\n \"Create the SDK client with the same store slug passed to verify.\",\n );\n assertion(\n /^0\\./.test(debug.version ?? \"\"),\n \"sdk_version_unsupported\",\n `Unsupported SDK version ${debug.version ?? \"missing\"}`,\n \"Use a supported @zappie/sdk major version.\",\n );\n },\n};\n","import type { Page } from \"@playwright/test\";\nimport type { Fault } from \"./types\";\n\nexport async function installFault(page: Page, fault?: Fault) {\n if (!fault) {\n return;\n }\n if (fault === \"hydration-delay\") {\n await page.route(/\\.(?:js|mjs)(?:\\?|$)/, async (route) => {\n await new Promise((resolve) => setTimeout(resolve, 3_500));\n await route.continue();\n });\n }\n if (fault === \"no-route-data\" || fault === \"no-prefetch\") {\n // Stands in for an item route without a loader, which React Router prefetches as code alone.\n await page.route(/\\/item\\/[^/]+\\.data(?:\\?|$)/, (route) =>\n route.request().headers()[\"sec-purpose\"] === \"prefetch\"\n ? route.abort()\n : route.continue(),\n );\n }\n if (fault === \"no-prefetch\") {\n // Holds the item route's code back past V15's wait, as if the card never prefetched it.\n await page.route(/\\/assets\\/[^/]*item[^/]*\\.js(?:\\?|$)/, async (route) => {\n await new Promise((resolve) => setTimeout(resolve, 10_000));\n await route.continue();\n });\n }\n if (fault === \"quick-add-via-item\") {\n await page.addInitScript(() => {\n const removeQuickAdds = () => {\n if (location.pathname !== \"/\") {\n return;\n }\n for (const node of document.querySelectorAll(\n '[data-zappie-item] [data-zappie-action=\"add-to-cart\"]',\n )) {\n node.remove();\n }\n };\n new MutationObserver(removeQuickAdds).observe(document, {\n childList: true,\n subtree: true,\n });\n });\n }\n if (fault === \"no-sold-out\") {\n await page.addInitScript(() => {\n let debug: Window[\"__zappie\"];\n Object.defineProperty(window, \"__zappie\", {\n configurable: true,\n get: () => debug,\n set(value: Window[\"__zappie\"]) {\n debug = value;\n if (value) {\n const catalogue = value.catalogue;\n value.catalogue = async () => {\n const result = await catalogue();\n return {\n ...result,\n menu: {\n ...result.menu,\n items: Object.fromEntries(\n Object.entries(result.menu.items).filter(\n ([, item]) => item.isAvailable,\n ),\n ),\n },\n };\n };\n }\n },\n });\n });\n }\n\n if (fault === \"add-stuck\") {\n await page.addInitScript(() => {\n document.addEventListener(\n \"click\",\n (event) => {\n const target = event.target as Element | null;\n if (target?.closest('[data-zappie-action=\"add-to-cart\"]')) {\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n },\n true,\n );\n });\n }\n if (fault === \"missing-issue-fix\") {\n await page.addInitScript(() => {\n new MutationObserver(() => {\n for (const node of document.querySelectorAll(\n \"[data-zappie-issue-fix]\",\n )) {\n node.removeAttribute(\"data-zappie-issue-fix\");\n }\n }).observe(document, { childList: true, subtree: true });\n });\n }\n if (fault === \"wrong-total\") {\n await page.addInitScript(() => {\n new MutationObserver(() => {\n for (const node of document.querySelectorAll(\"[data-zappie-total]\")) {\n if (node.textContent !== \"Total ₦1\") {\n node.textContent = \"Total ₦1\";\n }\n }\n }).observe(document, { childList: true, subtree: true });\n });\n }\n}\n\nexport async function applyPageFault(page: Page, fault?: Fault) {\n if (fault === \"quick-add-via-item\") {\n await page\n .locator('[data-zappie-item] [data-zappie-action=\"add-to-cart\"]')\n .evaluateAll((nodes) => {\n for (const node of nodes) {\n node.remove();\n }\n });\n }\n if (fault === \"missing-marker\") {\n await page.locator(\"[data-zappie-item]\").evaluateAll((nodes) => {\n for (const node of nodes) {\n node.removeAttribute(\"data-zappie-item\");\n }\n });\n }\n if (fault === \"axe\") {\n await page.evaluate(() => {\n const button = document.createElement(\"button\");\n button.style.color = \"#fff\";\n button.style.background = \"#fff\";\n document.body.append(button);\n });\n }\n if (fault === \"oversized\") {\n let state = 1;\n const payload = Array.from({ length: 260_000 }, () => {\n state = (state * 48_271) % 2_147_483_647;\n return String.fromCharCode(33 + (state % 90));\n }).join(\"\");\n await page.route(\"**/__verify-large.js\", (route) =>\n route.fulfill({\n contentType: \"text/javascript\",\n body: `window.__verifyLarge=${JSON.stringify(payload)}`,\n }),\n );\n }\n}\n","import { createZappie, type Item, type Menu } from \"@zappie/sdk\";\nimport { assertion } from \"../error\";\nimport type { VerifyOptions } from \"../types\";\n\nexport async function readMenu(options: VerifyOptions): Promise<Menu> {\n const client = createZappie({\n store: options.store,\n key: options.key,\n ...(process.env.ZAPPIE_VERIFY_API_URL\n ? { baseUrl: process.env.ZAPPIE_VERIFY_API_URL }\n : {}),\n });\n const store = await client.store.get();\n const branch =\n store.branches.find((entry) => entry.isDefault) ?? store.branches[0];\n assertion(\n branch,\n \"default_branch_missing\",\n \"The store has no branch\",\n \"Mark an orderable branch as the default.\",\n );\n return client.menu.get({ branch: branch.id });\n}\n\nexport function sortedItems(menu: Menu): Item[] {\n return Object.values(menu.items).sort((a, b) => a.id.localeCompare(b.id));\n}\n\nexport function simpleItem(menu: Menu): Item | undefined {\n return sortedItems(menu).find(\n (item) =>\n item.isAvailable && !item.optionGroups.some((group) => group.required),\n );\n}\n\nexport function configurableItem(menu: Menu): Item | undefined {\n return sortedItems(menu).find(\n (item) =>\n item.isAvailable && item.optionGroups.some((group) => group.required),\n );\n}\n","import type { Item } from \"@zappie/sdk\";\n\nexport function menuCoverage(items: Item[], shownIds: Set<string>) {\n const available = items.filter((item) => item.isAvailable);\n const shown = available.filter((item) => shownIds.has(item.id)).length;\n return {\n available: available.length,\n shown,\n passes: available.length === 0 || shown / available.length >= 0.95,\n };\n}\n\nexport function priceMatches(text: string | null, formatted: string) {\n return text?.includes(formatted) ?? false;\n}\n","import { format } from \"@zappie/sdk\";\nimport { assertion } from \"../error\";\nimport { applyPageFault } from \"../fixtures\";\nimport type { VerifyCheck } from \"../types\";\nimport { readMenu, sortedItems } from \"./catalogue\";\nimport { open } from \"./common\";\nimport { menuCoverage, priceMatches } from \"./menu-match\";\n\nexport const v03: VerifyCheck = {\n id: \"V03\",\n title: \"Menu matches store\",\n viewports: \"mobile\",\n async run({ page, options, fault }, viewport) {\n const menu = await readMenu(options);\n await page.setViewportSize(viewport);\n await open(page);\n await applyPageFault(page, fault);\n const items = sortedItems(menu);\n const available = items.filter((item) => item.isAvailable);\n const shownIds = new Set<string>();\n for (const item of available) {\n const marker = page.locator(`[data-zappie-item=\"${item.id}\"]`);\n if (\n (await marker.count()) > 0 ||\n (await page.getByText(item.name, { exact: true }).count()) > 0\n ) {\n shownIds.add(item.id);\n }\n }\n const coverage = menuCoverage(items, shownIds);\n assertion(\n coverage.passes,\n \"menu_mismatch\",\n `The menu shows ${coverage.shown} of ${coverage.available} available items`,\n \"Render at least 95% of available menu items with data-zappie-item markers or visible names.\",\n );\n assertion(\n await page.locator(\"[data-zappie-item]\").count(),\n \"item_marker_missing\",\n \"The menu has no item marker\",\n \"Add data-zappie-item to each rendered menu item.\",\n );\n for (const item of items.filter((entry) => !entry.isAvailable)) {\n const add = page.locator(\n `[data-zappie-item=\"${item.id}\"] [data-zappie-action=\"add-to-cart\"]`,\n );\n if (await add.count()) {\n assertion(\n await add.isDisabled(),\n \"unavailable_item_addable\",\n `Shoppers can add the unavailable item ${item.name}`,\n \"Disable add-to-cart for unavailable items.\",\n );\n }\n }\n for (const item of available.slice(0, 2)) {\n const text = await page\n .locator(`[data-zappie-item=\"${item.id}\"]`)\n .first()\n .textContent();\n assertion(\n priceMatches(text, format.money(item.price)),\n \"price_mismatch\",\n `${item.name} does not show ${format.money(item.price)}`,\n \"Render prices with format.money from @zappie/sdk.\",\n );\n }\n },\n};\n","import { assertion } from \"../error\";\nimport { applyPageFault } from \"../fixtures\";\nimport type { VerifyCheck } from \"../types\";\nimport { readMenu, simpleItem } from \"./catalogue\";\nimport { debugValue, open } from \"./common\";\n\nexport const v04: VerifyCheck = {\n id: \"V04\",\n title: \"Add an item without required options\",\n viewports: \"both\",\n async run({ page, options, fault }, viewport) {\n await page.setViewportSize(viewport);\n await open(page);\n await applyPageFault(page, fault);\n const before = await debugValue(page, () => window.__zappie!.cart().count);\n await page.evaluate(() => {\n window.__zappieV04Events = [];\n window.addEventListener(\"zappie:event\", (event) => {\n window.__zappieV04Events!.push(\n (event as CustomEvent<{ name: string }>).detail,\n );\n });\n });\n const item = simpleItem(await readMenu(options));\n assertion(\n item,\n \"simple_item_missing\",\n \"The test menu has no available item without required options\",\n \"Keep one available item without required options in the test menu.\",\n );\n let openedItem = false;\n let simple = page\n .locator(`[data-zappie-item=\"${item.id}\"]`)\n .locator('[data-zappie-action=\"add-to-cart\"]');\n if (!(await simple.count())) {\n const itemLink = page\n .locator(\n `[data-zappie-item=\"${item.id}\"] a[href*=\"/item/\"], a[data-zappie-item=\"${item.id}\"], a[href*=\"/item/${item.id}\"]`,\n )\n .first();\n assertion(\n await itemLink.count(),\n \"simple_item_missing\",\n \"The item has no quick-add button or item link\",\n \"Render a marked quick-add button, or link the product card to an item page with one.\",\n );\n await itemLink.click();\n openedItem = true;\n simple = page\n .locator(\n '[role=\"dialog\"] [data-zappie-item] [data-zappie-action=\"add-to-cart\"]:visible, main [data-zappie-item] [data-zappie-action=\"add-to-cart\"]:visible',\n )\n .first();\n await simple\n .waitFor({ state: \"visible\", timeout: 5_000 })\n .catch(() => {});\n assertion(\n await simple.count(),\n \"simple_item_missing\",\n \"The item page has no add button\",\n 'Mark the item page add button with data-zappie-action=\"add-to-cart\".',\n );\n }\n await simple.click();\n const updated = openedItem\n ? await page\n .waitForFunction(\n () =>\n window.__zappieV04Events!.some(\n (entry) => entry.name === \"add_to_cart\",\n ),\n undefined,\n { timeout: 3_000 },\n )\n .then(\n () => true,\n () => false,\n )\n : await page.evaluate(\n (count) =>\n new Promise<boolean>((resolve) => {\n requestAnimationFrame(() => {\n resolve(window.__zappie!.cart().count > count);\n });\n }),\n before,\n );\n assertion(\n updated,\n \"cart_not_updated\",\n openedItem\n ? \"The item page did not add the item to the cart\"\n : \"The cart count did not change within one frame of Add\",\n \"Connect the marked Add control to client.cart.add and update the cart immediately.\",\n );\n const event = await page.evaluate(() =>\n window.__zappieV04Events!.some((entry) => entry.name === \"add_to_cart\"),\n );\n assertion(\n event,\n \"add_event_missing\",\n \"The SDK did not record add_to_cart\",\n \"Use the SDK cart add action to record the test-mode event.\",\n );\n },\n};\n","import { assertion } from \"../error\";\nimport type { VerifyCheck } from \"../types\";\nimport { configurableItem, readMenu } from \"./catalogue\";\nimport { debugValue, open } from \"./common\";\n\nexport const v05: VerifyCheck = {\n id: \"V05\",\n title: \"Add an item with required options\",\n viewports: \"both\",\n async run({ page, options }, viewport) {\n await page.setViewportSize(viewport);\n await open(page);\n const selected = configurableItem(await readMenu(options));\n assertion(\n selected,\n \"required_item_missing\",\n \"The test menu has no available item with required options\",\n \"Keep one available configurable item in the test menu.\",\n );\n const item = page.locator(`[data-zappie-item=\"${selected.id}\"]`).first();\n await item\n .locator(\"xpath=..\")\n .getByRole(\"link\", { name: \"View details\" })\n .click();\n const dialog = page.getByRole(\"dialog\");\n await dialog.waitFor();\n const required = dialog\n .locator('[data-zappie-option-group][aria-required=\"true\"]')\n .first();\n assertion(\n await required.count(),\n \"required_group_missing\",\n \"The item dialog has no marked required option group\",\n \"Expose required groups through data-zappie-option-group and aria-required.\",\n );\n const before = await debugValue(page, () => window.__zappie!.cart().count);\n const add = dialog.locator('[data-zappie-action=\"add-to-cart\"]');\n assertion(\n await add.isDisabled(),\n \"required_option_bypassed\",\n \"Add is enabled before the shopper chooses a required option\",\n \"Disable Add until the shopper completes every required option group.\",\n );\n for (let index = 0; index < 5 && (await add.isDisabled()); index++) {\n const unsatisfied = dialog\n .locator(\n '[data-zappie-option-group][aria-required=\"true\"]:not(:has([data-state=\"checked\"]))',\n )\n .first();\n assertion(\n await unsatisfied.count(),\n \"required_option_unselectable\",\n \"A required option group has no selectable choice\",\n \"Keep an available choice in every required option group.\",\n );\n await unsatisfied\n .locator('[data-zappie-option]:not([aria-disabled=\"true\"])')\n .first()\n .click();\n }\n assertion(\n await add.isEnabled(),\n \"required_option_unselectable\",\n \"Valid choices did not enable Add\",\n \"Recheck the item selection when required choices change.\",\n );\n await add.click();\n await dialog.waitFor({ state: \"hidden\" });\n await page.waitForFunction(\n (count) => window.__zappie!.cart().count > count,\n before,\n );\n const lineHasChoices = await page.evaluate(\n (itemId) =>\n window\n .__zappie!.cart()\n .lines.some(\n (line) => line.itemId === itemId && line.choices.length > 0,\n ),\n selected.id,\n );\n assertion(\n lineHasChoices,\n \"selected_options_missing\",\n \"The added line has no selected options\",\n \"Pass ItemForm choices to the SDK cart add action.\",\n );\n },\n};\n","import { format, type Money } from \"@zappie/sdk\";\nimport { assertion } from \"../error\";\nimport type { VerifyCheck } from \"../types\";\nimport { open } from \"./common\";\n\nexport const v06: VerifyCheck = {\n id: \"V06\",\n title: \"Cart quote and total\",\n viewports: \"both\",\n async run({ page }, viewport) {\n await page.setViewportSize(viewport);\n if (new URL(page.url()).pathname !== \"/\") {\n await open(page);\n }\n const total = page.locator(\"[data-zappie-total]\");\n if (!(await total.isVisible())) {\n await page.locator(\"[data-zappie-cart-trigger]\").first().click();\n }\n await page.waitForFunction(\n () => window.__zappie!.events.some((entry) => entry.name === \"quote\"),\n undefined,\n { timeout: 2_000 },\n );\n const quote = await page.evaluate(() => window.__zappie!.quote());\n assertion(\n quote,\n \"quote_missing\",\n \"The cart did not produce a quote within 2 seconds\",\n \"Open the cart through the SDK and render Totals so it requests a quote.\",\n );\n const rendered = await total.textContent();\n assertion(\n rendered?.includes(format.money(quote.total as Money)),\n \"total_mismatch\",\n `Rendered total does not match ${format.money(quote.total as Money)}`,\n \"Render quote.total with the SDK Money formatter.\",\n );\n },\n};\n","import {\n previewItem,\n resolveSourceMenu,\n validateLine,\n type Branch,\n type CartLineInput,\n type Item,\n type Menu,\n} from \"@zappie/sdk\";\n\n// Use SDK rules for each candidate, including conditional options and exact variants.\nexport function orderableLine(menu: Menu, branch: Branch, item: Item) {\n for (const source of menu.menus ?? [{ id: menu.id }]) {\n const menuId = resolveSourceMenu(menu, item.id, source.id);\n if (!menuId) {\n continue;\n }\n for (const variant of item.variants.filter((value) => value.isAvailable)) {\n const line: CartLineInput = {\n itemId: item.id,\n menuId,\n variantId: variant.id,\n quantity:\n Math.ceil(item.quantity.min / item.quantity.step) *\n item.quantity.step,\n choices: Object.entries(variant.attributeChoices).map(\n ([groupId, choiceId]) => ({ groupId, choiceId, quantity: 1 }),\n ),\n inputs: {},\n };\n for (let round = 0; round <= item.optionGroups.length; round++) {\n const { groups } = previewItem(item, line);\n for (const group of groups) {\n if (group.isAttribute || group.isInformational) {\n continue;\n }\n const minimum = Math.max(group.selection.min, group.required ? 1 : 0);\n if (group.kind === \"select\") {\n const selected = line.choices!.filter(\n (choice) => choice.groupId === group.id,\n );\n for (const choice of group.choices.filter(\n (value) => value.isAvailable,\n )) {\n if (selected.length >= minimum) {\n break;\n }\n if (!selected.some((value) => value.choiceId === choice.id)) {\n const value = {\n groupId: group.id,\n choiceId: choice.id,\n quantity: choice.quantity?.min ?? 1,\n };\n line.choices!.push(value);\n selected.push(value);\n }\n }\n } else if (group.required) {\n const values = {\n number: \"1\",\n date: \"2026-01-01\",\n time: \"12:00\",\n toggle: \"true\",\n text: \"Verify\",\n };\n line.inputs![group.id] = values[group.kind].slice(\n 0,\n group.input?.maxLength,\n );\n }\n }\n if (validateLine(item, line, { menu, branch }).length === 0) {\n return {\n ...line,\n unitPrice: previewItem(item, line).unitPrice,\n };\n }\n }\n }\n }\n return undefined;\n}\n","import { resolveSourceMenu } from \"@zappie/sdk\";\nimport { assertion } from \"../error\";\nimport type { VerifyCheck } from \"../types\";\nimport { open } from \"./common\";\nimport { orderableLine } from \"./stale-cart\";\n\nexport const v07: VerifyCheck = {\n id: \"V07\",\n title: \"Handle quote issues\",\n viewports: \"mobile\",\n async run({ page }, viewport) {\n await page.setViewportSize(viewport);\n await open(page);\n await page.waitForFunction(() => window.__zappie?.cart().isHydrated);\n const debug = await page.evaluate(() => ({\n inject: typeof window.__zappie?.cart.inject === \"function\",\n branch: window.__zappie?.cart().branchId,\n }));\n assertion(\n debug.inject,\n \"cart_inject_missing\",\n \"The test cart has no inject method\",\n \"Use an SDK version that exposes cart.inject with a public test key.\",\n );\n const { menu, branch } = await page.evaluate(() =>\n window.__zappie!.catalogue(),\n );\n const items = Object.values(menu.items).sort((a, b) =>\n a.id.localeCompare(b.id),\n );\n const available = items\n .filter((item) => item.isAvailable)\n .map((item) => orderableLine(menu, branch, item))\n .find((line) => line !== undefined);\n assertion(\n available,\n \"orderable_item_missing\",\n \"The branch has no item that verify can order\",\n \"Keep an available item with valid choices in this branch's menu.\",\n );\n const unavailable = items.find((item) => !item.isAvailable);\n const lines = [\n {\n ...available,\n unitPrice: {\n ...available.unitPrice,\n amountMinor: available.unitPrice.amountMinor === 0 ? 1 : 0,\n },\n },\n ];\n if (unavailable) {\n const menuId = (menu.menus ?? [{ id: menu.id }])\n .map((source) => resolveSourceMenu(menu, unavailable.id, source.id))\n .find(Boolean);\n lines.push({\n quantity: 1,\n itemId: unavailable.id,\n ...(menuId ? { menuId } : {}),\n variantId: unavailable.variants[0].id,\n choices: [],\n inputs: {},\n unitPrice: unavailable.variants[0].price,\n });\n }\n await page.evaluate(async (lines) => {\n await window.__zappie!.cart.inject({ lines });\n }, lines);\n await page.reload({ waitUntil: \"domcontentloaded\" });\n await page.locator(\"[data-zappie-cart-trigger]\").first().click();\n const codes = unavailable\n ? [\"price_changed\", \"item_unavailable\"]\n : [\"price_changed\"];\n for (const code of codes) {\n const issue = page.locator(`[data-zappie-issue=\"${code}\"]`).first();\n await issue.waitFor({ state: \"visible\" });\n assertion(\n await issue.isVisible(),\n \"quote_issue_missing\",\n `The cart does not show ${code}`,\n \"Render each quote issue with data-zappie-issue and its fixes with data-zappie-issue-fix.\",\n );\n }\n for (const code of codes) {\n const issue = page.locator(`[data-zappie-issue=\"${code}\"]`).first();\n const fix = issue.locator(\"[data-zappie-issue-fix]\").first();\n assertion(\n await fix.count(),\n \"quote_fix_missing\",\n `The cart has no fix for ${code}`,\n \"Connect each marked issue fix to the SDK cart applyFix action.\",\n );\n await fix.click();\n await issue.waitFor({ state: \"hidden\" });\n }\n await open(page, \"/checkout\");\n await page.waitForFunction(() => {\n const cart = window.__zappie?.cart();\n return (\n cart &&\n cart.issues.length === 0 &&\n \"quote\" in cart.state &&\n cart.state.quote?.checkout.ready\n );\n });\n assertion(\n (await page.locator(\"[data-zappie-issue]\").count()) === 0,\n \"quote_issues_remain\",\n \"The cart still shows issues after both fixes\",\n \"Remove resolved issue messages when the SDK cart updates.\",\n );\n await page.waitForFunction(() => {\n const control = document.querySelector<HTMLButtonElement>(\n \"[data-zappie-checkout]\",\n );\n return control && !control.disabled;\n });\n assertion(\n await page.locator(\"[data-zappie-checkout]\").isEnabled(),\n \"checkout_not_ready\",\n \"Checkout is disabled after the quote issues clear\",\n \"Enable checkout when the SDK quote is ready and the cart has no blocking issue.\",\n );\n assertion(\n unavailable,\n \"dependency_blocked\",\n \"The price-change checks passed, but the unavailable-item checks need a sold-out item\",\n \"Keep one sold-out item in this branch's menu to check its issue and removal fix.\",\n );\n },\n};\n","import { assertion } from \"../error\";\nimport type { VerifyCheck } from \"../types\";\nimport { debugValue, open } from \"./common\";\n\nexport const v09: VerifyCheck = {\n id: \"V09\",\n title: \"Pickup\",\n viewports: \"mobile\",\n async run({ page }, viewport) {\n await page.setViewportSize(viewport);\n await open(page, \"/checkout\");\n const pickup = page.locator('[data-zappie-fulfilment=\"pickup\"]');\n await pickup.waitFor();\n assertion(\n await pickup.count(),\n \"pickup_missing\",\n \"Pickup control is missing\",\n \"Render a pickup control with data-zappie-fulfilment=pickup.\",\n );\n await pickup.click();\n await page.waitForFunction(\n () => window.__zappie!.cart().fulfilment?.type === \"pickup\",\n );\n await page.waitForFunction(() => Boolean(window.__zappie!.quote()));\n const quote = await debugValue(page, () => window.__zappie!.quote());\n assertion(\n !quote?.delivery || quote.delivery.amountMinor === 0,\n \"pickup_delivery_fee\",\n \"Pickup quote includes a delivery fee\",\n \"Send pickup fulfilment to the SDK cart before quoting.\",\n );\n },\n};\n","import { stableErrorCode } from \"../internal/customer-http\";\nimport { ZappieError } from \"./sdk\";\n\n/**\n * A places API failure with its HTTP status, API code and optional validation issues.\n * Statuses 429 and 5xx are marked retryable.\n */\nexport class PlacesError extends ZappieError {\n readonly issues?: unknown;\n\n constructor(\n status: number,\n readonly apiCode: string,\n message: string,\n param?: string,\n issues?: unknown,\n ) {\n super(stableErrorCode(status), message, {\n status,\n retryable: status === 429 || status >= 500,\n ...(param !== undefined ? { param } : {}),\n });\n if (issues !== undefined) {\n this.issues = issues;\n }\n }\n}\n","import { apiError, requestWithRetry } from \"../internal/customer-http\";\nimport { PlacesError } from \"./error\";\n\nexport type PlacesRequest = <T>(path: string, init?: RequestInit) => Promise<T>;\n\nexport function createPlacesRequest(\n base: string,\n key: string,\n version: string,\n fetcher: typeof fetch,\n): PlacesRequest {\n return async <T>(path: string, init: RequestInit = {}): Promise<T> => {\n const response = await requestWithRetry(\n fetcher,\n base + path,\n {\n ...init,\n // Workers reject redirect: \"error\"; !response.ok below refuses a redirect.\n redirect: \"manual\",\n headers: {\n Authorization: `Bearer ${key}`,\n \"Zappie-Version\": version,\n ...init.headers,\n },\n },\n \"Could not reach the places service\",\n );\n if (!response.ok) {\n const value = await apiError(\n response,\n `The places service answered ${response.status}`,\n );\n throw new PlacesError(\n response.status,\n value.apiCode,\n value.message,\n value.param,\n value.issues,\n );\n }\n return (await response.json()) as T;\n };\n}\n","import type { AddressSearchOptions, Place, PlaceSuggestion } from \"./types\";\n\ntype SearchClient = {\n autocomplete(\n query: string,\n token: string,\n options: { signal?: AbortSignal },\n ): Promise<PlaceSuggestion[]>;\n place(\n id: string,\n options: {\n branchId?: string;\n sessionToken?: string;\n signal?: AbortSignal;\n },\n ): Promise<Place>;\n};\n\nconst aborted = () => new DOMException(\"Superseded\", \"AbortError\");\n\nexport function createAddressSearch(\n client: SearchClient,\n options: AddressSearchOptions = {},\n) {\n const debounceMs = options.debounceMs ?? 250;\n let token = crypto.randomUUID();\n let controller: AbortController | undefined;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let rejectPending: ((reason: unknown) => void) | undefined;\n let revision = 0;\n const cancel = () => {\n revision++;\n if (timer !== undefined) {\n clearTimeout(timer);\n timer = undefined;\n }\n controller?.abort(aborted());\n controller = undefined;\n rejectPending?.(aborted());\n rejectPending = undefined;\n };\n return {\n suggest(query: string): Promise<PlaceSuggestion[]> {\n cancel();\n const current = revision;\n if (!query.trim()) {\n return Promise.resolve([]);\n }\n return new Promise((resolve, reject) => {\n rejectPending = reject;\n timer = setTimeout(async () => {\n timer = undefined;\n controller = new AbortController();\n try {\n const value = await client.autocomplete(query.trim(), token, {\n signal: controller.signal,\n });\n if (current === revision) {\n resolve(value);\n }\n } catch (failure) {\n if (current === revision) {\n reject(failure);\n }\n } finally {\n if (current === revision) {\n rejectPending = undefined;\n controller = undefined;\n }\n }\n }, debounceMs);\n });\n },\n async select(placeId: string): Promise<Place> {\n cancel();\n const current = revision;\n controller = new AbortController();\n try {\n const value = await client.place(placeId, {\n ...(options.branchId !== undefined\n ? { branchId: options.branchId }\n : {}),\n sessionToken: token,\n signal: controller.signal,\n });\n if (current !== revision) {\n throw aborted();\n }\n token = crypto.randomUUID();\n return value;\n } finally {\n if (current === revision) {\n controller = undefined;\n }\n }\n },\n dispose: cancel,\n };\n}\n","import { createPlacesRequest } from \"./request\";\nimport { API_VERSION, RestTransport, validateConfig } from \"./sdk\";\nimport { createAddressSearch } from \"./search\";\nimport type {\n AddressSearchOptions,\n Place,\n PlaceOptions,\n PlacesClientOptions,\n PlaceSuggestion,\n SignalOptions,\n ZoneCheck,\n ZoneCheckRequest,\n} from \"./types\";\n\nconst DEFAULT_CUSTOMER_BASE = \"/_zappie/api\";\n\n/**\n * Create a client for address autocomplete, place lookup and delivery-zone checks.\n * Also provides reverse lookup, static-map URLs and debounced address search controllers.\n *\n * @param options - Your publishable key and optional transport settings.\n * @returns A places client. Creating it validates the key format without fetching data.\n */\nexport function createPlaces(options: PlacesClientOptions) {\n validateConfig({ store: \"places\", key: options.key });\n const base = new RestTransport({\n ...(options.baseUrl ? { baseUrl: options.baseUrl } : {}),\n ...(options.fetch ? { fetch: options.fetch } : {}),\n }).baseUrl;\n const customerBase = (options.customerBase ?? DEFAULT_CUSTOMER_BASE).replace(\n /\\/+$/,\n \"\",\n );\n const request = createPlacesRequest(\n base,\n options.key,\n options.version ?? API_VERSION,\n options.fetch ?? globalThis.fetch,\n );\n const readPlace = (\n id: string,\n read: SignalOptions & { branchId?: string; sessionToken?: string },\n ) => {\n const params = new URLSearchParams();\n if (read.branchId !== undefined) {\n params.set(\"branch_id\", read.branchId);\n }\n if (read.sessionToken !== undefined) {\n params.set(\"session\", read.sessionToken);\n }\n const suffix = params.size > 0 ? `?${params}` : \"\";\n return request<Place>(`/places/${encodeURIComponent(id)}${suffix}`, {\n method: \"GET\",\n ...(read.signal ? { signal: read.signal } : {}),\n });\n };\n const client = {\n async autocomplete(\n query: string,\n sessionToken: string,\n read: SignalOptions = {},\n ): Promise<PlaceSuggestion[]> {\n if (!query.trim()) {\n return [];\n }\n const params = new URLSearchParams({\n q: query.trim(),\n session: sessionToken,\n });\n const result = await request<{ suggestions: PlaceSuggestion[] }>(\n `/places/autocomplete?${params}`,\n { method: \"GET\", ...(read.signal ? { signal: read.signal } : {}) },\n );\n return result.suggestions;\n },\n place(id: string, read: PlaceOptions): Promise<Place> {\n return readPlace(id, read);\n },\n reverse(lat: number, lng: number, read: SignalOptions = {}) {\n const params = new URLSearchParams({\n lat: String(lat),\n lng: String(lng),\n });\n return request<Place>(`/places/reverse?${params}`, {\n method: \"GET\",\n ...(read.signal ? { signal: read.signal } : {}),\n });\n },\n staticMapUrl(lat: number, lng: number, branchId?: string) {\n const params = new URLSearchParams({\n lat: String(lat),\n lng: String(lng),\n });\n if (branchId !== undefined) {\n params.set(\"branch_id\", branchId);\n }\n return `${customerBase}/places/static-map?${params}`;\n },\n zoneCheck(body: ZoneCheckRequest, read: SignalOptions = {}) {\n return request<ZoneCheck>(\"/delivery/zones/check\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(body),\n ...(read.signal ? { signal: read.signal } : {}),\n });\n },\n createAddressSearch(searchOptions: AddressSearchOptions = {}) {\n return createAddressSearch(\n {\n autocomplete: client.autocomplete,\n place: readPlace,\n },\n searchOptions,\n );\n },\n };\n return client;\n}\n\n/**\n * The place lookup, address search and delivery-zone operations returned by createPlaces.\n */\nexport type PlacesClient = ReturnType<typeof createPlaces>;\n","import { createPlaces } from \"@zappie/sdk/places\";\nimport { assertion } from \"../error\";\nimport type { VerifyCheck } from \"../types\";\nimport { debugValue, open } from \"./common\";\n\nconst ADDRESS = \"12 Admiralty Way, Lekki\";\n\nexport const v10: VerifyCheck = {\n id: \"V10\",\n title: \"Delivery\",\n viewports: \"mobile\",\n async run({ page, options }, viewport) {\n await page.setViewportSize(viewport);\n await open(page, \"/checkout\");\n const delivery = page.locator('[data-zappie-fulfilment=\"delivery\"]');\n await delivery.waitFor();\n assertion(\n await delivery.count(),\n \"delivery_missing\",\n \"Delivery control is missing\",\n \"Render a delivery control with data-zappie-fulfilment=delivery.\",\n );\n await delivery.click();\n const input = page.locator(\"[data-zappie-address-input]\");\n await input.waitFor();\n await input.fill(ADDRESS);\n await page.getByText(ADDRESS, { exact: true }).last().click();\n await page.waitForFunction(() => {\n const fulfilment = window.__zappie!.cart().fulfilment;\n return (\n fulfilment?.type === \"delivery\" && Boolean(fulfilment.address.placeId)\n );\n });\n const fulfilment = await debugValue(\n page,\n () => window.__zappie!.cart().fulfilment,\n );\n assertion(\n fulfilment?.type === \"delivery\",\n \"delivery_address_missing\",\n \"The selected address was not stored\",\n \"Store the resolved address on delivery fulfilment.\",\n );\n await page.waitForFunction(\n () => (window.__zappie!.quote()?.delivery?.amountMinor ?? 0) > 0,\n );\n const quote = await debugValue(page, () => window.__zappie!.quote());\n assertion(\n (quote?.delivery?.amountMinor ?? 0) > 0,\n \"delivery_fee_missing\",\n \"The delivery quote has no delivery fee\",\n \"Quote the selected delivery zone and include its fee.\",\n );\n const places = createPlaces({\n key: options.key,\n ...(process.env.ZAPPIE_VERIFY_API_URL\n ? { baseUrl: process.env.ZAPPIE_VERIFY_API_URL }\n : {}),\n });\n const zone = await places.zoneCheck({\n branch_id: fulfilment.branchId,\n address: {\n line1: fulfilment.address.line1,\n ...(fulfilment.address.placeId\n ? { place_id: fulfilment.address.placeId }\n : {}),\n ...(fulfilment.address.coordinates\n ? {\n lat: fulfilment.address.coordinates.lat,\n lng: fulfilment.address.coordinates.lng,\n }\n : {}),\n },\n });\n assertion(\n zone.deliverable && zone.fee,\n \"delivery_zone_failed\",\n \"The test address is not deliverable\",\n \"Make the test-mode zone check accept 12 Admiralty Way, Lekki and return its fee.\",\n );\n },\n};\n","import AxeBuilder from \"@axe-core/playwright\";\nimport { assertion } from \"../error\";\nimport { applyPageFault } from \"../fixtures\";\nimport type { VerifyCheck } from \"../types\";\nimport { readMenu, sortedItems } from \"./catalogue\";\nimport { open } from \"./common\";\n\nasync function severeViolations(page: import(\"@playwright/test\").Page) {\n const analysis = await new AxeBuilder({ page }).analyze();\n return analysis.violations.filter(\n (entry) => entry.impact === \"critical\" || entry.impact === \"serious\",\n );\n}\n\nasync function controlsAreReachable(\n page: import(\"@playwright/test\").Page,\n selectors: string[],\n) {\n const reached = new Set<number>();\n for (let index = 0; index < 60; index++) {\n await page.keyboard.press(\"Tab\");\n const match = await page.evaluate((values) => {\n return values.findIndex((value) =>\n document.activeElement?.closest(value),\n );\n }, selectors);\n if (match >= 0) {\n reached.add(match);\n }\n if (reached.size === selectors.length) {\n return true;\n }\n }\n return false;\n}\n\nexport const v13: VerifyCheck = {\n id: \"V13\",\n title: \"Accessibility\",\n viewports: \"both\",\n async run({ page, context, options, fault }, viewport) {\n await page.setViewportSize(viewport);\n await open(page);\n await applyPageFault(page, fault);\n const violations = await severeViolations(page);\n const item = sortedItems(await readMenu(options)).find(\n (entry) => entry.isAvailable,\n );\n assertion(\n item,\n \"available_item_missing\",\n \"No available item can be opened for accessibility checks\",\n \"Keep one available item in the test menu.\",\n );\n await page\n .locator(`[data-zappie-item=\"${item.id}\"]`)\n .first()\n .locator(\"xpath=..\")\n .getByRole(\"link\", { name: \"View details\" })\n .click();\n violations.push(...(await severeViolations(page)));\n await page.getByRole(\"button\", { name: \"Close item\" }).click();\n await page.locator(\"[data-zappie-cart-trigger]\").first().click();\n violations.push(...(await severeViolations(page)));\n const message = violations\n .flatMap((entry) =>\n entry.nodes.map((node) => `${entry.id}: ${node.target.join(\" \")}`),\n )\n .join(\", \");\n assertion(\n violations.length === 0,\n \"accessibility_violation\",\n message || \"Accessibility violation\",\n \"Fix every serious or critical axe violation in the menu, item dialog, cart and order page.\",\n );\n await page.keyboard.press(\"Escape\");\n await context.addCookies([\n {\n name: \"zappie_session\",\n value: \"signed\",\n domain: new URL(page.url()).hostname,\n path: \"/\",\n },\n ]);\n await open(page, \"/orders/order_fixture\");\n const order = await severeViolations(page);\n assertion(\n order.length === 0,\n \"order_accessibility_violation\",\n order.map((entry) => entry.id).join(\", \") ||\n \"Order page has a serious axe violation\",\n \"Fix serious and critical axe findings on the order page.\",\n );\n await open(page);\n assertion(\n await controlsAreReachable(page, [\n '[data-zappie-action=\"add-to-cart\"]',\n \"[data-zappie-cart-trigger]\",\n ]),\n \"keyboard_marker_unreachable\",\n \"Keyboard navigation did not reach the Add and cart controls\",\n \"Keep the marked Add and cart controls in the tab order.\",\n );\n await open(page, \"/checkout\");\n await page.locator('input[type=\"tel\"]').fill(\"+2348000000001\");\n await page.waitForFunction(\n () =>\n !document.querySelector<HTMLButtonElement>(\"[data-zappie-checkout]\")\n ?.disabled,\n );\n assertion(\n await controlsAreReachable(page, [\"[data-zappie-checkout]\"]),\n \"checkout_keyboard_unreachable\",\n \"Keyboard navigation did not reach the checkout control\",\n \"Keep the enabled checkout control in the tab order and add its verify marker.\",\n );\n },\n};\n","import { assertion } from \"../error\";\nimport { applyPageFault } from \"../fixtures\";\nimport type { VerifyCheck } from \"../types\";\nimport { applyPhoneProfile } from \"./common\";\n\nexport const v14: VerifyCheck = {\n id: \"V14\",\n title: \"Performance budget\",\n viewports: \"mobile\",\n async run({ page, metrics, fault }, viewport) {\n await page.setViewportSize(viewport);\n const cdp = await applyPhoneProfile(page);\n await page.addInitScript(() => {\n const state = { lcp: 0, cls: 0 };\n Object.assign(window, { __zappiePerformance: state });\n new PerformanceObserver((list) => {\n state.lcp = Math.max(\n state.lcp,\n ...list.getEntries().map((entry) => entry.startTime),\n );\n }).observe({ type: \"largest-contentful-paint\", buffered: true });\n new PerformanceObserver((list) => {\n state.cls += list\n .getEntries()\n .filter(\n (entry) =>\n !(entry as PerformanceEntry & { hadRecentInput?: boolean })\n .hadRecentInput,\n )\n .reduce(\n (sum, entry) =>\n sum +\n ((entry as PerformanceEntry & { value?: number }).value ?? 0),\n 0,\n );\n }).observe({ type: \"layout-shift\", buffered: true });\n });\n await page.goto(\"/\", { waitUntil: \"load\" });\n await applyPageFault(page, fault);\n if (fault === \"oversized\") {\n await page.addScriptTag({ url: \"/__verify-large.js\" });\n }\n await page.locator(\"[data-zappie-item]\").first().waitFor();\n await page.waitForTimeout(500);\n const values = await page.evaluate(async () => {\n const observed = window.__zappiePerformance ?? { lcp: 0, cls: 0 };\n const scripts = performance\n .getEntriesByType(\"resource\")\n .filter((entry) => entry.name.endsWith(\".js\"));\n const sizes = await Promise.all(\n scripts.map(async (entry) => {\n if (typeof CompressionStream === \"undefined\") {\n const timing = entry as PerformanceResourceTiming;\n return timing.encodedBodySize || timing.transferSize;\n }\n const response = await fetch(entry.name);\n const compressed = response.body?.pipeThrough(\n new CompressionStream(\"gzip\"),\n );\n return compressed\n ? (await new Response(compressed).arrayBuffer()).byteLength\n : 0;\n }),\n );\n const js = sizes.reduce((sum, size) => sum + size, 0);\n return { ...observed, js };\n });\n metrics.menuJsKbGz = Math.round((values.js / 1024) * 10) / 10;\n metrics.lcpMs = Math.round(values.lcp);\n metrics.cls = Math.round(values.cls * 1000) / 1000;\n assertion(\n values.js <= 200 * 1024,\n \"bundle_too_large\",\n `Menu uses ${values.js} B of gzipped JavaScript`,\n \"Split route code until the menu transfers at most 200 KiB of JavaScript.\",\n );\n assertion(\n values.lcp <= 2500,\n \"lcp_too_slow\",\n `Menu LCP was ${Math.round(values.lcp)} ms`,\n \"Reduce critical rendering work until mobile LCP is at most 2.5 seconds.\",\n );\n assertion(\n values.cls <= 0.1,\n \"cls_too_high\",\n `Menu CLS was ${values.cls.toFixed(3)}`,\n \"Reserve layout space so CLS stays at or below 0.1.\",\n );\n await cdp.detach();\n },\n};\n","import { assertion } from \"../error\";\nimport type { VerifyCheck } from \"../types\";\nimport { applyPhoneProfile } from \"./common\";\n\nconst TAPPABLE_BUDGET_MS = 3_000;\nconst OPEN_BUDGET_MS = 300;\n\nexport const v15: VerifyCheck = {\n id: \"V15\",\n title: \"Tappable product cards\",\n viewports: \"mobile\",\n async run({ page, metrics }, viewport) {\n await page.setViewportSize(viewport);\n const cdp = await applyPhoneProfile(page);\n try {\n await page.goto(\"/\", { waitUntil: \"domcontentloaded\" });\n await cdp.send(\"Network.setCacheDisabled\", { cacheDisabled: false });\n const link = page.locator('a[href*=\"/item/\"]').first();\n await link.waitFor();\n const href = await link.getAttribute(\"href\");\n assertion(\n href !== null,\n \"product_card_link_missing\",\n \"The first product card has no destination\",\n \"Link the product card to its item page.\",\n );\n const itemPath = new URL(href, page.url()).pathname;\n // The manifest arrives in its own script; prefetching can't start before it does.\n await page\n .waitForFunction(() => \"__reactRouterManifest\" in window, null, {\n timeout: 8_000,\n })\n .catch(() => undefined);\n const itemModule = await page.evaluate(itemRouteModule, itemPath);\n // React Router prefetches an item route's code, and its data only when a route on the way has a loader;\n // either one arriving before the tap means the card was prefetched.\n const prefetched = page\n .waitForResponse(\n (response) => {\n const path = new URL(response.url()).pathname;\n if (path === itemModule) {\n return true;\n }\n return (\n path === `${itemPath}.data` &&\n response.request().headers()[\"sec-purpose\"] === \"prefetch\"\n );\n },\n { timeout: 8_000 },\n )\n .then(async (response) => {\n await response.finished();\n return true;\n })\n .catch(() => false);\n await link.evaluate((node) =>\n node.scrollIntoView({ block: \"center\", inline: \"nearest\" }),\n );\n await page.waitForFunction(() => {\n const candidate = document.querySelector('a[href*=\"/item/\"]');\n return (\n candidate !== null &&\n Object.keys(candidate).some(\n (key) =>\n key.startsWith(\"__reactProps$\") ||\n key.startsWith(\"__reactFiber$\"),\n )\n );\n });\n const tappableMs = await page.evaluate(() => performance.now());\n metrics.productCardTappableMs = Math.round(tappableMs);\n assertion(\n tappableMs <= TAPPABLE_BUDGET_MS,\n \"product_card_tappable_too_late\",\n `The first product card became tappable in ${Math.round(tappableMs)} ms`,\n \"Reduce critical scripts, fonts and high-priority images until product cards become tappable within 3 seconds.\",\n );\n\n assertion(\n await prefetched,\n \"product_card_prefetch_missing\",\n \"The first product card did not prefetch its item page\",\n 'Prefetch item links with prefetch=\"viewport\".',\n );\n await page.waitForLoadState(\"networkidle\");\n\n await page.evaluate(() => {\n document.addEventListener(\n \"click\",\n (event) => {\n const target = event.target as Element | null;\n if (target?.closest('a[href*=\"/item/\"]')) {\n window.__zappieTapAt = performance.now();\n }\n },\n { capture: true, once: true },\n );\n });\n await link.click({ noWaitAfter: true });\n await Promise.race([\n page.waitForURL((url) => /\\/item\\//.test(url.pathname)),\n page\n .locator('[role=\"dialog\"] [data-zappie-item]')\n .waitFor({ state: \"visible\" }),\n ]);\n const openMs = await page.evaluate(\n () => performance.now() - (window.__zappieTapAt ?? 0),\n );\n metrics.productCardOpenMs = Math.round(openMs);\n assertion(\n openMs <= OPEN_BUDGET_MS,\n \"product_card_open_too_slow\",\n `The first product card opened in ${Math.round(openMs)} ms`,\n 'Set routeDiscovery to initial and prefetch item links with prefetch=\"viewport\" so the item surface opens within 300 ms.',\n );\n } finally {\n await cdp.detach();\n }\n },\n};\n\ntype RouteEntry = {\n id: string;\n parentId?: string;\n path?: string;\n module: string;\n};\n\n/** The item route's module path from React Router's manifest, or undefined when the page has none. */\nfunction itemRouteModule(itemPath: string) {\n const manifest = (\n window as { __reactRouterManifest?: { routes: Record<string, RouteEntry> } }\n ).__reactRouterManifest;\n if (!manifest) {\n return undefined;\n }\n const segments = (path: string) => path.split(\"/\").filter(Boolean);\n const fullPath = (route: RouteEntry) => {\n const parts: string[] = [];\n for (\n let current: RouteEntry | undefined = route;\n current;\n current = current.parentId ? manifest.routes[current.parentId] : undefined\n ) {\n if (current.path) {\n parts.unshift(current.path);\n }\n }\n return segments(parts.join(\"/\"));\n };\n const wanted = segments(itemPath);\n const route = Object.values(manifest.routes).find((entry) => {\n if (!entry.path) {\n return false;\n }\n const pattern = fullPath(entry);\n return (\n pattern.length === wanted.length &&\n pattern.every(\n (part, index) => part.startsWith(\":\") || part === wanted[index],\n )\n );\n });\n return route ? new URL(route.module, location.href).pathname : undefined;\n}\n","import type { CheckResult, VerifyCheck } from \"../types\";\nimport { v01 } from \"./v01-routes\";\nimport { v02 } from \"./v02-sdk\";\nimport { v03 } from \"./v03-menu\";\nimport { v04 } from \"./v04-add-simple\";\nimport { v05 } from \"./v05-add-options\";\nimport { v06 } from \"./v06-quote\";\nimport { v07 } from \"./v07-quote-issues\";\nimport { v09 } from \"./v09-pickup\";\nimport { v10 } from \"./v10-delivery\";\nimport { v13 } from \"./v13-accessibility\";\nimport { v14 } from \"./v14-performance\";\nimport { v15 } from \"./v15-tappable-product-cards\";\n\nexport const checks: VerifyCheck[] = [\n v01,\n v02,\n v03,\n v04,\n v05,\n v06,\n v07,\n v09,\n v10,\n v13,\n v14,\n v15,\n];\n\nconst blocked = [\n [\n \"V08\",\n \"Test customer sign-in\",\n \"Add the PRD 12/13 test accounts to run this check.\",\n ],\n [\n \"V11\",\n \"Check out with each payment method\",\n \"Set up payment sandboxes and the PRD 11 embed to run this check.\",\n ],\n [\n \"V12\",\n \"Order status page\",\n \"Add POST /test/orders/{id}/advance to run this check.\",\n ],\n] as const;\n\nexport function skippedChecks(suite: \"standard\" | \"extended\"): CheckResult[] {\n const standard = blocked.map(([id, title, message]) => ({\n id,\n title,\n result: \"skipped\" as const,\n durationMs: 0,\n error: { code: \"dependency_blocked\", message, hint: message },\n }));\n if (suite === \"standard\") {\n return standard;\n }\n return [\n ...standard,\n ...Array.from({ length: 6 }, (_, index) => ({\n id: `E0${index + 1}`,\n title: \"Extended payment checks\",\n result: \"skipped\" as const,\n durationMs: 0,\n error: {\n code: \"dependency_blocked\",\n message: \"The extended suite needs the payment elements from PRD 27.\",\n hint: \"Implement PRD 27 before you enable the extended suite.\",\n },\n })),\n ];\n}\n","import { createPrivateKey, randomUUID, sign } from \"node:crypto\";\nimport type { CheckResult, VerifyOptions, VerifyReport } from \"./types\";\n\nexport const REPORT_SCHEMA =\n \"https://registry.zappie.ai/v1/schema/verify-report.json\";\n\nexport function reportId() {\n return `ver_${randomUUID().replaceAll(\"-\", \"\")}`;\n}\n\nexport function summarize(checks: CheckResult[]) {\n return {\n passed: checks.filter((check) => check.result === \"passed\").length,\n failed: checks.filter((check) => check.result === \"failed\").length,\n skipped: checks.filter((check) => check.result === \"skipped\").length,\n };\n}\n\nexport function signReport(report: VerifyReport, key?: string) {\n if (!key) {\n return report;\n }\n const payload = JSON.stringify(report);\n return {\n ...report,\n signature: sign(\n null,\n new TextEncoder().encode(payload),\n createPrivateKey(key),\n ).toString(\"base64\"),\n };\n}\n\nexport function printSummary(report: VerifyReport) {\n const lines = report.checks.map((check) => {\n const suffix = check.error ? ` — ${check.error.message}` : \"\";\n return `${check.result.toUpperCase().padEnd(7)} ${check.id} ${check.title}${suffix}`;\n });\n lines.push(\n `${report.result.toUpperCase()}: ${report.summary.passed} passed, ${report.summary.failed} failed, ${report.summary.skipped} skipped`,\n report.signature ? \"Report signed (ed25519).\" : \"Report unsigned.\",\n );\n return lines.join(\"\\n\");\n}\n\nexport function target(options: VerifyOptions) {\n const url = new URL(options.url);\n return {\n url: url.href,\n origin: url.origin,\n store: options.store,\n ...(options.siteId ? { siteId: options.siteId } : {}),\n ...(options.deploymentId ? { deploymentId: options.deploymentId } : {}),\n };\n}\n","import type { CheckResult, VerifyOptions } from \"./types\";\n\nexport async function reset(options: VerifyOptions): Promise<CheckResult> {\n const started = performance.now();\n try {\n const response = await fetch(new URL(\"/test/reset\", options.url), {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${options.key}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ store: options.store }),\n ...(options.signal ? { signal: options.signal } : {}),\n });\n if (response.ok) {\n return {\n id: \"RESET\",\n title: \"Reset test data\",\n result: \"passed\",\n durationMs: performance.now() - started,\n };\n }\n } catch {\n // An unavailable reset is recorded below; it never blocks read-only checks.\n }\n return {\n id: \"RESET\",\n title: \"Reset test data\",\n result: \"skipped\",\n durationMs: performance.now() - started,\n error: {\n code: \"reset_unavailable\",\n message: \"POST /test/reset is not available.\",\n hint: \"Add the PRD 09 /test/reset endpoint so each verification run starts with fresh test data.\",\n },\n };\n}\n","// Builds replace __ZAPPIE_VERIFY_VERSION__ with the version in package.json. Code run straight\n// from source, such as a plain Node script, has no build step and gets the\n// development label instead.\ndeclare const __ZAPPIE_VERIFY_VERSION__: string | undefined;\n\n/** The installed @zappie/verify version. */\nexport const PACKAGE_VERSION: string =\n typeof __ZAPPIE_VERIFY_VERSION__ === \"string\"\n ? __ZAPPIE_VERIFY_VERSION__\n : \"0.0.0-development\";\n","import { VerifyError } from \"./error\";\nimport { startLocalPreview } from \"./local-preview\";\nimport { readStore } from \"./project-config\";\nimport { runVerify } from \"./runner\";\nimport type { VerifyProjectOptions } from \"./types\";\n\nexport async function verifyProject(options: VerifyProjectOptions) {\n const store = options.store ?? (await readStore(options.cwd));\n let preview: Awaited<ReturnType<typeof startLocalPreview>> | undefined;\n try {\n preview = options.url\n ? undefined\n : await startLocalPreview({\n cwd: options.cwd,\n key: options.key,\n store,\n packageManager: options.packageManager,\n ...(options.signal ? { signal: options.signal } : {}),\n });\n return await runVerify({\n url: normalizeUrl(options.url ?? preview?.url),\n store,\n key: options.key,\n suite: options.suite,\n runner: \"cli\",\n ...(options.only ? { only: options.only } : {}),\n ...(options.viewports ? { viewports: options.viewports } : {}),\n ...(options.artifactsDir ? { artifactsDir: options.artifactsDir } : {}),\n ...(options.timeoutMs ? { timeoutMs: options.timeoutMs } : {}),\n ...(options.signal ? { signal: options.signal } : {}),\n ...(options.onProgress ? { onProgress: options.onProgress } : {}),\n ...(options.signingKey ? { signingKey: options.signingKey } : {}),\n // A preview started here has no site host in front of it.\n ...(preview ? { standInForPlatform: true } : {}),\n });\n } finally {\n await preview?.close();\n }\n}\n\nfunction normalizeUrl(value: string | undefined) {\n try {\n const url = new URL(value ?? \"\");\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n throw new Error(\"protocol\");\n }\n return url.href;\n } catch {\n throw new VerifyError(\n \"invalid_url\",\n \"Verify needs an http(s) storefront URL\",\n \"Pass a valid URL or run the command from a supported project.\",\n );\n }\n}\n","export { VerifyError } from \"./error\";\nexport { verifyProject } from \"./project\";\nexport { printSummary } from \"./report\";\nexport type {\n CheckResult,\n PackageManager,\n VerifyOptions,\n VerifyProjectOptions,\n VerifyReport,\n} from \"./types\";\nimport { runVerify } from \"./runner\";\nimport type { VerifyOptions } from \"./types\";\n\nexport function verify(options: VerifyOptions) {\n return runVerify(options);\n}\n"],"mappings":"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","names":["label","signal","readFile","path","path","readFile","path","path","errors","path","target","event","lines","path","fulfilment","path","target","route","checks","run","path"]}
1
+ {"version":3,"sources":["../src/error.ts","../src/local-preview.ts","../src/project-command.ts","../src/project-config.ts","../src/runner.ts","../src/cpu.ts","../src/checks/common.ts","../src/checks/v01-routes.ts","../src/checks/v02-sdk.ts","../src/fixtures.ts","../src/checks/catalogue.ts","../src/checks/menu-match.ts","../src/checks/v03-menu.ts","../src/checks/v04-add-simple.ts","../src/checks/v05-add-options.ts","../src/checks/v06-quote.ts","../src/checks/stale-cart.ts","../src/checks/v07-quote-issues.ts","../src/checks/v09-pickup.ts","../../sdk/src/places/error.ts","../../sdk/src/places/request.ts","../../sdk/src/places/search.ts","../../sdk/src/places/client.ts","../src/checks/v10-delivery.ts","../src/checks/v13-accessibility.ts","../src/checks/semantics.ts","../src/checks/v14-performance.ts","../src/checks/v15-tappable-product-cards.ts","../src/checks/overlays.ts","../src/checks/v16-overlays-open-quickly.ts","../src/checks/v17-overlay-focus.ts","../src/checks/index.ts","../src/report.ts","../src/reset.ts","../src/version.ts","../src/project.ts","../src/regression.ts","../src/index.ts"],"mappings":"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","names":["label","signal","readFile","path","path","readFile","path","path","errors","path","reset","target","event","blocked","lines","path","scope","label","target","message","cpuThrottlingRate","cpuThrottlingRate","path","target","route","remaining","cpuThrottlingRate","open","checks","run","path"]}
@@ -0,0 +1,68 @@
1
+ // ../sdk/src/transport/presentation.ts
2
+ var object = (value, invalid) => {
3
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
4
+ throw invalid();
5
+ }
6
+ return value;
7
+ };
8
+ var array = (value, invalid) => {
9
+ if (!Array.isArray(value)) {
10
+ throw invalid();
11
+ }
12
+ return value;
13
+ };
14
+ var string = (value, invalid) => {
15
+ if (typeof value !== "string") {
16
+ throw invalid();
17
+ }
18
+ return value;
19
+ };
20
+ function presentStore(store, value, invalid) {
21
+ const source = value;
22
+ source.branches.forEach((raw, index) => {
23
+ const branch = store.branches[index];
24
+ if (raw.order_ahead_days !== void 0) {
25
+ if (!Number.isSafeInteger(raw.order_ahead_days) || Number(raw.order_ahead_days) < 0) {
26
+ throw invalid();
27
+ }
28
+ branch.orderAheadDays = raw.order_ahead_days;
29
+ }
30
+ if (raw.promos !== void 0) {
31
+ branch.promos = array(raw.promos, invalid).map((value2) => {
32
+ const promo = object(value2, invalid);
33
+ return {
34
+ id: string(promo.id, invalid),
35
+ name: string(promo.name, invalid),
36
+ description: string(promo.description, invalid)
37
+ };
38
+ });
39
+ }
40
+ });
41
+ return store;
42
+ }
43
+ function presentMenu(menu, value, invalid) {
44
+ value.menus.forEach((raw, index) => {
45
+ const section = menu.menus[index];
46
+ if (raw.layout !== void 0) {
47
+ if (!["LIST", "GRID", "CARD"].includes(raw.layout)) {
48
+ throw invalid();
49
+ }
50
+ section.layout = raw.layout;
51
+ }
52
+ if (raw.is_active !== void 0) {
53
+ if (typeof raw.is_active !== "boolean") {
54
+ throw invalid();
55
+ }
56
+ section.isActive = raw.is_active;
57
+ }
58
+ if (raw.info_banner_html !== void 0) {
59
+ section.infoBannerHtml = string(raw.info_banner_html, invalid);
60
+ }
61
+ });
62
+ return menu;
63
+ }
64
+ export {
65
+ presentMenu,
66
+ presentStore
67
+ };
68
+ //# sourceMappingURL=presentation-TKOXOILG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../sdk/src/transport/presentation.ts"],"mappings":";AAKA,IAAM,SAAS,CAAC,OAAgB,YAAqB;AACnD,MAAI,CAAC,SAAS,OAAO,UAAU,YAAY,MAAM,QAAQ,KAAK,GAAG;AAC/D,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AACT;AACA,IAAM,QAAQ,CAAC,OAAgB,YAAqB;AAClD,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AACT;AACA,IAAM,SAAS,CAAC,OAAgB,YAAqB;AACnD,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AACT;AAEO,SAAS,aAAa,OAAc,OAAgB,SAAkB;AAC3E,QAAM,SAAS;AACf,EAAC,OAAO,SAAoB,QAAQ,CAAC,KAAK,UAAU;AAClD,UAAM,SAAS,MAAM,SAAS,KAAK;AACnC,QAAI,IAAI,qBAAqB,QAAW;AACtC,UACE,CAAC,OAAO,cAAc,IAAI,gBAAgB,KAC1C,OAAO,IAAI,gBAAgB,IAAI,GAC/B;AACA,cAAM,QAAQ;AAAA,MAChB;AACA,aAAO,iBAAiB,IAAI;AAAA,IAC9B;AACA,QAAI,IAAI,WAAW,QAAW;AAC5B,aAAO,SAAS,MAAM,IAAI,QAAQ,OAAO,EAAE,IAAI,CAACA,WAAU;AACxD,cAAM,QAAQ,OAAOA,QAAO,OAAO;AACnC,eAAO;AAAA,UACL,IAAI,OAAO,MAAM,IAAI,OAAO;AAAA,UAC5B,MAAM,OAAO,MAAM,MAAM,OAAO;AAAA,UAChC,aAAa,OAAO,MAAM,aAAa,OAAO;AAAA,QAChD;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAEO,SAAS,YAAY,MAAY,OAAgB,SAAkB;AACxE,EAAE,MAAe,MAAiB,QAAQ,CAAC,KAAK,UAAU;AACxD,UAAM,UAAU,KAAK,MAAO,KAAK;AACjC,QAAI,IAAI,WAAW,QAAW;AAC5B,UAAI,CAAC,CAAC,QAAQ,QAAQ,MAAM,EAAE,SAAS,IAAI,MAAgB,GAAG;AAC5D,cAAM,QAAQ;AAAA,MAChB;AACA,cAAQ,SAAS,IAAI;AAAA,IACvB;AACA,QAAI,IAAI,cAAc,QAAW;AAC/B,UAAI,OAAO,IAAI,cAAc,WAAW;AACtC,cAAM,QAAQ;AAAA,MAChB;AACA,cAAQ,WAAW,IAAI;AAAA,IACzB;AACA,QAAI,IAAI,qBAAqB,QAAW;AACtC,cAAQ,iBAAiB,OAAO,IAAI,kBAAkB,OAAO;AAAA,IAC/D;AAAA,EACF,CAAC;AACD,SAAO;AACT;","names":["value"]}
@@ -21,4 +21,4 @@ function quoteBody(body) {
21
21
  export {
22
22
  quoteBody
23
23
  };
24
- //# sourceMappingURL=quote-body-NAFPZOGR.js.map
24
+ //# sourceMappingURL=quote-body-S5LELT7L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../sdk/src/transport/quote-body.ts"],"mappings":";AAGO,SAAS,UAAU,MAAkC;AAC1D,QAAM,IAAI,KAAK;AACf,MAAI,CAAC,GAAG;AACN,WAAO;AAAA,EACT;AACA,QAAM,EAAE,OAAO,QAAQ,SAAS,GAAG,WAAW,IAAI;AAClD,MAAI,CAAC,SAAS;AACZ,WAAO,EAAE,GAAG,MAAM,WAAW;AAAA,EAC/B;AACA,QAAM,EAAE,OAAO,QAAQ,cAAc,GAAG,KAAK,IAAI;AACjD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,YAAY;AAAA,MACV,GAAG;AAAA,MACH,GAAI,WAAW,iBAAiB,UAAa,iBAAiB,SAC1D,EAAE,aAAa,IACf,CAAC;AAAA,MACL,SAAS;AAAA,IACX;AAAA,EACF;AACF;","names":[]}
@@ -7,7 +7,7 @@ import {
7
7
  requestWithRetry,
8
8
  sumMoney,
9
9
  wireError
10
- } from "./chunk-JYFSFOIS.js";
10
+ } from "./chunk-47RIF6JW.js";
11
11
 
12
12
  // ../sdk/src/cart/quote-response.ts
13
13
  function fail() {
@@ -110,6 +110,7 @@ function mapQuote(value, branchId) {
110
110
  return fail();
111
111
  }
112
112
  const deliveryCharges = charges.filter((c) => c.code === "delivery");
113
+ const fees = charges.filter((c) => c.code !== "delivery");
113
114
  const integer = (value2) => {
114
115
  if (!Number.isSafeInteger(value2) || Number(value2) < 0) {
115
116
  return fail();
@@ -158,7 +159,11 @@ function mapQuote(value, branchId) {
158
159
  ...v.lines_unpriced === true ? { linesUnpriced: true } : {},
159
160
  subtotal,
160
161
  total,
161
- fees: charges.filter((c) => c.code !== "delivery"),
162
+ fees,
163
+ feesTotal: sumMoney(
164
+ fees.map((c) => c.amount),
165
+ money(0, subtotal.currency)
166
+ ),
162
167
  discounts,
163
168
  ...deliveryCharges.length ? {
164
169
  delivery: sumMoney(
@@ -323,4 +328,4 @@ function createQuoteClient(transport, context, options = {}) {
323
328
  export {
324
329
  createQuoteClient
325
330
  };
326
- //# sourceMappingURL=quote-client-3NC5KSBE.js.map
331
+ //# sourceMappingURL=quote-client-4RUY3TKQ.js.map