From 0203a9bef8063a6f260d7e6bd953d22104fd8086 Mon Sep 17 00:00:00 2001 From: Christiaan Landman Date: Wed, 13 May 2026 10:55:42 +0200 Subject: [PATCH 1/2] Supabase init. --- supabase-example/README.md | 32 + supabase-example/frontend/.env | 6 + supabase-example/frontend/.env.template | 6 + supabase-example/frontend/.gitignore | 47 + supabase-example/frontend/CHANGELOG.md | 296 + supabase-example/frontend/LICENSE | 121 + supabase-example/frontend/README.md | 66 + supabase-example/frontend/package.json | 43 + supabase-example/frontend/pnpm-lock.yaml | 5749 +++++++++++++++++ supabase-example/frontend/pnpm-workspace.yaml | 2 + supabase-example/frontend/public/favicon.ico | Bin 0 -> 1576 bytes .../frontend/public/icons/icon-192x192.png | Bin 0 -> 27110 bytes .../frontend/public/icons/icon-256x256.png | Bin 0 -> 42070 bytes .../frontend/public/icons/icon-384x384.png | Bin 0 -> 74557 bytes .../frontend/public/icons/icon-512x512.png | Bin 0 -> 109318 bytes .../frontend/public/icons/icon.png | Bin 0 -> 76918 bytes .../frontend/public/powersync-logo.svg | 1 + .../frontend/public/supabase-logo.png | Bin 0 -> 46427 bytes .../frontend/src/app/auth/login/page.tsx | 32 + .../frontend/src/app/auth/register/page.tsx | 40 + supabase-example/frontend/src/app/globals.css | 12 + supabase-example/frontend/src/app/index.tsx | 18 + supabase-example/frontend/src/app/page.tsx | 71 + supabase-example/frontend/src/app/router.tsx | 99 + .../frontend/src/app/utils/fts_helpers.ts | 39 + .../frontend/src/app/utils/fts_setup.ts | 65 + .../frontend/src/app/utils/helpers.ts | 36 + .../frontend/src/app/views/layout.tsx | 159 + .../src/app/views/sql-console/page.tsx | 125 + .../src/app/views/todo-lists/edit/page.tsx | 150 + .../src/app/views/todo-lists/page.tsx | 100 + .../components/navigation/NavigationPage.tsx | 24 + .../navigation/NavigationPanelContext.tsx | 21 + .../components/providers/SystemProvider.tsx | 117 + .../providers/ThemeProviderContainer.tsx | 20 + .../src/components/widgets/GuardBySync.tsx | 41 + .../src/components/widgets/ListItemWidget.tsx | 93 + .../components/widgets/LoginDetailsWidget.tsx | 166 + .../components/widgets/SearchBarWidget.tsx | 104 + .../src/components/widgets/TodoItemWidget.tsx | 91 + .../components/widgets/TodoListsWidget.tsx | 35 + .../frontend/src/generated/api.d.ts | 122 + supabase-example/frontend/src/index.html | 12 + .../src/library/powersync/AppSchema.ts | 35 + .../library/powersync/SupabaseConnector.ts | 137 + .../src/library/powersync/vite-env.d.ts | 11 + supabase-example/frontend/tsconfig.json | 29 + supabase-example/frontend/vite.config.mts | 71 + supabase-example/powersync/.env.template | 13 + supabase-example/powersync/.gitignore | 1 + .../powersync/config/powersync.yaml | 37 + .../powersync/config/sync_rules.yaml | 17 + .../powersync/docker-compose.yaml | 64 + .../supabase/.branches/_current_branch | 1 + supabase-example/supabase/.env.local | 1 + supabase-example/supabase/.gitignore | 47 + supabase-example/supabase/.temp/cli-latest | 1 + supabase-example/supabase/config.toml | 157 + supabase-example/supabase/deno.json | 7 + supabase-example/supabase/deno.lock | 328 + .../supabase/functions/data/errors.ts | 16 + .../supabase/functions/data/generated/api.ts | 122 + .../supabase/functions/data/index.ts | 69 + .../functions/data/mapping/default.ts | 13 + .../supabase/functions/data/mapping/index.ts | 2 + .../supabase/functions/data/mapping/types.ts | 14 + .../supabase/functions/data/openapi.json | 168 + .../supabase/functions/data/openapi.yaml | 129 + .../data/persistance/postgres-persistance.ts | 116 + .../supabase/functions/data/types.ts | 22 + .../supabase/node_modules/@types/pg | 1 + .../supabase/node_modules/js-yaml | 1 + .../supabase/node_modules/openapi-backend | 1 + .../supabase/node_modules/openapi-typescript | 1 + supabase-example/supabase/node_modules/pg | 1 + supabase-example/supabase/package.json | 12 + supabase-example/supabase/pnpm-lock.yaml | 260 + .../supabase/scripts/yaml-to-json.mjs | 10 + supabase-example/supabase/setup.sh | 20 + supabase-example/supabase/signing_key.json | 17 + 80 files changed, 10113 insertions(+) create mode 100644 supabase-example/README.md create mode 100644 supabase-example/frontend/.env create mode 100644 supabase-example/frontend/.env.template create mode 100644 supabase-example/frontend/.gitignore create mode 100644 supabase-example/frontend/CHANGELOG.md create mode 100644 supabase-example/frontend/LICENSE create mode 100644 supabase-example/frontend/README.md create mode 100644 supabase-example/frontend/package.json create mode 100644 supabase-example/frontend/pnpm-lock.yaml create mode 100644 supabase-example/frontend/pnpm-workspace.yaml create mode 100644 supabase-example/frontend/public/favicon.ico create mode 100644 supabase-example/frontend/public/icons/icon-192x192.png create mode 100644 supabase-example/frontend/public/icons/icon-256x256.png create mode 100644 supabase-example/frontend/public/icons/icon-384x384.png create mode 100644 supabase-example/frontend/public/icons/icon-512x512.png create mode 100644 supabase-example/frontend/public/icons/icon.png create mode 100644 supabase-example/frontend/public/powersync-logo.svg create mode 100644 supabase-example/frontend/public/supabase-logo.png create mode 100644 supabase-example/frontend/src/app/auth/login/page.tsx create mode 100644 supabase-example/frontend/src/app/auth/register/page.tsx create mode 100644 supabase-example/frontend/src/app/globals.css create mode 100644 supabase-example/frontend/src/app/index.tsx create mode 100644 supabase-example/frontend/src/app/page.tsx create mode 100644 supabase-example/frontend/src/app/router.tsx create mode 100644 supabase-example/frontend/src/app/utils/fts_helpers.ts create mode 100644 supabase-example/frontend/src/app/utils/fts_setup.ts create mode 100644 supabase-example/frontend/src/app/utils/helpers.ts create mode 100644 supabase-example/frontend/src/app/views/layout.tsx create mode 100644 supabase-example/frontend/src/app/views/sql-console/page.tsx create mode 100644 supabase-example/frontend/src/app/views/todo-lists/edit/page.tsx create mode 100644 supabase-example/frontend/src/app/views/todo-lists/page.tsx create mode 100644 supabase-example/frontend/src/components/navigation/NavigationPage.tsx create mode 100644 supabase-example/frontend/src/components/navigation/NavigationPanelContext.tsx create mode 100644 supabase-example/frontend/src/components/providers/SystemProvider.tsx create mode 100644 supabase-example/frontend/src/components/providers/ThemeProviderContainer.tsx create mode 100644 supabase-example/frontend/src/components/widgets/GuardBySync.tsx create mode 100644 supabase-example/frontend/src/components/widgets/ListItemWidget.tsx create mode 100644 supabase-example/frontend/src/components/widgets/LoginDetailsWidget.tsx create mode 100644 supabase-example/frontend/src/components/widgets/SearchBarWidget.tsx create mode 100644 supabase-example/frontend/src/components/widgets/TodoItemWidget.tsx create mode 100644 supabase-example/frontend/src/components/widgets/TodoListsWidget.tsx create mode 100644 supabase-example/frontend/src/generated/api.d.ts create mode 100644 supabase-example/frontend/src/index.html create mode 100644 supabase-example/frontend/src/library/powersync/AppSchema.ts create mode 100644 supabase-example/frontend/src/library/powersync/SupabaseConnector.ts create mode 100644 supabase-example/frontend/src/library/powersync/vite-env.d.ts create mode 100644 supabase-example/frontend/tsconfig.json create mode 100644 supabase-example/frontend/vite.config.mts create mode 100644 supabase-example/powersync/.env.template create mode 100644 supabase-example/powersync/.gitignore create mode 100644 supabase-example/powersync/config/powersync.yaml create mode 100644 supabase-example/powersync/config/sync_rules.yaml create mode 100644 supabase-example/powersync/docker-compose.yaml create mode 100644 supabase-example/supabase/.branches/_current_branch create mode 100644 supabase-example/supabase/.env.local create mode 100644 supabase-example/supabase/.gitignore create mode 100644 supabase-example/supabase/.temp/cli-latest create mode 100644 supabase-example/supabase/config.toml create mode 100644 supabase-example/supabase/deno.json create mode 100644 supabase-example/supabase/deno.lock create mode 100644 supabase-example/supabase/functions/data/errors.ts create mode 100644 supabase-example/supabase/functions/data/generated/api.ts create mode 100644 supabase-example/supabase/functions/data/index.ts create mode 100644 supabase-example/supabase/functions/data/mapping/default.ts create mode 100644 supabase-example/supabase/functions/data/mapping/index.ts create mode 100644 supabase-example/supabase/functions/data/mapping/types.ts create mode 100644 supabase-example/supabase/functions/data/openapi.json create mode 100644 supabase-example/supabase/functions/data/openapi.yaml create mode 100644 supabase-example/supabase/functions/data/persistance/postgres-persistance.ts create mode 100644 supabase-example/supabase/functions/data/types.ts create mode 120000 supabase-example/supabase/node_modules/@types/pg create mode 120000 supabase-example/supabase/node_modules/js-yaml create mode 120000 supabase-example/supabase/node_modules/openapi-backend create mode 120000 supabase-example/supabase/node_modules/openapi-typescript create mode 120000 supabase-example/supabase/node_modules/pg create mode 100644 supabase-example/supabase/package.json create mode 100644 supabase-example/supabase/pnpm-lock.yaml create mode 100644 supabase-example/supabase/scripts/yaml-to-json.mjs create mode 100755 supabase-example/supabase/setup.sh create mode 100644 supabase-example/supabase/signing_key.json diff --git a/supabase-example/README.md b/supabase-example/README.md new file mode 100644 index 0000000..85c353c --- /dev/null +++ b/supabase-example/README.md @@ -0,0 +1,32 @@ +# PowerSync + Supabase Demo + +Self-contained demo of PowerSync against a local Supabase project. Three +pieces: + +``` +supabase-example/ +├── powersync/ # PowerSync service + Mongo (docker-compose) +├── supabase/ # Supabase project (config, migrations, Edge Function, RPC) +└── frontend/ # React/Vite todolist +``` + +## Quick start + +```bash +# 1. Start Supabase (generates signing key on first run) +cd supabase && ./setup.sh +supabase functions serve data + +# 2. Start PowerSync + Mongo +cd ../powersync && cp .env.template .env && docker compose up -d + +# 3. Start the frontend +cd ../frontend && pnpm install && cp .env.template .env && pnpm dev +``` + +- Frontend: http://localhost:5173 +- PowerSync: http://localhost:8080 +- Supabase API: http://localhost:54321 +- Supabase Studio: http://127.0.0.1:54323 + +See `powersync/README.md` for stack details (networking, JWKS, teardown). diff --git a/supabase-example/frontend/.env b/supabase-example/frontend/.env new file mode 100644 index 0000000..aa56b90 --- /dev/null +++ b/supabase-example/frontend/.env @@ -0,0 +1,6 @@ +# Copy this template: `cp .env.local.template .env.local` +# Edit .env.local and enter your Supabase and PowerSync project details. +VITE_SUPABASE_URL=http://localhost:54321 +VITE_SUPABASE_ANON_KEY=sb_publishable_ACJWlzQHlZjBrEguHvfOxg_3BJgxAaH +VITE_POWERSYNC_URL=http://localhost:8080 + diff --git a/supabase-example/frontend/.env.template b/supabase-example/frontend/.env.template new file mode 100644 index 0000000..aa56b90 --- /dev/null +++ b/supabase-example/frontend/.env.template @@ -0,0 +1,6 @@ +# Copy this template: `cp .env.local.template .env.local` +# Edit .env.local and enter your Supabase and PowerSync project details. +VITE_SUPABASE_URL=http://localhost:54321 +VITE_SUPABASE_ANON_KEY=sb_publishable_ACJWlzQHlZjBrEguHvfOxg_3BJgxAaH +VITE_POWERSYNC_URL=http://localhost:8080 + diff --git a/supabase-example/frontend/.gitignore b/supabase-example/frontend/.gitignore new file mode 100644 index 0000000..0cc2f13 --- /dev/null +++ b/supabase-example/frontend/.gitignore @@ -0,0 +1,47 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# ide +.idea +.fleet +.vscode + +# PWA +**/public/workbox-*.js +**/public/sw.js +**/public/swe-worker-* +**/public/worker-*.js +**/public/fallback-*.js diff --git a/supabase-example/frontend/CHANGELOG.md b/supabase-example/frontend/CHANGELOG.md new file mode 100644 index 0000000..ff00bb8 --- /dev/null +++ b/supabase-example/frontend/CHANGELOG.md @@ -0,0 +1,296 @@ +# react-supabase-todolist + +## 0.3.16 + +### Patch Changes + +- @powersync/react@1.3.7 +- @powersync/web@1.2.4 + +## 0.3.15 + +### Patch Changes + +- Updated dependencies [31c61b9] + - @powersync/react@1.3.6 + - @powersync/web@1.2.3 + +## 0.3.14 + +### Patch Changes + +- cfd54e3: Locking `swc/core` dependency to `~1.6.0` to fix builds of demos using vite. +- Updated dependencies [a1b52be] + - @powersync/web@1.2.2 + +## 0.3.13 + +### Patch Changes + +- 27126e6: Ensuring that SupabaseConnector's error codes are evaluated when processing upload queue. +- Updated dependencies [8d5b702] + - @powersync/web@1.2.1 + +## 0.3.12 + +### Patch Changes + +- Updated dependencies [dca599f] + - @powersync/web@1.2.0 + +## 0.3.11 + +### Patch Changes + +- Updated dependencies [590ee67] + - @powersync/web@1.1.0 + +## 0.3.10 + +### Patch Changes + +- @powersync/web@1.0.2 + +## 0.3.9 + +### Patch Changes + +- @powersync/web@1.0.1 + +## 0.3.8 + +### Patch Changes + +- e86e61d: Update PowerSync branding +- Updated dependencies [32dc7e3] +- Updated dependencies [e86e61d] + - @powersync/web@1.0.0 + +## 0.3.7 + +### Patch Changes + +- Updated dependencies [c3f29a1] + - @powersync/web@0.8.1 + +## 0.3.6 + +### Patch Changes + +- Updated dependencies [7943626] +- Updated dependencies [48cc01c] + - @powersync/web@0.8.0 + - @powersync/react@1.3.5 + +## 0.3.5 + +### Patch Changes + +- Updated dependencies [62e43aa] +- Updated dependencies [6b01811] + - @powersync/web@0.7.0 + - @powersync/react@1.3.4 + +## 0.3.4 + +### Patch Changes + +- c3588c0: Updated the vite conf include rules for bson, buffer, rsocket and cross-fetch. + +## 0.3.3 + +### Patch Changes + +- Updated dependencies [f5e42af] + - @powersync/react@1.3.3 + - @powersync/web@0.6.1 + +## 0.3.2 + +### Patch Changes + +- 9d1dc6f: Updated Vite config for BSON library +- Updated dependencies [395ea24] +- Updated dependencies [9d1dc6f] + - @powersync/web@0.6.0 + - @powersync/react@1.3.2 + +## 0.3.1 + +### Patch Changes + +- @powersync/react@1.3.1 +- @powersync/web@0.5.3 + +## 0.3.0 + +### Minor Changes + +- d62f367: Deprecate usePowerSyncStatus, usePowerSyncQuery and usePowerSyncWatchedQuery in favor of useQuery and useStatus + +### Patch Changes + +- Updated dependencies [c94be6a] +- Updated dependencies [d62f367] + - @powersync/react@1.3.0 + - @powersync/web@0.5.2 + +## 0.2.7 + +### Patch Changes + +- 371e8ce: Updated Vite Demo apps' `include` entries to use nested dependency syntax, fixes issue with CJS nested dependencies. + +## 0.2.6 + +### Patch Changes + +- Updated dependencies [385edf8] +- Updated dependencies [ffe37cf] + - @powersync/react@1.2.0 + - @powersync/web@0.5.1 + +## 0.2.5 + +### Patch Changes + +- Updated dependencies [3aaee03] + - @journeyapps/powersync-sdk-web@0.5.0 + - @journeyapps/powersync-react@1.1.3 + +## 0.2.4 + +### Patch Changes + +- @journeyapps/powersync-react@1.1.2 +- @journeyapps/powersync-sdk-web@0.4.1 + +## 0.2.3 + +### Patch Changes + +- Updated dependencies [6c43ec6] +- Updated dependencies [8f7caa5] + - @journeyapps/powersync-sdk-web@0.4.0 + - @journeyapps/powersync-react@1.1.1 + +## 0.2.2 + +### Patch Changes + +- Updated dependencies [9bf5a76] + - @journeyapps/powersync-react@1.1.0 + - @journeyapps/powersync-sdk-web@0.3.3 + +## 0.2.1 + +### Patch Changes + +- Updated dependencies [8fc2164] + - @journeyapps/powersync-sdk-web@0.3.2 + - @journeyapps/powersync-react@1.0.8 + +## 0.2.0 + +### Minor Changes + +- 949940e: Configuration is now done via `.env`/`.env.local` files instead of directly in code. `AppConfig.ts` now references `process.env`. Updated project to have EAS build support. + +### Patch Changes + +- Updated dependencies [37e266d] +- Updated dependencies [77b3078] +- Updated dependencies [37e266d] + - @journeyapps/powersync-sdk-web@0.3.1 + - @journeyapps/powersync-react@1.0.7 + +## 0.1.12 + +### Patch Changes + +- Updated dependencies [1aed928] +- Updated dependencies [aede9e7] + - @journeyapps/powersync-sdk-web@0.3.0 + - @journeyapps/powersync-react@1.0.6 + +## 0.1.11 + +### Patch Changes + +- Updated dependencies [e472f17] + - @journeyapps/powersync-sdk-web@0.2.3 + +## 0.1.10 + +### Patch Changes + +- Updated dependencies [69592d0] + - @journeyapps/powersync-sdk-web@0.2.2 + - @journeyapps/powersync-react@1.0.5 + +## 0.1.9 + +### Patch Changes + +- @journeyapps/powersync-react@1.0.4 +- @journeyapps/powersync-sdk-web@0.2.1 + +## 0.1.8 + +### Patch Changes + +- Updated dependencies [d20386c] + - @journeyapps/powersync-sdk-web@0.2.0 + +## 0.1.7 + +### Patch Changes + +- Updated dependencies [412937f] + - @journeyapps/powersync-sdk-web@0.1.3 + +## 0.1.6 + +### Patch Changes + +- 7fb9df2: Autofocus inputs in creation dialogs for a better UX. +- Updated dependencies [7fb9df2] +- Updated dependencies [7fb9df2] + - @journeyapps/powersync-sdk-web@0.1.2 + +## 0.1.5 + +### Patch Changes + +- Updated dependencies [0e17713] + - @journeyapps/powersync-sdk-web@0.1.1 + +## 0.1.4 + +### Patch Changes + +- 1fa25e6: Added uploading and downloading status indicator. +- Updated dependencies [1fa25e6] + - @journeyapps/powersync-sdk-web@0.1.0 + +## 0.1.3 + +### Patch Changes + +- 0bc3758: Added PWA support. Better initialization of client side PowerSync instance. +- Updated dependencies [0bc3758] + - @journeyapps/powersync-sdk-web@0.0.3 + +## 0.1.2 + +### Patch Changes + +- Updated dependencies [5d9cbb9] + - @journeyapps/powersync-sdk-web@0.0.2 + +## 0.1.1 + +### Patch Changes + +- Updated dependencies [af78f76] + - @journeyapps/powersync-sdk-web@0.0.1 diff --git a/supabase-example/frontend/LICENSE b/supabase-example/frontend/LICENSE new file mode 100644 index 0000000..1625c17 --- /dev/null +++ b/supabase-example/frontend/LICENSE @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. \ No newline at end of file diff --git a/supabase-example/frontend/README.md b/supabase-example/frontend/README.md new file mode 100644 index 0000000..5518cd8 --- /dev/null +++ b/supabase-example/frontend/README.md @@ -0,0 +1,66 @@ +# PowerSync + Supabase Web Demo: Todo List + +## Overview + +Demo app demonstrating use of the [PowerSync SDK for Web](https://www.npmjs.com/package/@powersync/web) together with Supabase. + +This demo uses [Sync Streams](https://docs.powersync.com/usage/sync-streams). Both lists and todos are auto-subscribed. + +## Run Demo + +Prerequisites: +* To run this demo, you need to have properly configured Supabase and PowerSync projects. Follow the instructions in our Supabase<>PowerSync integration guide: + * [Configure Supabase](https://docs.powersync.com/integration-guides/supabase-+-powersync#configure-supabase) + * [Configure PowerSync](https://docs.powersync.com/integration-guides/supabase-+-powersync#configure-powersync) + +Switch into the demo's directory: + +```bash +cd demos/react-supabase-todolist +``` + +Use [pnpm](https://pnpm.io/installation) to install dependencies: + +```bash +pnpm install +``` + +Set up the Environment variables: Copy the `.env.local.template` file: + +```bash +cp .env.local.template .env.local +``` + +And then edit `.env.local` to insert your credentials for Supabase. + +Run the development server: + +```bash +pnpm dev +``` + +Open [http://localhost:5173](http://localhost:5173) with your browser to see the result. + +## Progressive Web App (PWA) + +This demo is PWA compatible, and works fully offline. PWA is not available in development (watch) mode. The manifest and service worker is built using [vite-plugin-pwa](https://vite-pwa-org.netlify.app/). + +Build the production codebase: + +```bash +pnpm build +``` + +Run the production server: + +```bash +pnpm preview +``` + +Open a browser on the served URL and install the PWA. + +## Learn More + +Check out [the PowerSync Web SDK on GitHub](https://github.com/powersync-ja/powersync-js/tree/main/packages/web) - your feedback and contributions are welcome! + +To learn more about PowerSync, see the [PowerSync docs](https://docs.powersync.com). diff --git a/supabase-example/frontend/package.json b/supabase-example/frontend/package.json new file mode 100644 index 0000000..0b634ce --- /dev/null +++ b/supabase-example/frontend/package.json @@ -0,0 +1,43 @@ +{ + "name": "react-supabase-todolist", + "version": "0.3.16", + "private": true, + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "preview": "vite preview", + "start": "pnpm build && pnpm preview", + "generate": "openapi-typescript ../supabase/functions/data/openapi.yaml -o src/generated/api.d.ts" + }, + "dependencies": { + "@powersync/react": "^1.10.0", + "@powersync/web": "^1.38.0", + "@emotion/react": "11.11.4", + "@emotion/styled": "11.11.5", + "@journeyapps/wa-sqlite": "^1.7.0", + "@mui/icons-material": "^5.15.12", + "@mui/material": "^5.15.12", + "@mui/x-data-grid": "^6.19.6", + "@supabase/supabase-js": "^2.39.7", + "formik": "^2.4.6", + "lodash": "^4.17.21", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.22.3" + }, + "devDependencies": { + "@swc/core": "~1.6.0", + "@types/lodash": "^4.14.202", + "@types/node": "^20.11.25", + "@types/react": "^18.2.64", + "@types/react-dom": "^18.2.21", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.18", + "babel-loader": "^9.1.3", + "openapi-typescript": "^7.13.0", + "typescript": "^5.4.2", + "vite": "^5.1.5", + "vite-plugin-pwa": "^0.19.2" + }, + "packageManager": "pnpm@9.12.3+sha512.cce0f9de9c5a7c95bef944169cc5dfe8741abfb145078c0d508b868056848a87c81e626246cb60967cbd7fd29a6c062ef73ff840d96b3c86c40ac92cf4a813ee" +} diff --git a/supabase-example/frontend/pnpm-lock.yaml b/supabase-example/frontend/pnpm-lock.yaml new file mode 100644 index 0000000..6964355 --- /dev/null +++ b/supabase-example/frontend/pnpm-lock.yaml @@ -0,0 +1,5749 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@emotion/react': + specifier: 11.11.4 + version: 11.11.4(@types/react@18.3.28)(react@18.3.1) + '@emotion/styled': + specifier: 11.11.5 + version: 11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@journeyapps/wa-sqlite': + specifier: ^1.7.0 + version: 1.7.0 + '@mui/icons-material': + specifier: ^5.15.12 + version: 5.18.0(@mui/material@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@mui/material': + specifier: ^5.15.12 + version: 5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/x-data-grid': + specifier: ^6.19.6 + version: 6.20.4(@mui/material@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@powersync/react': + specifier: ^1.10.0 + version: 1.10.0(@powersync/common@1.53.0)(react@18.3.1) + '@powersync/web': + specifier: ^1.38.0 + version: 1.38.0(@journeyapps/wa-sqlite@1.7.0)(@powersync/common@1.53.0) + '@supabase/supabase-js': + specifier: ^2.39.7 + version: 2.105.4 + formik: + specifier: ^2.4.6 + version: 2.4.9(@types/react@18.3.28)(react@18.3.1) + lodash: + specifier: ^4.17.21 + version: 4.18.1 + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + react-router-dom: + specifier: ^6.22.3 + version: 6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + devDependencies: + '@swc/core': + specifier: ~1.6.0 + version: 1.6.13 + '@types/lodash': + specifier: ^4.14.202 + version: 4.17.24 + '@types/node': + specifier: ^20.11.25 + version: 20.19.40 + '@types/react': + specifier: ^18.2.64 + version: 18.3.28 + '@types/react-dom': + specifier: ^18.2.21 + version: 18.3.7(@types/react@18.3.28) + '@vitejs/plugin-react': + specifier: ^4.2.1 + version: 4.7.0(vite@5.4.21(@types/node@20.19.40)(terser@5.47.1)) + autoprefixer: + specifier: ^10.4.18 + version: 10.5.0(postcss@8.5.14) + babel-loader: + specifier: ^9.1.3 + version: 9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.6.13)(postcss@8.5.14)) + openapi-typescript: + specifier: ^7.13.0 + version: 7.13.0(typescript@5.9.3) + typescript: + specifier: ^5.4.2 + version: 5.9.3 + vite: + specifier: ^5.1.5 + version: 5.4.21(@types/node@20.19.40)(terser@5.47.1) + vite-plugin-pwa: + specifier: ^0.19.2 + version: 0.19.8(vite@5.4.21(@types/node@20.19.40)(terser@5.47.1))(workbox-build@7.4.1(@types/babel__core@7.20.5))(workbox-window@7.4.1) + +packages: + + '@apideck/better-ajv-errors@0.3.7': + resolution: {integrity: sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.29.3': + resolution: {integrity: sha512-LIVqM46zQWZhj17qA8wb4nW/ixr2y1Nw+r1etiAWgRM6U1IqP+LNhL1yg440jYZR72jCWcWbLWzIosH+uP1fqg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.1': + resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.27.3': + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.29.3': + resolution: {integrity: sha512-RpLYy2sb51oNLjuu1iD3bwBqCBWUzjO0ocp+iaCP/lJtb2CPLcnC2Fftw+4sAzaMELGeWTgExSKADbdo0GFVzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.28.5': + resolution: {integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.8': + resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-member-expression-to-functions@7.28.5': + resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.27.1': + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.27.1': + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.28.6': + resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.28.6': + resolution: {integrity: sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.29.2': + resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.3': + resolution: {integrity: sha512-b3ctpQwp+PROvU/cttc4OYl4MzfJUWy6FZg+PMXfzmt/+39iHVF0sDfqay8TQM3JA2EUOyKcFZt75jWriQijsA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': + resolution: {integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3': + resolution: {integrity: sha512-SRS46DFR4HqzUzCVgi90/xMoL+zeBDBvWdKYXSEzh79kXswNFEglUpMKxR04//dPqwYXWUBJ3mpUd933ru9Kmg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6': + resolution: {integrity: sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.28.6': + resolution: {integrity: sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.28.6': + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.27.1': + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.29.0': + resolution: {integrity: sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.28.6': + resolution: {integrity: sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.27.1': + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.28.6': + resolution: {integrity: sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.28.6': + resolution: {integrity: sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.28.6': + resolution: {integrity: sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.28.6': + resolution: {integrity: sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.28.6': + resolution: {integrity: sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.28.5': + resolution: {integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.28.6': + resolution: {integrity: sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.27.1': + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-dynamic-import@7.27.1': + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-explicit-resource-management@7.28.6': + resolution: {integrity: sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.28.6': + resolution: {integrity: sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.27.1': + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.27.1': + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.27.1': + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.28.6': + resolution: {integrity: sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.27.1': + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6': + resolution: {integrity: sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.27.1': + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.27.1': + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.28.6': + resolution: {integrity: sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.29.4': + resolution: {integrity: sha512-N7QmZ0xRZfjHOfZeQLJjwgX2zS9pdGHSVl/cjSGlo4dXMqvurfxXDMKY4RqEKzPozV78VMcd0lxyG13mlbKc4w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.27.1': + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0': + resolution: {integrity: sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.27.1': + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6': + resolution: {integrity: sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.28.6': + resolution: {integrity: sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.28.6': + resolution: {integrity: sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.27.1': + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.28.6': + resolution: {integrity: sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.28.6': + resolution: {integrity: sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.27.7': + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.28.6': + resolution: {integrity: sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.28.6': + resolution: {integrity: sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.27.1': + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.29.0': + resolution: {integrity: sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regexp-modifiers@7.28.6': + resolution: {integrity: sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-reserved-words@7.27.1': + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.27.1': + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.28.6': + resolution: {integrity: sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.27.1': + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.27.1': + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.27.1': + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.27.1': + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.28.6': + resolution: {integrity: sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.27.1': + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.28.6': + resolution: {integrity: sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.29.5': + resolution: {integrity: sha512-/69t2aEzGKHD76DyLbHysF/QH2LJOB8iFnYO37unDTKBTubzcMRv0f3H5EiN1Q6ajOd/eB7dAInF0qdFVS06kA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/runtime@7.29.2': + resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} + engines: {node: '>=6.9.0'} + + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + + '@emotion/cache@11.14.0': + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/is-prop-valid@1.4.0': + resolution: {integrity: sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.11.4': + resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/styled@11.11.5': + resolution: {integrity: sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0': + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + + '@emotion/weak-memoize@0.3.1': + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@9.0.0': + resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} + engines: {node: '>=18'} + + '@journeyapps/wa-sqlite@1.7.0': + resolution: {integrity: sha512-xQZ670aKDo4FWxIFpLqY0AGDpURr09aYIO08UkLdWvFw8C018nCiqY0ILJudGRhRdXORhv7K2xD2OXZ2QxU39w==} + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@mui/core-downloads-tracker@5.18.0': + resolution: {integrity: sha512-jbhwoQ1AY200PSSOrNXmrFCaSDSJWP7qk6urkTmIirvRXDROkqe+QwcLlUiw/PrREwsIF/vm3/dAXvjlMHF0RA==} + + '@mui/icons-material@5.18.0': + resolution: {integrity: sha512-1s0vEZj5XFXDMmz3Arl/R7IncFqJ+WQ95LDp1roHWGDE2oCO3IS4/hmiOv1/8SD9r6B7tv9GLiqVZYHo+6PkTg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@mui/material': ^5.0.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/material@5.18.0': + resolution: {integrity: sha512-bbH/HaJZpFtXGvWg3TsBWG4eyt3gah3E7nCNU8GLyRjVoWcA91Vm/T+sjHfUcwgJSw9iLtucfHBoq+qW/T30aA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/private-theming@5.17.1': + resolution: {integrity: sha512-XMxU0NTYcKqdsG8LRmSoxERPXwMbp16sIXPcLVgLGII/bVNagX0xaheWAwFv8+zDK7tI3ajllkuD3GZZE++ICQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/styled-engine@5.18.0': + resolution: {integrity: sha512-BN/vKV/O6uaQh2z5rXV+MBlVrEkwoS/TK75rFQ2mjxA7+NBo8qtTAOA4UaM0XeJfn7kh2wZ+xQw2HAx0u+TiBg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + + '@mui/system@5.18.0': + resolution: {integrity: sha512-ojZGVcRWqWhu557cdO3pWHloIGJdzVtxs3rk0F9L+x55LsUjcMUVkEhiF7E4TMxZoF9MmIHGGs0ZX3FDLAf0Xw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@types/react': + optional: true + + '@mui/types@7.2.24': + resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/utils@5.17.1': + resolution: {integrity: sha512-jEZ8FTqInt2WzxDV8bhImWBqeQRD99c/id/fq83H0ER9tFl+sfZlaAoCdznGvbSQQ9ividMxqSV2c7cC1vBcQg==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@mui/x-data-grid@6.20.4': + resolution: {integrity: sha512-I0JhinVV4e25hD2dB+R6biPBtpGeFrXf8RwlMPQbr9gUggPmPmNtWKo8Kk2PtBBMlGtdMAgHWe7PqhmucUxU1w==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@mui/material': ^5.4.1 + '@mui/system': ^5.4.1 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + + '@powersync/common@1.53.0': + resolution: {integrity: sha512-RIlpwa8uYEwljZBt+pucRAd6RrpT6wwZN1SC4euBy1ymlSHaFq481q9yhYUlkoxkmWD/AZTL6mULH1dXhhqXYQ==} + + '@powersync/react@1.10.0': + resolution: {integrity: sha512-orM29qocbF8zYTBM27j9nPNztyplpbNVaw8djpqxl8N2wESqHTbHOKpatg+Fa5aofgjzmrkiGwevJvCbiWYYWQ==} + peerDependencies: + '@powersync/common': ^1.51.0 + react: '*' + + '@powersync/web@1.38.0': + resolution: {integrity: sha512-XqNkgwYySRQJpTwWjg3coSm1Z8oF++HnYu8RD87fNTnE5IDeOi+HpT1Q3zd2uSirtB33sbWly8026xb0VViPtw==} + hasBin: true + peerDependencies: + '@journeyapps/wa-sqlite': ^1.5.0 + '@powersync/common': ^1.53.0 + + '@redocly/ajv@8.11.2': + resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} + + '@redocly/config@0.22.0': + resolution: {integrity: sha512-gAy93Ddo01Z3bHuVdPWfCwzgfaYgMdaZPcfL7JZ7hWJoK9V0lXDbigTWkhiPFAaLWzbOJ+kbUQG1+XwIm0KRGQ==} + + '@redocly/openapi-core@1.34.14': + resolution: {integrity: sha512-y+xFx+Zz54Xhr8jUdnLENYnt7Y7GEDL6Q03ga7rTtX8DVwefX9H+hQEPgJp1nda7vdH+wJ9/HBVvyfBuW9x6rA==} + engines: {node: '>=18.17.0', npm: '>=9.5.0'} + + '@remix-run/router@1.23.2': + resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==} + engines: {node: '>=14.0.0'} + + '@rolldown/pluginutils@1.0.0-beta.27': + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} + + '@rollup/plugin-babel@6.1.0': + resolution: {integrity: sha512-dFZNuFD2YRcoomP4oYf+DvQNSUA9ih+A3vUqopQx5EdtPGo3WBnQcI/S8pwpz91UsGfL0HsMSOlaMld8HrbubA==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + rollup: + optional: true + + '@rollup/plugin-node-resolve@16.0.3': + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.3': + resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-terser@1.0.0': + resolution: {integrity: sha512-FnCxhTBx6bMOYQrar6C8h3scPt8/JwIzw3+AJ2K++6guogH5fYaIFia+zZuhqv0eo1RN7W1Pz630SyvLbDjhtQ==} + engines: {node: '>=20.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.60.3': + resolution: {integrity: sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.60.3': + resolution: {integrity: sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.60.3': + resolution: {integrity: sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.60.3': + resolution: {integrity: sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.60.3': + resolution: {integrity: sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.60.3': + resolution: {integrity: sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.60.3': + resolution: {integrity: sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.60.3': + resolution: {integrity: sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.60.3': + resolution: {integrity: sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.60.3': + resolution: {integrity: sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.60.3': + resolution: {integrity: sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.60.3': + resolution: {integrity: sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.60.3': + resolution: {integrity: sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.60.3': + resolution: {integrity: sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.60.3': + resolution: {integrity: sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.60.3': + resolution: {integrity: sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.60.3': + resolution: {integrity: sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.60.3': + resolution: {integrity: sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.60.3': + resolution: {integrity: sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.60.3': + resolution: {integrity: sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.3': + resolution: {integrity: sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.3': + resolution: {integrity: sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.60.3': + resolution: {integrity: sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.60.3': + resolution: {integrity: sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.60.3': + resolution: {integrity: sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==} + cpu: [x64] + os: [win32] + + '@supabase/auth-js@2.105.4': + resolution: {integrity: sha512-Ejfa37M5xoIwoxVebxRahnwubPo8g22qkXQ4p50+N9MIvU9UZoN+A8dwVPtczzGf8oV/YXN80ZPxK4aWXuSN/A==} + engines: {node: '>=20.0.0'} + + '@supabase/functions-js@2.105.4': + resolution: {integrity: sha512-JVNKbBft3Qkja+WlGaE026AJ2AH9K0UTsxsfvEIHgd4zFrBor4BYRCrYFrv9IDsvVqkF72wKDsODJl5GY/C4tA==} + engines: {node: '>=20.0.0'} + + '@supabase/phoenix@0.4.2': + resolution: {integrity: sha512-YSAGnmDAfuleFCVt3CeurQZAhxRfXWeZIIkwp7NhYzQ1UwW6ePSnzsFAiUm/mbCkfoCf70QQHKW/K6RKh52a4A==} + + '@supabase/postgrest-js@2.105.4': + resolution: {integrity: sha512-SppIyLo/kTwIlz1qpv2HN1EQqBg0GVktrDDFsXygYROha3MgVn4rT7p5EjFHFqXQm2rdRGb/BI7bc+jr10m91w==} + engines: {node: '>=20.0.0'} + + '@supabase/realtime-js@2.105.4': + resolution: {integrity: sha512-6ov6c59+8D9h7q4M4Gy/uDJlC0Akxl9/714Y+6vJ+Sijuc16TS/p5DwhfRCLNcIhNiej1gEt+CQUwsjiPt4PxQ==} + engines: {node: '>=20.0.0'} + + '@supabase/storage-js@2.105.4': + resolution: {integrity: sha512-Jx+pzMP1Whjof2PWHoVBUA75/p7PQE9CqKBzn1oXVyJDOggMLSH2OzVWwsXYaxEpdC1K/KltwmOX44nL3LHl9g==} + engines: {node: '>=20.0.0'} + + '@supabase/supabase-js@2.105.4': + resolution: {integrity: sha512-cEnx+k49knU+qdIP7rXwR6fqEXPHZs+74xFK1R0S8MgQ7v9tbePVdGxvO03n3bPympMdJWVLadARBfU4TgNHCQ==} + engines: {node: '>=20.0.0'} + + '@swc/core-darwin-arm64@1.6.13': + resolution: {integrity: sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.6.13': + resolution: {integrity: sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.6.13': + resolution: {integrity: sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.6.13': + resolution: {integrity: sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.6.13': + resolution: {integrity: sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.6.13': + resolution: {integrity: sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.6.13': + resolution: {integrity: sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.6.13': + resolution: {integrity: sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.6.13': + resolution: {integrity: sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.6.13': + resolution: {integrity: sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.6.13': + resolution: {integrity: sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.26': + resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} + + '@trickfilm400/rollup-plugin-off-main-thread@3.0.0-pre1': + resolution: {integrity: sha512-/67zpWDBLV+oYAEL682s1ktXL0HgqX76f6gaVGkGnVZlBbm1zd0v4Bz8MFF2GGhoX9rvfq3KSQHubFHwa6w6/Q==} + engines: {node: '>=12'} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + + '@types/hoist-non-react-statics@3.3.7': + resolution: {integrity: sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==} + peerDependencies: + '@types/react': '*' + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/lodash@4.17.24': + resolution: {integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==} + + '@types/node@20.19.40': + resolution: {integrity: sha512-xxx6M2IpSTnnKcR0cMvIiohkiCx20/oRPtWGbenFygKCGl3zqUzdNjQ/1V4solq1LU+dgv0nQzeGOuqkqZGg0Q==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react-transition-group@4.4.12': + resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} + peerDependencies: + '@types/react': '*' + + '@types/react@18.3.28': + resolution: {integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==} + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@vitejs/plugin-react@4.7.0': + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@8.20.0: + resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + autoprefixer@10.5.0: + resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + babel-loader@9.2.1: + resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + + babel-plugin-polyfill-corejs2@0.4.17: + resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.14.2: + resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.8: + resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + + baseline-browser-mapping@2.10.29: + resolution: {integrity: sha512-Asa2krT+XTPZINCS+2QcyS8WTkObE77RwkydwF7h6DmnKqbvlalz93m/dnphUyCa6SWSP51VgtEUf2FN+gelFQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + brace-expansion@2.1.0: + resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} + + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + engines: {node: 18 || 20 || >=22} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.9: + resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + caniuse-lite@1.0.30001792: + resolution: {integrity: sha512-hVLMUZFgR4JJ6ACt1uEESvQN1/dBVqPAKY0hgrV70eN3391K6juAfTjKZLKvOMsx8PxA7gsY1/tLMMTcfFLLpw==} + + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + + comlink@4.4.2: + resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + core-js-compat@3.49.0: + resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deepmerge@2.2.1: + resolution: {integrity: sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==} + engines: {node: '>=0.10.0'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.5.353: + resolution: {integrity: sha512-kOrWphBi8TOZyiJZqsgqIle0lw+tzmnQK83pV9dZUd01Nm2POECSyFQMAuarzZdYqQW7FH9RaYOuaRo3h+bQ3w==} + + enhanced-resolve@5.21.2: + resolution: {integrity: sha512-xe9vQb5kReirPUxgQrXA3ihgbCqssmTiM7cOZ+Gzu+VeGWgpV98lLZvp0dl4yriyAePcewxGUs9UpKD8PET9KQ==} + engines: {node: '>=10.13.0'} + + error-ex@1.3.4: + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} + + es-abstract@1.24.2: + resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@2.1.0: + resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eta@4.6.0: + resolution: {integrity: sha512-lW6is4T1NFOYnmqGZIfvixqj7A7sSvScF+DN8EK6K58xI5MZ5UvYe0GjopxOXQtZvUn4eDdVuZ8XSoYWTMEKwA==} + engines: {node: '>=20'} + + event-iterator@2.0.0: + resolution: {integrity: sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-uri@3.1.2: + resolution: {integrity: sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + filelist@1.0.6: + resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + formik@2.4.9: + resolution: {integrity: sha512-5nI94BMnlFDdQRBY4Sz39WkhxajZJ57Fzs8wVbtsQlm5ScKIR1QLYqv/ultBnobObtlUyxpxoLodpixrsf36Og==} + peerDependencies: + react: '>=16.8.0' + + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} + engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.3: + resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} + engines: {node: '>= 0.4'} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + iceberg-js@0.8.1: + resolution: {integrity: sha512-1dhVQZXhcHje7798IVM+xoo/1ZdVfzOMIc8/rgVSijRK38EDqOJoGula9N/8ZI5RD8QTxNQtK/Gozpr+qUqRRA==} + engines: {node: '>=20.0.0'} + + idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} + engines: {node: '>=18'} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@4.2.3: + resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} + engines: {node: 20 || >=22} + + jake@10.9.4: + resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} + engines: {node: '>=10'} + hasBin: true + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + js-levenshtein@1.1.6: + resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} + engines: {node: '>=0.10.0'} + + js-logger@1.6.1: + resolution: {integrity: sha512-yTgMCPXVjhmg28CuUH8CKjU+cIKL/G+zTu4Fn4lQxs8mRFH/03QTNvEFngcxfg/gRDiQAOoyCKmMTOm9ayOzXA==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@6.2.1: + resolution: {integrity: sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + loader-runner@4.3.2: + resolution: {integrity: sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==} + engines: {node: '>=6.11.5'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash-es@4.18.1: + resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@11.3.6: + resolution: {integrity: sha512-Gf/KoL3C/MlI7Bt0PGI9I+TeTC/I6r/csU58N4BSNc4lppLBeKsOdFYkK+dX0ABDUMJNfCHTyPpzwwO21Awd3A==} + engines: {node: 20 || >=22} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.12: + resolution: {integrity: sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + node-releases@2.0.38: + resolution: {integrity: sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + openapi-typescript@7.13.0: + resolution: {integrity: sha512-EFP392gcqXS7ntPvbhBzbF8TyBA+baIYEm791Hy5YkjDYKTnk/Tn5OQeKm5BIZvJihpp8Zzr4hzx0Irde1LNGQ==} + hasBin: true + peerDependencies: + typescript: ^5.x + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.2: + resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} + engines: {node: '>=8.6'} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.5.14: + resolution: {integrity: sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==} + engines: {node: ^10 || ^12 || >=14} + + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-fast-compare@2.0.4: + resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==} + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@19.2.6: + resolution: {integrity: sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw==} + + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + + react-router-dom@6.30.3: + resolution: {integrity: sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + react-router@6.30.3: + resolution: {integrity: sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.1: + resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} + hasBin: true + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + reselect@4.1.8: + resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rollup@4.60.3: + resolution: {integrity: sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + safe-array-concat@1.1.4: + resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} + engines: {node: '>=0.4'} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + serialize-javascript@7.0.5: + resolution: {integrity: sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==} + engines: {node: '>=20.0.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + smob@1.6.1: + resolution: {integrity: sha512-KAkBqZl3c2GvNgNhcoyJae1aKldDW0LO279wF9bk1PnluRTETKBq0WyzRXxEhoQLk56yHaOY4JCBEKDuJIET5g==} + engines: {node: '>=20.0.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tapable@2.3.3: + resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} + engines: {node: '>=6'} + + temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + + tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + + terser-webpack-plugin@5.6.0: + resolution: {integrity: sha512-Eum+5ajkaOhf5KbM26osvv21kLD7BaGqQ1UA4Ami4arYwylmGUQTgHFpHDdmJod1q4QXa66p0to/FBKID+J1vA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@minify-html/node': '*' + '@swc/core': '*' + '@swc/css': '*' + '@swc/html': '*' + clean-css: '*' + cssnano: '*' + csso: '*' + esbuild: '*' + html-minifier-terser: '*' + lightningcss: '*' + postcss: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@minify-html/node': + optional: true + '@swc/core': + optional: true + '@swc/css': + optional: true + '@swc/html': + optional: true + clean-css: + optional: true + cssnano: + optional: true + csso: + optional: true + esbuild: + optional: true + html-minifier-terser: + optional: true + lightningcss: + optional: true + postcss: + optional: true + uglify-js: + optional: true + + terser@5.47.1: + resolution: {integrity: sha512-tPbLXTI6ohPASb/1YViL428oEHu6/qv1OxqYnfaonVCFHqx4+wCd95pHrQWsL5X4pl90CTyW9piSAsS2L0VoMw==} + engines: {node: '>=10'} + hasBin: true + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.2.0: + resolution: {integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==} + engines: {node: '>=4'} + + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + + vite-plugin-pwa@0.19.8: + resolution: {integrity: sha512-e1oK0dfhzhDhY3VBuML6c0h8Xfx6EkOVYqolj7g+u8eRfdauZe5RLteCIA/c5gH0CBQ0CNFAuv/AFTx4Z7IXTw==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@vite-pwa/assets-generator': ^0.2.4 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0 + workbox-build: ^7.0.0 + workbox-window: ^7.0.0 + peerDependenciesMeta: + '@vite-pwa/assets-generator': + optional: true + + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + watchpack@2.5.1: + resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} + engines: {node: '>=10.13.0'} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webpack-sources@3.4.1: + resolution: {integrity: sha512-eACpxRN02yaawnt+uUNIF7Qje6A9zArxBbcAJjK1PK3S9Ycg5jIuJ8pW4q8EMnwNZCEGltcjkRx1QzOxOkKD8A==} + engines: {node: '>=10.13.0'} + + webpack@5.106.2: + resolution: {integrity: sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + workbox-background-sync@7.4.1: + resolution: {integrity: sha512-HhT7KE8tOWDm02wRNshXUnUPofMlhenF2DBdUnDPOubhizzPeItkYTmAB6td1Z2cjYPa98vzEiPLEuzn5hN66g==} + + workbox-broadcast-update@7.4.1: + resolution: {integrity: sha512-uAlgslKLvbQY+suirIdnBCSYrcgBhjp81Nj4l1lj/Jmj0MJO2CJERnCJjT0GFVwmReV0N+zs78K6gqd5gr9/+A==} + + workbox-build@7.4.1: + resolution: {integrity: sha512-SDhxIvEAde9Gy/5w4Yo1Jh/M49Z0qE3q0oteyE8zGq0DScxFqVBcCtIXFuLtmtxRQZCMbf0prco4VyEu3KBQuw==} + engines: {node: '>=20.0.0'} + + workbox-cacheable-response@7.4.1: + resolution: {integrity: sha512-8xaFoJdDc2OjrlbbL3gEeBO1WKcMwRqwLRupgqahYXu75yXajPLuwrbXMrIGZuWYXrQwk0xDjOxZ/ujCy/oJYw==} + + workbox-core@7.4.1: + resolution: {integrity: sha512-DT+vu46eh/2vRsSHTY4Xmc32Z1rr9PRlQUXr1Dx30ZuXRWwOsvZgGgcwxcasubQLQmbTNYZjv44LkBAQ4tT5tQ==} + + workbox-expiration@7.4.1: + resolution: {integrity: sha512-lRKUF7b+OGbeXkQk1s6MHXOa3d7Xxf7Of31W6c6hCfipfIyrtdWZ89stq21AHZMaoG7VNFoHply4Ox+rU31TWg==} + + workbox-google-analytics@7.4.1: + resolution: {integrity: sha512-Mks1JwLEt++ZAkF6sS1OpSh9RtAMIsiDgRpK+codiHGIPXeaUOgi4cPc3GFadUl8V5QPeypEk8Oxgl3HlwVzHw==} + + workbox-navigation-preload@7.4.1: + resolution: {integrity: sha512-C4KVsjPcYKJOhr631AxR9XoG2rLF3QiTk5aMv36MXOjtWvm8axwNFAtKUPGsWUwLXXAMgYM1En7fsvndaXeXRQ==} + + workbox-precaching@7.4.1: + resolution: {integrity: sha512-cdr/9qByww7yzEp7zg/qI4ukUrrNjQLgN+ONQRpjy/VqGQXwkgHwr00KksGJK8v0VifwDXBb8a4cWNZH71jn3Q==} + + workbox-range-requests@7.4.1: + resolution: {integrity: sha512-7i2oxAUE82gHdAJBCAQ04JzNOdRPqzuOzGfoUyJpFSmeqBNYGPrAH8GPoPjUQTfp+NycwrD2H68VtuF8qxv0vQ==} + + workbox-recipes@7.4.1: + resolution: {integrity: sha512-gnbVfmV4/TtmQaM4x9AtuXhcdstJsep3XMVeztOrQVPT+R6+6DeBjGTCQ7fFCXm+4GEHUA5VEBTyi5+4gWGeog==} + + workbox-routing@7.4.1: + resolution: {integrity: sha512-yubJGErZOusuidAenaL5ypfhQOa7urxP/f8E0ws7FPb4039RiWXUWBAyUkmUoOL/BcQGen3h0J8872d51IYxtA==} + + workbox-strategies@7.4.1: + resolution: {integrity: sha512-GZxpaw9NbmOelj7667uZ2kpk5BFpOGbO4X0qjwh5ls8XQ8C+Lha5LQchTiUzsTFSS+NlUpftYAyOVXvQUrcqOQ==} + + workbox-streams@7.4.1: + resolution: {integrity: sha512-HWWtraKUbJknd9kgqGcpQ3G114HOPYvqs8HaJMDs2ebLNAimDkVDaWfAXE6Ybl+m8U6KsCE6pWyLYuigWmnAXw==} + + workbox-sw@7.4.1: + resolution: {integrity: sha512-fez5f2DUlDJWTFYkCWQpY10N8gtztd849NswCbVFk0QlcSM4HT5A8x4g4ii650yem4I8tHY0R7JZahwp3ltIPw==} + + workbox-window@7.4.1: + resolution: {integrity: sha512-notZDH2u8VXaqyuD7xaqIfEFi6SRM4SUSd7ewe9PDsVqADuepxX2ZMY3uvuZGxzY5ZOsGC/vD3A/3smFtJt4/A==} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + + yaml@1.10.3: + resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==} + engines: {node: '>= 6'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yocto-queue@1.2.2: + resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==} + engines: {node: '>=12.20'} + +snapshots: + + '@apideck/better-ajv-errors@0.3.7(ajv@8.20.0)': + dependencies: + ajv: 8.20.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.29.3': {} + + '@babel/core@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.29.2 + '@babel/parser': 7.29.3 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.3(supports-color@10.2.2) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.29.1': + dependencies: + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.27.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-compilation-targets@7.28.6': + dependencies: + '@babel/compat-data': 7.29.3 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.2 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.29.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/traverse': 7.29.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + regexpu-core: 6.4.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + debug: 4.4.3(supports-color@10.2.2) + lodash.debounce: 4.0.8 + resolve: 1.22.12 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-member-expression-to-functions@7.28.5': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.28.6': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.27.1': + dependencies: + '@babel/types': 7.29.0 + + '@babel/helper-plugin-utils@7.28.6': {} + + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-wrap-function': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-member-expression-to-functions': 7.28.5 + '@babel/helper-optimise-call-expression': 7.27.1 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.27.1': + dependencies: + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/helper-validator-option@7.27.1': {} + + '@babel/helper-wrap-function@7.28.6': + dependencies: + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.29.2': + dependencies: + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + + '@babel/parser@7.29.3': + dependencies: + '@babel/types': 7.29.0 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.3(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + + '@babel/plugin-syntax-import-assertions@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-import-attributes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-async-generator-functions@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-block-scoping@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-class-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-globals': 7.28.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/template': 7.28.6 + + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-dotall-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-explicit-resource-management@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-exponentiation-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-logical-assignment-operators@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.29.4(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-nullish-coalescing-operator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-numeric-separator@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-object-rest-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/traverse': 7.29.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-replace-supers': 7.28.6(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-optional-chaining@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-private-methods@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-annotate-as-pure': 7.27.3 + '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regenerator@7.29.0(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-regexp-modifiers@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-spread@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-property-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/plugin-transform-unicode-sets-regex@7.28.6(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.29.0) + '@babel/helper-plugin-utils': 7.28.6 + + '@babel/preset-env@7.29.5(@babel/core@7.29.0)': + dependencies: + '@babel/compat-data': 7.29.3 + '@babel/core': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.3(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0) + '@babel/plugin-syntax-import-assertions': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-import-attributes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.0) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-async-generator-functions': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-async-to-generator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-block-scoping': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-class-static-block': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-classes': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-computed-properties': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.29.0) + '@babel/plugin-transform-dotall-regex': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-explicit-resource-management': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-exponentiation-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-json-strings': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-logical-assignment-operators': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-modules-commonjs': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-modules-systemjs': 7.29.4(@babel/core@7.29.0) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-nullish-coalescing-operator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-numeric-separator': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-rest-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-optional-catch-binding': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-optional-chaining': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.29.0) + '@babel/plugin-transform-private-methods': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-private-property-in-object': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-regenerator': 7.29.0(@babel/core@7.29.0) + '@babel/plugin-transform-regexp-modifiers': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-spread': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-property-regex': 7.28.6(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-unicode-sets-regex': 7.28.6(@babel/core@7.29.0) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.0) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.0) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.0) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.0)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 + '@babel/types': 7.29.0 + esutils: 2.0.3 + + '@babel/runtime@7.29.2': {} + + '@babel/template@7.28.6': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + + '@babel/traverse@7.29.0': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.1 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.3 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.0': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@emotion/babel-plugin@11.13.5': + dependencies: + '@babel/helper-module-imports': 7.28.6 + '@babel/runtime': 7.29.2 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.14.0': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.9.2': {} + + '@emotion/is-prop-valid@1.4.0': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.3.1 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.3': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.2 + csstype: 3.2.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@emotion/babel-plugin': 11.13.5 + '@emotion/is-prop-valid': 1.4.0 + '@emotion/react': 11.11.4(@types/react@18.3.28)(react@18.3.1) + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/utils': 1.4.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + transitivePeerDependencies: + - supports-color + + '@emotion/unitless@0.10.0': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@emotion/utils@1.4.2': {} + + '@emotion/weak-memoize@0.3.1': {} + + '@emotion/weak-memoize@0.4.0': {} + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@isaacs/cliui@9.0.0': {} + + '@journeyapps/wa-sqlite@1.7.0': {} + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@mui/core-downloads-tracker@5.18.0': {} + + '@mui/icons-material@5.18.0(@mui/material@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@mui/material': 5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/material@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@mui/core-downloads-tracker': 5.18.0 + '@mui/system': 5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@mui/types': 7.2.24(@types/react@18.3.28) + '@mui/utils': 5.17.1(@types/react@18.3.28)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.12(@types/react@18.3.28) + clsx: 2.1.1 + csstype: 3.2.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 19.2.6 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.11.4(@types/react@18.3.28)(react@18.3.1) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@types/react': 18.3.28 + + '@mui/private-theming@5.17.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@mui/utils': 5.17.1(@types/react@18.3.28)(react@18.3.1) + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/styled-engine@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + csstype: 3.2.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.11.4(@types/react@18.3.28)(react@18.3.1) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + + '@mui/system@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@mui/private-theming': 5.17.1(@types/react@18.3.28)(react@18.3.1) + '@mui/styled-engine': 5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.24(@types/react@18.3.28) + '@mui/utils': 5.17.1(@types/react@18.3.28)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.2.3 + prop-types: 15.8.1 + react: 18.3.1 + optionalDependencies: + '@emotion/react': 11.11.4(@types/react@18.3.28)(react@18.3.1) + '@emotion/styled': 11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@types/react': 18.3.28 + + '@mui/types@7.2.24(@types/react@18.3.28)': + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/utils@5.17.1(@types/react@18.3.28)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@mui/types': 7.2.24(@types/react@18.3.28) + '@types/prop-types': 15.7.15 + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 19.2.6 + optionalDependencies: + '@types/react': 18.3.28 + + '@mui/x-data-grid@6.20.4(@mui/material@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mui/system@5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.2 + '@mui/material': 5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/system': 5.18.0(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@emotion/styled@11.11.5(@emotion/react@11.11.4(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1))(@types/react@18.3.28)(react@18.3.1) + '@mui/utils': 5.17.1(@types/react@18.3.28)(react@18.3.1) + clsx: 2.1.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + reselect: 4.1.8 + transitivePeerDependencies: + - '@types/react' + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@popperjs/core@2.11.8': {} + + '@powersync/common@1.53.0': + dependencies: + event-iterator: 2.0.0 + js-logger: 1.6.1 + + '@powersync/react@1.10.0(@powersync/common@1.53.0)(react@18.3.1)': + dependencies: + '@powersync/common': 1.53.0 + react: 18.3.1 + + '@powersync/web@1.38.0(@journeyapps/wa-sqlite@1.7.0)(@powersync/common@1.53.0)': + dependencies: + '@journeyapps/wa-sqlite': 1.7.0 + '@powersync/common': 1.53.0 + comlink: 4.4.2 + commander: 12.1.0 + + '@redocly/ajv@8.11.2': + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js-replace: 1.0.1 + + '@redocly/config@0.22.0': {} + + '@redocly/openapi-core@1.34.14(supports-color@10.2.2)': + dependencies: + '@redocly/ajv': 8.11.2 + '@redocly/config': 0.22.0 + colorette: 1.4.0 + https-proxy-agent: 7.0.6(supports-color@10.2.2) + js-levenshtein: 1.1.6 + js-yaml: 4.1.1 + minimatch: 5.1.9 + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - supports-color + + '@remix-run/router@1.23.2': {} + + '@rolldown/pluginutils@1.0.0-beta.27': {} + + '@rollup/plugin-babel@6.1.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.3)': + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@rollup/pluginutils': 5.3.0(rollup@4.60.3) + optionalDependencies: + '@types/babel__core': 7.20.5 + rollup: 4.60.3 + transitivePeerDependencies: + - supports-color + + '@rollup/plugin-node-resolve@16.0.3(rollup@4.60.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.60.3) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.12 + optionalDependencies: + rollup: 4.60.3 + + '@rollup/plugin-replace@6.0.3(rollup@4.60.3)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.60.3) + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.60.3 + + '@rollup/plugin-terser@1.0.0(rollup@4.60.3)': + dependencies: + serialize-javascript: 7.0.5 + smob: 1.6.1 + terser: 5.47.1 + optionalDependencies: + rollup: 4.60.3 + + '@rollup/pluginutils@5.3.0(rollup@4.60.3)': + dependencies: + '@types/estree': 1.0.9 + estree-walker: 2.0.2 + picomatch: 4.0.4 + optionalDependencies: + rollup: 4.60.3 + + '@rollup/rollup-android-arm-eabi@4.60.3': + optional: true + + '@rollup/rollup-android-arm64@4.60.3': + optional: true + + '@rollup/rollup-darwin-arm64@4.60.3': + optional: true + + '@rollup/rollup-darwin-x64@4.60.3': + optional: true + + '@rollup/rollup-freebsd-arm64@4.60.3': + optional: true + + '@rollup/rollup-freebsd-x64@4.60.3': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.60.3': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.60.3': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.60.3': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.60.3': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.60.3': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.60.3': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.60.3': + optional: true + + '@rollup/rollup-linux-x64-musl@4.60.3': + optional: true + + '@rollup/rollup-openbsd-x64@4.60.3': + optional: true + + '@rollup/rollup-openharmony-arm64@4.60.3': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.60.3': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.3': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.3': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.3': + optional: true + + '@supabase/auth-js@2.105.4': + dependencies: + tslib: 2.8.1 + + '@supabase/functions-js@2.105.4': + dependencies: + tslib: 2.8.1 + + '@supabase/phoenix@0.4.2': {} + + '@supabase/postgrest-js@2.105.4': + dependencies: + tslib: 2.8.1 + + '@supabase/realtime-js@2.105.4': + dependencies: + '@supabase/phoenix': 0.4.2 + tslib: 2.8.1 + + '@supabase/storage-js@2.105.4': + dependencies: + iceberg-js: 0.8.1 + tslib: 2.8.1 + + '@supabase/supabase-js@2.105.4': + dependencies: + '@supabase/auth-js': 2.105.4 + '@supabase/functions-js': 2.105.4 + '@supabase/postgrest-js': 2.105.4 + '@supabase/realtime-js': 2.105.4 + '@supabase/storage-js': 2.105.4 + + '@swc/core-darwin-arm64@1.6.13': + optional: true + + '@swc/core-darwin-x64@1.6.13': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.6.13': + optional: true + + '@swc/core-linux-arm64-gnu@1.6.13': + optional: true + + '@swc/core-linux-arm64-musl@1.6.13': + optional: true + + '@swc/core-linux-x64-gnu@1.6.13': + optional: true + + '@swc/core-linux-x64-musl@1.6.13': + optional: true + + '@swc/core-win32-arm64-msvc@1.6.13': + optional: true + + '@swc/core-win32-ia32-msvc@1.6.13': + optional: true + + '@swc/core-win32-x64-msvc@1.6.13': + optional: true + + '@swc/core@1.6.13': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.26 + optionalDependencies: + '@swc/core-darwin-arm64': 1.6.13 + '@swc/core-darwin-x64': 1.6.13 + '@swc/core-linux-arm-gnueabihf': 1.6.13 + '@swc/core-linux-arm64-gnu': 1.6.13 + '@swc/core-linux-arm64-musl': 1.6.13 + '@swc/core-linux-x64-gnu': 1.6.13 + '@swc/core-linux-x64-musl': 1.6.13 + '@swc/core-win32-arm64-msvc': 1.6.13 + '@swc/core-win32-ia32-msvc': 1.6.13 + '@swc/core-win32-x64-msvc': 1.6.13 + + '@swc/counter@0.1.3': {} + + '@swc/types@0.1.26': + dependencies: + '@swc/counter': 0.1.3 + + '@trickfilm400/rollup-plugin-off-main-thread@3.0.0-pre1': + dependencies: + ejs: 3.1.10 + json5: 2.2.3 + magic-string: 0.30.21 + string.prototype.matchall: 4.0.12 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + '@types/babel__generator': 7.27.0 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.28.0 + + '@types/babel__generator@7.27.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.29.3 + '@babel/types': 7.29.0 + + '@types/babel__traverse@7.28.0': + dependencies: + '@babel/types': 7.29.0 + + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.9 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.9 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.8': {} + + '@types/estree@1.0.9': {} + + '@types/hoist-non-react-statics@3.3.7(@types/react@18.3.28)': + dependencies: + '@types/react': 18.3.28 + hoist-non-react-statics: 3.3.2 + + '@types/json-schema@7.0.15': {} + + '@types/lodash@4.17.24': {} + + '@types/node@20.19.40': + dependencies: + undici-types: 6.21.0 + + '@types/parse-json@4.0.2': {} + + '@types/prop-types@15.7.15': {} + + '@types/react-dom@18.3.7(@types/react@18.3.28)': + dependencies: + '@types/react': 18.3.28 + + '@types/react-transition-group@4.4.12(@types/react@18.3.28)': + dependencies: + '@types/react': 18.3.28 + + '@types/react@18.3.28': + dependencies: + '@types/prop-types': 15.7.15 + csstype: 3.2.3 + + '@types/resolve@1.20.2': {} + + '@types/trusted-types@2.0.7': {} + + '@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@20.19.40)(terser@5.47.1))': + dependencies: + '@babel/core': 7.29.0 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.29.0) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 5.4.21(@types/node@20.19.40)(terser@5.47.1) + transitivePeerDependencies: + - supports-color + + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + acorn-import-phases@1.0.4(acorn@8.16.0): + dependencies: + acorn: 8.16.0 + + acorn@8.16.0: {} + + agent-base@7.1.4: {} + + ajv-formats@2.1.1(ajv@8.20.0): + optionalDependencies: + ajv: 8.20.0 + + ajv-keywords@5.1.0(ajv@8.20.0): + dependencies: + ajv: 8.20.0 + fast-deep-equal: 3.1.3 + + ajv@8.20.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-colors@4.1.3: {} + + argparse@2.0.1: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + async-function@1.0.0: {} + + async@3.2.6: {} + + at-least-node@1.0.0: {} + + autoprefixer@10.5.0(postcss@8.5.14): + dependencies: + browserslist: 4.28.2 + caniuse-lite: 1.0.30001792 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.14 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + babel-loader@9.2.1(@babel/core@7.29.0)(webpack@5.106.2(@swc/core@1.6.13)(postcss@8.5.14)): + dependencies: + '@babel/core': 7.29.0 + find-cache-dir: 4.0.0 + schema-utils: 4.3.3 + webpack: 5.106.2(@swc/core@1.6.13)(postcss@8.5.14) + + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.29.2 + cosmiconfig: 7.1.0 + resolve: 1.22.12 + + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.0): + dependencies: + '@babel/compat-data': 7.29.3 + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + core-js-compat: 3.49.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.0): + dependencies: + '@babel/core': 7.29.0 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.0) + transitivePeerDependencies: + - supports-color + + balanced-match@1.0.2: {} + + balanced-match@4.0.4: {} + + baseline-browser-mapping@2.10.29: {} + + brace-expansion@2.1.0: + dependencies: + balanced-match: 1.0.2 + + brace-expansion@5.0.6: + dependencies: + balanced-match: 4.0.4 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.29 + caniuse-lite: 1.0.30001792 + electron-to-chromium: 1.5.353 + node-releases: 2.0.38 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + + buffer-from@1.1.2: {} + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.9: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + caniuse-lite@1.0.30001792: {} + + change-case@5.4.4: {} + + chrome-trace-event@1.0.4: {} + + clsx@2.1.1: {} + + colorette@1.4.0: {} + + comlink@4.4.2: {} + + commander@12.1.0: {} + + commander@2.20.3: {} + + common-path-prefix@3.0.0: {} + + common-tags@1.8.2: {} + + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + core-js-compat@3.49.0: + dependencies: + browserslist: 4.28.2 + + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.3 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-random-string@2.0.0: {} + + csstype@3.2.3: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + debug@4.4.3(supports-color@10.2.2): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 10.2.2 + + deepmerge@2.2.1: {} + + deepmerge@4.3.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.29.2 + csstype: 3.2.3 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + ejs@3.1.10: + dependencies: + jake: 10.9.4 + + electron-to-chromium@1.5.353: {} + + enhanced-resolve@5.21.2: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.3 + + error-ex@1.3.4: + dependencies: + is-arrayish: 0.2.1 + + es-abstract@1.24.2: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.3 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.4 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.20 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@2.1.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.3 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + escalade@3.2.0: {} + + escape-string-regexp@4.0.0: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + eta@4.6.0: {} + + event-iterator@2.0.0: {} + + events@3.3.0: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-uri@3.1.2: {} + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + filelist@1.0.6: + dependencies: + minimatch: 5.1.9 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-cache-dir@4.0.0: + dependencies: + common-path-prefix: 3.0.0 + pkg-dir: 7.0.0 + + find-root@1.1.0: {} + + find-up@6.3.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + formik@2.4.9(@types/react@18.3.28)(react@18.3.1): + dependencies: + '@types/hoist-non-react-statics': 3.3.7(@types/react@18.3.28) + deepmerge: 2.2.1 + hoist-non-react-statics: 3.3.2 + lodash: 4.18.1 + lodash-es: 4.18.1 + react: 18.3.1 + react-fast-compare: 2.0.4 + tiny-warning: 1.0.3 + tslib: 2.8.1 + transitivePeerDependencies: + - '@types/react' + + fraction.js@5.3.4: {} + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.2.1 + universalify: 2.0.1 + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.3 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + + generator-function@2.0.1: {} + + gensync@1.0.0-beta.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.3 + math-intrinsics: 1.1.0 + + get-own-enumerable-property-symbols@3.0.2: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@11.1.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.2.3 + minimatch: 10.2.5 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.3: + dependencies: + function-bind: 1.1.2 + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + https-proxy-agent@7.0.6(supports-color@10.2.2): + dependencies: + agent-base: 7.1.4 + debug: 4.4.3(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color + + iceberg-js@0.8.1: {} + + idb@7.1.1: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + index-to-position@1.2.0: {} + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.3 + side-channel: 1.1.0 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-arrayish@0.2.1: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} + + is-core-module@2.16.2: + dependencies: + hasown: 2.0.3 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-generator-function@1.1.2: + dependencies: + call-bound: 1.0.4 + generator-function: 2.0.1 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-map@2.0.3: {} + + is-module@1.0.0: {} + + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-obj@1.0.1: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.3 + + is-regexp@1.0.0: {} + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-stream@2.0.1: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.20 + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + jackspeak@4.2.3: + dependencies: + '@isaacs/cliui': 9.0.0 + + jake@10.9.4: + dependencies: + async: 3.2.6 + filelist: 1.0.6 + picocolors: 1.1.1 + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.19.40 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + js-levenshtein@1.1.6: {} + + js-logger@1.6.1: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + jsesc@3.1.0: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@1.0.0: {} + + json5@2.2.3: {} + + jsonfile@6.2.1: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonpointer@5.0.1: {} + + leven@3.1.0: {} + + lines-and-columns@1.2.4: {} + + loader-runner@4.3.2: {} + + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash-es@4.18.1: {} + + lodash.debounce@4.0.8: {} + + lodash.sortby@4.7.0: {} + + lodash@4.18.1: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@11.3.6: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + math-intrinsics@1.1.0: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.2 + + mime-db@1.54.0: {} + + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.6 + + minimatch@5.1.9: + dependencies: + brace-expansion: 2.1.0 + + minipass@7.1.3: {} + + ms@2.1.3: {} + + nanoid@3.3.12: {} + + neo-async@2.6.2: {} + + node-releases@2.0.38: {} + + object-assign@4.1.1: {} + + object-inspect@1.13.4: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + openapi-typescript@7.13.0(typescript@5.9.3): + dependencies: + '@redocly/openapi-core': 1.34.14(supports-color@10.2.2) + ansi-colors: 4.1.3 + change-case: 5.4.4 + parse-json: 8.3.0 + supports-color: 10.2.2 + typescript: 5.9.3 + yargs-parser: 21.1.1 + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.2.2 + + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + + package-json-from-dist@1.0.1: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.29.0 + error-ex: 1.3.4 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.29.0 + index-to-position: 1.2.0 + type-fest: 4.41.0 + + path-exists@5.0.0: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.3.6 + minipass: 7.1.3 + + path-type@4.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.2: {} + + picomatch@4.0.4: {} + + pkg-dir@7.0.0: + dependencies: + find-up: 6.3.0 + + pluralize@8.0.0: {} + + possible-typed-array-names@1.1.0: {} + + postcss-value-parser@4.2.0: {} + + postcss@8.5.14: + dependencies: + nanoid: 3.3.12 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + pretty-bytes@5.6.0: {} + + pretty-bytes@6.1.1: {} + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-fast-compare@2.0.4: {} + + react-is@16.13.1: {} + + react-is@19.2.6: {} + + react-refresh@0.17.0: {} + + react-router-dom@6.30.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@remix-run/router': 1.23.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.30.3(react@18.3.1) + + react-router@6.30.3(react@18.3.1): + dependencies: + '@remix-run/router': 1.23.2 + react: 18.3.1 + + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.29.2 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.1: + dependencies: + jsesc: 3.1.0 + + require-from-string@2.0.2: {} + + reselect@4.1.8: {} + + resolve-from@4.0.0: {} + + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + reusify@1.1.0: {} + + rollup@4.60.3: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.60.3 + '@rollup/rollup-android-arm64': 4.60.3 + '@rollup/rollup-darwin-arm64': 4.60.3 + '@rollup/rollup-darwin-x64': 4.60.3 + '@rollup/rollup-freebsd-arm64': 4.60.3 + '@rollup/rollup-freebsd-x64': 4.60.3 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.3 + '@rollup/rollup-linux-arm-musleabihf': 4.60.3 + '@rollup/rollup-linux-arm64-gnu': 4.60.3 + '@rollup/rollup-linux-arm64-musl': 4.60.3 + '@rollup/rollup-linux-loong64-gnu': 4.60.3 + '@rollup/rollup-linux-loong64-musl': 4.60.3 + '@rollup/rollup-linux-ppc64-gnu': 4.60.3 + '@rollup/rollup-linux-ppc64-musl': 4.60.3 + '@rollup/rollup-linux-riscv64-gnu': 4.60.3 + '@rollup/rollup-linux-riscv64-musl': 4.60.3 + '@rollup/rollup-linux-s390x-gnu': 4.60.3 + '@rollup/rollup-linux-x64-gnu': 4.60.3 + '@rollup/rollup-linux-x64-musl': 4.60.3 + '@rollup/rollup-openbsd-x64': 4.60.3 + '@rollup/rollup-openharmony-arm64': 4.60.3 + '@rollup/rollup-win32-arm64-msvc': 4.60.3 + '@rollup/rollup-win32-ia32-msvc': 4.60.3 + '@rollup/rollup-win32-x64-gnu': 4.60.3 + '@rollup/rollup-win32-x64-msvc': 4.60.3 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + safe-array-concat@1.1.4: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + schema-utils@4.3.3: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.20.0 + ajv-formats: 2.1.1(ajv@8.20.0) + ajv-keywords: 5.1.0(ajv@8.20.0) + + semver@6.3.1: {} + + serialize-javascript@7.0.5: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@4.1.0: {} + + smob@1.6.1: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.24.2 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.9 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.9 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + stringify-object@3.3.0: + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + + strip-comments@2.0.1: {} + + stylis@4.2.0: {} + + supports-color@10.2.2: {} + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tapable@2.3.3: {} + + temp-dir@2.0.0: {} + + tempy@0.6.0: + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + + terser-webpack-plugin@5.6.0(@swc/core@1.6.13)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.6.13)(postcss@8.5.14)): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + terser: 5.47.1 + webpack: 5.106.2(@swc/core@1.6.13)(postcss@8.5.14) + optionalDependencies: + '@swc/core': 1.6.13 + postcss: 8.5.14 + + terser@5.47.1: + dependencies: + '@jridgewell/source-map': 0.3.11 + acorn: 8.16.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + tiny-warning@1.0.3: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tslib@2.8.1: {} + + type-fest@0.16.0: {} + + type-fest@4.41.0: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.9 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typescript@5.9.3: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@6.21.0: {} + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.2.0 + + unicode-match-property-value-ecmascript@2.2.1: {} + + unicode-property-aliases-ecmascript@2.2.0: {} + + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + + universalify@2.0.1: {} + + upath@1.2.0: {} + + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js-replace@1.0.1: {} + + vite-plugin-pwa@0.19.8(vite@5.4.21(@types/node@20.19.40)(terser@5.47.1))(workbox-build@7.4.1(@types/babel__core@7.20.5))(workbox-window@7.4.1): + dependencies: + debug: 4.4.3(supports-color@10.2.2) + fast-glob: 3.3.3 + pretty-bytes: 6.1.1 + vite: 5.4.21(@types/node@20.19.40)(terser@5.47.1) + workbox-build: 7.4.1(@types/babel__core@7.20.5) + workbox-window: 7.4.1 + transitivePeerDependencies: + - supports-color + + vite@5.4.21(@types/node@20.19.40)(terser@5.47.1): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.14 + rollup: 4.60.3 + optionalDependencies: + '@types/node': 20.19.40 + fsevents: 2.3.3 + terser: 5.47.1 + + watchpack@2.5.1: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + webidl-conversions@4.0.2: {} + + webpack-sources@3.4.1: {} + + webpack@5.106.2(@swc/core@1.6.13)(postcss@8.5.14): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.9 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.16.0 + acorn-import-phases: 1.0.4(acorn@8.16.0) + browserslist: 4.28.2 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.21.2 + es-module-lexer: 2.1.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + loader-runner: 4.3.2 + mime-db: 1.54.0 + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.3 + terser-webpack-plugin: 5.6.0(@swc/core@1.6.13)(postcss@8.5.14)(webpack@5.106.2(@swc/core@1.6.13)(postcss@8.5.14)) + watchpack: 2.5.1 + webpack-sources: 3.4.1 + transitivePeerDependencies: + - '@minify-html/node' + - '@swc/core' + - '@swc/css' + - '@swc/html' + - clean-css + - cssnano + - csso + - esbuild + - html-minifier-terser + - lightningcss + - postcss + - uglify-js + + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.2 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.20 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.20: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.9 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + workbox-background-sync@7.4.1: + dependencies: + idb: 7.1.1 + workbox-core: 7.4.1 + + workbox-broadcast-update@7.4.1: + dependencies: + workbox-core: 7.4.1 + + workbox-build@7.4.1(@types/babel__core@7.20.5): + dependencies: + '@apideck/better-ajv-errors': 0.3.7(ajv@8.20.0) + '@babel/core': 7.29.0 + '@babel/preset-env': 7.29.5(@babel/core@7.29.0) + '@babel/runtime': 7.29.2 + '@rollup/plugin-babel': 6.1.0(@babel/core@7.29.0)(@types/babel__core@7.20.5)(rollup@4.60.3) + '@rollup/plugin-node-resolve': 16.0.3(rollup@4.60.3) + '@rollup/plugin-replace': 6.0.3(rollup@4.60.3) + '@rollup/plugin-terser': 1.0.0(rollup@4.60.3) + '@trickfilm400/rollup-plugin-off-main-thread': 3.0.0-pre1 + ajv: 8.20.0 + common-tags: 1.8.2 + eta: 4.6.0 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 11.1.0 + pretty-bytes: 5.6.0 + rollup: 4.60.3 + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 7.4.1 + workbox-broadcast-update: 7.4.1 + workbox-cacheable-response: 7.4.1 + workbox-core: 7.4.1 + workbox-expiration: 7.4.1 + workbox-google-analytics: 7.4.1 + workbox-navigation-preload: 7.4.1 + workbox-precaching: 7.4.1 + workbox-range-requests: 7.4.1 + workbox-recipes: 7.4.1 + workbox-routing: 7.4.1 + workbox-strategies: 7.4.1 + workbox-streams: 7.4.1 + workbox-sw: 7.4.1 + workbox-window: 7.4.1 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + + workbox-cacheable-response@7.4.1: + dependencies: + workbox-core: 7.4.1 + + workbox-core@7.4.1: {} + + workbox-expiration@7.4.1: + dependencies: + idb: 7.1.1 + workbox-core: 7.4.1 + + workbox-google-analytics@7.4.1: + dependencies: + workbox-background-sync: 7.4.1 + workbox-core: 7.4.1 + workbox-routing: 7.4.1 + workbox-strategies: 7.4.1 + + workbox-navigation-preload@7.4.1: + dependencies: + workbox-core: 7.4.1 + + workbox-precaching@7.4.1: + dependencies: + workbox-core: 7.4.1 + workbox-routing: 7.4.1 + workbox-strategies: 7.4.1 + + workbox-range-requests@7.4.1: + dependencies: + workbox-core: 7.4.1 + + workbox-recipes@7.4.1: + dependencies: + workbox-cacheable-response: 7.4.1 + workbox-core: 7.4.1 + workbox-expiration: 7.4.1 + workbox-precaching: 7.4.1 + workbox-routing: 7.4.1 + workbox-strategies: 7.4.1 + + workbox-routing@7.4.1: + dependencies: + workbox-core: 7.4.1 + + workbox-strategies@7.4.1: + dependencies: + workbox-core: 7.4.1 + + workbox-streams@7.4.1: + dependencies: + workbox-core: 7.4.1 + workbox-routing: 7.4.1 + + workbox-sw@7.4.1: {} + + workbox-window@7.4.1: + dependencies: + '@types/trusted-types': 2.0.7 + workbox-core: 7.4.1 + + yallist@3.1.1: {} + + yaml-ast-parser@0.0.43: {} + + yaml@1.10.3: {} + + yargs-parser@21.1.1: {} + + yocto-queue@1.2.2: {} diff --git a/supabase-example/frontend/pnpm-workspace.yaml b/supabase-example/frontend/pnpm-workspace.yaml new file mode 100644 index 0000000..d05a7e7 --- /dev/null +++ b/supabase-example/frontend/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +packages: + - . diff --git a/supabase-example/frontend/public/favicon.ico b/supabase-example/frontend/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..918ca54eefddfbddd927a9b0558126afd2fc433f GIT binary patch literal 1576 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

