49c11fc2e0
* feat(telemetry): D1 schema + migrations for raw events and daily rollups First step of replacing PostHog with self-hosted telemetry on Cloudflare D1. Creates the codegraph-telemetry database binding and the initial migration; no worker code paths change yet (the ingest write path and the nightly rollup cron land next). Schema is raw events plus daily rollups: `events` holds one row per sanitized event with the envelope broken out into columns and event-specific props as JSON; `daily_machines`, `daily_event_counts` and `daily_dim_counts` are the nightly rollups the dashboard reads; `machine_first_seen` and `machine_days` carry the retention cohorts and are never purged. One generic dimension table covers every bar and pie, so a new breakdown is a cron change rather than a migration. The migration is commented as an audit surface, like the rest of this worker — every column, and which dashboard chart each rollup table serves. Three judgment calls worth flagging, all documented in the file: - `events` gets `(day, event)` instead of the separate `(day)` and `(event, day)` indexes. D1 bills a row write per index touched, so a third index on the hot table costs ~97k writes/day, and `(day, event)` is a covering index for plain day-range scans anyway (verified with EXPLAIN QUERY PLAN). - `daily_event_counts` and `daily_dim_counts` carry a `machines` column, and `machine_days` a `prod` flag. The "users by ..." panels and the production-user count are distinct-machine numbers, not event counts, and they are unrecoverable once raw events are purged. - No CHECK constraint on `event`: the worker's allowlist is the source of truth and the write path is fail-silent, so a rejected INSERT would lose data quietly instead of erroring loudly. Volume note in the migration footer: ~30M row writes/month against the 50M included on Workers Paid. Storage is the tighter constraint — raw events grow ~74 MB/day, so retention should start at 90 days (~6.7 GB) rather than 180, which would exceed D1's 10 GB per-database cap. * feat(telemetry): admin dashboard worker — scaffold + shared-password auth New Cloudflare Worker at telemetry-dashboard/, sibling of telemetry-worker/ and bound read-only to the same D1 database. Serves a static frontend plus a JSON API behind a shared password, on stats.getcodegraph.com. Auth is the simplest thing that is actually safe for exactly two users: one password in a secret, compared in constant time over SHA-256 digests, and an HMAC-signed cookie (HttpOnly; Secure; SameSite=Lax; Path=/) with a one-year expiry so you sign in once per browser. The cookie is a signed assertion, not a lookup key — no session store. Its payload carries a fingerprint of the password it was minted against, so rotating ADMIN_PASSWORD signs everyone out. Login attempts are capped at 5/min per IP via a ratelimit binding. Everything is deny-by-default: assets.run_worker_first routes every request through the worker before the static-asset server sees it, so the dashboard HTML, its JS, its CSS and the chart library are all behind the session check. The login page is rendered inline by the worker rather than served from public/, which leaves no "is this file public?" judgement calls in the asset directory. Unauthenticated pages 302 to /login, unauthenticated /api/* gets 401. A missing secret fails closed rather than opening the dashboard. scripts/smoke-auth.sh is the regression net — 54 assertions against a throwaway `wrangler dev` covering the gate, cookie flags and persistence, forged/flipped/ truncated cookies, open-redirect refusal, brute-force capping, and password rotation invalidating live sessions. Refs CG-11. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * chore(telemetry-dashboard): simplify the chart-library probe in the shell Refs CG-11. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat(telemetry): nightly rollup cron + raw-event retention purge (CG-10) Adds a scheduled() handler to the ingest worker that recomputes daily_event_counts / daily_dim_counts / daily_machines for the just-completed UTC day plus a 2-day overlap (late-arriving offline buffers), then purges raw events past the retention window. Rollup writes are idempotent upserts, so a re-run never double-counts. Also adds an ADMIN_TOKEN-guarded POST /admin/rollup?day=YYYY-MM-DD for backfill/repair, and drops the PostHog forwarding path. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat(telemetry): dashboard charts — SQL API over D1 + the Chart.js views (CG-12, CG-13) Replaces the scaffold page with the dashboard proper: 19 panels covering every view of the PostHog dashboard this retires, driven by one filter row. src/api.ts is the read API CG-12 specified: /api/{meta,summary,timeseries, breakdown,activation,retention}, all range-scoped, all parameterized against a closed set of dims and metrics, all shaped labels[] + datasets[] so the frontend does no arithmetic. Rollups answer everything except the activation funnel, which needs raw events and says where they start. The frontend splits into a DOM-free panel registry (public/panels.js) and the page that mounts it (public/app.js), so the render check can drive the same registry the browser rendered from. Panels fail alone, refetch dims rather than flashing, and every chart carries a table twin. Two numbers are labelled rather than rounded off: range-wide "users" per dimension is machine-days (the rollups cannot give distinct machines, and per-day counts are taken as the largest single-event count so one machine's install + index + usage is not counted three times), and recent activation and retention cohorts are marked as still-converting instead of drawn as a cliff. Both colour scales were run through the data-viz validator against the panel surface, not picked by eye; the results are recorded in public/theme.js. Verification, all against the committed fixture (12 machines over 10 days, every expected number worked out by hand from the events, not recorded from a run): scripts/smoke-api.sh 98 assertions scripts/render-check.mjs 79 assertions — real Chromium over CDP, no new deps scripts/smoke-auth.sh 54 assertions (unchanged, still green) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * feat(telemetry): cutover runbook + the end-to-end gate that de-risks it (CG-14) The account-level steps of the PostHog cutover are the maintainer's to run, so this lands the runbook they follow and the check that has to pass first. The runbook (telemetry-worker/README.md) walks the six steps in the order that keeps them reversible: Workers Paid → migrate → deploy → watch 24h → verify the first rollup and the dashboard → only then delete POSTHOG_KEY and cancel the subscription. Step 3 records the outgoing version id because `wrangler rollback` is the escape hatch for the whole verification window, and that window is precisely why the PostHog key is deleted last rather than first. The new gate (scripts/smoke-cutover.sh, `npm run smoke:cutover`) covers the one seam nothing else did. Both workers declare the same D1 database_id, so pointing them at a single --persist-to directory runs the real chain: a client batch → the ingest worker → D1 → the nightly rollup → the dashboard API reading the numbers back. Every other suite stops at one link — smoke-ingest at the events table, smoke-rollup at hand-checked SQL, smoke-api at a hand-written fixture that the cron never touched. That left the dimension names the rollup WRITES versus the ones the dashboard READS agreeing by convention across two branches, where a mismatch is silent: no error, no failed request, just a panel reading zero forever. 61 assertions, all 13 dimensions, and three deliberate traps — a ci machine that is active but not a production user, usage_rollup counts that must be summed rather than tallied, and an uninstall's `targets` that must not leak into the install-scoped breakdown. Writing it caught that the activation funnel's denominator is first-seen machines, not install events (deliberate — a reinstall must not re-enter the funnel), so the suite now pins that distinction rather than assuming it. Also rewords the last PostHog reference in dashboard code: a comment justifying the 14-day retention curve by pointing at a dashboard step 6 deletes. The reasoning now stands on its own. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * docs(telemetry): tell the truth about where events are stored (CG-15) The telemetry docs are a privacy contract, and they still described a managed analytics store that no longer receives anything. Replace that with what actually happens now — events land in our own D1 database on Cloudflare, the endpoint makes no outbound requests, raw events are purged after 90 days and only anonymous daily rollups outlive them. This strengthens the guarantee rather than restating it: there is no second party to share with. - TELEMETRY.md: new "Where it is stored" section; the never-collected IP bullet no longer leans on a vendor-side setting to hold. - docs/design/telemetry.md: ingest section rewritten around D1 + the nightly rollup/retention cron; volume math redone on Workers Paid and the D1 quota (storage, not writes, is what sets the 90-day window); new section documenting the dashboard worker and cross-linking it. - Fixed three drifts from the worker allowlist the sweep surfaced: schema_version was still 1, client_name/client_version was still marked "plumbing to add" though session.ts passes it today, and the legacy sqlite_backend field the worker still accepts was undocumented. - telemetry-worker/README.md: step 6 claimed a repo-wide grep came back clean, which this runbook itself falsifies. Added step 7 — deleting the runbook is what makes that grep true, and is the completion check. - smoke-cutover.sh: the vendor guarantee is now asserted by class (no analytics-ingest endpoint referenced) rather than by one vendor's name, so it keeps working once the name is gone. Verified it still catches a planted forwarding URL. 61/61 pass. Retention is documented as 90 days, not the 180 in the task notes: 180 days of raw events exceeds D1's 10 GB per-database cap, and the code purges at 90. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * chore: untrack local Kommandr issue DB and ignore its sqlite artifacts Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1578 lines
50 KiB
JSON
1578 lines
50 KiB
JSON
{
|
|
"name": "codegraph-telemetry-dashboard",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"name": "codegraph-telemetry-dashboard",
|
|
"devDependencies": {
|
|
"chart.js": "^4.4.0",
|
|
"typescript": "^5.0.0",
|
|
"wrangler": "^4.36.0"
|
|
}
|
|
},
|
|
"node_modules/@cloudflare/kv-asset-handler": {
|
|
"version": "0.5.0",
|
|
"resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.5.0.tgz",
|
|
"integrity": "sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==",
|
|
"dev": true,
|
|
"license": "MIT OR Apache-2.0",
|
|
"engines": {
|
|
"node": ">=22.0.0"
|
|
}
|
|
},
|
|
"node_modules/@cloudflare/unenv-preset": {
|
|
"version": "2.16.1",
|
|
"resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.16.1.tgz",
|
|
"integrity": "sha512-ECxObrMfyTl5bhQf/lZCXwo5G6xX9IAUo+nDMKK4SZ8m4Jvvxp52vilxyySSWh2YTZz8+HQ07qGH/2rEom1vDw==",
|
|
"dev": true,
|
|
"license": "MIT OR Apache-2.0",
|
|
"peerDependencies": {
|
|
"unenv": "2.0.0-rc.24",
|
|
"workerd": ">1.20260305.0 <2.0.0-0"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"workerd": {
|
|
"optional": true
|
|
}
|
|
}
|
|
},
|
|
"node_modules/@cloudflare/workerd-darwin-64": {
|
|
"version": "1.20260722.1",
|
|
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20260722.1.tgz",
|
|
"integrity": "sha512-vZOP8vIS3NwnuaO+gz0FZ7kIGeiO3bZmxV35Ph9zOXKSREhDFlH7wQ7mkCdhW3O4jnXsew+XT7b+DNEI2CcJGQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">=16"
|
|
}
|
|
},
|
|
"node_modules/@cloudflare/workerd-darwin-arm64": {
|
|
"version": "1.20260722.1",
|
|
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20260722.1.tgz",
|
|
"integrity": "sha512-EmIQymihDq6WNdER4+LF8Qn80yqayBUpJ+tkOO7wmY8pmgfyXjIUFNXotl21AHovTeu2seR7HdVUgeN/BilCWw==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">=16"
|
|
}
|
|
},
|
|
"node_modules/@cloudflare/workerd-linux-64": {
|
|
"version": "1.20260722.1",
|
|
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20260722.1.tgz",
|
|
"integrity": "sha512-jvZ3k9fxcnEn04s80CgIYxQfpOyAiz/8qC42DP8EBa9tR27qWyg9wmm31zIobVlrgBZn/+8NfdP73avRGcQOjQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=16"
|
|
}
|
|
},
|
|
"node_modules/@cloudflare/workerd-linux-arm64": {
|
|
"version": "1.20260722.1",
|
|
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20260722.1.tgz",
|
|
"integrity": "sha512-BOSB55SMNdy+DA5uj2WirgiNanpHGis5PVvXH1wSfvjRKr4JGgWK+EZzxz0RFUo6QjjQQC/NimEzNZ7va7jmKg==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=16"
|
|
}
|
|
},
|
|
"node_modules/@cloudflare/workerd-windows-64": {
|
|
"version": "1.20260722.1",
|
|
"resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20260722.1.tgz",
|
|
"integrity": "sha512-sYM8YgUpKnRz2xjvdJLX1Ojzoi4MlA4gk8WTTExhGydjYB2UTs5NIbv0ZmpKgMoK9io3ixgmiW56ZnTbcWOdiA==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">=16"
|
|
}
|
|
},
|
|
"node_modules/@cspotcode/source-map-support": {
|
|
"version": "0.8.1",
|
|
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
|
|
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@jridgewell/trace-mapping": "0.3.9"
|
|
},
|
|
"engines": {
|
|
"node": ">=12"
|
|
}
|
|
},
|
|
"node_modules/@emnapi/runtime": {
|
|
"version": "1.11.3",
|
|
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.3.tgz",
|
|
"integrity": "sha512-Xz4Tpyki7XyrpbUK1jR1AhdAdaXyhhY4lZ3neLodmhpuWfy2PAQN5B46sAiU4liOXGLkHypn/qU+jvfWSCYYLA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"dependencies": {
|
|
"tslib": "^2.4.0"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/aix-ppc64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz",
|
|
"integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==",
|
|
"cpu": [
|
|
"ppc64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"aix"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/android-arm": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz",
|
|
"integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==",
|
|
"cpu": [
|
|
"arm"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"android"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/android-arm64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz",
|
|
"integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"android"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/android-x64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz",
|
|
"integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"android"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/darwin-arm64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz",
|
|
"integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/darwin-x64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz",
|
|
"integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/freebsd-arm64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz",
|
|
"integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"freebsd"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/freebsd-x64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz",
|
|
"integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"freebsd"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-arm": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz",
|
|
"integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==",
|
|
"cpu": [
|
|
"arm"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-arm64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz",
|
|
"integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-ia32": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz",
|
|
"integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==",
|
|
"cpu": [
|
|
"ia32"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-loong64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz",
|
|
"integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==",
|
|
"cpu": [
|
|
"loong64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-mips64el": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz",
|
|
"integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==",
|
|
"cpu": [
|
|
"mips64el"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-ppc64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz",
|
|
"integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==",
|
|
"cpu": [
|
|
"ppc64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-riscv64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz",
|
|
"integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==",
|
|
"cpu": [
|
|
"riscv64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-s390x": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz",
|
|
"integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==",
|
|
"cpu": [
|
|
"s390x"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/linux-x64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz",
|
|
"integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/netbsd-arm64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz",
|
|
"integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"netbsd"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/netbsd-x64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz",
|
|
"integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"netbsd"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/openbsd-arm64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz",
|
|
"integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"openbsd"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/openbsd-x64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz",
|
|
"integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"openbsd"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/openharmony-arm64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz",
|
|
"integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"openharmony"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/sunos-x64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz",
|
|
"integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"sunos"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/win32-arm64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz",
|
|
"integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/win32-ia32": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz",
|
|
"integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==",
|
|
"cpu": [
|
|
"ia32"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@esbuild/win32-x64": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz",
|
|
"integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@img/colour": {
|
|
"version": "1.1.0",
|
|
"resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
|
|
"integrity": "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-darwin-arm64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.35.2.tgz",
|
|
"integrity": "sha512-eEieHsMksAW4IiO5NzauESRl2D2qz3J/kwUxUrSfV06A93eEaRfMpHXyUb1mAqrR7i8U9A0GRqE9pjn6u1Jjpg==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-darwin-arm64": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-darwin-x64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.35.2.tgz",
|
|
"integrity": "sha512-BaktuGPCeHJMARpodR8jK4uKiZrPAy9WrfQW0sdI37clracq8Bp01AYS3SZgi5FS/y5twa9t4+LIuuxQjqRrWw==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-darwin-x64": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-freebsd-wasm32": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.2.tgz",
|
|
"integrity": "sha512-YoAxdnd8hPUkvLHd3bWY+YA8nw3xM/RyRopYucNsWHVSan8NLVM3X2volsfoRDcXdUJPg6tXahSd7HXPK7lRnw==",
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"freebsd"
|
|
],
|
|
"dependencies": {
|
|
"@img/sharp-wasm32": "0.35.2"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-darwin-arm64": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.3.1.tgz",
|
|
"integrity": "sha512-4V/M3roRMTYjiwZY9IOVQOE8OyeCxFAkYmyZDrZl51uOKjibm3oeEJ4WAmLxutAfzFbC9jqUiPs2gbnGflH+7g==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-darwin-x64": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.3.1.tgz",
|
|
"integrity": "sha512-c0/DxItpJv2+dGhgycJBBgotdqruGYDvA79drdh0MD1dFpy7JzJ/PlXwi1H4rFf0eTy8tgbI91aHDnZIceY3jQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-linux-arm": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.3.1.tgz",
|
|
"integrity": "sha512-aGGy9aWzXgHBG7HNyQPWorZthlp7+x6fDRoPAQbGO3ThcttuTyKIx3NuSHb6zb4gBNq6/yNn9f1cy9nFKS/Vmg==",
|
|
"cpu": [
|
|
"arm"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-linux-arm64": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.3.1.tgz",
|
|
"integrity": "sha512-JznefmcK9j1JKPz8AkQDh89kjojubyfOasWBPKfzMIhPwsgDy9evpE/naJTXXXmghS1iFwR8u/kTwh/I2/+GCw==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-linux-ppc64": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.3.1.tgz",
|
|
"integrity": "sha512-1EkwGNCZk6iWNCMWqrvdJ+r1j0PT1zIz60CNPhYnJlK/zyeWqlsPZIe+ocBVqPF8k/Ssee/NCk+tE9Ryrko6ng==",
|
|
"cpu": [
|
|
"ppc64"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-linux-riscv64": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.3.1.tgz",
|
|
"integrity": "sha512-Ilays+w2bXdnxzxtQdmXR62u8o8GYa3eL4+Gr+1KiE4xperMZUslRaVPJwwPkzlHEjGfXAfRVAa/7CYCtSqsBw==",
|
|
"cpu": [
|
|
"riscv64"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-linux-s390x": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.3.1.tgz",
|
|
"integrity": "sha512-VfBwVHQTbRoj4XlpA/KLZ7ltgMpz+4WSejFzQ+GnoImjo1PtEJ59QB2qR1xQEeRPYIkNrPIm2L4cICMvz4C2ew==",
|
|
"cpu": [
|
|
"s390x"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-linux-x64": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.3.1.tgz",
|
|
"integrity": "sha512-+c8ukgwU62DS54nCAjw7keOfHUkmr0B5QHEdcOqRnodF/MNXJbVI8Eopoj4B/0H8Asr65I+A4Amrn7a85/md6A==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-linuxmusl-arm64": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.3.1.tgz",
|
|
"integrity": "sha512-qlKb/pwbkAi1WMsJrYHk7CuDrd12s27U2QnRhFYUoJNrRCmkosMTttuRFat/DDB3IlDm5qE1TJgZ4JDnHX8Ldw==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-libvips-linuxmusl-x64": {
|
|
"version": "1.3.1",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.3.1.tgz",
|
|
"integrity": "sha512-yO21HwoUVLN8Qa+/SBjQLMYwBWAVJjeGPNe+hc0OUeMeifEtJqu5a1c4HayE1nNpDih9y3/KkoltfkDodmKAlg==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-linux-arm": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.35.2.tgz",
|
|
"integrity": "sha512-SE4kzF2mepn6z+6E7L6lsV8FzuLL6IPQdyX8ZiwROAG/G8td+hP/m7FsFPwidtrF19gvajuC9l6TxAVcsA4S7A==",
|
|
"cpu": [
|
|
"arm"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-linux-arm": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-linux-arm64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.35.2.tgz",
|
|
"integrity": "sha512-af12Pnd0ZGu2HfP8NayB0kk6eC/lrfbQE6HlR4jD+34wdJ1Vw9TF6TMn6ZvffT+WgqVsl0hRbmNvz2u/23VmwA==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-linux-arm64": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-linux-ppc64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.35.2.tgz",
|
|
"integrity": "sha512-hYSBm7zcNtDCozCxQHYZJiu63b/bXsgRZuOxCIBZsStMM9Vap47iFHdbX4kCvQsblPB/k+clhELpdQJHQLSHvg==",
|
|
"cpu": [
|
|
"ppc64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-linux-ppc64": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-linux-riscv64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.35.2.tgz",
|
|
"integrity": "sha512-qQt0Kc13+Hoan/Awq/qMSQw3L+RI1NCRPgD5cUJ/1WSSmIoysLOc72jlRM3E0OHN9Yr313jgeQ2T+zW+F03QFA==",
|
|
"cpu": [
|
|
"riscv64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-linux-riscv64": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-linux-s390x": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.35.2.tgz",
|
|
"integrity": "sha512-E4fLLfRPzDLlEeDaTzI98OFLcv++WL5ChLLMwPoVd0CIoZQqupBSNbOisPL5am9XsbQ9T84+iiMpUvbFtkunbA==",
|
|
"cpu": [
|
|
"s390x"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-linux-s390x": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-linux-x64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.35.2.tgz",
|
|
"integrity": "sha512-gi0zFJJRLswfCZmHtJdikXPOc5u7qamSOS3NHedLqLd4W8Q0NqjdBr6TTRIgsfFjqfTsHFgdfvJ9LwqSgcHiAA==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-linux-x64": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-linuxmusl-arm64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.35.2.tgz",
|
|
"integrity": "sha512-siWbOW1u6HFnFLrp0waKyW7VEf7jYvcDWdrXEFa8AkdAQgEvuu5Fz8/Y70w9EeqAdwDtfU012BhEHHaDqvQNzg==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-linuxmusl-arm64": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-linuxmusl-x64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.35.2.tgz",
|
|
"integrity": "sha512-YBqMMcjDi4QGYiSn4vNOYBhmlC4z5AXqkOUUqI2e0AFA4urNv4ESgOgwNl3K+4etQhha0twXlzeF20bbULm9Yg==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-libvips-linuxmusl-x64": "1.3.1"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-wasm32": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.2.tgz",
|
|
"integrity": "sha512-Mrv4JQNYVQ94xH+jzZ9r+gowleN8mv2FTgKT+PI6bx5C0G8TdNYndu161pg2i7uoBwxy2ImPMHrJOM2LZef7Bw==",
|
|
"dev": true,
|
|
"license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
|
|
"optional": true,
|
|
"dependencies": {
|
|
"@emnapi/runtime": "^1.11.1"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-webcontainers-wasm32": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-webcontainers-wasm32/-/sharp-webcontainers-wasm32-0.35.2.tgz",
|
|
"integrity": "sha512-QNV27pxs9wpApEiCfvHM1RDoP1w1+2KrUWWDPEhEwg+latvOrfuhWrHWZKwdSFwU6jh3myjw/yOCRsUIuOft3g==",
|
|
"cpu": [
|
|
"wasm32"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"dependencies": {
|
|
"@img/sharp-wasm32": "0.35.2"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-win32-arm64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.35.2.tgz",
|
|
"integrity": "sha512-BiVRYc/t6/Vl3e1hBx0hugG4oN9Pydf4fgMSpxTQJmwGUg/YoXTWHiFeRymHfCZzifxu4F4rpk/I67D0LQ20wQ==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-win32-ia32": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.35.2.tgz",
|
|
"integrity": "sha512-YYEhx9PImCC7T0tI8JDMi4DB9LwLCXCU5OWNYEXAxh5Q1ShKkyC6byxzoBJ3gEFDnH2lQckWuDe70G7mB2XJog==",
|
|
"cpu": [
|
|
"ia32"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": "^20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@img/sharp-win32-x64": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.35.2.tgz",
|
|
"integrity": "sha512-imoOyBcoM/iiUr4J6VPpCNjPnjvP/Gks95898yB8YqoGGYmHYbOyCuNv9FMhFgtaiHFGbHW8bxKqRV6VjtXThQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"dev": true,
|
|
"license": "Apache-2.0 AND LGPL-3.0-or-later",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
}
|
|
},
|
|
"node_modules/@jridgewell/resolve-uri": {
|
|
"version": "3.1.2",
|
|
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
|
|
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=6.0.0"
|
|
}
|
|
},
|
|
"node_modules/@jridgewell/sourcemap-codec": {
|
|
"version": "1.5.5",
|
|
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
|
|
"integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/@jridgewell/trace-mapping": {
|
|
"version": "0.3.9",
|
|
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
|
|
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@jridgewell/resolve-uri": "^3.0.3",
|
|
"@jridgewell/sourcemap-codec": "^1.4.10"
|
|
}
|
|
},
|
|
"node_modules/@kurkle/color": {
|
|
"version": "0.3.4",
|
|
"resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.4.tgz",
|
|
"integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/@poppinss/colors": {
|
|
"version": "4.1.6",
|
|
"resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.6.tgz",
|
|
"integrity": "sha512-H9xkIdFswbS8n1d6vmRd8+c10t2Qe+rZITbbDHHkQixH5+2x1FDGmi/0K+WgWiqQFKPSlIYB7jlH6Kpfn6Fleg==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"kleur": "^4.1.5"
|
|
}
|
|
},
|
|
"node_modules/@poppinss/dumper": {
|
|
"version": "0.6.5",
|
|
"resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz",
|
|
"integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@poppinss/colors": "^4.1.5",
|
|
"@sindresorhus/is": "^7.0.2",
|
|
"supports-color": "^10.0.0"
|
|
}
|
|
},
|
|
"node_modules/@poppinss/exception": {
|
|
"version": "1.2.3",
|
|
"resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.3.tgz",
|
|
"integrity": "sha512-dCED+QRChTVatE9ibtoaxc+WkdzOSjYTKi/+uacHWIsfodVfpsueo3+DKpgU5Px8qXjgmXkSvhXvSCz3fnP9lw==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/@sindresorhus/is": {
|
|
"version": "7.2.0",
|
|
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.2.0.tgz",
|
|
"integrity": "sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sindresorhus/is?sponsor=1"
|
|
}
|
|
},
|
|
"node_modules/@speed-highlight/core": {
|
|
"version": "1.2.17",
|
|
"resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.17.tgz",
|
|
"integrity": "sha512-Z92FwKpCtfaW1V0jTU/fh3QzYEZN8wDwrzRIBoADCJfn4mJCNcJN/XegifX7BDrQ8/h9Xh/JnbyMchL0FqXrkg==",
|
|
"dev": true,
|
|
"license": "CC0-1.0"
|
|
},
|
|
"node_modules/blake3-wasm": {
|
|
"version": "2.1.5",
|
|
"resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz",
|
|
"integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/chart.js": {
|
|
"version": "4.5.1",
|
|
"resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.5.1.tgz",
|
|
"integrity": "sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@kurkle/color": "^0.3.0"
|
|
},
|
|
"engines": {
|
|
"pnpm": ">=8"
|
|
}
|
|
},
|
|
"node_modules/cookie": {
|
|
"version": "1.1.1",
|
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz",
|
|
"integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"funding": {
|
|
"type": "opencollective",
|
|
"url": "https://opencollective.com/express"
|
|
}
|
|
},
|
|
"node_modules/detect-libc": {
|
|
"version": "2.1.2",
|
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
|
|
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"engines": {
|
|
"node": ">=8"
|
|
}
|
|
},
|
|
"node_modules/error-stack-parser-es": {
|
|
"version": "1.0.5",
|
|
"resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz",
|
|
"integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/antfu"
|
|
}
|
|
},
|
|
"node_modules/esbuild": {
|
|
"version": "0.28.1",
|
|
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz",
|
|
"integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==",
|
|
"dev": true,
|
|
"hasInstallScript": true,
|
|
"license": "MIT",
|
|
"bin": {
|
|
"esbuild": "bin/esbuild"
|
|
},
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"optionalDependencies": {
|
|
"@esbuild/aix-ppc64": "0.28.1",
|
|
"@esbuild/android-arm": "0.28.1",
|
|
"@esbuild/android-arm64": "0.28.1",
|
|
"@esbuild/android-x64": "0.28.1",
|
|
"@esbuild/darwin-arm64": "0.28.1",
|
|
"@esbuild/darwin-x64": "0.28.1",
|
|
"@esbuild/freebsd-arm64": "0.28.1",
|
|
"@esbuild/freebsd-x64": "0.28.1",
|
|
"@esbuild/linux-arm": "0.28.1",
|
|
"@esbuild/linux-arm64": "0.28.1",
|
|
"@esbuild/linux-ia32": "0.28.1",
|
|
"@esbuild/linux-loong64": "0.28.1",
|
|
"@esbuild/linux-mips64el": "0.28.1",
|
|
"@esbuild/linux-ppc64": "0.28.1",
|
|
"@esbuild/linux-riscv64": "0.28.1",
|
|
"@esbuild/linux-s390x": "0.28.1",
|
|
"@esbuild/linux-x64": "0.28.1",
|
|
"@esbuild/netbsd-arm64": "0.28.1",
|
|
"@esbuild/netbsd-x64": "0.28.1",
|
|
"@esbuild/openbsd-arm64": "0.28.1",
|
|
"@esbuild/openbsd-x64": "0.28.1",
|
|
"@esbuild/openharmony-arm64": "0.28.1",
|
|
"@esbuild/sunos-x64": "0.28.1",
|
|
"@esbuild/win32-arm64": "0.28.1",
|
|
"@esbuild/win32-ia32": "0.28.1",
|
|
"@esbuild/win32-x64": "0.28.1"
|
|
}
|
|
},
|
|
"node_modules/fsevents": {
|
|
"version": "2.3.3",
|
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
|
"dev": true,
|
|
"hasInstallScript": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
],
|
|
"engines": {
|
|
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
|
}
|
|
},
|
|
"node_modules/kleur": {
|
|
"version": "4.1.5",
|
|
"resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
|
|
"integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=6"
|
|
}
|
|
},
|
|
"node_modules/miniflare": {
|
|
"version": "4.20260722.1",
|
|
"resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20260722.1.tgz",
|
|
"integrity": "sha512-FJIg4omaCb2wwSyOeRosEdmVRi3JzGAOOH3pa3twmmtvWECl6BVZMIDwJbjByLKRyU+mrfk0M/n3oSiojFZvSA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@cspotcode/source-map-support": "0.8.1",
|
|
"sharp": "0.35.2",
|
|
"undici": "7.28.0",
|
|
"workerd": "1.20260722.1",
|
|
"ws": "8.21.0",
|
|
"youch": "4.1.0-beta.10"
|
|
},
|
|
"bin": {
|
|
"miniflare": "bootstrap.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.0.0"
|
|
}
|
|
},
|
|
"node_modules/path-to-regexp": {
|
|
"version": "6.3.0",
|
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz",
|
|
"integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/pathe": {
|
|
"version": "2.0.3",
|
|
"resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
|
|
"integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/semver": {
|
|
"version": "7.8.5",
|
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
|
|
"integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
|
|
"dev": true,
|
|
"license": "ISC",
|
|
"bin": {
|
|
"semver": "bin/semver.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=10"
|
|
}
|
|
},
|
|
"node_modules/sharp": {
|
|
"version": "0.35.2",
|
|
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.35.2.tgz",
|
|
"integrity": "sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==",
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"dependencies": {
|
|
"@img/colour": "^1.1.0",
|
|
"detect-libc": "^2.1.2",
|
|
"semver": "^7.8.4"
|
|
},
|
|
"engines": {
|
|
"node": ">=20.9.0"
|
|
},
|
|
"funding": {
|
|
"url": "https://opencollective.com/libvips"
|
|
},
|
|
"optionalDependencies": {
|
|
"@img/sharp-darwin-arm64": "0.35.2",
|
|
"@img/sharp-darwin-x64": "0.35.2",
|
|
"@img/sharp-freebsd-wasm32": "0.35.2",
|
|
"@img/sharp-libvips-darwin-arm64": "1.3.1",
|
|
"@img/sharp-libvips-darwin-x64": "1.3.1",
|
|
"@img/sharp-libvips-linux-arm": "1.3.1",
|
|
"@img/sharp-libvips-linux-arm64": "1.3.1",
|
|
"@img/sharp-libvips-linux-ppc64": "1.3.1",
|
|
"@img/sharp-libvips-linux-riscv64": "1.3.1",
|
|
"@img/sharp-libvips-linux-s390x": "1.3.1",
|
|
"@img/sharp-libvips-linux-x64": "1.3.1",
|
|
"@img/sharp-libvips-linuxmusl-arm64": "1.3.1",
|
|
"@img/sharp-libvips-linuxmusl-x64": "1.3.1",
|
|
"@img/sharp-linux-arm": "0.35.2",
|
|
"@img/sharp-linux-arm64": "0.35.2",
|
|
"@img/sharp-linux-ppc64": "0.35.2",
|
|
"@img/sharp-linux-riscv64": "0.35.2",
|
|
"@img/sharp-linux-s390x": "0.35.2",
|
|
"@img/sharp-linux-x64": "0.35.2",
|
|
"@img/sharp-linuxmusl-arm64": "0.35.2",
|
|
"@img/sharp-linuxmusl-x64": "0.35.2",
|
|
"@img/sharp-webcontainers-wasm32": "0.35.2",
|
|
"@img/sharp-win32-arm64": "0.35.2",
|
|
"@img/sharp-win32-ia32": "0.35.2",
|
|
"@img/sharp-win32-x64": "0.35.2"
|
|
}
|
|
},
|
|
"node_modules/supports-color": {
|
|
"version": "10.2.2",
|
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz",
|
|
"integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/chalk/supports-color?sponsor=1"
|
|
}
|
|
},
|
|
"node_modules/tslib": {
|
|
"version": "2.8.1",
|
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
|
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
|
"dev": true,
|
|
"license": "0BSD",
|
|
"optional": true
|
|
},
|
|
"node_modules/typescript": {
|
|
"version": "5.9.3",
|
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
|
|
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
|
|
"dev": true,
|
|
"license": "Apache-2.0",
|
|
"bin": {
|
|
"tsc": "bin/tsc",
|
|
"tsserver": "bin/tsserver"
|
|
},
|
|
"engines": {
|
|
"node": ">=14.17"
|
|
}
|
|
},
|
|
"node_modules/undici": {
|
|
"version": "7.28.0",
|
|
"resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz",
|
|
"integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=20.18.1"
|
|
}
|
|
},
|
|
"node_modules/unenv": {
|
|
"version": "2.0.0-rc.24",
|
|
"resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz",
|
|
"integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"peer": true,
|
|
"dependencies": {
|
|
"pathe": "^2.0.3"
|
|
}
|
|
},
|
|
"node_modules/workerd": {
|
|
"version": "1.20260722.1",
|
|
"resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20260722.1.tgz",
|
|
"integrity": "sha512-NycKuc1x2onvsRfGGpM093vRlLFU2zHDAM0+APpccfg4+gZxDGCH27RmdDvkeBuoZyYqgLo3oAfF6re4mvC3vQ==",
|
|
"dev": true,
|
|
"hasInstallScript": true,
|
|
"license": "Apache-2.0",
|
|
"bin": {
|
|
"workerd": "bin/workerd"
|
|
},
|
|
"engines": {
|
|
"node": ">=16"
|
|
},
|
|
"optionalDependencies": {
|
|
"@cloudflare/workerd-darwin-64": "1.20260722.1",
|
|
"@cloudflare/workerd-darwin-arm64": "1.20260722.1",
|
|
"@cloudflare/workerd-linux-64": "1.20260722.1",
|
|
"@cloudflare/workerd-linux-arm64": "1.20260722.1",
|
|
"@cloudflare/workerd-windows-64": "1.20260722.1"
|
|
}
|
|
},
|
|
"node_modules/wrangler": {
|
|
"version": "4.115.0",
|
|
"resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.115.0.tgz",
|
|
"integrity": "sha512-+upG2VW66M1sjb43yzgUZ6Ss8iYpJ6+7F3U4GF8TY5EYd+08sYdS54d24AEwCnhuef3J9KlSPusqiqR9WYy1UA==",
|
|
"dev": true,
|
|
"license": "MIT OR Apache-2.0",
|
|
"dependencies": {
|
|
"@cloudflare/kv-asset-handler": "0.5.0",
|
|
"@cloudflare/unenv-preset": "2.16.1",
|
|
"blake3-wasm": "2.1.5",
|
|
"esbuild": "0.28.1",
|
|
"miniflare": "4.20260722.1",
|
|
"path-to-regexp": "6.3.0",
|
|
"unenv": "2.0.0-rc.24",
|
|
"workerd": "1.20260722.1"
|
|
},
|
|
"bin": {
|
|
"cf-wrangler": "bin/cf-wrangler.js",
|
|
"wrangler": "bin/wrangler.js",
|
|
"wrangler2": "bin/wrangler.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=22.0.0"
|
|
},
|
|
"optionalDependencies": {
|
|
"fsevents": "2.3.3"
|
|
},
|
|
"peerDependencies": {
|
|
"@cloudflare/workers-types": "^5.20260722.1"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"@cloudflare/workers-types": {
|
|
"optional": true
|
|
}
|
|
}
|
|
},
|
|
"node_modules/ws": {
|
|
"version": "8.21.0",
|
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
|
|
"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=10.0.0"
|
|
},
|
|
"peerDependencies": {
|
|
"bufferutil": "^4.0.1",
|
|
"utf-8-validate": ">=5.0.2"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"bufferutil": {
|
|
"optional": true
|
|
},
|
|
"utf-8-validate": {
|
|
"optional": true
|
|
}
|
|
}
|
|
},
|
|
"node_modules/youch": {
|
|
"version": "4.1.0-beta.10",
|
|
"resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz",
|
|
"integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@poppinss/colors": "^4.1.5",
|
|
"@poppinss/dumper": "^0.6.4",
|
|
"@speed-highlight/core": "^1.2.7",
|
|
"cookie": "^1.0.2",
|
|
"youch-core": "^0.3.3"
|
|
}
|
|
},
|
|
"node_modules/youch-core": {
|
|
"version": "0.3.3",
|
|
"resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz",
|
|
"integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@poppinss/exception": "^1.2.2",
|
|
"error-stack-parser-es": "^1.0.5"
|
|
}
|
|
}
|
|
}
|
|
}
|