tEs4H$a=ZS)m{ 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 Y!RBn|z+;l5Lg2&pwBxDjlRk0(1K`z}W&i*H literal 0 HcmV?d00001 diff --git a/supabase-example/frontend/public/icons/icon-384x384.png b/supabase-example/frontend/public/icons/icon-384x384.png new file mode 100644 index 0000000000000000000000000000000000000000..af8be4dc69bf0e8c23086265359891438a794add GIT binary patch literal 74557 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 setConnectionAnchor(null)}> + {status?.connected || status?.connecting ? ( + { + setConnectionAnchor(null); + powerSync.disconnect(); + }}> + Disconnect + + ) : supabase ? ( + { + setConnectionAnchor(null); + powerSync.connect(supabase); + }}> + Connect + + ) : null} + + + + setOpenDrawer(false)}> + + + + {NAVIGATION_ITEMS.map((item) => ( + + { + await item.beforeNavigate?.(); + navigate(item.path); + setOpenDrawer(false); + }}> + {item.icon()} + + + + ))} + + + {children} + + ); +} + +namespace S { + export const MainBox = styled(Box)` + flex-grow: 1; + `; + + export const TopBar = styled(AppBar)` + margin-bottom: 20px; + `; + + export const PowerSyncLogo = styled('img')` + max-width: 250px; + max-height: 250px; + object-fit: contain; + padding: 20px; + `; +} diff --git a/supabase-example/frontend/src/app/views/sql-console/page.tsx b/supabase-example/frontend/src/app/views/sql-console/page.tsx new file mode 100644 index 0000000..4cb0e84 --- /dev/null +++ b/supabase-example/frontend/src/app/views/sql-console/page.tsx @@ -0,0 +1,125 @@ +import { NavigationPage } from '@/components/navigation/NavigationPage'; +import { Alert, Box, Button, Grid, TextField, styled } from '@mui/material'; +import { DataGrid } from '@mui/x-data-grid'; +import { useQuery } from '@powersync/react'; +import React from 'react'; + +export type LoginFormParams = { + email: string; + password: string; +}; + +const DEFAULT_QUERY = /* sql */ ` + SELECT + * + FROM + lists +`; + +const TableDisplay = React.memo(({ data }: { data: ReadonlyArray }) => { + const queryDataGridResult = React.useMemo(() => { + const firstItem = data?.[0]; + return { + columns: firstItem + ? Object.keys(firstItem).map((field) => ({ + field, + flex: 1 + })) + : [], + rows: data + }; + }, [data]); + + return ( + + ({ ...r, id: r.id ?? index })) ?? []} + columns={queryDataGridResult.columns} + initialState={{ + pagination: { + paginationModel: { + pageSize: 20 + } + } + }} + pageSizeOptions={[20]} + disableRowSelectionOnClick + /> + + ); +}); + +export default function SQLConsolePage() { + const inputRef = React.useRef(); + const [query, setQuery] = React.useState(DEFAULT_QUERY); + + const { data, error } = useQuery(query, [], { + /** + * We don't use the isFetching status here, we can avoid re-renders if we don't report on it. + */ + reportFetching: false, + /** + * The query here will only emit results when the query data set changes. + * Result sets are compared by serializing each item to JSON and comparing the strings. + */ + rowComparator: { + keyBy: (item: any) => JSON.stringify(item), + compareBy: (item: any) => JSON.stringify(item) + } + }); + + return ( + + + + + { + const inputValue = inputRef.current?.value; + if (e.key == 'Enter' && inputValue) { + setQuery(inputValue); + } + }} + /> + + + + + + {error ? {error.message} : null} + + + + ); +} + +namespace S { + export const MainContainer = styled(Box)` + padding: 20px; + `; + + export const QueryResultContainer = styled(Box)` + margin-top: 40px; + `; + + export const CenteredGrid = styled(Grid)` + display: flex; + justify-content: center; + align-items: center; + `; +} diff --git a/supabase-example/frontend/src/app/views/todo-lists/edit/page.tsx b/supabase-example/frontend/src/app/views/todo-lists/edit/page.tsx new file mode 100644 index 0000000..7a48879 --- /dev/null +++ b/supabase-example/frontend/src/app/views/todo-lists/edit/page.tsx @@ -0,0 +1,150 @@ +import { NavigationPage } from '@/components/navigation/NavigationPage'; +import { useSupabase } from '@/components/providers/SystemProvider'; +import { TodoItemWidget } from '@/components/widgets/TodoItemWidget'; +import { LISTS_TABLE, TODOS_TABLE, TodoRecord } from '@/library/powersync/AppSchema'; +import AddIcon from '@mui/icons-material/Add'; +import { + Box, + Button, + CircularProgress, + Dialog, + DialogActions, + DialogContent, + DialogContentText, + DialogTitle, + List, + TextField, + Typography, + styled +} from '@mui/material'; +import Fab from '@mui/material/Fab'; +import { usePowerSync, useQuery } from '@powersync/react'; +import React, { Suspense } from 'react'; +import { useParams } from 'react-router-dom'; + +/** + * useSearchParams causes the entire element to fall back to client side rendering + * This is exposed as a separate React component in order to suspend its render + * and allow the root page to render on the server. + */ +const TodoEditSection = () => { + const powerSync = usePowerSync(); + const supabase = useSupabase(); + const { id: listID } = useParams(); + + const { + data: [listRecord] + } = useQuery<{ name: string }>( + /* sql */ ` + SELECT + name + FROM + ${LISTS_TABLE} + WHERE + id = ? + `, + [listID] + ); + + const { data: todos } = useQuery( + /* sql */ ` + SELECT + * + FROM + ${TODOS_TABLE} + WHERE + list_id = ? + ORDER BY + created_at DESC, + id + `, + [listID] + ); + + const [showPrompt, setShowPrompt] = React.useState(false); + const nameInputRef = React.createRef(); + + const createNewTodo = async (description: string) => { + const userID = supabase?.currentSession?.user.id; + if (!userID) { + throw new Error(`Could not get user ID.`); + } + + await powerSync.execute( + /* sql */ ` + INSERT INTO + ${TODOS_TABLE} (id, created_at, created_by, description, list_id) + VALUES + (uuid (), datetime (), ?, ?, ?) + `, + [userID, description, listID!] + ); + }; + + if (!listRecord) { + return ( + + No matching List found, please navigate back... + + ); + } + + return ( + + + setShowPrompt(true)}> + + + + + {todos.map((r) => ( + + ))} + + + {/* TODO use a dialog service in future, this is just a simple example app */} + setShowPrompt(false)} + aria-labelledby="alert-dialog-title" + aria-describedby="alert-dialog-description" + PaperProps={{ + component: 'form', + onSubmit: async (event: React.FormEvent) => { + event.preventDefault(); + await createNewTodo(nameInputRef.current!.value); + setShowPrompt(false); + } + }}> + {'Create Todo Item'} + + Enter a description for a new todo item + + + + + + + + + + ); +}; + +export default function TodoEditPage() { + return ( + + }> + + + + ); +} + +namespace S { + export const FloatingActionButton = styled(Fab)` + position: absolute; + bottom: 20px; + right: 20px; + `; +} diff --git a/supabase-example/frontend/src/app/views/todo-lists/page.tsx b/supabase-example/frontend/src/app/views/todo-lists/page.tsx new file mode 100644 index 0000000..edb168a --- /dev/null +++ b/supabase-example/frontend/src/app/views/todo-lists/page.tsx @@ -0,0 +1,100 @@ +import { NavigationPage } from '@/components/navigation/NavigationPage'; +import { useSupabase } from '@/components/providers/SystemProvider'; +import { GuardBySync } from '@/components/widgets/GuardBySync'; +import { SearchBarWidget } from '@/components/widgets/SearchBarWidget'; +import { TodoListsWidget } from '@/components/widgets/TodoListsWidget'; +import { LISTS_TABLE } from '@/library/powersync/AppSchema'; +import AddIcon from '@mui/icons-material/Add'; +import { + Box, + Button, + Dialog, + DialogActions, + DialogContent, + DialogContentText, + DialogTitle, + TextField, + styled +} from '@mui/material'; +import Fab from '@mui/material/Fab'; +import { usePowerSync } from '@powersync/react'; +import React from 'react'; + +export default function TodoListsPage() { + const powerSync = usePowerSync(); + const supabase = useSupabase(); + + const [showPrompt, setShowPrompt] = React.useState(false); + const nameInputRef = React.createRef(); + + const createNewList = async (name: string) => { + const session = await supabase?.client.auth.getSession(); + const userID = session?.data.session?.user?.id; + if (!userID) { + throw new Error(`Could not create new lists, no userID found`); + } + + const res = await powerSync.execute( + /* sql */ ` + INSERT INTO + ${LISTS_TABLE} (id, created_at, name, owner_id) + VALUES + (uuid (), datetime (), ?, ?) RETURNING * + `, + [name, userID] + ); + + const resultRecord = res.rows?.item(0); + if (!resultRecord) { + throw new Error('Could not create list'); + } + }; + + return ( + + + setShowPrompt(true)}> + + + + + + + + + {/* TODO use a dialog service in future, this is just a simple example app */} + setShowPrompt(false)} + PaperProps={{ + component: 'form', + onSubmit: async (event: React.FormEvent) => { + event.preventDefault(); + await createNewList(nameInputRef.current!.value); + setShowPrompt(false); + } + }} + aria-labelledby="alert-dialog-title" + aria-describedby="alert-dialog-description"> + {'Create Todo List'} + + Enter a name for a new todo list + + + + + + + + + + ); +} + +namespace S { + export const FloatingActionButton = styled(Fab)` + position: absolute; + bottom: 20px; + right: 20px; + `; +} diff --git a/supabase-example/frontend/src/components/navigation/NavigationPage.tsx b/supabase-example/frontend/src/components/navigation/NavigationPage.tsx new file mode 100644 index 0000000..ac0cc30 --- /dev/null +++ b/supabase-example/frontend/src/components/navigation/NavigationPage.tsx @@ -0,0 +1,24 @@ +import React from 'react'; +import { useNavigationPanel } from './NavigationPanelContext'; +import { Box, styled } from '@mui/material'; + +/** + * Wraps a component with automatic navigation panel title management + */ +export const NavigationPage: React.FC> = ({ title, children }) => { + const navigationPanel = useNavigationPanel(); + + React.useEffect(() => { + navigationPanel.setTitle(title); + + return () => navigationPanel.setTitle(''); + }, [title, navigationPanel]); + + return {children}; +}; + +namespace S { + export const Container = styled(Box)` + margin: 10px; + `; +} diff --git a/supabase-example/frontend/src/components/navigation/NavigationPanelContext.tsx b/supabase-example/frontend/src/components/navigation/NavigationPanelContext.tsx new file mode 100644 index 0000000..4745475 --- /dev/null +++ b/supabase-example/frontend/src/components/navigation/NavigationPanelContext.tsx @@ -0,0 +1,21 @@ +import React from 'react'; + +export type NavigationPanelController = { + setTitle: (title: string) => void; + title: string; +}; + +export const NavigationPanelContext = React.createContext({ + setTitle: () => { + throw new Error(`No NavigationPanelContext has been provided`); + }, + title: '' +}); + +export const NavigationPanelContextProvider = ({ children }: { children: React.ReactNode }) => { + const [title, setTitle] = React.useState(''); + + return {children}; +}; + +export const useNavigationPanel = () => React.useContext(NavigationPanelContext); diff --git a/supabase-example/frontend/src/components/providers/SystemProvider.tsx b/supabase-example/frontend/src/components/providers/SystemProvider.tsx new file mode 100644 index 0000000..f4e800b --- /dev/null +++ b/supabase-example/frontend/src/components/providers/SystemProvider.tsx @@ -0,0 +1,117 @@ +import { configureFts } from '@/app/utils/fts_setup'; +import { AppSchema, ListRecord, LISTS_TABLE, TODOS_TABLE } from '@/library/powersync/AppSchema'; +import { SupabaseConnector } from '@/library/powersync/SupabaseConnector'; +import { CircularProgress } from '@mui/material'; +import { PowerSyncContext } from '@powersync/react'; +import { + createBaseLogger, + DifferentialWatchedQuery, + LogLevel, + PowerSyncDatabase, + WASQLiteOpenFactory, + WASQLiteVFS +} from '@powersync/web'; +import React, { Suspense } from 'react'; +import { NavigationPanelContextProvider } from '../navigation/NavigationPanelContext'; + +declare const APP_VERSION: string; + +const SupabaseContext = React.createContext(null); +export const useSupabase = () => React.useContext(SupabaseContext); + +export const db = new PowerSyncDatabase({ + schema: AppSchema, + database: new WASQLiteOpenFactory({ + dbFilename: 'example.db', + vfs: WASQLiteVFS.OPFSCoopSyncVFS, + flags: { + enableMultiTabs: typeof SharedWorker !== 'undefined' + } + }), + flags: { + enableMultiTabs: typeof SharedWorker !== 'undefined' + } +}); + +export type EnhancedListRecord = ListRecord & { total_tasks: number; completed_tasks: number }; + +export type QueryStore = { + lists: DifferentialWatchedQuery; +}; + +const QueryStore = React.createContext(null); +export const useQueryStore = () => React.useContext(QueryStore); + +export const SystemProvider = ({ children }: { children: React.ReactNode }) => { + const [connector] = React.useState(() => new SupabaseConnector()); + const [powerSync] = React.useState(db); + + const [queryStore] = React.useState(() => { + const listsQuery = db + .query({ + sql: /* sql */ ` + SELECT + ${LISTS_TABLE}.*, + COUNT(${TODOS_TABLE}.id) AS total_tasks, + SUM( + CASE + WHEN ${TODOS_TABLE}.completed = true THEN 1 + ELSE 0 + END + ) as completed_tasks + FROM + ${LISTS_TABLE} + LEFT JOIN ${TODOS_TABLE} ON ${LISTS_TABLE}.id = ${TODOS_TABLE}.list_id + GROUP BY + ${LISTS_TABLE}.id; + ` + }) + .differentialWatch(); + + return { + lists: listsQuery + }; + }); + + React.useEffect(() => { + const logger = createBaseLogger(); + logger.useDefaults(); // eslint-disable-line + logger.setLevel(LogLevel.DEBUG); + // For console testing purposes + (window as any)._powersync = powerSync; + + powerSync.init(); + const l = connector.registerListener({ + initialized: () => {}, + sessionStarted: () => { + powerSync.connect(connector, { + appMetadata: { + app_version: APP_VERSION + } + }); + } + }); + + connector.init(); + + // Demo using SQLite Full-Text Search with PowerSync. + // See https://docs.powersync.com/usage-examples/full-text-search for more details + configureFts(); + + return () => l?.(); + }, [powerSync, connector]); + + return ( + }> + + + + {children} + + + + + ); +}; + +export default SystemProvider; diff --git a/supabase-example/frontend/src/components/providers/ThemeProviderContainer.tsx b/supabase-example/frontend/src/components/providers/ThemeProviderContainer.tsx new file mode 100644 index 0000000..9b9c1d6 --- /dev/null +++ b/supabase-example/frontend/src/components/providers/ThemeProviderContainer.tsx @@ -0,0 +1,20 @@ +import React from 'react'; +import { createTheme, ThemeProvider } from '@mui/material/styles'; + +export const ThemeProviderContainer: React.FC> = ({ children }) => { + const theme = React.useMemo(() => { + return createTheme({ + palette: { + mode: 'dark', + primary: { + main: '#c44eff' + } + }, + typography: { + fontFamily: 'Rubik, sans-serif' + } + }); + }, []); + + return {children}; +}; diff --git a/supabase-example/frontend/src/components/widgets/GuardBySync.tsx b/supabase-example/frontend/src/components/widgets/GuardBySync.tsx new file mode 100644 index 0000000..57907eb --- /dev/null +++ b/supabase-example/frontend/src/components/widgets/GuardBySync.tsx @@ -0,0 +1,41 @@ +import { Box, LinearProgress, Stack, Typography } from '@mui/material'; +import { useStatus } from '@powersync/react'; +import { FC, ReactNode } from 'react'; + +/** + * A component that renders its child if the database has been synced at least once and shows + * a progress indicator otherwise. + */ +export const GuardBySync: FC<{ children: ReactNode; priority?: number }> = ({ children, priority }) => { + const status = useStatus(); + + const hasSynced = priority == null ? status.hasSynced : status.statusForPriority(priority).hasSynced; + if (hasSynced) { + return children; + } + + // If we haven't completed a sync yet, show a progress indicator! + const allProgress = status.downloadProgress; + const progress = priority == null ? allProgress : allProgress?.untilPriority(priority); + + return ( + + {progress != null ? ( + <> + + + {progress.downloadedOperations == progress.totalOperations ? ( + Applying server-side changes + ) : ( + + Downloaded {progress.downloadedOperations} out of {progress.totalOperations}. + + )} + + + ) : ( + + )} + + ); +}; diff --git a/supabase-example/frontend/src/components/widgets/ListItemWidget.tsx b/supabase-example/frontend/src/components/widgets/ListItemWidget.tsx new file mode 100644 index 0000000..e2ac183 --- /dev/null +++ b/supabase-example/frontend/src/components/widgets/ListItemWidget.tsx @@ -0,0 +1,93 @@ +import { + Avatar, + Box, + IconButton, + ListItem, + ListItemAvatar, + ListItemButton, + ListItemText, + Paper, + styled +} from '@mui/material'; +import React from 'react'; + +import { TODO_LISTS_ROUTE } from '@/app/router'; +import { LISTS_TABLE, TODOS_TABLE } from '@/library/powersync/AppSchema'; +import RightIcon from '@mui/icons-material/ArrowRightAlt'; +import DeleteIcon from '@mui/icons-material/DeleteOutline'; +import ListIcon from '@mui/icons-material/ListAltOutlined'; +import { usePowerSync } from '@powersync/react'; +import { useNavigate } from 'react-router-dom'; + +export type ListItemWidgetProps = { + id: string; + title: string; + description: string; + selected?: boolean; +}; + +export const ListItemWidget: React.FC = React.memo((props) => { + const { id, title, description, selected } = props; + + const powerSync = usePowerSync(); + const navigate = useNavigate(); + + const deleteList = React.useCallback(async () => { + await powerSync.writeTransaction(async (tx) => { + // Delete associated todos + await tx.execute( + /* sql */ ` + DELETE FROM ${TODOS_TABLE} + WHERE + list_id = ? + `, + [id] + ); + // Delete list record + await tx.execute( + /* sql */ ` + DELETE FROM ${LISTS_TABLE} + WHERE + id = ? + `, + [id] + ); + }); + }, [id]); + + const openList = React.useCallback(() => { + navigate(TODO_LISTS_ROUTE + '/' + id); + }, [id]); + + return ( + + + + + + + + + + }> + + + + + + + + + + + ); +}); + +export namespace S { + export const MainPaper = styled(Paper)` + margin-bottom: 10px; + `; +} diff --git a/supabase-example/frontend/src/components/widgets/LoginDetailsWidget.tsx b/supabase-example/frontend/src/components/widgets/LoginDetailsWidget.tsx new file mode 100644 index 0000000..bf2f72c --- /dev/null +++ b/supabase-example/frontend/src/components/widgets/LoginDetailsWidget.tsx @@ -0,0 +1,166 @@ +import React from 'react'; +import { Box, Button, ButtonGroup, FormGroup, Paper, TextField, Typography, styled } from '@mui/material'; +import { Formik, FormikErrors } from 'formik'; + +export type LoginDetailsFormValues = { + email: string; + password: string; +}; + +export type LoginAction = { + title: string; + onClick: (values: LoginDetailsFormValues) => any; +}; + +export type LoginDetailsWidgetProps = { + title: string; + secondaryActions: LoginAction[]; + onSubmit: (values: LoginDetailsFormValues) => any; + submitTitle: string; +}; + +export const LoginDetailsWidget: React.FC = (props) => { + return ( + + + {props.title} + + + + + + initialValues={{ email: '', password: '' }} + validateOnChange={false} + validateOnBlur={false} + validate={(values) => { + const errors: FormikErrors = {}; + if (!values.email) { + errors.email = 'Required'; + } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.email)) { + errors.email = 'Invalid email address'; + } + + if (!values.password) { + errors.password = 'Required'; + } + return errors; + }} + onSubmit={async (values, { setSubmitting, setFieldError }) => { + try { + await props.onSubmit(values); + } catch (ex: any) { + console.error(ex); + setSubmitting(false); + setFieldError('password', ex.message); + } + }} + > + {({ values, errors, handleChange, handleBlur, isSubmitting, handleSubmit }) => ( +
+ + + + + + {props.secondaryActions.map((action) => { + return ( + + ); + })} + + +
+ )} + +
+
+ ); +}; + +namespace S { + export const MainContainer = styled(Box)` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + min-height: 100vh; + `; + + export const LoginContainer = styled(Paper)` + width: 100%; + padding: 20px; + display: flex; + flex-grow: 1; + flex-direction: column; + justify-content: center; + + ${(props) => props.theme.breakpoints.up('sm')} { + flex-grow: 0; + max-width: 600px; + } + `; + + export const LoginHeader = styled(Typography)` + margin-bottom: 20px; + `; + + export const LogoBox = styled(Box)` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + margin: 40px; + `; + + export const Logo = styled('img')` + width: auto; + height: auto; + max-width: ${(props) => props.width}px; + max-height: ${(props) => props.height}px; + margin-bottom: 10px; + `; + + export const ActionButtonGroup = styled(ButtonGroup)` + margin-top: 20px; + width: 100%; + display: flex; + justify-content: end; + `; + + export const TextInput = styled(TextField)` + margin-bottom: 20px; + `; +} diff --git a/supabase-example/frontend/src/components/widgets/SearchBarWidget.tsx b/supabase-example/frontend/src/components/widgets/SearchBarWidget.tsx new file mode 100644 index 0000000..de2f947 --- /dev/null +++ b/supabase-example/frontend/src/components/widgets/SearchBarWidget.tsx @@ -0,0 +1,104 @@ +import { Autocomplete, Box, Card, CardContent, FormControl, TextField, Typography } from '@mui/material'; +import React from 'react'; +import { useNavigate } from 'react-router-dom'; +import { usePowerSync } from '@powersync/react'; +import { LISTS_TABLE, ListRecord } from '@/library/powersync/AppSchema'; +import { SearchResult, searchTable } from '@/app/utils/fts_helpers'; +import { TODO_LISTS_ROUTE } from '@/app/router'; + +// This is a simple search bar widget that allows users to search for lists and todo items +export const SearchBarWidget: React.FC = () => { + const [searchResults, setSearchResults] = React.useState([]); + const [value, setValue] = React.useState(null); + + const navigate = useNavigate(); + const powersync = usePowerSync(); + + const handleInputChange = async (value: string) => { + if (value.length !== 0) { + let listsSearchResults: any[] = []; + const todoItemsSearchResults = await searchTable(value, 'todos'); + for (let i = 0; i < todoItemsSearchResults.length; i++) { + const res = await powersync.get(`SELECT * FROM ${LISTS_TABLE} WHERE id = ?`, [ + todoItemsSearchResults[i]['list_id'] + ]); + todoItemsSearchResults[i]['list_name'] = res.name; + } + if (!todoItemsSearchResults.length) { + listsSearchResults = await searchTable(value, 'lists'); + } + const formattedListResults: SearchResult[] = listsSearchResults.map( + (result) => new SearchResult(result['id'], result['name']) + ); + const formattedTodoItemsResults: SearchResult[] = todoItemsSearchResults.map((result) => { + return new SearchResult(result['list_id'], result['list_name'] ?? '', result['description']); + }); + setSearchResults([...formattedTodoItemsResults, ...formattedListResults]); + } + }; + + return ( +
+ + { + if (option instanceof SearchResult) { + return option.todoName ?? option.listName; + } + return option; + }} + renderOption={(props, option) => ( + + + + {option.listName && ( + + {option.listName} + + )} + {option.todoName && ( + + {'\u2022'} {option.todoName} + + )} + + + + )} + filterOptions={(x) => x} + onInputChange={(event, newInputValue, reason) => { + if (reason === 'clear') { + setValue(null); + setSearchResults([]); + return; + } + handleInputChange(newInputValue); + }} + onChange={(event, newValue, reason) => { + if (reason === 'selectOption') { + if (newValue instanceof SearchResult) { + navigate(TODO_LISTS_ROUTE + '/' + newValue.id); + } + } + }} + selectOnFocus + clearOnBlur + handleHomeEndKeys + renderInput={(params) => ( + + )} + /> + +
+ ); +}; diff --git a/supabase-example/frontend/src/components/widgets/TodoItemWidget.tsx b/supabase-example/frontend/src/components/widgets/TodoItemWidget.tsx new file mode 100644 index 0000000..d44418c --- /dev/null +++ b/supabase-example/frontend/src/components/widgets/TodoItemWidget.tsx @@ -0,0 +1,91 @@ +import { TODOS_TABLE } from '@/library/powersync/AppSchema'; +import CheckBoxIcon from '@mui/icons-material/CheckBox'; +import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank'; +import DeleteIcon from '@mui/icons-material/DeleteOutline'; +import { Box, IconButton, ListItem, ListItemAvatar, ListItemButton, ListItemText, Paper, styled } from '@mui/material'; +import { usePowerSync } from '@powersync/react'; +import React from 'react'; +import { useSupabase } from '../providers/SystemProvider'; + +export type TodoItemWidgetProps = { + id: string; + description: string | null; + isComplete: boolean; +}; + +export const TodoItemWidget: React.FC = React.memo((props) => { + const { id, description, isComplete } = props; + + const powerSync = usePowerSync(); + const supabase = useSupabase(); + + const deleteTodo = React.useCallback(async () => { + await powerSync.writeTransaction(async (tx) => { + await tx.execute( + /* sql */ ` + DELETE FROM ${TODOS_TABLE} + WHERE + id = ? + `, + [id] + ); + }); + }, [id]); + + const toggleCompletion = React.useCallback(async () => { + let completedAt: String | null = null; + let completedBy: String | null = null; + + if (!isComplete) { + // Need to set to Completed. This requires a session. + const userID = supabase?.currentSession?.user.id; + if (!userID) { + throw new Error(`Could not get user ID.`); + } + completedAt = new Date().toISOString(); + completedBy = userID; + } + + await powerSync.execute( + /* sql */ ` + UPDATE ${TODOS_TABLE} + SET + completed = ?, + completed_at = ?, + completed_by = ? + WHERE + id = ? + `, + [!isComplete, completedAt, completedBy, id] + ); + }, [id, isComplete]); + + return ( + + + + + + + }> + + + + {props.isComplete ? : } + + + + + + + ); +}); + +namespace S { + export const MainPaper = styled(Paper)` + margin-bottom: 10px; + `; +} diff --git a/supabase-example/frontend/src/components/widgets/TodoListsWidget.tsx b/supabase-example/frontend/src/components/widgets/TodoListsWidget.tsx new file mode 100644 index 0000000..d2f12b9 --- /dev/null +++ b/supabase-example/frontend/src/components/widgets/TodoListsWidget.tsx @@ -0,0 +1,35 @@ +import { List } from '@mui/material'; +import { useWatchedQuerySubscription } from '@powersync/react'; +import { useQueryStore } from '../providers/SystemProvider'; +import { ListItemWidget } from './ListItemWidget'; + +export type TodoListsWidgetProps = { + selectedId?: string; +}; + +const description = (total: number, completed: number = 0) => { + return `${total - completed} pending, ${completed} completed`; +}; + +export function TodoListsWidget(props: TodoListsWidgetProps) { + const queries = useQueryStore(); + const { data: listRecords, isLoading } = useWatchedQuerySubscription(queries!.lists); + + if (isLoading && listRecords.length == 0) { + return
Loading...
; + } + + return ( + + {listRecords.map((r) => ( + + ))} + + ); +} diff --git a/supabase-example/frontend/src/generated/api.d.ts b/supabase-example/frontend/src/generated/api.d.ts new file mode 100644 index 0000000..35417f0 --- /dev/null +++ b/supabase-example/frontend/src/generated/api.d.ts @@ -0,0 +1,122 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/api/data": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Apply a transaction of CRUD operations */ + post: operations["postCrudTransaction"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + CrudTransaction: { + crud: components["schemas"]["CrudEntry"][]; + /** + * Format: int64 + * @description Groups changes from the same transaction; null if no explicit transaction + */ + transaction_id?: number; + }; + CrudEntry: { + /** + * Format: int64 + * @description Auto-incrementing client-side id + */ + client_id: number; + /** @description ID of the changed row */ + id: string; + /** + * @description Type of change + * @enum {string} + */ + op: "PUT" | "PATCH" | "DELETE"; + /** @description Table that contained the change */ + table: string; + /** + * Format: int64 + * @description Auto-incrementing transaction id + */ + transaction_id?: number; + /** @description Data associated with the change */ + op_data?: { + [key: string]: unknown; + }; + /** @description Previous values for UPDATE/DELETE (when trackPreviousValues is enabled) */ + previous_values?: { + [key: string]: unknown; + }; + /** @description Client-side metadata (when trackMetadata is enabled) */ + metadata?: string; + }; + TransactionResponse: { + /** + * @description success: entire transaction persisted, safe to complete. retryable_error: transient failure, transaction rolled back, + * client should retry. + * fatal_error: transaction rolled back due to a non-recoverable + * issue — see failed_operation for details. + * @enum {string} + */ + status: "success" | "retryable_error" | "fatal_error"; + /** @description Suggested retry delay in ms. Only meaningful for retryable_error. */ + retry_after_ms?: number; + /** @description Present when status is fatal_error. Identifies what caused the rollback. */ + failed_operation?: components["schemas"]["FailedOperation"]; + /** @description Human-readable summary for logging/debugging. */ + message?: string; + }; + FailedOperation: { + /** @description Machine-readable classification, e.g. CONFLICT, SCHEMA_MISMATCH, VALIDATION_ERROR, UNIQUE_VIOLATION, FOREIGN_KEY_VIOLATION. */ + error_code: string; + /** @description Human-readable error detail. */ + message?: string; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + postCrudTransaction: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CrudTransaction"]; + }; + }; + responses: { + /** @description Transaction result. Always returns 200 — the outcome is determined by the status field in the response body. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TransactionResponse"]; + }; + }; + }; + }; +} diff --git a/supabase-example/frontend/src/index.html b/supabase-example/frontend/src/index.html new file mode 100644 index 0000000..d719dfd --- /dev/null +++ b/supabase-example/frontend/src/index.html @@ -0,0 +1,12 @@ + + + + + + + + + +
+ + diff --git a/supabase-example/frontend/src/library/powersync/AppSchema.ts b/supabase-example/frontend/src/library/powersync/AppSchema.ts new file mode 100644 index 0000000..b2d12eb --- /dev/null +++ b/supabase-example/frontend/src/library/powersync/AppSchema.ts @@ -0,0 +1,35 @@ +import { column, Schema, Table } from '@powersync/web'; + +export const LISTS_TABLE = 'lists'; +export const TODOS_TABLE = 'todos'; + +const todos = new Table( + { + list_id: column.text, + created_at: column.text, + completed_at: column.text, + description: column.text, + created_by: column.text, + completed_by: column.text, + completed: column.integer + }, + { indexes: { list: ['list_id'] } } +); + +const lists = new Table({ + created_at: column.text, + name: column.text, + owner_id: column.text +}); + +export const AppSchema = new Schema({ + todos, + lists +}); + +export type Database = (typeof AppSchema)['types']; +export type TodoRecord = Database['todos']; +// OR: +// export type Todo = RowType; + +export type ListRecord = Database['lists']; diff --git a/supabase-example/frontend/src/library/powersync/SupabaseConnector.ts b/supabase-example/frontend/src/library/powersync/SupabaseConnector.ts new file mode 100644 index 0000000..59b34be --- /dev/null +++ b/supabase-example/frontend/src/library/powersync/SupabaseConnector.ts @@ -0,0 +1,137 @@ +import { + AbstractPowerSyncDatabase, + BaseObserver, + PowerSyncBackendConnector, + type PowerSyncCredentials +} from '@powersync/web'; + +import { Session, SupabaseClient, createClient } from '@supabase/supabase-js'; + +import type { components } from '../../generated/api'; + +export type SupabaseConfig = { + supabaseUrl: string; + supabaseAnonKey: string; + powersyncUrl: string; +}; + +export type SupabaseConnectorListener = { + initialized: () => void; + sessionStarted: (session: Session) => void; +}; + +export class SupabaseConnector extends BaseObserver implements PowerSyncBackendConnector { + readonly client: SupabaseClient; + readonly config: SupabaseConfig; + + ready: boolean; + + currentSession: Session | null; + + constructor() { + super(); + this.config = { + supabaseUrl: import.meta.env.VITE_SUPABASE_URL, + powersyncUrl: import.meta.env.VITE_POWERSYNC_URL, + supabaseAnonKey: import.meta.env.VITE_SUPABASE_ANON_KEY + }; + + this.client = createClient(this.config.supabaseUrl, this.config.supabaseAnonKey, { + auth: { + persistSession: true + } + }); + this.currentSession = null; + this.ready = false; + } + + async init() { + if (this.ready) { + return; + } + + const sessionResponse = await this.client.auth.getSession(); + this.updateSession(sessionResponse.data.session); + + this.ready = true; + this.iterateListeners((cb) => cb.initialized?.()); + } + + async login(username: string, password: string) { + const { + data: { session }, + error + } = await this.client.auth.signInWithPassword({ + email: username, + password: password + }); + + if (error) { + throw error; + } + + this.updateSession(session); + } + + async fetchCredentials() { + const { + data: { session }, + error + } = await this.client.auth.getSession(); + + if (!session || error) { + throw new Error(`Could not fetch Supabase credentials: ${error}`); + } + + console.debug('session expires at', session.expires_at); + + return { + endpoint: this.config.powersyncUrl, + token: session.access_token ?? '' + } satisfies PowerSyncCredentials; + } + + async uploadData(database: AbstractPowerSyncDatabase): Promise { + const transaction = await database.getNextCrudTransaction(); + if (!transaction) return; + + type CrudTransactionBody = components['schemas']['CrudTransaction']; + type ApiCrudEntry = components['schemas']['CrudEntry']; + type TransactionResponse = components['schemas']['TransactionResponse']; + + const body: CrudTransactionBody = { + crud: transaction.crud.map((op): ApiCrudEntry => ({ + client_id: op.clientId, + id: op.id, + op: op.op as ApiCrudEntry['op'], + table: op.table, + ...(op.transactionId != null && { transaction_id: op.transactionId }), + ...(op.opData != null && { op_data: op.opData }) + })), + ...(transaction.transactionId != null && { transaction_id: transaction.transactionId }) + }; + + const { data, error } = await this.client.functions.invoke('data', { body }); + if (error) throw error; + const result = data as TransactionResponse; + + switch (result.status) { + case 'success': + await transaction.complete(); + break; + case 'fatal_error': + console.error('Fatal error:', result.failed_operation?.error_code, result.message); + break; + case 'retryable_error': + throw new Error(result.message ?? 'Retryable error'); + } + } + + updateSession(session: Session | null) { + this.currentSession = session; + if (!session) { + return; + } + this.iterateListeners((cb) => cb.sessionStarted?.(session)); + } +} diff --git a/supabase-example/frontend/src/library/powersync/vite-env.d.ts b/supabase-example/frontend/src/library/powersync/vite-env.d.ts new file mode 100644 index 0000000..e3e71b5 --- /dev/null +++ b/supabase-example/frontend/src/library/powersync/vite-env.d.ts @@ -0,0 +1,11 @@ +/// + +interface ImportMetaEnv { + readonly VITE_SUPABASE_URL: string; + readonly VITE_SUPABASE_ANON_KEY: string; + readonly VITE_POWERSYNC_URL: string; +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} diff --git a/supabase-example/frontend/tsconfig.json b/supabase-example/frontend/tsconfig.json new file mode 100644 index 0000000..dc0fde3 --- /dev/null +++ b/supabase-example/frontend/tsconfig.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "target": "es6", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "paths": { + "@/*": [ + "./src/*" + ] + } + }, + "exclude": [ + "node_modules" + ] +} diff --git a/supabase-example/frontend/vite.config.mts b/supabase-example/frontend/vite.config.mts new file mode 100644 index 0000000..8af43b8 --- /dev/null +++ b/supabase-example/frontend/vite.config.mts @@ -0,0 +1,71 @@ +import { fileURLToPath, URL } from 'url'; + +import react from '@vitejs/plugin-react'; +import { defineConfig } from 'vite'; +import { VitePWA } from 'vite-plugin-pwa'; + +// https://vitejs.dev/config/ +export default defineConfig({ + root: 'src', + build: { + outDir: '../dist', + rollupOptions: { + input: 'src/index.html' + }, + emptyOutDir: true + }, + resolve: { + alias: [{ find: '@', replacement: fileURLToPath(new URL('./src', import.meta.url)) }] + }, + define: { + APP_VERSION: JSON.stringify(process.env.npm_package_version) + }, + publicDir: '../public', + envDir: '..', // Use this dir for env vars, not 'src'. + optimizeDeps: { + // Don't optimize these packages as they contain web workers and WASM files. + // https://github.com/vitejs/vite/issues/11672#issuecomment-1415820673 + exclude: ['@powersync/web'] + }, + plugins: [ + react(), + VitePWA({ + registerType: 'autoUpdate', + includeAssets: ['powersync-logo.svg', 'supabase-logo.png', 'favicon.ico'], + manifest: { + theme_color: '#c44eff', + background_color: '#c44eff', + display: 'standalone', + scope: '/', + start_url: '/', + name: 'PowerSync React Demo', + short_name: 'PowerSync React', + icons: [ + { + src: '/icons/icon-192x192.png', + sizes: '192x192', + type: 'image/png' + }, + { + src: '/icons/icon-256x256.png', + sizes: '256x256', + type: 'image/png' + }, + { + src: '/icons/icon-384x384.png', + sizes: '384x384', + type: 'image/png' + }, + { + src: '/icons/icon-512x512.png', + sizes: '512x512', + type: 'image/png' + } + ] + } + }) + ], + worker: { + format: 'es' + } +}); diff --git a/supabase-example/powersync/.env.template b/supabase-example/powersync/.env.template new file mode 100644 index 0000000..828192d --- /dev/null +++ b/supabase-example/powersync/.env.template @@ -0,0 +1,13 @@ +# ==================== Supabase Postgres ==================== +# The Supabase Postgres is reachable inside the supabase_network_powersync_demo +# network. Container name is `supabase_db_${project_id}`, where project_id is +# defined in ../supabase/config.toml (powersync_demo). +PG_DATABASE_HOSTNAME=supabase_db_powersync_demo +PG_DATABASE_NAME=postgres +PG_DATABASE_PORT=5432 +PG_DATABASE_USER=postgres +PG_DATABASE_PASSWORD=postgres +PS_DATA_SOURCE_URI=postgres://${PG_DATABASE_USER}:${PG_DATABASE_PASSWORD}@${PG_DATABASE_HOSTNAME}:${PG_DATABASE_PORT}/${PG_DATABASE_NAME} + +# ==================== PowerSync ==================== +PS_PORT=8080 diff --git a/supabase-example/powersync/.gitignore b/supabase-example/powersync/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/supabase-example/powersync/.gitignore @@ -0,0 +1 @@ +.env diff --git a/supabase-example/powersync/config/powersync.yaml b/supabase-example/powersync/config/powersync.yaml new file mode 100644 index 0000000..4d5f04c --- /dev/null +++ b/supabase-example/powersync/config/powersync.yaml @@ -0,0 +1,37 @@ +# yaml-language-server: $schema=https://unpkg.com/@powersync/service-schema@latest/json-schema/powersync-config.json + +# See https://docs.powersync.com/self-hosting/telemetry +telemetry: + # Opt out of reporting anonymized usage metrics to PowerSync telemetry service + disable_telemetry_sharing: false + +# Settings for source database replication +replication: + connections: + - type: postgresql + uri: !env PS_DATA_SOURCE_URI + + # SSL settings + sslmode: disable # 'verify-full' (default) or 'verify-ca' or 'disable' + +# Connection settings for sync bucket storage +storage: + type: mongodb + uri: !env PS_MONGO_URI + +# The port which the PowerSync API server will listen on +port: !env PS_PORT + +# Specify sync config +sync_config: + path: sync_rules.yaml + +# Client (application end user) authentication settings +client_auth: + # Enable Supabase Auth - PowerSync will fetch public keys from Supabase's JWKS endpoint + supabase: true + # Note: With asymmetric signing keys (ES256), the JWT secret is not needed. "kong" is Supabase's networking container + jwks_uri: http://kong:8000/auth/v1/.well-known/jwks.json + + # JWKS audience + audience: ["authenticated"] diff --git a/supabase-example/powersync/config/sync_rules.yaml b/supabase-example/powersync/config/sync_rules.yaml new file mode 100644 index 0000000..cdf7825 --- /dev/null +++ b/supabase-example/powersync/config/sync_rules.yaml @@ -0,0 +1,17 @@ +# yaml-language-server: $schema=https://unpkg.com/@powersync/service-sync-rules@latest/schema/sync_rules.json +# +# See Documentation for more information: +# https://docs.powersync.com/usage/sync-rules +# +# Note that changes to this file are not watched. +# The service needs to be restarted for changes to take effect. + +config: + edition: 3 + +streams: + user_data: + auto_subscribe: true + queries: + - SELECT * FROM lists WHERE owner_id = auth.user_id() + - SELECT todos.* FROM todos INNER JOIN lists ON todos.list_id = lists.id WHERE lists.owner_id = auth.user_id() diff --git a/supabase-example/powersync/docker-compose.yaml b/supabase-example/powersync/docker-compose.yaml new file mode 100644 index 0000000..66e7877 --- /dev/null +++ b/supabase-example/powersync/docker-compose.yaml @@ -0,0 +1,64 @@ +services: + # MongoDB - PowerSync internal storage + mongo: + image: mongo:7.0 + command: --replSet rs0 --bind_ip_all --quiet + restart: unless-stopped + ports: + - "27017:27017" + volumes: + - mongo_storage:/data/db + + # Initializes the MongoDB replica set + mongo-rs-init: + image: mongo:7.0 + depends_on: + - mongo + restart: on-failure + entrypoint: + - bash + - -c + - 'mongosh --host mongo:27017 --eval ''try{rs.status().ok && quit(0)} catch {} rs.initiate({_id: "rs0", version: 1, members: [{ _id: 0, host : "mongo:27017" }]})''' + + # PowerSync service + powersync: + image: journeyapps/powersync-service:latest + restart: unless-stopped + command: ["start", "-r", "unified"] + depends_on: + mongo-rs-init: + condition: service_completed_successfully + volumes: + - ./config:/config + environment: + POWERSYNC_CONFIG_PATH: /config/powersync.yaml + NODE_OPTIONS: --max-old-space-size=1000 + PS_DATA_SOURCE_URI: ${PS_DATA_SOURCE_URI} + PS_MONGO_URI: mongodb://mongo:27017/powersync_demo + PS_PORT: ${PS_PORT} + healthcheck: + test: + [ + "CMD", + "node", + "-e", + "fetch('http://localhost:${PS_PORT}/probes/liveness').then(r => r.ok ? process.exit(0) : process.exit(1)).catch(() => process.exit(1))" + ] + interval: 5s + timeout: 1s + retries: 15 + ports: + - "${PS_PORT}:${PS_PORT}" + networks: + - default + - supabase_network_powersync_demo + +# Supabase exposes its services on this external network. +# Derived from `supabase_network_${project_id}` where project_id is set +# in ../supabase/config.toml. +networks: + supabase_network_powersync_demo: + external: true + +volumes: + mongo_storage: diff --git a/supabase-example/supabase/.branches/_current_branch b/supabase-example/supabase/.branches/_current_branch new file mode 100644 index 0000000..88d050b --- /dev/null +++ b/supabase-example/supabase/.branches/_current_branch @@ -0,0 +1 @@ +main \ No newline at end of file diff --git a/supabase-example/supabase/.env.local b/supabase-example/supabase/.env.local new file mode 100644 index 0000000..d612ce7 --- /dev/null +++ b/supabase-example/supabase/.env.local @@ -0,0 +1 @@ +SUPABASE_DB_URL=postgres://postgres:mypassword@host.docker.internal:5432/postgres diff --git a/supabase-example/supabase/.gitignore b/supabase-example/supabase/.gitignore new file mode 100644 index 0000000..0cc2f13 --- /dev/null +++ b/supabase-example/supabase/.gitignore @@ -0,0 +1,47 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# ide +.idea +.fleet +.vscode + +# PWA +**/public/workbox-*.js +**/public/sw.js +**/public/swe-worker-* +**/public/worker-*.js +**/public/fallback-*.js diff --git a/supabase-example/supabase/.temp/cli-latest b/supabase-example/supabase/.temp/cli-latest new file mode 100644 index 0000000..a333a1d --- /dev/null +++ b/supabase-example/supabase/.temp/cli-latest @@ -0,0 +1 @@ +v2.98.2 \ No newline at end of file diff --git a/supabase-example/supabase/config.toml b/supabase-example/supabase/config.toml new file mode 100644 index 0000000..970f871 --- /dev/null +++ b/supabase-example/supabase/config.toml @@ -0,0 +1,157 @@ +# A string used to distinguish different Supabase projects on the same host. Defaults to the +# working directory name when running `supabase init`. +project_id = "powersync_demo" + +[api] +enabled = true +# Port to use for the API URL. +port = 54321 +# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API +# endpoints. public and storage are always included. +schemas = ["public", "storage", "graphql_public"] +# Extra schemas to add to the search_path of every request. public is always included. +extra_search_path = ["public", "extensions"] +# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size +# for accidental or malicious requests. +max_rows = 1000 + +[db] +# Port to use for the local database URL. +port = 54322 +# Port used by db diff command to initialize the shadow database. +shadow_port = 54320 +# The database major version to use. This has to be the same as your remote database's. Run `SHOW +# server_version;` on the remote database to check. +major_version = 15 + +[db.pooler] +enabled = false +# Port to use for the local connection pooler. +port = 54329 +# Specifies when a server connection can be reused by other clients. +# Configure one of the supported pooler modes: `transaction`, `session`. +pool_mode = "transaction" +# How many server connections to allow per user/database pair. +default_pool_size = 20 +# Maximum number of client connections allowed. +max_client_conn = 100 + +[realtime] +enabled = true +# Bind realtime via either IPv4 or IPv6. (default: IPv6) +# ip_version = "IPv6" +# The maximum length in bytes of HTTP request headers. (default: 4096) +# max_header_length = 4096 + +[studio] +enabled = true +# Port to use for Supabase Studio. +port = 54323 +# External URL of the API server that frontend connects to. +api_url = "http://127.0.0.1" + +# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they +# are monitored, and you can view the emails that would have been sent from the web interface. +[inbucket] +enabled = true +# Port to use for the email testing server web interface. +port = 54324 +# Uncomment to expose additional ports for testing user applications that send emails. +# smtp_port = 54325 +# pop3_port = 54326 + +[storage] +enabled = true +# The maximum file size allowed (e.g. "5MB", "500KB"). +file_size_limit = "50MiB" + +[auth] +enabled = true +# Use asymmetric JWT signing keys (ES256) instead of legacy JWT secret +signing_keys_path = "./signing_key.json" +# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used +# in emails. +site_url = "http://127.0.0.1:3000" +# A list of *exact* URLs that auth providers are permitted to redirect to post authentication. +additional_redirect_urls = ["https://127.0.0.1:3000"] +# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week). +jwt_expiry = 3600 +# If disabled, the refresh token will never expire. +enable_refresh_token_rotation = true +# Allows refresh tokens to be reused after expiry, up to the specified interval in seconds. +# Requires enable_refresh_token_rotation = true. +refresh_token_reuse_interval = 10 +# Allow/disallow new user signups to your project. +enable_signup = true + +[auth.email] +# Allow/disallow new user signups via email to your project. +enable_signup = true +# If enabled, a user will be required to confirm any email change on both the old, and new email +# addresses. If disabled, only the new email is required to confirm. +double_confirm_changes = false +# If enabled, users need to confirm their email address before signing in. +enable_confirmations = false + +# Uncomment to customize email template +# [auth.email.template.invite] +# subject = "You have been invited" +# content_path = "./supabase/templates/invite.html" + +[auth.sms] +# Allow/disallow new user signups via SMS to your project. +enable_signup = true +# If enabled, users need to confirm their phone number before signing in. +enable_confirmations = false +# Template for sending OTP to users +template = "Your code is {{ .Code }} ." + +# Use pre-defined map of phone number to OTP for testing. +[auth.sms.test_otp] +# 4152127777 = "123456" + +# Configure one of the supported SMS providers: `twilio`, `twilio_verify`, `messagebird`, `textlocal`, `vonage`. +[auth.sms.twilio] +enabled = false +account_sid = "" +message_service_sid = "" +# DO NOT commit your Twilio auth token to git. Use environment variable substitution instead: +auth_token = "env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)" + +# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`, +# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin`, `notion`, `twitch`, +# `twitter`, `slack`, `spotify`, `workos`, `zoom`. +[auth.external.apple] +enabled = false +client_id = "" +# DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead: +secret = "env(SUPABASE_AUTH_EXTERNAL_APPLE_SECRET)" +# Overrides the default auth redirectUrl. +redirect_uri = "" +# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure, +# or any other third-party OIDC providers. +url = "" + +[analytics] +enabled = false +port = 54327 +vector_port = 54328 +# Configure one of the supported backends: `postgres`, `bigquery`. +backend = "postgres" + +# Experimental features may be deprecated any time +[experimental] +# Configures Postgres storage engine to use OrioleDB (S3) +orioledb_version = "" +# Configures S3 bucket URL, eg. .s3-.amazonaws.com +s3_host = "env(S3_HOST)" +# Configures S3 bucket region, eg. us-east-1 +s3_region = "env(S3_REGION)" +# Configures AWS_ACCESS_KEY_ID for S3 bucket +s3_access_key = "env(S3_ACCESS_KEY)" +# Configures AWS_SECRET_ACCESS_KEY for S3 bucket +s3_secret_key = "env(S3_SECRET_KEY)" + +[functions.data] +verify_jwt = false +import_map = "./deno.json" diff --git a/supabase-example/supabase/deno.json b/supabase-example/supabase/deno.json new file mode 100644 index 0000000..3dfd8cd --- /dev/null +++ b/supabase-example/supabase/deno.json @@ -0,0 +1,7 @@ +{ + "imports": { + "pg": "npm:pg@^8.11.3", + "@types/pg": "npm:@types/pg@^8.11.11", + "openapi-backend": "npm:openapi-backend@^5.10.6" + } +} diff --git a/supabase-example/supabase/deno.lock b/supabase-example/supabase/deno.lock new file mode 100644 index 0000000..a4f36a3 --- /dev/null +++ b/supabase-example/supabase/deno.lock @@ -0,0 +1,328 @@ +{ + "version": "5", + "specifiers": { + "npm:@types/pg@^8.11.11": "8.20.0", + "npm:openapi-backend@^5.10.6": "5.16.1", + "npm:pg@^8.11.3": "8.20.0" + }, + "npm": { + "@apidevtools/json-schema-ref-parser@11.9.3": { + "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", + "dependencies": [ + "@jsdevtools/ono", + "@types/json-schema", + "js-yaml" + ] + }, + "@jsdevtools/ono@7.1.3": { + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" + }, + "@types/json-schema@7.0.15": { + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "@types/node@25.6.2": { + "integrity": "sha512-sokuT28dxf9JT5Kady1fsXOvI4HVpjZa95NKT5y9PNTIrs2AsobR4GFAA90ZG8M+nxVRLysCXsVj6eGC7Vbrlw==", + "dependencies": [ + "undici-types" + ] + }, + "@types/pg@8.20.0": { + "integrity": "sha512-bEPFOaMAHTEP1EzpvHTbmwR8UsFyHSKsRisLIHVMXnpNefSbGA1bD6CVy+qKjGSqmZqNqBDV2azOBo8TgkcVow==", + "dependencies": [ + "@types/node", + "pg-protocol", + "pg-types" + ] + }, + "ajv-formats@2.1.1_ajv@8.20.0": { + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": [ + "ajv" + ], + "optionalPeers": [ + "ajv" + ] + }, + "ajv@8.20.0": { + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "dependencies": [ + "fast-deep-equal", + "fast-uri", + "json-schema-traverse", + "require-from-string" + ] + }, + "argparse@2.0.1": { + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "bath-es5@3.0.3": { + "integrity": "sha512-PdCioDToH3t84lP40kUFCKWCOCH389Dl1kbC8FGoqOwamxsmqxxnJSXdkTOsPoNHXjem4+sJ+bbNoQm5zeCqxg==" + }, + "call-bind-apply-helpers@1.0.2": { + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": [ + "es-errors", + "function-bind" + ] + }, + "call-bound@1.0.4": { + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dependencies": [ + "call-bind-apply-helpers", + "get-intrinsic" + ] + }, + "cookie@1.1.1": { + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==" + }, + "dereference-json-schema@0.2.2": { + "integrity": "sha512-w8dUsJyrzH4Zsj8W/tKcjLsmcTKXfdNf+n3BBm1SAfnqpaCodgEUWqQGJ+pNb9NOqPwYMGvUnZZ8nQfeFjJlbQ==" + }, + "dunder-proto@1.0.1": { + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": [ + "call-bind-apply-helpers", + "es-errors", + "gopd" + ] + }, + "es-define-property@1.0.1": { + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors@1.3.0": { + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-object-atoms@1.1.1": { + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": [ + "es-errors" + ] + }, + "fast-deep-equal@3.1.3": { + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-uri@3.1.2": { + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==" + }, + "function-bind@1.1.2": { + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "get-intrinsic@1.3.0": { + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": [ + "call-bind-apply-helpers", + "es-define-property", + "es-errors", + "es-object-atoms", + "function-bind", + "get-proto", + "gopd", + "has-symbols", + "hasown", + "math-intrinsics" + ] + }, + "get-proto@1.0.1": { + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": [ + "dunder-proto", + "es-object-atoms" + ] + }, + "gopd@1.2.0": { + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, + "has-symbols@1.1.0": { + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + }, + "hasown@2.0.3": { + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "dependencies": [ + "function-bind" + ] + }, + "js-yaml@4.1.1": { + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dependencies": [ + "argparse" + ], + "bin": true + }, + "json-schema-traverse@1.0.0": { + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "lodash.merge@4.6.2": { + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash@4.18.1": { + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==" + }, + "math-intrinsics@1.1.0": { + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, + "mock-json-schema@1.1.2": { + "integrity": "sha512-3IyduYlhfzPy+nFN8wxUjloUi1hM7l8lN5LITuauUNMQltynJIOfLf/DADwTAp2d6kvSBtWojly1EuxX5B0WkA==", + "dependencies": [ + "lodash" + ] + }, + "object-inspect@1.13.4": { + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==" + }, + "openapi-backend@5.16.1": { + "integrity": "sha512-1tfLpC+7CajKv08vuFOLm4t8rJvJyqKuyau5IIIrGg3YuQYhmP7JqDL6p6WnbDCusmh3krCrKXoHB6hLF/iHcQ==", + "dependencies": [ + "@apidevtools/json-schema-ref-parser", + "ajv", + "bath-es5", + "cookie", + "dereference-json-schema", + "lodash", + "mock-json-schema", + "openapi-schema-validator", + "openapi-types", + "qs" + ] + }, + "openapi-schema-validator@12.1.3": { + "integrity": "sha512-xTHOmxU/VQGUgo7Cm0jhwbklOKobXby+/237EG967+3TQEYJztMgX9Q5UE2taZKwyKPUq0j11dngpGjUuxz1hQ==", + "dependencies": [ + "ajv", + "ajv-formats", + "lodash.merge", + "openapi-types" + ] + }, + "openapi-types@12.1.3": { + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==" + }, + "pg-cloudflare@1.3.0": { + "integrity": "sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==" + }, + "pg-connection-string@2.12.0": { + "integrity": "sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==" + }, + "pg-int8@1.0.1": { + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" + }, + "pg-pool@3.13.0_pg@8.20.0": { + "integrity": "sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==", + "dependencies": [ + "pg" + ] + }, + "pg-protocol@1.13.0": { + "integrity": "sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==" + }, + "pg-types@2.2.0": { + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": [ + "pg-int8", + "postgres-array", + "postgres-bytea", + "postgres-date", + "postgres-interval" + ] + }, + "pg@8.20.0": { + "integrity": "sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==", + "dependencies": [ + "pg-connection-string", + "pg-pool", + "pg-protocol", + "pg-types", + "pgpass" + ], + "optionalDependencies": [ + "pg-cloudflare" + ] + }, + "pgpass@1.0.5": { + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": [ + "split2" + ] + }, + "postgres-array@2.0.0": { + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" + }, + "postgres-bytea@1.0.1": { + "integrity": "sha512-5+5HqXnsZPE65IJZSMkZtURARZelel2oXUEO8rH83VS/hxH5vv1uHquPg5wZs8yMAfdv971IU+kcPUczi7NVBQ==" + }, + "postgres-date@1.0.7": { + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" + }, + "postgres-interval@1.2.0": { + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": [ + "xtend" + ] + }, + "qs@6.15.1": { + "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==", + "dependencies": [ + "side-channel" + ] + }, + "require-from-string@2.0.2": { + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "side-channel-list@1.0.1": { + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "dependencies": [ + "es-errors", + "object-inspect" + ] + }, + "side-channel-map@1.0.1": { + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": [ + "call-bound", + "es-errors", + "get-intrinsic", + "object-inspect" + ] + }, + "side-channel-weakmap@1.0.2": { + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": [ + "call-bound", + "es-errors", + "get-intrinsic", + "object-inspect", + "side-channel-map" + ] + }, + "side-channel@1.1.0": { + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": [ + "es-errors", + "object-inspect", + "side-channel-list", + "side-channel-map", + "side-channel-weakmap" + ] + }, + "split2@4.2.0": { + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" + }, + "undici-types@7.19.2": { + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==" + }, + "xtend@4.0.2": { + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + } + }, + "workspace": { + "dependencies": [ + "npm:@types/pg@^8.11.11", + "npm:openapi-backend@^5.10.6", + "npm:pg@^8.11.3" + ], + "packageJson": { + "dependencies": [ + "npm:openapi-typescript@^7.13.0" + ] + } + } +} diff --git a/supabase-example/supabase/functions/data/errors.ts b/supabase-example/supabase/functions/data/errors.ts new file mode 100644 index 0000000..0eecfd7 --- /dev/null +++ b/supabase-example/supabase/functions/data/errors.ts @@ -0,0 +1,16 @@ +/** Transient failure (deadlock, timeout, connection error). Client should retry. */ +export class RetryableError extends Error { + constructor(message: string) { + super(message); + } +} + +/** Non-recoverable failure (constraint violation, schema mismatch). Client should NOT retry. */ +export class FatalOperationError extends Error { + constructor( + public readonly errorCode: string, + message: string + ) { + super(message); + } +} diff --git a/supabase-example/supabase/functions/data/generated/api.ts b/supabase-example/supabase/functions/data/generated/api.ts new file mode 100644 index 0000000..35417f0 --- /dev/null +++ b/supabase-example/supabase/functions/data/generated/api.ts @@ -0,0 +1,122 @@ +/** + * This file was auto-generated by openapi-typescript. + * Do not make direct changes to the file. + */ + +export interface paths { + "/api/data": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Apply a transaction of CRUD operations */ + post: operations["postCrudTransaction"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; +} +export type webhooks = Record; +export interface components { + schemas: { + CrudTransaction: { + crud: components["schemas"]["CrudEntry"][]; + /** + * Format: int64 + * @description Groups changes from the same transaction; null if no explicit transaction + */ + transaction_id?: number; + }; + CrudEntry: { + /** + * Format: int64 + * @description Auto-incrementing client-side id + */ + client_id: number; + /** @description ID of the changed row */ + id: string; + /** + * @description Type of change + * @enum {string} + */ + op: "PUT" | "PATCH" | "DELETE"; + /** @description Table that contained the change */ + table: string; + /** + * Format: int64 + * @description Auto-incrementing transaction id + */ + transaction_id?: number; + /** @description Data associated with the change */ + op_data?: { + [key: string]: unknown; + }; + /** @description Previous values for UPDATE/DELETE (when trackPreviousValues is enabled) */ + previous_values?: { + [key: string]: unknown; + }; + /** @description Client-side metadata (when trackMetadata is enabled) */ + metadata?: string; + }; + TransactionResponse: { + /** + * @description success: entire transaction persisted, safe to complete. retryable_error: transient failure, transaction rolled back, + * client should retry. + * fatal_error: transaction rolled back due to a non-recoverable + * issue — see failed_operation for details. + * @enum {string} + */ + status: "success" | "retryable_error" | "fatal_error"; + /** @description Suggested retry delay in ms. Only meaningful for retryable_error. */ + retry_after_ms?: number; + /** @description Present when status is fatal_error. Identifies what caused the rollback. */ + failed_operation?: components["schemas"]["FailedOperation"]; + /** @description Human-readable summary for logging/debugging. */ + message?: string; + }; + FailedOperation: { + /** @description Machine-readable classification, e.g. CONFLICT, SCHEMA_MISMATCH, VALIDATION_ERROR, UNIQUE_VIOLATION, FOREIGN_KEY_VIOLATION. */ + error_code: string; + /** @description Human-readable error detail. */ + message?: string; + }; + }; + responses: never; + parameters: never; + requestBodies: never; + headers: never; + pathItems: never; +} +export type $defs = Record; +export interface operations { + postCrudTransaction: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CrudTransaction"]; + }; + }; + responses: { + /** @description Transaction result. Always returns 200 — the outcome is determined by the status field in the response body. */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["TransactionResponse"]; + }; + }; + }; + }; +} diff --git a/supabase-example/supabase/functions/data/index.ts b/supabase-example/supabase/functions/data/index.ts new file mode 100644 index 0000000..f1d99e7 --- /dev/null +++ b/supabase-example/supabase/functions/data/index.ts @@ -0,0 +1,69 @@ +import { OpenAPIBackend, type Document } from 'openapi-backend'; +import openapiDefinition from './openapi.json' with { type: 'json' }; +import { createPostgresPersister } from './persistance/postgres-persistance.ts'; +import { FatalOperationError, RetryableError } from './errors.ts'; +import type { OpBody, OpResponse } from './types.ts'; + +// SUPABASE_DB_URL is auto-injected by the Supabase CLI (`supabase functions serve`) +// and present in hosted Supabase Edge Functions. In production it should point at +// the Transaction Pooler (port 6543), not the direct DB. +const uri = Deno.env.get('SUPABASE_DB_URL'); +if (!uri) throw new Error('SUPABASE_DB_URL is required'); + +const { updateBatch } = createPostgresPersister(uri); + +const api = new OpenAPIBackend({ definition: openapiDefinition as Document }); +await api.init(); + +Deno.serve(async (req) => { + if (req.method !== 'POST') { + return new Response('Method Not Allowed', { status: 405 }); + } + + const body = await req.json(); + + const validation = api.validateRequest({ + method: 'post', + path: '/api/data', + body, + headers: Object.fromEntries(req.headers) + }); + if (!validation.valid) { + return Response.json({ + status: 'fatal_error', + message: 'Invalid request body', + failed_operation: { + error_code: 'VALIDATION_ERROR', + message: validation.errors?.map((e) => `${e.instancePath} ${e.message}`).join('; ') + } + } satisfies OpResponse<'postCrudTransaction'>); + } + + const typed = body as OpBody<'postCrudTransaction'>; + try { + await updateBatch(typed.crud); + return Response.json({ + status: 'success', + message: 'Transaction completed' + } satisfies OpResponse<'postCrudTransaction'>); + } catch (e) { + if (e instanceof FatalOperationError) { + return Response.json({ + status: 'fatal_error', + message: e.message, + failed_operation: { error_code: e.errorCode, message: e.message } + } satisfies OpResponse<'postCrudTransaction'>); + } + if (e instanceof RetryableError) { + return Response.json({ + status: 'retryable_error', + message: e.message + } satisfies OpResponse<'postCrudTransaction'>); + } + const msg = e instanceof Error ? e.message : String(e); + return Response.json({ + status: 'retryable_error', + message: msg + } satisfies OpResponse<'postCrudTransaction'>); + } +}); diff --git a/supabase-example/supabase/functions/data/mapping/default.ts b/supabase-example/supabase/functions/data/mapping/default.ts new file mode 100644 index 0000000..c3a2141 --- /dev/null +++ b/supabase-example/supabase/functions/data/mapping/default.ts @@ -0,0 +1,13 @@ +import type { EntryMapper } from './types.ts'; + +export const defaultMapper: EntryMapper = (entry) => { + const data = entry.op_data ?? {}; + const id = (entry.id ?? data.id) as string; + + if (entry.op === 'DELETE') { + return { table: entry.table, op: entry.op, id, data: {} }; + } + + const { id: _discardId, ...fields } = data; + return { table: entry.table, op: entry.op, id, data: fields }; +}; diff --git a/supabase-example/supabase/functions/data/mapping/index.ts b/supabase-example/supabase/functions/data/mapping/index.ts new file mode 100644 index 0000000..19a328c --- /dev/null +++ b/supabase-example/supabase/functions/data/mapping/index.ts @@ -0,0 +1,2 @@ +export type { MappedEntry, EntryMapper } from './types.ts'; +export { defaultMapper } from './default.ts'; diff --git a/supabase-example/supabase/functions/data/mapping/types.ts b/supabase-example/supabase/functions/data/mapping/types.ts new file mode 100644 index 0000000..2f3bb23 --- /dev/null +++ b/supabase-example/supabase/functions/data/mapping/types.ts @@ -0,0 +1,14 @@ +import type { CrudEntry } from '../types.ts'; + +export interface MappedEntry { + table: string; + op: 'PUT' | 'PATCH' | 'DELETE'; + id: string; + data: Record; +} + +/** + * Transforms a CrudEntry into a MappedEntry for persistence. + * Return null to skip the operation. + */ +export type EntryMapper = (entry: CrudEntry) => MappedEntry | null; diff --git a/supabase-example/supabase/functions/data/openapi.json b/supabase-example/supabase/functions/data/openapi.json new file mode 100644 index 0000000..f84ed3f --- /dev/null +++ b/supabase-example/supabase/functions/data/openapi.json @@ -0,0 +1,168 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "PowerSync Supabase Edge Function Slice", + "description": "Trimmed write-path slice served by a Supabase Edge Function.", + "version": "1.0.0" + }, + "servers": [ + { + "url": "http://localhost:54321/functions/v1", + "description": "Local Supabase functions" + } + ], + "paths": { + "/api/data": { + "post": { + "operationId": "postCrudTransaction", + "summary": "Apply a transaction of CRUD operations", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CrudTransaction" + } + } + } + }, + "responses": { + "200": { + "description": "Transaction result. Always returns 200 — the outcome is determined by the status field in the response body.\n", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TransactionResponse" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "CrudTransaction": { + "type": "object", + "required": [ + "crud" + ], + "properties": { + "crud": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrudEntry" + } + }, + "transaction_id": { + "type": "integer", + "format": "int64", + "description": "Groups changes from the same transaction; null if no explicit transaction" + } + } + }, + "CrudEntry": { + "type": "object", + "required": [ + "client_id", + "id", + "op", + "table" + ], + "properties": { + "client_id": { + "type": "integer", + "format": "int64", + "description": "Auto-incrementing client-side id" + }, + "id": { + "type": "string", + "description": "ID of the changed row" + }, + "op": { + "type": "string", + "enum": [ + "PUT", + "PATCH", + "DELETE" + ], + "description": "Type of change" + }, + "table": { + "type": "string", + "description": "Table that contained the change" + }, + "transaction_id": { + "type": "integer", + "format": "int64", + "description": "Auto-incrementing transaction id" + }, + "op_data": { + "type": "object", + "additionalProperties": true, + "description": "Data associated with the change" + }, + "previous_values": { + "type": "object", + "additionalProperties": true, + "description": "Previous values for UPDATE/DELETE (when trackPreviousValues is enabled)" + }, + "metadata": { + "type": "string", + "description": "Client-side metadata (when trackMetadata is enabled)" + } + } + }, + "TransactionResponse": { + "type": "object", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "enum": [ + "success", + "retryable_error", + "fatal_error" + ], + "description": "success: entire transaction persisted, safe to complete. retryable_error: transient failure, transaction rolled back,\n client should retry.\nfatal_error: transaction rolled back due to a non-recoverable\n issue — see failed_operation for details.\n" + }, + "retry_after_ms": { + "type": "integer", + "description": "Suggested retry delay in ms. Only meaningful for retryable_error.\n" + }, + "failed_operation": { + "description": "Present when status is fatal_error. Identifies what caused the rollback.\n", + "allOf": [ + { + "$ref": "#/components/schemas/FailedOperation" + } + ] + }, + "message": { + "type": "string", + "description": "Human-readable summary for logging/debugging." + } + } + }, + "FailedOperation": { + "type": "object", + "required": [ + "error_code" + ], + "properties": { + "error_code": { + "type": "string", + "description": "Machine-readable classification, e.g. CONFLICT, SCHEMA_MISMATCH, VALIDATION_ERROR, UNIQUE_VIOLATION, FOREIGN_KEY_VIOLATION.\n" + }, + "message": { + "type": "string", + "description": "Human-readable error detail." + } + } + } + } + } +} \ No newline at end of file diff --git a/supabase-example/supabase/functions/data/openapi.yaml b/supabase-example/supabase/functions/data/openapi.yaml new file mode 100644 index 0000000..8da90fa --- /dev/null +++ b/supabase-example/supabase/functions/data/openapi.yaml @@ -0,0 +1,129 @@ +openapi: 3.0.3 +info: + title: PowerSync Supabase Edge Function Slice + description: Trimmed write-path slice served by a Supabase Edge Function. + version: 1.0.0 + +servers: + - url: http://localhost:54321/functions/v1 + description: Local Supabase functions + +paths: + /api/data: + post: + operationId: postCrudTransaction + summary: Apply a transaction of CRUD operations + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/CrudTransaction" + responses: + "200": + description: > + Transaction result. Always returns 200 — the outcome + is determined by the status field in the response body. + content: + application/json: + schema: + $ref: "#/components/schemas/TransactionResponse" + +components: + schemas: + CrudTransaction: + type: object + required: + - crud + properties: + crud: + type: array + items: + $ref: "#/components/schemas/CrudEntry" + transaction_id: + type: integer + format: int64 + description: Groups changes from the same transaction; null if no explicit transaction + + CrudEntry: + type: object + required: + - client_id + - id + - op + - table + properties: + client_id: + type: integer + format: int64 + description: Auto-incrementing client-side id + id: + type: string + description: ID of the changed row + op: + type: string + enum: + - PUT + - PATCH + - DELETE + description: Type of change + table: + type: string + description: Table that contained the change + transaction_id: + type: integer + format: int64 + description: Auto-incrementing transaction id + op_data: + type: object + additionalProperties: true + description: Data associated with the change + previous_values: + type: object + additionalProperties: true + description: Previous values for UPDATE/DELETE (when trackPreviousValues is enabled) + metadata: + type: string + description: Client-side metadata (when trackMetadata is enabled) + + TransactionResponse: + type: object + required: [status] + properties: + status: + type: string + enum: [success, retryable_error, fatal_error] + description: > + success: entire transaction persisted, safe to complete. + retryable_error: transient failure, transaction rolled back, + client should retry. + fatal_error: transaction rolled back due to a non-recoverable + issue — see failed_operation for details. + retry_after_ms: + type: integer + description: > + Suggested retry delay in ms. Only meaningful for + retryable_error. + failed_operation: + description: > + Present when status is fatal_error. Identifies what + caused the rollback. + allOf: + - $ref: "#/components/schemas/FailedOperation" + message: + type: string + description: Human-readable summary for logging/debugging. + + FailedOperation: + type: object + required: [error_code] + properties: + error_code: + type: string + description: > + Machine-readable classification, e.g. CONFLICT, + SCHEMA_MISMATCH, VALIDATION_ERROR, UNIQUE_VIOLATION, + FOREIGN_KEY_VIOLATION. + message: + type: string + description: Human-readable error detail. diff --git a/supabase-example/supabase/functions/data/persistance/postgres-persistance.ts b/supabase-example/supabase/functions/data/persistance/postgres-persistance.ts new file mode 100644 index 0000000..dd224ff --- /dev/null +++ b/supabase-example/supabase/functions/data/persistance/postgres-persistance.ts @@ -0,0 +1,116 @@ +// @deno-types="@types/pg" +import PG from 'pg'; +import type { Persister, CrudEntry } from '../types.ts'; +import { RetryableError, FatalOperationError } from '../errors.ts'; +import type { EntryMapper } from '../mapping/types.ts'; +import { defaultMapper } from '../mapping/default.ts'; + +const { Pool } = PG; + +function escapeIdentifier(identifier: string): string { + return `"${identifier.replace(/"/g, '""').replace(/\./g, '"."')}"`; +} + +export const createPostgresPersister = (uri: string, mapper: EntryMapper = defaultMapper): Persister => { + console.debug('Using Postgres Persister'); + + const pool = new Pool({ + connectionString: uri, + max: 1, + idleTimeoutMillis: 0 + }); + + pool.on('error', (err, client) => { + console.error('Pool connection failure to postgres:', err, client); + }); + + const persister: Persister = { + updateBatch: async (batch: CrudEntry[]) => { + const client = await pool.connect(); + try { + await client.query('BEGIN'); + + for (const op of batch) { + const mapped = mapper(op); + if (mapped === null) continue; + + const table = escapeIdentifier(mapped.table); + + if (mapped.op == 'PUT') { + const with_id = { ...mapped.data, id: mapped.id }; + + const columnsEscaped = Object.keys(with_id).map(escapeIdentifier); + const columnsJoined = columnsEscaped.join(', '); + + const updateClauses: string[] = []; + + for (const key of Object.keys(mapped.data)) { + if (key == 'id') { + continue; + } + updateClauses.push(`${escapeIdentifier(key)} = EXCLUDED.${escapeIdentifier(key)}`); + } + + const updateClause = updateClauses.length > 0 ? `DO UPDATE SET ${updateClauses.join(', ')}` : `DO NOTHING`; + + const statement = ` + WITH data_row AS ( + SELECT (json_populate_record(null::${table}, $1::json)).* + ) + INSERT INTO ${table} (${columnsJoined}) + SELECT ${columnsJoined} FROM data_row + ON CONFLICT(id) ${updateClause}`; + + await client.query(statement, [JSON.stringify(with_id)]); + } else if (mapped.op == 'PATCH') { + const with_id = { ...mapped.data, id: mapped.id }; + + const updateClauses: string[] = []; + + for (const key of Object.keys(mapped.data)) { + if (key == 'id') { + continue; + } + updateClauses.push(`${escapeIdentifier(key)} = data_row.${escapeIdentifier(key)}`); + } + + const statement = ` + WITH data_row AS ( + SELECT (json_populate_record(null::${table}, $1::json)).* + ) + UPDATE ${table} + SET ${updateClauses.join(', ')} + FROM data_row + WHERE ${table}.id = data_row.id`; + await client.query(statement, [JSON.stringify(with_id)]); + } else if (mapped.op == 'DELETE') { + const statement = ` + WITH data_row AS ( + SELECT (json_populate_record(null::${table}, $1::json)).* + ) + DELETE FROM ${table} + USING data_row + WHERE ${table}.id = data_row.id`; + await client.query(statement, [JSON.stringify({ id: mapped.id })]); + } + } + await client.query('COMMIT'); + } catch (e) { + await client.query('ROLLBACK'); + const err = e as Error & { code?: string }; + const code = err.code ?? ''; + if (code === '23505') { + throw new FatalOperationError('UNIQUE_VIOLATION', err.message); + } else if (code === '23503') { + throw new FatalOperationError('FOREIGN_KEY_VIOLATION', err.message); + } else if (code.startsWith('42')) { + throw new FatalOperationError('SCHEMA_MISMATCH', err.message); + } + throw new RetryableError(err.message); + } finally { + client.release(); + } + } + }; + return persister; +}; diff --git a/supabase-example/supabase/functions/data/types.ts b/supabase-example/supabase/functions/data/types.ts new file mode 100644 index 0000000..a0ed750 --- /dev/null +++ b/supabase-example/supabase/functions/data/types.ts @@ -0,0 +1,22 @@ +import type { components, operations } from './generated/api.ts'; + +export type CrudEntry = components['schemas']['CrudEntry']; +export type OpType = CrudEntry['op']; + +/** Extract the JSON request body type for a given operation */ +export type OpBody = operations[Op] extends { + requestBody: { content: { 'application/json': infer B } }; +} + ? B + : never; + +/** Extract the JSON 200 response body type for a given operation */ +export type OpResponse = operations[Op] extends { + responses: { 200: { content: { 'application/json': infer R } } }; +} + ? R + : never; + +export interface Persister { + updateBatch: (batch: CrudEntry[]) => Promise; +} diff --git a/supabase-example/supabase/node_modules/@types/pg b/supabase-example/supabase/node_modules/@types/pg new file mode 120000 index 0000000..4195c3a --- /dev/null +++ b/supabase-example/supabase/node_modules/@types/pg @@ -0,0 +1 @@ +../.deno/@types+pg@8.20.0/node_modules/@types/pg \ No newline at end of file diff --git a/supabase-example/supabase/node_modules/js-yaml b/supabase-example/supabase/node_modules/js-yaml new file mode 120000 index 0000000..f9656f3 --- /dev/null +++ b/supabase-example/supabase/node_modules/js-yaml @@ -0,0 +1 @@ +.pnpm/js-yaml@4.1.1/node_modules/js-yaml \ No newline at end of file diff --git a/supabase-example/supabase/node_modules/openapi-backend b/supabase-example/supabase/node_modules/openapi-backend new file mode 120000 index 0000000..effa8ee --- /dev/null +++ b/supabase-example/supabase/node_modules/openapi-backend @@ -0,0 +1 @@ +.deno/openapi-backend@5.16.1/node_modules/openapi-backend \ No newline at end of file diff --git a/supabase-example/supabase/node_modules/openapi-typescript b/supabase-example/supabase/node_modules/openapi-typescript new file mode 120000 index 0000000..7c2356c --- /dev/null +++ b/supabase-example/supabase/node_modules/openapi-typescript @@ -0,0 +1 @@ +.pnpm/openapi-typescript@7.13.0_typescript@5.9.3/node_modules/openapi-typescript \ No newline at end of file diff --git a/supabase-example/supabase/node_modules/pg b/supabase-example/supabase/node_modules/pg new file mode 120000 index 0000000..d43d6aa --- /dev/null +++ b/supabase-example/supabase/node_modules/pg @@ -0,0 +1 @@ +.deno/pg@8.20.0/node_modules/pg \ No newline at end of file diff --git a/supabase-example/supabase/package.json b/supabase-example/supabase/package.json new file mode 100644 index 0000000..02abbc9 --- /dev/null +++ b/supabase-example/supabase/package.json @@ -0,0 +1,12 @@ +{ + "name": "supabase-slice", + "version": "1.0.0", + "type": "module", + "scripts": { + "generate-types": "openapi-typescript ./functions/data/openapi.yaml -o ./functions/data/generated/api.ts && node ./scripts/yaml-to-json.mjs ./functions/data/openapi.yaml ./functions/data/openapi.json" + }, + "devDependencies": { + "js-yaml": "^4.1.0", + "openapi-typescript": "^7.13.0" + } +} diff --git a/supabase-example/supabase/pnpm-lock.yaml b/supabase-example/supabase/pnpm-lock.yaml new file mode 100644 index 0000000..9ba0b04 --- /dev/null +++ b/supabase-example/supabase/pnpm-lock.yaml @@ -0,0 +1,260 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + js-yaml: + specifier: ^4.1.0 + version: 4.1.1 + openapi-typescript: + specifier: ^7.13.0 + version: 7.13.0(typescript@5.9.3) + +packages: + + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@redocly/ajv@8.11.2': + resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==} + + '@redocly/config@0.22.0': + resolution: {integrity: sha512-gAy93Ddo01Z3bHuVdPWfCwzgfaYgMdaZPcfL7JZ7hWJoK9V0lXDbigTWkhiPFAaLWzbOJ+kbUQG1+XwIm0KRGQ==} + + '@redocly/openapi-core@1.34.14': + resolution: {integrity: sha512-y+xFx+Zz54Xhr8jUdnLENYnt7Y7GEDL6Q03ga7rTtX8DVwefX9H+hQEPgJp1nda7vdH+wJ9/HBVvyfBuW9x6rA==} + engines: {node: '>=18.17.0', npm: '>=9.5.0'} + + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + brace-expansion@2.1.0: + resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} + + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + + colorette@1.4.0: + resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + index-to-position@1.2.0: + resolution: {integrity: sha512-Yg7+ztRkqslMAS2iFaU+Oa4KTSidr63OsFGlOrJoW981kIYO3CGCS3wA95P1mUi/IVSJkn0D479KTJpVpvFNuw==} + engines: {node: '>=18'} + + js-levenshtein@1.1.6: + resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==} + engines: {node: '>=0.10.0'} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + openapi-typescript@7.13.0: + resolution: {integrity: sha512-EFP392gcqXS7ntPvbhBzbF8TyBA+baIYEm791Hy5YkjDYKTnk/Tn5OQeKm5BIZvJihpp8Zzr4hzx0Irde1LNGQ==} + hasBin: true + peerDependencies: + typescript: ^5.x + + parse-json@8.3.0: + resolution: {integrity: sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==} + engines: {node: '>=18'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + supports-color@10.2.2: + resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==} + engines: {node: '>=18'} + + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + uri-js-replace@1.0.1: + resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==} + + yaml-ast-parser@0.0.43: + resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + +snapshots: + + '@babel/code-frame@7.29.0': + dependencies: + '@babel/helper-validator-identifier': 7.28.5 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/helper-validator-identifier@7.28.5': {} + + '@redocly/ajv@8.11.2': + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js-replace: 1.0.1 + + '@redocly/config@0.22.0': {} + + '@redocly/openapi-core@1.34.14(supports-color@10.2.2)': + dependencies: + '@redocly/ajv': 8.11.2 + '@redocly/config': 0.22.0 + colorette: 1.4.0 + https-proxy-agent: 7.0.6(supports-color@10.2.2) + js-levenshtein: 1.1.6 + js-yaml: 4.1.1 + minimatch: 5.1.9 + pluralize: 8.0.0 + yaml-ast-parser: 0.0.43 + transitivePeerDependencies: + - supports-color + + agent-base@7.1.4: {} + + ansi-colors@4.1.3: {} + + argparse@2.0.1: {} + + balanced-match@1.0.2: {} + + brace-expansion@2.1.0: + dependencies: + balanced-match: 1.0.2 + + change-case@5.4.4: {} + + colorette@1.4.0: {} + + debug@4.4.3(supports-color@10.2.2): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 10.2.2 + + fast-deep-equal@3.1.3: {} + + https-proxy-agent@7.0.6(supports-color@10.2.2): + dependencies: + agent-base: 7.1.4 + debug: 4.4.3(supports-color@10.2.2) + transitivePeerDependencies: + - supports-color + + index-to-position@1.2.0: {} + + js-levenshtein@1.1.6: {} + + js-tokens@4.0.0: {} + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + json-schema-traverse@1.0.0: {} + + minimatch@5.1.9: + dependencies: + brace-expansion: 2.1.0 + + ms@2.1.3: {} + + openapi-typescript@7.13.0(typescript@5.9.3): + dependencies: + '@redocly/openapi-core': 1.34.14(supports-color@10.2.2) + ansi-colors: 4.1.3 + change-case: 5.4.4 + parse-json: 8.3.0 + supports-color: 10.2.2 + typescript: 5.9.3 + yargs-parser: 21.1.1 + + parse-json@8.3.0: + dependencies: + '@babel/code-frame': 7.29.0 + index-to-position: 1.2.0 + type-fest: 4.41.0 + + picocolors@1.1.1: {} + + pluralize@8.0.0: {} + + require-from-string@2.0.2: {} + + supports-color@10.2.2: {} + + type-fest@4.41.0: {} + + typescript@5.9.3: {} + + uri-js-replace@1.0.1: {} + + yaml-ast-parser@0.0.43: {} + + yargs-parser@21.1.1: {} diff --git a/supabase-example/supabase/scripts/yaml-to-json.mjs b/supabase-example/supabase/scripts/yaml-to-json.mjs new file mode 100644 index 0000000..b7a1464 --- /dev/null +++ b/supabase-example/supabase/scripts/yaml-to-json.mjs @@ -0,0 +1,10 @@ +import { readFileSync, writeFileSync } from 'node:fs'; +import yaml from 'js-yaml'; + +const [, , input, output] = process.argv; +if (!input || !output) { + console.error('usage: yaml-to-json.mjs '); + process.exit(1); +} + +writeFileSync(output, JSON.stringify(yaml.load(readFileSync(input, 'utf8')), null, 2)); diff --git a/supabase-example/supabase/setup.sh b/supabase-example/supabase/setup.sh new file mode 100755 index 0000000..7f7a75c --- /dev/null +++ b/supabase-example/supabase/setup.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Helper for generating a Supabase ES256 signing key and starting Supabase. +# In production, use the Supabase CLI directly and store the signing key +# securely instead. + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +SUPABASE_DIR="$SCRIPT_DIR/../supabase" +SIGNING_KEY_FILE="$SUPABASE_DIR/signing_key.json" + +echo "Generating ES256 signing key..." +echo "[]" > "$SIGNING_KEY_FILE" +(cd "$SUPABASE_DIR" && supabase gen signing-key --algorithm ES256 --append) +echo "Signing key generated at: $SIGNING_KEY_FILE" + +echo "Starting Supabase..." +cd "$SUPABASE_DIR" +supabase start diff --git a/supabase-example/supabase/signing_key.json b/supabase-example/supabase/signing_key.json new file mode 100644 index 0000000..2716035 --- /dev/null +++ b/supabase-example/supabase/signing_key.json @@ -0,0 +1,17 @@ +[ + { + "kty": "EC", + "kid": "cc7a4842-b156-46b8-9071-f6736301dcef", + "use": "sig", + "key_ops": [ + "sign", + "verify" + ], + "alg": "ES256", + "ext": true, + "d": "OmeO8UD_5zrRA5JDepyfBvJXfiV44ULjNVF63E_Q-go", + "crv": "P-256", + "x": "VP2ldQdk5z68M1tBLLpO89Pzt-BGH_WQzTehtOet3NQ", + "y": "iAt8PkPd147TA7cPERaU3Crj0L2CvBMCSOfync4TqdM" + } +] From dc08041c3602710c43094712ff645f6540bb6bc9 Mon Sep 17 00:00:00 2001 From: Christiaan Landman Date: Wed, 13 May 2026 13:02:19 +0200 Subject: [PATCH 2/2] Fix for edge function failure. --- supabase-example/README.md | 1 - supabase-example/diagram.png | Bin 0 -> 218617 bytes supabase-example/supabase/.gitignore | 7 ---- .../supabase/functions/data/index.ts | 7 +++- .../20240712064101_configure_powersync.sql | 30 ++++++++++++++++++ supabase-example/supabase/signing_key.json | 8 ++--- 6 files changed, 40 insertions(+), 13 deletions(-) create mode 100644 supabase-example/diagram.png create mode 100644 supabase-example/supabase/migrations/20240712064101_configure_powersync.sql diff --git a/supabase-example/README.md b/supabase-example/README.md index 85c353c..f07fe82 100644 --- a/supabase-example/README.md +++ b/supabase-example/README.md @@ -15,7 +15,6 @@ supabase-example/ ```bash # 1. Start Supabase (generates signing key on first run) cd supabase && ./setup.sh -supabase functions serve data # 2. Start PowerSync + Mongo cd ../powersync && cp .env.template .env && docker compose up -d diff --git a/supabase-example/diagram.png b/supabase-example/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1b56a544016c59524da5cda33d318ead9e31cf GIT binary patch literal 218617 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 F`5!Sjq_Y43 literal 0 HcmV?d00001 diff --git a/supabase-example/supabase/.gitignore b/supabase-example/supabase/.gitignore index 0cc2f13..ebd2672 100644 --- a/supabase-example/supabase/.gitignore +++ b/supabase-example/supabase/.gitignore @@ -38,10 +38,3 @@ next-env.d.ts .idea .fleet .vscode - -# PWA -**/public/workbox-*.js -**/public/sw.js -**/public/swe-worker-* -**/public/worker-*.js -**/public/fallback-*.js diff --git a/supabase-example/supabase/functions/data/index.ts b/supabase-example/supabase/functions/data/index.ts index f1d99e7..123ae8e 100644 --- a/supabase-example/supabase/functions/data/index.ts +++ b/supabase-example/supabase/functions/data/index.ts @@ -7,8 +7,13 @@ import type { OpBody, OpResponse } from './types.ts'; // SUPABASE_DB_URL is auto-injected by the Supabase CLI (`supabase functions serve`) // and present in hosted Supabase Edge Functions. In production it should point at // the Transaction Pooler (port 6543), not the direct DB. -const uri = Deno.env.get('SUPABASE_DB_URL'); +let uri = Deno.env.get('SUPABASE_DB_URL'); if (!uri) throw new Error('SUPABASE_DB_URL is required'); +// `supabase start` injects a SUPABASE_DB_URL whose host is the db container name +// (e.g. supabase_db_powersync_demo). Deno's resolver rejects names with +// underscores per RFC 1035, surfacing as `getaddrinfo ENOTFOUND` though libc +// resolves them fine. Route through the host gateway instead. +uri = uri.replace(/supabase_db_[^:/]+:\d+/, 'host.docker.internal:54322'); const { updateBatch } = createPostgresPersister(uri); diff --git a/supabase-example/supabase/migrations/20240712064101_configure_powersync.sql b/supabase-example/supabase/migrations/20240712064101_configure_powersync.sql new file mode 100644 index 0000000..8c10057 --- /dev/null +++ b/supabase-example/supabase/migrations/20240712064101_configure_powersync.sql @@ -0,0 +1,30 @@ + +create table + public.lists ( + id uuid not null default gen_random_uuid (), + created_at timestamp with time zone not null default now(), + name text not null, + owner_id uuid not null, + constraint lists_pkey primary key (id), + constraint lists_owner_id_fkey foreign key (owner_id) references auth.users (id) on delete cascade + ) tablespace pg_default; + +create table + public.todos ( + id uuid not null default gen_random_uuid (), + created_at timestamp with time zone not null default now(), + completed_at timestamp with time zone null, + description text not null, + completed boolean not null default false, + created_by uuid null, + completed_by uuid null, + list_id uuid not null, + constraint todos_pkey primary key (id), + constraint todos_created_by_fkey foreign key (created_by) references auth.users (id) on delete set null, + constraint todos_completed_by_fkey foreign key (completed_by) references auth.users (id) on delete set null, + constraint todos_list_id_fkey foreign key (list_id) references lists (id) on delete cascade + ) tablespace pg_default; + +-- Create publication for powersync + +create publication powersync for table public.lists, public.todos; \ No newline at end of file diff --git a/supabase-example/supabase/signing_key.json b/supabase-example/supabase/signing_key.json index 2716035..a3d4e77 100644 --- a/supabase-example/supabase/signing_key.json +++ b/supabase-example/supabase/signing_key.json @@ -1,7 +1,7 @@ [ { "kty": "EC", - "kid": "cc7a4842-b156-46b8-9071-f6736301dcef", + "kid": "43fc0f70-864d-4fbe-b2fc-17dd74dcccca", "use": "sig", "key_ops": [ "sign", @@ -9,9 +9,9 @@ ], "alg": "ES256", "ext": true, - "d": "OmeO8UD_5zrRA5JDepyfBvJXfiV44ULjNVF63E_Q-go", + "d": "VnIeTdtp9XIIxIqPUCSRZyttoe2eIGRotuCRmZ8Rb5Y", "crv": "P-256", - "x": "VP2ldQdk5z68M1tBLLpO89Pzt-BGH_WQzTehtOet3NQ", - "y": "iAt8PkPd147TA7cPERaU3Crj0L2CvBMCSOfync4TqdM" + "x": "9z11FYpuqvctsjzYeeCDWpx-yrZr6Y-wsKwkLcyJr5c", + "y": "uBacpf30SJEA2QezJyJyZDqvpxMr0i_Z_PY9jjXKnXc" } ]

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 p=RP7R+o276y=7e#g0~ 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 z zl$OuADu^C7v&S>%xQPIwFxN6A|mG0;29@L1r3$-A_Uh)HGRLFAk%YU)#o4_6pi3>{pugywaaz)6IhH?uil% zT$=c)1V;3!2)t`!zM|3z)+x903zhg82m*3YzXEP=s6u7}Vz;5+{IYO4I8eY80&KjV ziC#RV3|1y~8=`c^VX_p0_G<&)T-$-3ogh|eu``HO(KF-CdPP{Rzrsq7$PvM|-u%AR z?3Foo@onx^8R9Zp??^pbv`(eSgkoLKi~?KM)3fQ4a=~fJzON%m z(~FQ4c=n*eLAru23Bfb@2frU=Y!}!;9YazT1$;F|wg#mqwwT5aC)p7apDJQVuN)H7 ze)0Uj!yhyKB*-^AiA~MsWbU)T_QL&Ba7mlJIPFOXU)%tsLGi@PA1ASUg6aBB-`$*? ztIGSM^6=y-@unJ56x)qhJ*symISWG~1KeiyYICWNs{>STWOgatWp^!jybi|j9sq_i zO4saGpAE3!UHC)SJh>Kmx$!Ah|DdOM7e3^#M@P@Qom|cCrrduaPk_rFmK)n8YPBm7 z7eA?h(!5@7oirP|G4tD58CGDH2u~E8FvF>efv3;=$H5nZQ7T2KU?CO(xp3&s@z2PB z22r`@;gRBiL1gXGK>)2^kA{gI?OiPz)oKOONk*b&pEszRozGsT&RxR~@RF$q58`I4X|oFWZ= z%zE}*5ort{#ZS6h*_F8yFmg+Xctz`;$p6^tl)ahfy*kUGmd?4;SR+g|&bWU25Z4OF zpch3QFpsnJ@}N9zEIrhF*ay%ZgQ>ND!S$kXkRb;;v3Z@5R?6H$8D8M-${Iiv z|Am59Z$tj_I?JfibqbKh+Hwj(V;bXY;dID=QXJWNA^JFaMtOfM30hvqu#$V?EJ_4B z%2mofpF!W9t*px>Ki<(`SAEs@pvv2CcsohwMnb~hj@T?97eBL<@5|MEte*i4rb#Z0 zz~UB24?56t$WQ~F^@m$0YBsVXQDB6hz#H-}Ct8lAowbu&oDy9X6492l?QQubWnpUh z1f-t=>XA5x#X&={`YXwN>R#fBlC$qT?jFVizKv@`toFl}HhUpM%b(M9^WYa(knE=} zn5UQE`;g~I(&O4qB-=B%z-b!-8MZ>y7{3~LL|ey8jgOT8ikL~jT9Nj`QrG+sUV&%OO>sQK`wH_L??1kYMoF+2(f0<@Po z%Nj04T$DSq!D(cSCdwHRm{Qk+~T7Us(st?U~o(%>q3j`Nkia_GR^-3Y=k-Fc$ zV}h9z&7ZLk{D`nuR>9&HVVhRAUm+z>s2->(%2VpoX zadre7Gk&s??0glyPp}!UkquYdx$)jt9tbYle37vUY&Wd_7cbsM`5q*y48-e=>P-Xh z7f|6tRvCb?v#~()Uv-ID-b&+JrD~u*T~SkX{Ba3r%STv%B)Vb#uNfYUgp0_7)#XTz z)hz34Def&R_*j4>G7gZ}8=VHE%1X5$m$T3!*UKjqn~Cc}uR}L$>UYPmqtwm9ue=h`qR7)>3tptbpG zdQ!5LB!~9>U<`1*_W#K#1ok=CipR9NGUYo$yhYdIWfh_=#kGKisq38VRZ!6!i~x*w zG>!)>>~$b>_cD6;FYfhMwBWSj#_?B|Gf29^T1oq-^4Px_n~=Nx435BR|3Ug}=hhzP z?gjYzDg-TOwSx5p6>cAw1D$g}eX(gwr1CT1!&m70Ne{TSEHGOh6$4LphA%`4h}rRK zLHt;)I>7k3F;W$9nmjok*xw)4IO+PvyGr1OCA7DR0d8#i-#S+mcI9ZL=rp+ zkO3MF3p!W8aXG7eJ>nzl9*X<1K;oxeHD46|zGd-iFnaqhn`Uca@Hh2yxoa2e zbq+lp&e4V7p6ZpxpD*?IO(v=6tx#{v1#QM(@ZXfF1&xHlChZ06@Fp1%21%+pGllH~ zIc>$-Oa2o3^X%ft_@YXNmptr?)o)=0K>h$sIgdf0^CrkPl{9t-O(r1KTg>N7Y5a+q zsew!XnHfL3w_E@Sm<9SyZ@d?_eK?8(Pg_gf9P%Tp4CYWBQl7Pi@l*oDHBD}>&hBqE z1DW>&!XK=r>?$wF_^#yfOnmEoEZ$u4Z-OD0KLjuR;3)qOwLWnrl*|SVSXaOpig!QI2ewuE z{5$vnX|6v&*;8WtQ}g9sbn3<5YUiba&eW@jS5RuJjDdHZ3?sKd61luf)?g#;|031b zgGC*2KlCsg;IQSzIiGzK?LY?X#Iwv%bAiPrBZ6-Tib8K5Yn&gUd)}U>ye({mpmIdU z??wHxvG@t(s4Wrk0iWLaM4*rDrt0bH~yD z297Inw-J2)tMRQY(_e_EQnLR$W8mNXQ-EMu{3p!>{tKVH;L!4x5C9vd7or~mwo`PK z7DW=nLckW8(Y8*I$y*u~Zp_jOWFrGR_x?Sk7mWb5K4r6Jw+H=z`-6nYX9xIWjL%_f z#$UZY+Jk8v`X;Gg?RgBi_*0PY7vFs&jWW}Vi@B?&tKq(Pf^)FD5w=#9u zziof9e9MC1V$JJ!v+lyNk=x7-nbsu(?{;99@acV7|Hu^F;*FYL)J>yk|pMd3t=%1elq*Hh^p^Yi!Zd`#*Uu0k0^5FXzB>(7U&pcNZ{V z&)YJbDU+}LlaLC;I@8{u*rH||K}6Jx$L0!ub^jn}huVU88`gmRjLwzMhV3I|vz7Ny zo53!aHu$D?ZPL!?T~8t}*`UoyZ8*v+M;DuWaRv8^V0%Hmqvvg`06qI#(0?fcl@i|L+&=KVPz25b_OsgB;jHBnD^u;sAodxL_x+8aaE=8E$B?k+5b5eekrh z%Xch?fWfGLkwtVs8-PGk{~H8KJ(2+@4N!uaz=;A?3+&T82)h2;2{2gspO`U$#+a}5 zb|t%Oa5TW@+~xfz;Zw>4xQytDN!oLs@Y6c?F|dGFccLd%^%se%xWE?_{DUA% z>nT;SrPcvuAc-#Z7uf^qEa>Joz?htmJ4z9$&`s2R4~!*MuW$GyZS)})U8#GJdsSt5 zBXdZ!^l{ggaLuEJ9qSx+8jTZt@PMwV@^U{5PK>-X-8f<@}EYTjtj{bQ_vslMDwt z-3GOG&^dVIMbJwIY~)9kIcH?z@oMff$n{rHxvidnPuLf)RYuQW96LOzRO#)_sUibW zCBNs{ixq{?a^}*5!Nz9Mw>C)qq?h?S!~Za>h@OE?qw?6U6v0vp|9YhTr_w9nA%-lc zu4c;OLURg>-()380HPB7)k!Yd?DKtSu^sLiX5#(%b5I?Jtmb(fpwi}N@&8asp*_Dr zCvU;wb@FU4dd$GvkpeHS0pG)cs0DNnfOzrwT4IK$79xW9#NnL%#2_&HyIxO_^jv;& zm?%evj)3n8r?^>#U8K9b+C!xHDh)qC;a^CQXZBY@8vlmcpLiL9d7)Q;Tj6p-5tjF8iXEVJ*Hn7dwgPUd+noqN75=U0Fo%fabEPJ~Mlm1kRs z)u&KH48!nd~b3HFodl`$xoxQDmxx;nFt6QovVL@=Z>02d{c&O_A zW??3>{_s~Ju(DMAkCg=kXn<_h$Txc*c!6pm?F_FcC|+^+qSiy;0@ z#Ysa=!*L{IUJwzgsXMd=_vji;06S+~p&`mQRs? zM3XN=$GFP;iIEAbFO*BcXDP~;7jd1rvpqb5`u$9Fph3~m3{ig4DRy`(y9Fot&0%ZG z7x@jthtZx<@?C=VWldzmzTHRPyOSwBkrPqAFXDcfujaiPpol)QTAuN}&OS0njVdzS zI6S*e$`fy}s*Qr~7Y~`E4VSl$&9{1qR&;4HDWG?dKaSS4&>7Q=pCa9(Y5~S=zJHz-#n5 z&@}g@%GT6P1sMe**zTayuj3xfZYo6K2zw+eW2bbiY`Cn#&#Z37^FnRlV&QR2!i9FG z>T5TdG@9;p{?usj6wjZzfur`FUZX(CiEf_$iWK2d^)d3x`ns9Qchz5LSjwiU?mn6{ zxk6JYiYAbP;=)fkyOWSq7hlA7bG`P^!@4a%Pn@$cGtY;neKOn@j5WwC1yTs@EnDMB@5mF567tb-$E!8* zQkiME9?I|b@98ky&@DM;8vCIWyZY8`U))B5r2{87Y{g8n?QcS=O(ePHw)J6k2unZK z-Y>boe$|%)V)$a1KOIZQ#cak3q3jfV%hmCzOTYPp0A*c5Pg;_hh)&NIcPKY%z(Kww zx)W1hA!(g|X3)(&R-P|-Nk%XE!KfX@1#PchH5Q|D!NOvwTn(&FT-=NNOd`ZT%Iw8F%qxYi2Xy2Uy7 zb2|q);N0d#X{hwNvqY9p16_RV9_5oxxUlOynti_aPP-w$Plr!S+~6}T$+(Y0!e6el zmzT~~3fb2Cd=R4ky{9{vGzagq$!sc;6rg22(^zEq3gF< z`X#6Do5{teh;%sw1=?Rm5Dq9mh$OLcQj;%cfV`)gF!Fn;o-H2dD8juY`I(V~_lmI` zvA!jBc#BJrNrN_rm^uLf<(Z=PKbhC zm7K=X5B3(i`HxS{2%R^n-rG;>Q=7Qusj;K)siZ}Ok0pgI^1|Vx*^`MG0 z(X5ntmIc)eRQeK;efl-lJ1tR%KlvxE2fd7S%Ob-Nrpv@|2b&h$>zMOYGmgRlos-k< z@cl0L0h>_YmQ=6Q^QW%!tiASaV?W4E7^|QgPnKc+1St_NBK>zq@0729m%kJ|)6BhShg!%gS#!i;c6COjPRs#6PEiUrh3<%ix!J{lJ|%q9MDgBv?~* z{-(Pa^5qQ`L}E_?vHlIldvEREeqlvih)m*7=hZP{n*$$Vvqv#TZ0^5ThQ!I&qj`6P zj!POH06%s7k985xudbg4|6{%|ZRas4W%T0B`4K5j&|{=nxx7 z+T%CD458fSREDg&7oUMwkL3E=dsMn^oZy75Pf2ncGp`z1UTb6!BR6Tuj|Fn#v9b;e z;eN?Mn6DGcISLX|_H!;B|1szvqoTIUHv74ZosUiQnA-KKQopoVwyrvLMvhG7!saih z`0T4$^id_)#WzK&nLcf^%GBxU16Leil}}yJuPA^CtI%=|%#OvfB$dc{$*WJtPv?65 zTr;EC33ydidyR)6X!k#_4mcIIy$q|;GOKcuKzHrS`qO{ zdzZ48^v;RxWrT(CZ$du$5U~(dj^94{f&?aKRQBUW5+US9nWaL*U->WHxAZBIv!HX8 zteEJAf6JOY^L9eFYbs27rzUF|O$PFub}xqQXMH<78sCM#ISfS7dTrzj{cC!2<**)!`>%8DH zQO5U@{q;&t)nw73t45d@8*t6>F)V+;dh^{|jdYh;+Q$#vq=`&I3_HYwTPu>1P_vra9mCTJn{=*-zeewPK z%R@?3FNRFUvN1w_`81Jz#s!&L-4XseOkk6^K04D+w~`cKSld}v`hj|22e%#GM`1Aw zRs1{7z%$!lD`(6;*F*z1tNqB$`n&d6yk_HueccvFBvyi4M;!JU&U-H2_`ZAX= z9EIVirP%Y|UCQ8tZz;xC3!6uAjkJPtB-%ymQQVm&{XJ=zpOmL-fOOPzP;-N0@_QGFIVYc?QBifds)8|M8J{KrEcvW zCDI=9Q7CgD_lVuz;i@;YeVn~j^R%D(^TFOIeOHE)EJBb5~tN zfkPSG1V!QlaGpn{Ew}tuL+j+;2y!VqvBtLuF9oQ0FMMtHm}Mzne+&-Qm#Bo74qxZs zqmSsHOE6Ywn?LxRC;y{Zfj}$Mbu@@h)lh?`rsDl=31#)a_fck%f)NVak=_OjYX z>NYxf=%P-CdJ4Vdy{<`fi!@o=9N-@N$cSdXH(^aHNtEasqeS>^h8XM-m4xmF1eQaC zam&kP0Vg**(eqO(DYAzzhd5p6r7z4xV7aTWeQ|YxrJ+~PQxR!PCVVg!r`>Yfc8PYM z+>MU5m@Gf9!sElQJG;w{hYvY$vQN*=P z@5y>%Kx_vIvC@NG`jo^Y))StrNGreFg6V{#OleYj6D(l=mVCLvdM;@GkmP+@LA2Nn z)0^bHuvz-{Ym6QwXLmVDV4MsB`lAnltc=#G@v+wD(eQto$< z+LK-;Y0k8Ya)b9|5*Z_ZG`cbbs#<4r-rx1WC}m@MBE2g~ENF#eGnyxUD8A8GzpQ{F zqpvQeINp&+X|cDG7RhY96r@fpu+_`I{{30J<0I!cW~vD*ERXYL41ZgGEsQ?vbH5Ys zXCknE&yrzD(;XHTfA3tsV>mr_Nb%KkA9wehda{%8mO-(g)8G>w-gSBh4zhm9O+ohKroKw6iC@pmyv3tGrQ!Q%?OsJI z(5KwR*9HAf#ci-mjw^{h=N1jrqGxSyR-;U0lDS_5x>YYj?XV^#@0?pM7xp?YZy)Cd zQ;3%trmcOZqXbMwZCJ&JnB-?G1_7qkvw~Uqg4Zh&h0H1L@s56pySzL_%=)t5CTLqZ zg#N`^3Bd2LQ}^) zWe=Rjjidu9hy7uTV>*&&4ihoVm*2Y=kyTe(^RE=A(m9_&=U**vrQq}%h0gV|VnnqI zf@LXua)MFZtCzlTMprzSl7MhSn||AMMjxsVl>1fTKr_SJWG#`^?U`l|XN43PT3cCa zHAT$%voX7M21_&=ag*wB<>l)np=vDfpQ=5T#_C7VAc?Zs2|{PlvJng{I|5zZhsZ+4rT(mTrW zrUjGEu3IX&*IUTc*(*KUe;RsIZ>Ljn%{qCYsu#&F{jZbLRRCi%G zw)zEbfwb%91_Cd3);@l!G0|L_UH5=`ZB@YMVqYP|?s~H;77|uj=O0_WE4L<$NfZ~$ z7f=R64;#ZMg~PZ}ntqT+4tSMQGGg@b8}jZIogkZ(G3<%aGL2Hj%zE!IQ4A|;%7V*n ziviwlK_c~Olu-Yi!$)ZE(VZ`fh|QU#j*(*(?`$_RY-{6D;eydR);MAKm1)Pwmv~dw zCnZZ6(vuPpQttygzb*!k;bIn9uc3N6;v1FW{x`V4T#%#m)hZIHp8t4EN5v#+4ZA55~S*hO(RTwN2wLpSkc1)6f(T*=fNUv-=FyfAWj}8jc=k7 zJd`hWu+b_UP21_;2Z1aa>hI2HnQ-QesV!7U?uDOA8%&Cy~v-Q9S@vr+iNS4 za@Rwzb2bc@$NlBb6^_-5jAUKGHoadxXd~ko%_vHqn&E3BJKReah5b@GMR{ ziiDrcPSJrCO5W3y7PngM66KsmGojVJ^Upk+fi?DHrdc5(v;J=KX~gP7-C#X?tjep- zCU)Gwpt_TYQiojg^BHQ6;7sOZt5K`Y+V9SkJQNNq&+`j3w=`3&YFL^mdN@L=??(W2(7fs^>t*dDT)w>s;l z`v{?B7ghB!bJ#9VQ~!WqrqYi`dq~To<6E}*XI1d}&Fv}n$)%_@r?VOl>xSLg!69?M z3l^urJ@rdkqIvxdA1`^73G!6*SuEO$ty+W8Yh0t+z*K!-tP6IvZzrrK`x|}o8&5ve z!&qz%-&mcLY|@V(8~Y4q4y<;2HbFC2zkQeLd3&Pc%lQaSG1frS#p~nHzGp&|CMB2p zrtksIxT}5Nuk`j%vC|?hglA`bDQHF3dTAwCL;h$?yUHw(`fYUx_v%O?opIaOw{MhU zY~Eb$o1Any8ru{6*b~texEdvInEk=e@pd&00k7C#sKMvzwgiE7z&+r`&IM zg{6s5-jc&Vzk-FImyG0D&%V7pCo_C$Lh-$1;=Y4f6V9-BK52Wff8j|w$Gq9vodCC( zG~GvCW2~TMOw+FnwNXaoE9MGjC1`Z_ti1976U^o4ccSqmBB7{aNt$*+AFex%1u;(_ z&sXUj82&+T52(C8q)34;HhMt$a7u;&{OAFZkq{em9YMC);=-?iPRFXmNA}7^lCuhq zuVXdCSN1impsk^^Hq1L#R8;CVKibFQqXfH@V+#NN>1H2YX+sn!2oRenXZEq|%RH(9 zYMqbh`z5nCSnyMkX{tmVLp-9Ah~}aD7D-4K7%Xg4X`c3hCPmmUGI!qi{)b+DX=-zS zliX|{4vQmSDm3a-QvYwcy`2|lGLSI3gy9?69;)%f=4O#n3r~RCSy(deE-NscFg?dhV zfy$;E+ZVn@T}-7!a3<5S88$_5B~tXD9^4MS7N98rj`aV=q8OBKu=Ti06VJ9~wbBT} z$S@FYO|9-$Z>C3ZeE;!?$9RV-Q)w*p;;_FkglzgusnN^hvAp$Dd9KQVPRx1yy#?CT zrItVycb*TdOoT5lz3jgAG1?uxKqfv~9*Ue?_xHkP&vqRqHt)3<%U(ETkcI>muY8E$If+ehLr`N1~ zN+#6bOP_IxncG$}zzZbae>h{wH0j`s%dH8B8RAXxT+4cy_(GjM*~$d{2cxf;N&{bX zOnV=^-z5bJf2hO=6;;95EvG!~Z-nGY?#;INbQn8?E3QGQBdZbU-gu9jJMcOrnB zW-mL?b$xC#a2)B{!6bKE;1CRh4E{_~&18PW>-}RWZKnD7zUYT>;&9M@2v)qN{azS2 zN_VnQ`Fb!oU-e4AO(mkJxmuU5Z-IN|>xpjbGas#pEUS$1hX%a|dCfLMUqp3E`*v=1 z@9Ffomq~FmYyI2U@o>$%SZoozb0LBCUcby?l|lTIae$w)$FD@yN7-1mL-cRuVFJ%~ zHW|+9(y$48>nQbOV#s$-bgAcd(MiF1lNk*$AJtDDT%pAT?&^ylYJ%VUiZz^Tna}m>$P@DVapmU1 zWOK=P{LpDO1E@Z~5>x4--!G+u{*wj3RKeBv?MLp%{#Mffrql8WM)OCng}pZ@5tlLg zYD}+IhPdP8KMLFlNgsAENt0k^7Z@V%0PA#F$ z*1_(YXhOHSm~|e$tQ>oygK@|8JL>csHR43g7X;)HRz-Fv2k9>*nJsj>I&+Iw=!F(+ z*}aHzHoGN;>G{@^cbaCY?xtlSGU2d0Y{79mM1odNPBd2Xbh>Uun4e7C32+rkqj9C~ z-O!lRWU*nS*5P{7re}rgXI8LQC#oSD{qoBvUI0hh7AY!uV$OikvbTcvCY#7#h6~BN z?ETb#lvVEi$miPSR8B-X>zqk!I~!{^ZIK9QM*EK6XAuSCA$ps0!Q_`~>?JYpz8J9Q zT#7@b)2JB?felHcZ={zRU<#-g_kq+C?me2HV9r4$<(m@6gcYU`>uTHFOy2Za>Fu~B z11Y&_5HGUuJUzjr@6C?>C(*tqhgm)1^hvt+U0epz?OFHJ-WD>GHbU`%J;C^viLF{T)D4DqAPtt*Nmx#VBD|iJZ0sgrQ4Y0v&Fg@ zrm<`6(;Cj|ymk*moL}+F{ECTEq|omYe77i7g0e7iy49?F!gBm(?%T+Hq@7FWO&2)Y z(DBU9^Byc|XLWdCl165}*lHN%dtphsFLt4iMl#p2`<`QAvyFsP`0A)XhvBFufRap& z-)2y?<5Br8S|*MveSnU2{gRstJ9}qA;v`oX6HyZO_Fd&r@5TLe^qXe4fBCeM!UuQ~ zXOf}i?|&e}wO%e|vzl7AxQ%hY_IW+%Q11YLP2A78a|k8~2Zchi_$cQgLoq#0dUUR% zVEnuvMFl-^iC>eEMchH3a0HXPa0JdqypOe!@t_@2B`6LqETM=-*XBu(%XP>6nMK7! z2|Hrftk{G_w^Yk}|1x5n+zu*}h|A z*$O)~wqI_JLZZjaVzw{nc)dbV?3WI|sVZ4-kF^-~^fhLzcIahOz8j*x6~Wk0_b3LlpOG?&?tGnW4ryVXm1ul3ayc((l*e$)Euk{syLRas zZN5Rek#q69;8&KMZb6lL@Nc_|kBRgB$vFQOEfcrcFP}`iBHMEJd{?e0=GV;X;LB1w z;cHvoD(x6CgX}1}iBS;QD$TfOK{EvDt&B-rq;`|kUy9Eks8kqh?B8KccB(RYCM+ef zGG~iSUlwww8x!mHGk41<4Zk)MZxO$(WO;y=K3))X^DG_v>KBLR2&-W(=v3NCyMiql)Qc67@_lqWRdT!D%~C5#4bCIv??h>t z$+}|u0S}~+upm{!2FfoRBC*7vfFYtvZJ}_Tslp6Ay2xA z0`pD0{FkJc(P!Ci9NVFkm#K4Nq}Jrm9{7p~G`P{+;g05?Ym}UgeV8J=KmJ{lq9P=r zn~VC464%AYh8WpaWP1_)v>@LsuVRJjow@DVs{yAh*H3OTbMk3{q_5C!jBecM`3H28 z?R?5M0F4X%wBvg0HnDM{cxJj!JmgO^7NnS%%9H4H^GBh|c}@ezSlb=M&ZB|DANSuh zu2we8`45|2S7B12W9bVKPdZjS6kXQs$jL4fYz5HS+6CJLW2m25PC#EH_NaA(Go>la zs+F5lE3WLKD<}l`Jt3BF@jn}c`NZ=jK&U;|=`r(qGg53aCcSe5>w8?GfG(;g`<2BA z|H$Je0y<|F!hTw|Y!H6zLFV_;X<413E4Zp9uO^Ba%>|!qq#QYpe|jYr{;4WSFH01Z zG=8&>BG1o^$2ry`jps+cXYX}G&IZl}yToZpAsI$-dr0FjK}+)42*d12>?Etd&7u+& zXYS+Jie&%jVHB%+h@Gvw5_9YZ&(3m2^y@`M(vWsyKM_vr$X^sIF;{k!n$u}xD`Pq* zm5i8INeTcp%LeYLj6p2k8wF7SxF_U}jV z#mF*CkWD~?*uuI-5wT%>KZ4CR2_Vqk?{!Di(sbRsY@3JugQfTBwp;euLf#eu>QUD~ zf^$V+@y>D2dEE)otC&!i-39xy8i`#=T9z{@D8>}6=s72*k^ffOIzga9>aH=Dz;UYh z{8LXB#ixGP1rqMZb{ouxkzT{-NhhDJ&)(}ZJ$DcfgBv{T8|XeyTbg0W4&*In_;Qh+ zFYum(LdMe+tE>CzLt;BGMAXNt$#-H3tCr`}r}P{{)|EYH`WuT&XHP?*=WiapYV(5f z!5ki+0S>9WA~QH)qw|3n@y>&dq(%YbG>=6Acld-UOgR%4>qZ8>q-}Au(9|7p1?tkA zj$Q==oXl<1XD1`Mky*f%uK(dLlQ=VO(z^SZ4WKXsqLe*nex!MimY!l#xeX-r(mp(C zuj$?!?nL*ZG`|+h8_qDgiG52yLi(C3q5yxn zlDvGC-8qVUA#Le(Om|Vfw({AHc#@eQ(yg`Er<~gRg4RI$5l^-Vsc~$7b3BBlh^W05k>xHSoa}QR# zqCW8g)j3j47xR}w5z6@R;dUyasOd|w@tcU=biG}GC2;}r z5;Qp_inhfq$)vB!<7a7y{E40VsBDR{Qq+yX7b3x;6Zo9$;<0Q#LXFn5iPm%i!S6m{ zRNUg-oK-j>>!mXV{+>qq&(gU$#f+2S**2_N#Ju-_O@0kaDbUEhY8wYqq zy@9pk{858C*Ige?JBwwHHI1aF8-ejZnkg}iTN-}Pqk5 zFqNjM^BRm`BmHKg8~($cJG6I~g_D5x9fY)suFHWiKQ>U1tvzJ^w;Uh}=4|``rRyKx zD;b9h@3Vn^(3k1i8ZUl)_w3zDsbt|PDc^|R<~ilJ5nMFI%eG%XR=*nYld1N3}nNZE))~&3`&2zxdp%WjP@_qT__1pG@>NbmT9B%eSkX{~x@Qc2Ar{`D5Q&Hl> zkN1#wN#88qkE{P2X^gxwH^mU&PO@{>^8VA#1EK@hi6epy;V0KcHTGfBeIFwHft3Qx ziJad&g|g-~&cN{Ilyst_@zeA7QsUjZ4!~^gyd97y(8|+{VhD}7q)yl)#kfZxp8cu+ zi{on4NxLI{O6~IY$?<0vsOZ`~JMH#$(^C36m1a;j>_-p5C@{(_U(ms-kU>6_m+mF6 zlq8BSoUiLS`PJ;v#FvJ1=l<&GvQ<-FRM2C0Mit3(}j`MKNQFH)0Y+P@MGk5gz! zGpUrcYDu~muRW3-wM(Zw5!!Zq&iuMT@B7eq&~nuYuqV{JMCE3_JTdNN4d{9gpi*(1 zuz#px1kCl>?2p!0{`9{mMi^4GY{jHpQgJj~SRbln{@;@)={PYxFsZghl(&aateDN^ zmD4hvM9Wy!6+3UWIJSUvdq~A3&-rPaGxEstdiRveMcccs6UFAN+MH zY$*HSezQ6ohQ4THZR2WHba3*_A!pk3A3|-}4`ha^=uZ*`XPRLEk{Pq2+YP8(Zx#ka zRqo7QYK1XC?0>d7>bMC3#THkt7$>{fY+hjy@v%YzyEpvzg?#IrpW(1Va1rBohGW z5B)>dzq1%vWDxR=QgL&#ZT!Q2sZl+-q^hqyKxCiUQ5DQ)7#?r~ao4FevBuHP$YL3H zp^&-i`e*005j!(g$-OBIRZN~IFfto{A!`$T5Yiyi-&iTc()q(z)ahcDI5Bm!^CBO5 z#QRd*HhD?mo-*AVdmHXn2|;@<|P(%fIC^EPGd2 z$VLfRST&hU%ac+44`3z7`SJ6$eYE*gwwyhD+;Of0uAv-P&BZZU-7v91A6vf|`+sWw zd-1r{2u(-k&npCc`R@Z6)O*!+@r36--R{?DfnTESRiZkXu&d8UXX6MgqiL5u$d}gJ zE#8dn7yR&HNa-f-i|+4Z!&UYDWO~Z>G}nX+tn5)?C^n-D-z;xhPbHoVL~!xnvqN5p ze4S0DMsgAtZz-9#Xe`j*O()Dv+b#+Yd5q@neQ9nEJAN*)jIYx6gkrD1ZF^2x%#QhR zVqVxHUW&UND1+E}+;{yc+mUAd8OFE@V<4P~d0&PTA4j+iLb4SoG180Q=MjF|eBdR2vQNIJ=z zn$4^>oDhQ%`MGExkirsS%TM_3n0O>hlw&1!g01W&83eq>tr)k9u!-@!4yB zxu(~`a$DlT7(J*UCQgh)KTs$Kt8`l)Aq_uTUlS2|ndLWJN=u)SibMe?&xTvFpT6W7 zAee8VFb$6+Dzer)d-oN{Su!dkKU6TIIQznY?g*T8efy2=YytdKl)+0aWu-RMHwkAO5a+kL9pr5_QpNkrKt!WOTuq6Lrxk zzVCIf-9ytp1L|aBwuwcTMxbaD+)sb?+|gjKalUKJYs*Q;1L^%}=&1kx1EXy|l?*dt zxvrwHx&2zUJR9?7Y9Ff;{eWhm9br zyRTHG$&NINUXGT zb)83Og(nqvip#Spyr9JvObZ>Ns!}#!TFCP0isut_xw@DP7qx!ll38h0D)zgf<{`rg z%R@=A`_z-ES#b_Ht2;UQx;foEc-W2%AzsQv(-dZX19Mp&ml;5+FfB90<8Q}?*tgf- zFZ`~S+8TCSCtW#;#!i~@$Hix?##~%oM+2S#v3n^%mi4IxN17d&I>MG9QC{f38rLauG$M zruw!!*ilv=_*`8bO!NHSZ%|+D0Egl2LSIr(J<(=f8fHx@WZCx??iidw+^&-0&?;kd)`zyYa`DKMIj|_?1X9 zh1eupy9E{RSm#k@XExu2jfSJh<=*`Ig8H2S?W&OSj24PQeM0Sw7I0aWQN!IFZi(Mi z^I1HTd^yd>uWWXzy?p+LNSa{b2}^d(9O5$7Mcd_XQbTTZ{paVRb&WN1 z3*6_wAE_6c-119c{q9AS@`SyT{G2pJ|I0mre!{gK*GB`2IVAn9jH@|fE{}bDtNI|L zU3;LVHZ1FqG;}9Vak2P%pv{WXzIfv@FF#xRMdK$N@~B~bK2&g6xwFoRn0fDnPBSaOR}0K0Ke)M z2M`@&6T!P4|Kc|2Me!zD^7Xtz1y8lJ9(&^y$71cfpT(?0XmW2hgtEB4qF^6=^tk6% z^(VJIbPGvU^G%IH^cDA`jLwzl+#WC9fY2rb^o6{__nh4xe2&V);{PFh2N`ufj5S#Z znddj-VX5m}f1E0bEg5qp?xqE~$o5}2H^GCTH#K0c>MuMCT-YuhHITe`bDB!*IAkZu75h7Lix8|jvA z5RfuJKq=|&R6@EzI;3IVh4=IQ`2OkP!QkGr_gd$5)_Uvx=N(YLHYK7v|6>ThnS^6^ zmZ4GBS}3kZ4r-bf6s>a}<)N(qwMR#kJjU|!o}50;wAkZLoc`;w$81OC`X6INIQfJs zZlKd<=Dbs@EjYiT726+eXChGa;+XoxvUoagx~l4=->*cBWC++Wh&mN}U$g|V(t2ct z4cEFJ!-TP`aZA8LlcU4p!n>m2g+hB~zbBhe}#^QsMw0%`? z5z#B;QMELd{7#1s+%NOQccvjhGH7d#Rm4FwI(ymI{j%rpM&<~0DyJX--^WyfQnZx;}v%@w9(meRmjhas{i<^_~-%YzNyYfjwNm$@Ok*PrxVemt&G zUgJ|{s1!&m8h}5RCP*(-HtoXq8?kPEp%EaIpI8a4Ho~Mx-=LCED zKVOTUjZAnySwAOUl@fXb!-a{gTmQZL8<6An)-@u4%D1GpOQD@&BkfAD!Z|?9xLlMO zkKWxOMH!Rj+h_~e+ZD+)=SyG(yl>`&_Wl~gN4BRhb|(TA!5VDk{jL$BrQ=3^t~~VQTYQ42a2>v}SSA6b(y13VC(wMQvpg{tl~6524=)ZrcRO*!^7dv8 z9ztr0HbC{}Fcqpucq7u=68Swx9Fw}p(;+m0G&grH)mQzNoU51Su;V>KuCVRx95s>C zEI;+9QDCKJMOEl0n~v{b`eO+PkXC~j*f<+yGE-bn&v|0eO)aFlgG?}uTqYjeLq6}_ zqO$MF-l87pp4Fz$65-5Of zeikoepunz_jkjP9WJJ;ghvw`g|TjzXOMZ< zUgHBYLrXKb(GNdz^=a0>rkFHA`At!i)8kH27dAoT#LLn)`sA>m+I~GmR zmJB=ZztoYZ>Icil?E(UkT8l1+W}``(Qh31j@r*b)t!I!pv`>)5eUud6^s=ve=yop>1|>exgm6fcF?+fSbl<@7DbK$%#zw} zy8WP5@t1C22w64X;#V}rIe!$%LwTp;LQkVD^y#^l?X9cRb6JIshMzRjsg{Wfk%C6V zqe?Vx{pNvy32!9kpz#j;LA8H=;#w|p0fQODcP~cy$9G!|pb@-s`wZbA#kGvs;P%C5 zDb&3BJB`|J=R_Io)!Rb$xA0lw^cl%C`9@-maUn*pvt`!q*CYwSYv7O9ZNXnUQHCH_ z7P=%scJ^P1dH!+Ea0sL|=J~t5yz}U}aBch0vM*kn``x38-5zXQ>&oa&eZJu;jav=H zz%B>J}md?;G;}=jTb6-&wHKZRri{$^ipK#xF-aN8bSJ<>Q+)s;@f>T0zZ%|+-mN@g= zysk@b2+41>LHz6b&p&p-?8niT;UH{s@ZG^Z>|}t28O*&dOU-9Uf6BQDvUjUYPms4C zNxTSTZS%Az?P^I1!E-;5t}C3k@Gp1vg4bv_;`%q<{%2_=Z$u(+ANYrBf{#M&!6;nt zd;kzv)XBQ_BmtJx2qY#Dt1cz5g4tnM#0 z#W1&YTMOwI>#-hUDH*-W_b7pM!67$tTc^i_1i*u{0+VoiRXc2#E)5vYFO<#BFoiMIjB##4MqCb3k~JLZt=!YH*8^#C zh-q=X@Xj6IAN2jv!o}`>d)obNlrhE|n9*C%^d6Y;!IBQ0?NhEW!ISN(2RjL{uPa8F zCc9e-A{c*tj^BZQKJ#%&h9(NQTR9ruTF>k~*DKJuNh(y%vrCV2H!m=synC*xYT?oO z{)2Jb=GQZ0&d5>f>Ki!8}0Tb7}6!ZNKN#$JKY_Y)W2>@v7^RKJ9urh$E#)U3+^n z;=gtS%wFvNtU;^YvytN*P=2~%c5+}<55-d?wB8mt4mJZx48$P`!1Z4J*1UbH4cr*- zBN+j}M`rXJ5G~QBcF-eTGk06TifoY|Z~B}@sD2dw6B%m zr&3={wS$)^FuhK~xDkKgqE5OG=99cXpohwhhZfF@lWEU1cO!eXX(*yIr&%%X4q(-H zw{fBa5#66!9VW<5l%NlSP^%V ziUXM?OBzZU5&)WfUjd~~U?9_?wr+cMu^1k^8U z)z>Np#%z8`tPLpmSHV%N^*6x-*?_OKHR!sWn!sw(pAv!ANh3C=pC0DBqCc)*Y1$)^qHSF>AvG z9omQbM8=-UATvAsY~Yo-5_!rxF@xh4!kSv-_hkP#BIjnD^|+pWDsMeZqETMC&qT?a zkmX~d)2tRkiKDtS3FTlOxkORF(RtUm6QL%n^WsbQzB;VQc^kF>GO}otwG1nxhXBTd z(*_XrzAvp1YnO%^iln3CCvqbRPBgc)f?zB;Qq+!ox9I22%RaQ>vs9qujefYwM1{rT zfzbavh(A2bzCo?4k=xh8M}0a7hWqagqIHSAC)iJwHZcgl%ZPep?378cdXy{A3c2-{ z2Ef|319Ll%R})oT*1$SAyG`LR?@{ckXR1?w^g8Z)AmI2E;*Da}#!+Iso=H*0NCnOL zw1#)YWB25c8`@4Bfe;>iqnPvLS@Qk0G*;s+oK=&+*sa!8;UJRwg3L0(7?t?%)3|%~ zF0145C-hFm$Mv%iY1OA#5Hq&Fq6eaGJ_#MrT~$h2ETqbTz;=!RFNZEzKR(M(>y?br zZwYo~rEY2u?D!P%z=OAt`{Z-NB;ZQSkyr@dysD@FbrKOLxS;hFsSN;-5{|Act|E%B(Q(AdZ;C*#UC#R5QP%?xp?gBUYrNL;=^-7b5Hi5ZLMiL{Dyk3Qm?igm zGq{I;7mGh^;Pf6<Vn8MS+8Ng<}3=|Q4Lo>cBWk2IPVB+KV|-SoY8A`yYQ{o|9_Z*m-`a|VWaw)>-&2>$+wxmc9lj}s#H{7o5~pcdSj-s4`K zR)P_oHYWHol^sq?b1=^=Ew|Rh4-WABMNHHiYuj?(ssB=xT=8au2CK7?2>STCrs>so z5+3nF2zg9$g^Rx8u`k zFh`+#f$!u|7`x=pudA0<-}u^iSzP-|#n~4M_dAX-KA`xJik7gW=S&pvIKF|G{-=g6 zd@8g(Cu6EvOHA(5!}{q8YtjTb1D`VT(x+*Z$@>Dmbt_7L@j`6;KZ_8?m$|ze$K|mr`M2`zWIc6c;|yX?-SqoYGyPYu#?u>g>+U zDmuLXO;(1}fRf;VS;#KC84fOqQ6xN;&YE_V^3c6BKK583Rwr74*9e}*ea$oi?U8sL z&i7zQ;{*xklw2^N5f}hpoZ8^rjrq>WPBAV57T-R~#{lAZfu4uG+ba)5;v{PSfOumq z5_=Kc;9@n5)vhpDmRCr;&mlD~c-?aM<5&368?UoJ+Fp-#-()bzvbLSTHu!(>KWxrM zGo7dmD~C?_9KKv+SBbAbmQPcTc;3=9p~Ye3q=z>~%FA2n46)^2sStjU<1kbrPZc7= zmQ4>HnE`VDiT?78uG1T{fxDByO^QGE&u@PoSI;CLt!N)n%m=PiwV^PG37WNg$3D+i z1k3Bmck|0)?8ngKPQngv*oW9~bBx`k?U@0trwb7&*=|!L&#X_9Bibu>PxT%}1bD;4 zM%}n7loaH-lp0f>t~31uJUU4O=}L+c^w}V7tC6feD2`zI`j-d!ZO)LX)< zb8TQhQJJB!u)Eeo(3w8AlY}EMyXLhn2J=;ErQu{64BQmV4MRLm1O~P4zelIM%hzpt z&lhSCTD&}dBjP3yl6(n^jD#3 zcB^Blc+?Bw`RNt{mhY0x{*pg7()5i()jb#E)G*V;?+Q*fGKpJ(DVhYU*y?Lq-Aek2 zLECXV^mFG$HO7WW!I=%OE>o2mBt;lRgH_Qs&ZY5GwpWBp~)$eZt;A5W&GN7CE7i21v@3wp6Nf1m+%)i7Q& zm)(-+KQypV0ef7OSZ{mK{Hvk$uHg3z-i8)>$~rQjxH3>Y9?HX^r53s;i1-YAWkeWnW>s(u8}jX>IJX(*|g881nx#IJwhDvL_Sy z)->&&J^Y0HxVZ@BqJN@Qe@+Leop~GDX1Q`!ME!-cCLTtQf8fB1{5nhq;2lhuG2G*YXQ0cVx#tIYGnT&vFV;fsy~|} zCd91$%B->N1wP1Re8m4`VbI9YPOJhDDpwKa_?{$*wq7si+tv^fapOG3YJWoAWtt;D zGz*G@y2AjxYzN*hV_f@9jjQO(c2Pj0MlUfM*+XYb?IQS@vmROkTxb{@!RevIg1Ppg zE?`F`WXc4PWwx?Rfbo=pvGT5ak>{dzfBg|DHATbkc<82s1Z`zVGlB>r6n+ZwsZ=kx zh?d?F3$JCQiJmF;qEo_4nz57_=eCp-9 z&pcf9L9>Eckh2QwlEQ}{?|QAEJCt_^y;p0VA>ef2B$3eBjfrx_&zF^A_m*F&~g7LQFPj+?f|H!j0KN70vm4Lw?$G6s<`-oVXt)w^6 z4SH^OG`T&-!qq0j$_MM5zt6AA4oz?H0%@QD;N^{N`7af;q>Y;XK@}g79xf*?iZb zxk%J1^Nbb(^o%EsbtUF~Wb=6D7)xFKz@- zH$c|EFf2M}uhKR;nZMKLO21v9lAyR0(b6Z}5nmu=g>%|sjM;{juN_|P(J)XZpc_fd1wyFF zLp4ofvlJJTBivD#0ee~viU;l_YG-e4L_J9xEkcAC`^*8op~kM8Si935`Rw0@=0?TKM?)sgoOmNf{oavY1Yj%Zm;0y9Ua%z7kK4 z74ONru>m+l5VjH;L^7YFceMJsIQQnS=eRAETv5MgGup+I+hkH?=7nh@tP$x+!^1}f zeCnwZMSV0iVJ`$i|Cc?Y+VMfzs3kr)T$9RgO=q|JHg|3LcH%|2%W@z@6wA1_xI2IwBJVDC9Q#+c;72b~WOyp|s5a!|>e{5{S* zIiG>yI_MBTKwX2Vl$LrPG(w>->V)jGJ~1-nYd~qalrdG-mq{?4#IyWiCAoNVUpiD; zw9?&xDXBPE?ZhtmlWFJ=WRD-x{)`+q(icfyGU`g^Su|)(hR~iLJ)+$CR z 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 literal 0 HcmV?d00001 diff --git a/supabase-example/frontend/public/icons/icon.png b/supabase-example/frontend/public/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c254b17c691c79f0515dad398a83b1944e8d6ff1 GIT binary patch literal 76918 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 literal 0 HcmV?d00001 diff --git a/supabase-example/frontend/public/powersync-logo.svg b/supabase-example/frontend/public/powersync-logo.svg new file mode 100644 index 0000000..05e31b6 --- /dev/null +++ b/supabase-example/frontend/public/powersync-logo.svg @@ -0,0 +1 @@ + diff --git a/supabase-example/frontend/public/supabase-logo.png b/supabase-example/frontend/public/supabase-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ff8c18e18f13fc62e2dab81ef4f4a0dcb6394600 GIT binary patch literal 46427 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 literal 0 HcmV?d00001 diff --git a/supabase-example/frontend/src/app/auth/login/page.tsx b/supabase-example/frontend/src/app/auth/login/page.tsx new file mode 100644 index 0000000..2ed0b1c --- /dev/null +++ b/supabase-example/frontend/src/app/auth/login/page.tsx @@ -0,0 +1,32 @@ +import React from 'react'; +import { useNavigate } from 'react-router-dom'; +import { LoginDetailsWidget } from '@/components/widgets/LoginDetailsWidget'; +import { useSupabase } from '@/components/providers/SystemProvider'; +import { DEFAULT_ENTRY_ROUTE } from '@/app/router'; + +export default function LoginPage() { + const supabase = useSupabase(); + const navigate = useNavigate(); + + return ( + { + if (!supabase) { + throw new Error('Supabase has not been initialized yet'); + } + await supabase.login(values.email, values.password); + navigate(DEFAULT_ENTRY_ROUTE); + }} + secondaryActions={[ + { + title: 'Register', + onClick: () => { + navigate('/auth/register'); + } + } + ]} + /> + ); +} diff --git a/supabase-example/frontend/src/app/auth/register/page.tsx b/supabase-example/frontend/src/app/auth/register/page.tsx new file mode 100644 index 0000000..4f2010e --- /dev/null +++ b/supabase-example/frontend/src/app/auth/register/page.tsx @@ -0,0 +1,40 @@ +import React from 'react'; +import { useNavigate } from 'react-router-dom'; +import { useSupabase } from '@/components/providers/SystemProvider'; +import { LoginDetailsWidget } from '@/components/widgets/LoginDetailsWidget'; +import { DEFAULT_ENTRY_ROUTE, LOGIN_ROUTE } from '@/app/router'; + +export default function RegisterPage() { + const supabase = useSupabase(); + const navigate = useNavigate(); + + return ( + { + if (!supabase) { + throw new Error('Supabase has not been initialized yet'); + } + const { + data: { session }, + error + } = await supabase.client.auth.signUp({ email, password }); + if (error) { + throw new Error(error.message); + } + + if (session) { + supabase.updateSession(session); + navigate(DEFAULT_ENTRY_ROUTE); + return; + } + + // TODO better dialog + alert('Registration successful, please login'); + navigate(LOGIN_ROUTE); + }} + secondaryActions={[{ title: 'Back', onClick: () => navigate(LOGIN_ROUTE) }]} + /> + ); +} diff --git a/supabase-example/frontend/src/app/globals.css b/supabase-example/frontend/src/app/globals.css new file mode 100644 index 0000000..5ceb260 --- /dev/null +++ b/supabase-example/frontend/src/app/globals.css @@ -0,0 +1,12 @@ +:root { + --foreground-rgb: 255, 255, 255; + --background-start-rgb: 0, 0, 0; + --background-end-rgb: 0, 0, 0; +} + +body { + color: rgb(var(--foreground-rgb)); + min-height: 100vh; + margin: 0; + background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb))) rgb(var(--background-start-rgb)); +} diff --git a/supabase-example/frontend/src/app/index.tsx b/supabase-example/frontend/src/app/index.tsx new file mode 100644 index 0000000..e6aa8fa --- /dev/null +++ b/supabase-example/frontend/src/app/index.tsx @@ -0,0 +1,18 @@ +import { createRoot } from 'react-dom/client'; +import { RouterProvider } from 'react-router-dom'; +import { SystemProvider } from '@/components/providers/SystemProvider'; +import { ThemeProviderContainer } from '@/components/providers/ThemeProviderContainer'; +import { router } from '@/app/router'; + +const root = createRoot(document.getElementById('app')!); +root.render(); + +export function App() { + return ( + + + + + + ); +} diff --git a/supabase-example/frontend/src/app/page.tsx b/supabase-example/frontend/src/app/page.tsx new file mode 100644 index 0000000..f17886a --- /dev/null +++ b/supabase-example/frontend/src/app/page.tsx @@ -0,0 +1,71 @@ +import React from 'react'; +import { CircularProgress, Grid, styled } from '@mui/material'; +import { useSupabase } from '@/components/providers/SystemProvider'; +import { useNavigate } from 'react-router-dom'; +import { DEFAULT_ENTRY_ROUTE, LOGIN_ROUTE } from '@/app/router'; + +export type LoginFormParams = { + email: string; + password: string; +}; + +/** + * This page shows a loading spinner we detect a session + * and redirect either to the app or auth flow. + */ +export default function EntryPage() { + const connector = useSupabase(); + const navigate = useNavigate(); + + const navigateToMainView = () => { + if (connector?.currentSession) { + navigate(DEFAULT_ENTRY_ROUTE); + } + }; + + React.useEffect(() => { + if (!connector) { + console.error(`No Supabase connector has been created yet.`); + return; + } + + if (!connector.ready) { + const l = connector.registerListener({ + initialized: () => { + /** + * Redirect if on the entry view + */ + if (connector.currentSession) { + navigate(DEFAULT_ENTRY_ROUTE); + } else { + navigate(LOGIN_ROUTE); + } + } + }); + return () => l?.(); + } + + // There should be a session at this point. The auth guard will navigate to the login if not + navigateToMainView(); + }, []); + + return ( + + + + + + ); +} + +namespace S { + export const CenteredGrid = styled(Grid)` + display: flex; + justify-content: center; + align-items: center; + `; + + export const MainGrid = styled(CenteredGrid)` + min-height: 100vh; + `; +} diff --git a/supabase-example/frontend/src/app/router.tsx b/supabase-example/frontend/src/app/router.tsx new file mode 100644 index 0000000..93647f6 --- /dev/null +++ b/supabase-example/frontend/src/app/router.tsx @@ -0,0 +1,99 @@ +import { Outlet, createBrowserRouter, useNavigate } from 'react-router-dom'; +import LoginPage from '@/app/auth/login/page'; +import RegisterPage from '@/app/auth/register/page'; +import EntryPage from '@/app/page'; +import TodoEditPage from '@/app/views/todo-lists/edit/page'; +import TodoListsPage from '@/app/views/todo-lists/page'; +import ViewsLayout from '@/app/views/layout'; +import SQLConsolePage from '@/app/views/sql-console/page'; +import { useSupabase } from '@/components/providers/SystemProvider'; +import React from 'react'; + +export const TODO_LISTS_ROUTE = '/views/todo-lists'; +export const TODO_EDIT_ROUTE = '/views/todo-lists/:id'; +export const LOGIN_ROUTE = '/auth/login'; +export const REGISTER_ROUTE = '/auth/register'; +export const SQL_CONSOLE_ROUTE = '/sql-console'; + +interface AuthGuardProps { + children: JSX.Element; +} + +const AuthGuard = ({ children }: AuthGuardProps) => { + const connector = useSupabase() + + const navigate = useNavigate(); + React.useEffect(() => { + if (!connector) { + console.error(`No Supabase connector has been created yet.`); + return; + } + + connector.client.auth.onAuthStateChange(async (event, _session) => { + if (event === 'SIGNED_OUT') { + navigate(LOGIN_ROUTE); + } + }); + + const loginGuard = () => { + if (!connector.currentSession) { + navigate(LOGIN_ROUTE); + } + } + if (connector.ready) { + loginGuard(); + } else { + const l = connector.registerListener({ + initialized: () => { + loginGuard(); + } + }); + return () => l?.(); + } + + }, []); + return children; +}; + +/** + * Navigate to this route after authentication + */ +export const DEFAULT_ENTRY_ROUTE = '/views/todo-lists'; + +export const router = createBrowserRouter([ + { + path: '/', + element: + }, + { + path: LOGIN_ROUTE, + element: + }, + { + path: REGISTER_ROUTE, + element: + }, + { + element: ( + + + + + + ), + children: [ + { + path: TODO_LISTS_ROUTE, + element: + }, + { + path: TODO_EDIT_ROUTE, + element: + }, + { + path: SQL_CONSOLE_ROUTE, + element: + } + ] + } +]); \ No newline at end of file diff --git a/supabase-example/frontend/src/app/utils/fts_helpers.ts b/supabase-example/frontend/src/app/utils/fts_helpers.ts new file mode 100644 index 0000000..f2b4a68 --- /dev/null +++ b/supabase-example/frontend/src/app/utils/fts_helpers.ts @@ -0,0 +1,39 @@ +import { db } from '@/components/providers/SystemProvider'; + +/** + * adding * to the end of the search term will match any word that starts with the search term + * e.g. searching bl will match blue, black, etc. + * consult FTS5 Full-text Query Syntax documentation for more options + * @param searchTerm + * @returns a modified search term with options. + */ +function createSearchTermWithOptions(searchTerm: string): string { + const searchTermWithOptions: string = `${searchTerm}*`; + return searchTermWithOptions; +} + +/** + * Search the FTS table for the given searchTerm + * @param searchTerm + * @param tableName + * @returns results from the FTS table + */ +export async function searchTable(searchTerm: string, tableName: string): Promise { + const searchTermWithOptions = createSearchTermWithOptions(searchTerm); + return await db.getAll(`SELECT * FROM fts_${tableName} WHERE fts_${tableName} MATCH ? ORDER BY rank`, [ + searchTermWithOptions + ]); +} + +//Used to display the search results in the autocomplete text field +export class SearchResult { + id: string; + todoName: string | null; + listName: string; + + constructor(id: string, listName: string, todoName: string | null = null) { + this.id = id; + this.listName = listName; + this.todoName = todoName; + } +} diff --git a/supabase-example/frontend/src/app/utils/fts_setup.ts b/supabase-example/frontend/src/app/utils/fts_setup.ts new file mode 100644 index 0000000..ddf99c1 --- /dev/null +++ b/supabase-example/frontend/src/app/utils/fts_setup.ts @@ -0,0 +1,65 @@ +import { AppSchema } from '@/library/powersync/AppSchema'; +import { Table } from '@powersync/web'; +import { ExtractType, generateJsonExtracts } from './helpers'; +import { db } from '@/components/providers/SystemProvider'; + +/** + * Create a Full Text Search table for the given table and columns + * with an option to use a different tokenizer otherwise it defaults + * to unicode61. It also creates the triggers that keep the FTS table + * and the PowerSync table in sync. + * @param tableName + * @param columns + * @param tokenizationMethod + */ +async function createFtsTable(tableName: string, columns: string[], tokenizationMethod = 'unicode61'): Promise { + const internalName = (AppSchema.tables as Table[]).find((table) => table.name === tableName)?.internalName; + const stringColumns = columns.join(', '); + + return await db.writeTransaction(async (tx) => { + // Add FTS table + await tx.execute(` + CREATE VIRTUAL TABLE IF NOT EXISTS fts_${tableName} + USING fts5(id UNINDEXED, ${stringColumns}, tokenize='${tokenizationMethod}'); + `); + // Copy over records already in table + await tx.execute(` + INSERT OR REPLACE INTO fts_${tableName}(rowid, id, ${stringColumns}) + SELECT rowid, id, ${generateJsonExtracts(ExtractType.columnOnly, 'data', columns)} FROM ${internalName}; + `); + // Add INSERT, UPDATE and DELETE and triggers to keep fts table in sync with table + await tx.execute(` + CREATE TRIGGER IF NOT EXISTS fts_insert_trigger_${tableName} AFTER INSERT ON ${internalName} + BEGIN + INSERT INTO fts_${tableName}(rowid, id, ${stringColumns}) + VALUES ( + NEW.rowid, + NEW.id, + ${generateJsonExtracts(ExtractType.columnOnly, 'NEW.data', columns)} + ); + END; + `); + await tx.execute(` + CREATE TRIGGER IF NOT EXISTS fts_update_trigger_${tableName} AFTER UPDATE ON ${internalName} BEGIN + UPDATE fts_${tableName} + SET ${generateJsonExtracts(ExtractType.columnInOperation, 'NEW.data', columns)} + WHERE rowid = NEW.rowid; + END; + `); + await tx.execute(` + CREATE TRIGGER IF NOT EXISTS fts_delete_trigger_${tableName} AFTER DELETE ON ${internalName} BEGIN + DELETE FROM fts_${tableName} WHERE rowid = OLD.rowid; + END; + `); + }); +} + +/** + * This is where you can add more methods to generate FTS tables in this demo + * that correspond to the tables in your schema and populate them + * with the data you would like to search on + */ +export async function configureFts(): Promise { + await createFtsTable('lists', ['name'], 'porter unicode61'); + await createFtsTable('todos', ['description', 'list_id']); +} diff --git a/supabase-example/frontend/src/app/utils/helpers.ts b/supabase-example/frontend/src/app/utils/helpers.ts new file mode 100644 index 0000000..5a9054b --- /dev/null +++ b/supabase-example/frontend/src/app/utils/helpers.ts @@ -0,0 +1,36 @@ +type ExtractGenerator = (jsonColumnName: string, columnName: string) => string; + +export enum ExtractType { + columnOnly, + columnInOperation +} + +type ExtractGeneratorMap = Map; + +function _createExtract(jsonColumnName: string, columnName: string): string { + return `json_extract(${jsonColumnName}, '$.${columnName}')`; +} + +const extractGeneratorsMap: ExtractGeneratorMap = new Map([ + [ExtractType.columnOnly, (jsonColumnName: string, columnName: string) => _createExtract(jsonColumnName, columnName)], + [ + ExtractType.columnInOperation, + (jsonColumnName: string, columnName: string) => { + const extract = _createExtract(jsonColumnName, columnName); + return `${columnName} = ${extract}`; + } + ] +]); + +export const generateJsonExtracts = (type: ExtractType, jsonColumnName: string, columns: string[]): string => { + const generator = extractGeneratorsMap.get(type); + if (generator == null) { + throw new Error('Unexpected null generator for key: $type'); + } + + if (columns.length == 1) { + return generator(jsonColumnName, columns[0]); + } + + return columns.map((column) => generator(jsonColumnName, column)).join(', '); +}; diff --git a/supabase-example/frontend/src/app/views/layout.tsx b/supabase-example/frontend/src/app/views/layout.tsx new file mode 100644 index 0000000..f3a0d94 --- /dev/null +++ b/supabase-example/frontend/src/app/views/layout.tsx @@ -0,0 +1,159 @@ +import { LOGIN_ROUTE, SQL_CONSOLE_ROUTE, TODO_LISTS_ROUTE } from '@/app/router'; +import { useNavigationPanel } from '@/components/navigation/NavigationPanelContext'; +import { useSupabase } from '@/components/providers/SystemProvider'; +import ChecklistRtlIcon from '@mui/icons-material/ChecklistRtl'; +import ExitToAppIcon from '@mui/icons-material/ExitToApp'; +import MenuIcon from '@mui/icons-material/Menu'; +import NorthIcon from '@mui/icons-material/North'; +import SignalWifiOffIcon from '@mui/icons-material/SignalWifiOff'; +import SouthIcon from '@mui/icons-material/South'; +import TerminalIcon from '@mui/icons-material/Terminal'; +import WifiIcon from '@mui/icons-material/Wifi'; +import { + AppBar, + Box, + Divider, + Drawer, + IconButton, + List, + ListItem, + ListItemButton, + ListItemIcon, + ListItemText, + Menu, + MenuItem, + Toolbar, + Typography, + styled +} from '@mui/material'; +import { usePowerSync, useStatus } from '@powersync/react'; +import React from 'react'; +import { useNavigate } from 'react-router-dom'; + +export default function ViewsLayout({ children }: { children: React.ReactNode }) { + const powerSync = usePowerSync(); + const status = useStatus(); + const supabase = useSupabase(); + const navigate = useNavigate(); + + const [openDrawer, setOpenDrawer] = React.useState(false); + const { title } = useNavigationPanel(); + + const [connectionAnchor, setConnectionAnchor] = React.useState(null); + + const NAVIGATION_ITEMS = React.useMemo( + () => [ + { + path: SQL_CONSOLE_ROUTE, + title: 'SQL Console', + icon: () => + }, + { + path: TODO_LISTS_ROUTE, + title: 'TODO Lists', + icon: () => + }, + { + path: LOGIN_ROUTE, + title: 'Sign Out', + beforeNavigate: async () => { + await powerSync.disconnectAndClear(); + await supabase?.client.auth.signOut(); + }, + icon: () => + } + ], + [powerSync, supabase] + ); + + return ( + + + + setOpenDrawer(!openDrawer)}> + + + + {title} + + + + { + setConnectionAnchor(event.currentTarget); + }}> + {status?.connected ? : } + + {/* Allows for manual connection and disconnect for testing purposes */} +