From 9400828f62e3f55d0b4b085150a977a9cee9048b Mon Sep 17 00:00:00 2001 From: Ryan Moon Date: Mon, 30 Mar 2026 08:51:54 -0500 Subject: [PATCH] Rename Forte to LunarFront, generalize for any small business MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rebrand from Forte (music-store-specific) to LunarFront (any small business): - Package namespace @forte/* → @lunarfront/* - Database forte/forte_test → lunarfront/lunarfront_test - Docker containers, volumes, connection strings - UI branding, localStorage keys, test emails - All documentation and planning docs Generalize music-specific terminology: - instrumentDescription → itemDescription - instrumentCount → itemCount - instrumentType → itemCategory (on service templates) - New migration 0027_generalize_terminology for column renames - Seed data updated with generic examples - RBAC descriptions updated --- .env.example | 6 +- CLAUDE.md | 18 +- README.md | 4 +- bun.lock | 104 ++-- docker-compose.dev.yml | 24 +- docs/architecture.md | 10 +- docs/database.md | 6 +- docs/setup.md | 8 +- docs/testing.md | 2 +- package.json | 3 +- .../57794a11-f0abc49f852aebe0077e70caa4e1d479 | 473 ------------------ packages/admin/index.html | 4 +- packages/admin/package.json | 4 +- packages/admin/src/api/accounts.ts | 2 +- packages/admin/src/api/identifiers.ts | 2 +- packages/admin/src/api/members.ts | 2 +- packages/admin/src/api/payment-methods.ts | 2 +- packages/admin/src/api/processor-links.ts | 2 +- packages/admin/src/api/rbac.ts | 2 +- packages/admin/src/api/repairs.ts | 2 +- packages/admin/src/api/storage.ts | 2 +- packages/admin/src/api/tax-exemptions.ts | 2 +- packages/admin/src/api/users.ts | 2 +- packages/admin/src/api/vault.ts | 2 +- .../src/components/accounts/account-form.tsx | 2 +- .../accounts/payment-method-form.tsx | 4 +- .../accounts/processor-link-form.tsx | 4 +- .../accounts/tax-exemption-form.tsx | 4 +- .../src/components/repairs/generate-pdf.ts | 6 +- packages/admin/src/hooks/use-pagination.ts | 2 +- packages/admin/src/routeTree.gen.ts | 21 + .../repair-batches/$batchId.tsx | 8 +- .../_authenticated/repair-batches/index.tsx | 6 +- .../_authenticated/repair-batches/new.tsx | 4 +- .../_authenticated/repairs/$ticketId.tsx | 16 +- .../routes/_authenticated/repairs/index.tsx | 8 +- .../src/routes/_authenticated/repairs/new.tsx | 20 +- .../_authenticated/repairs/templates.tsx | 12 +- packages/admin/src/routes/login.tsx | 4 +- packages/admin/src/stores/auth.store.ts | 6 +- packages/admin/src/stores/theme.store.ts | 8 +- packages/admin/src/types/repair.ts | 6 +- packages/admin/src/wiki/index.ts | 54 +- packages/backend/api-tests/run.ts | 18 +- packages/backend/api-tests/suites/rbac.ts | 2 +- packages/backend/api-tests/suites/repairs.ts | 60 +-- packages/backend/api-tests/suites/vault.ts | 4 +- packages/backend/api-tests/suites/webdav.ts | 2 +- packages/backend/drizzle.config.ts | 2 +- packages/backend/package.json | 6 +- .../0027_generalize_terminology.sql | 14 + .../src/db/migrations/meta/_journal.json | 7 + packages/backend/src/db/schema/repairs.ts | 6 +- packages/backend/src/db/seed.ts | 4 +- packages/backend/src/db/seeds/dev-seed.ts | 88 ++-- packages/backend/src/db/seeds/rbac.ts | 10 +- packages/backend/src/plugins/webdav-auth.ts | 8 +- packages/backend/src/routes/v1/accounts.ts | 2 +- packages/backend/src/routes/v1/auth.ts | 2 +- packages/backend/src/routes/v1/inventory.ts | 2 +- packages/backend/src/routes/v1/lookups.ts | 2 +- packages/backend/src/routes/v1/products.ts | 2 +- packages/backend/src/routes/v1/rbac.ts | 2 +- packages/backend/src/routes/v1/repairs.ts | 2 +- packages/backend/src/routes/v1/storage.ts | 2 +- packages/backend/src/routes/v1/vault.ts | 2 +- .../backend/src/services/account.service.ts | 4 +- .../backend/src/services/inventory.service.ts | 2 +- .../backend/src/services/lookup.service.ts | 2 +- .../backend/src/services/product.service.ts | 2 +- packages/backend/src/services/rbac.service.ts | 2 +- .../backend/src/services/repair.service.ts | 16 +- .../backend/src/services/storage.service.ts | 2 +- .../backend/src/services/vault.service.ts | 2 +- packages/backend/src/utils/pagination.ts | 2 +- packages/shared/package.json | 2 +- packages/shared/src/schemas/repairs.schema.ts | 6 +- packages/shared/src/types/index.ts | 2 +- planning/18_Implementation_Roadmap.md | 20 +- planning/19_Domain_Personnel.md | 2 +- planning/20_Domain_Consignment.md | 2 +- planning/21_Domain_Sales_Commission.md | 2 +- planning/22_Audit_Phase2_Review.md | 2 +- planning/27_Vault_Password_Manager.md | 6 +- 84 files changed, 390 insertions(+), 820 deletions(-) delete mode 100644 packages/admin/.tanstack/tmp/57794a11-f0abc49f852aebe0077e70caa4e1d479 create mode 100644 packages/backend/src/db/migrations/0027_generalize_terminology.sql diff --git a/.env.example b/.env.example index 1b858a4..b0d7783 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,9 @@ -# Forte — Environment Variables +# LunarFront — Environment Variables # Copy to .env and adjust values for your setup. # Docker Compose overrides host values (postgres, valkey) automatically. # Database (PostgreSQL 16) -DATABASE_URL=postgresql://forte:forte@localhost:5432/forte +DATABASE_URL=postgresql://lunarfront:lunarfront@localhost:5432/lunarfront # Valkey / Redis REDIS_URL=redis://localhost:6379 @@ -20,7 +20,7 @@ NODE_ENV=development # Logging (optional) # LOG_LEVEL=info -# LOG_FILE=./logs/forte.log +# LOG_FILE=./logs/lunarfront.log # File Storage (optional — defaults to local) # STORAGE_PROVIDER=local diff --git a/CLAUDE.md b/CLAUDE.md index 5feba50..b9b26c1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,8 +1,8 @@ -# Forte — Project Conventions +# LunarFront — Project Conventions ## App -- **Name:** Forte -- **Purpose:** Music store management platform (POS, inventory, rentals, lessons, repairs, accounting) +- **Name:** LunarFront +- **Purpose:** Small business management platform (POS, inventory, rentals, scheduling, repairs, accounting) - **Company:** Lunarfront Tech LLC ## Tech Stack @@ -18,12 +18,12 @@ - **Linting:** ESLint 9 flat config + Prettier ## Package Namespace -- `@forte/shared` — types, Zod schemas, business logic, utils -- `@forte/backend` — Fastify API server +- `@lunarfront/shared` — types, Zod schemas, business logic, utils +- `@lunarfront/backend` — Fastify API server ## Database -- Dev: `forte` on localhost:5432 -- Test: `forte_test` on localhost:5432 +- Dev: `lunarfront` on localhost:5432 +- Test: `lunarfront_test` on localhost:5432 - Multi-tenant: `company_id` (uuid FK) on all domain tables for tenant isolation - `location_id` (uuid FK) on tables that need per-location scoping (inventory, transactions, drawer) - Migrations via Drizzle Kit (`bunx drizzle-kit generate`, `bunx drizzle-kit migrate`) @@ -46,7 +46,7 @@ - `?sort=name&order=asc` — sorting by field name, asc or desc - List responses always return `{ data: [...], pagination: { page, limit, total, totalPages } }` - Search and filtering is ALWAYS server-side, never client-side -- Use `PaginationSchema` from `@forte/shared/schemas` to parse query params +- Use `PaginationSchema` from `@lunarfront/shared/schemas` to parse query params - Use pagination helpers from `packages/backend/src/utils/pagination.ts` - **Lookup endpoints** (e.g., `/roles/all`, `/statuses/all`) are the exception — these return a flat unpaginated list for populating dropdowns/selects. Use a `/all` suffix to distinguish from the paginated list endpoint for the same resource. @@ -60,7 +60,7 @@ ## Conventions - Shared Zod schemas are the single source of truth for validation (used on both frontend and backend) -- Business logic lives in `@forte/shared`, not in individual app packages +- Business logic lives in `@lunarfront/shared`, not in individual app packages - API routes are thin — validate with Zod, call a service, return result - All financial events must be auditable (append-only audit records) - JSON structured logging with request IDs on every log line diff --git a/README.md b/README.md index 9b54f25..e2ea74c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Forte +# LunarFront -Music store management platform — POS, inventory, rentals, lessons, repairs, and accounting. +Small business management platform — POS, inventory, rentals, scheduling, repairs, and accounting. Built by [Lunarfront Tech LLC](https://lunarfront.com). diff --git a/bun.lock b/bun.lock index cba69cc..30a95c6 100644 --- a/bun.lock +++ b/bun.lock @@ -3,7 +3,7 @@ "configVersion": 1, "workspaces": { "": { - "name": "forte", + "name": "lunarfront", "dependencies": { "zod": "^4.3.6", }, @@ -16,11 +16,11 @@ }, }, "packages/admin": { - "name": "@forte/admin", + "name": "@lunarfront/admin", "version": "0.0.1", "dependencies": { - "@forte/shared": "workspace:*", "@hookform/resolvers": "^5.2.2", + "@lunarfront/shared": "workspace:*", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", "@radix-ui/react-label": "^2.1.7", @@ -55,14 +55,14 @@ }, }, "packages/backend": { - "name": "@forte/backend", + "name": "@lunarfront/backend", "version": "0.0.1", "dependencies": { "@fastify/cors": "^10", "@fastify/jwt": "^9", "@fastify/multipart": "^9.4.0", "@fastify/rate-limit": "^10.3.0", - "@forte/shared": "workspace:*", + "@lunarfront/shared": "workspace:*", "bcrypt": "^6", "drizzle-orm": "^0.38", "fastify": "^5", @@ -80,7 +80,7 @@ }, }, "packages/shared": { - "name": "@forte/shared", + "name": "@lunarfront/shared", "version": "0.0.1", "dependencies": { "zod": "^4", @@ -243,12 +243,6 @@ "@floating-ui/utils": ["@floating-ui/utils@0.2.11", "", {}, "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg=="], - "@forte/admin": ["@forte/admin@workspace:packages/admin"], - - "@forte/backend": ["@forte/backend@workspace:packages/backend"], - - "@forte/shared": ["@forte/shared@workspace:packages/shared"], - "@hookform/resolvers": ["@hookform/resolvers@5.2.2", "", { "dependencies": { "@standard-schema/utils": "^0.3.0" }, "peerDependencies": { "react-hook-form": "^7.55.0" } }, "sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA=="], "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], @@ -273,6 +267,12 @@ "@lukeed/ms": ["@lukeed/ms@2.0.2", "", {}, "sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA=="], + "@lunarfront/admin": ["@lunarfront/admin@workspace:packages/admin"], + + "@lunarfront/backend": ["@lunarfront/backend@workspace:packages/backend"], + + "@lunarfront/shared": ["@lunarfront/shared@workspace:packages/shared"], + "@petamoriken/float16": ["@petamoriken/float16@3.9.3", "", {}, "sha512-8awtpHXCx/bNpFt4mt2xdkgtgVvKqty8VbjHI/WWWQuEw+KLzFot3f4+LkQY9YmOtq7A5GdOnqoIC8Pdygjk2g=="], "@pinojs/redact": ["@pinojs/redact@0.4.0", "", {}, "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg=="], @@ -399,55 +399,55 @@ "@rolldown/pluginutils": ["@rolldown/pluginutils@1.0.0-beta.27", "", {}, "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA=="], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.0", "", { "os": "android", "cpu": "arm" }, "sha512-WOhNW9K8bR3kf4zLxbfg6Pxu2ybOUbB2AjMDHSQx86LIF4rH4Ft7vmMwNt0loO0eonglSNy4cpD3MKXXKQu0/A=="], + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.60.1", "", { "os": "android", "cpu": "arm" }, "sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA=="], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.60.0", "", { "os": "android", "cpu": "arm64" }, "sha512-u6JHLll5QKRvjciE78bQXDmqRqNs5M/3GVqZeMwvmjaNODJih/WIrJlFVEihvV0MiYFmd+ZyPr9wxOVbPAG2Iw=="], + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.60.1", "", { "os": "android", "cpu": "arm64" }, "sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA=="], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.60.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-qEF7CsKKzSRc20Ciu2Zw1wRrBz4g56F7r/vRwY430UPp/nt1x21Q/fpJ9N5l47WWvJlkNCPJz3QRVw008fi7yA=="], + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.60.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw=="], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.60.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-WADYozJ4QCnXCH4wPB+3FuGmDPoFseVCUrANmA5LWwGmC6FL14BWC7pcq+FstOZv3baGX65tZ378uT6WG8ynTw=="], + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.60.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew=="], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.60.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-6b8wGHJlDrGeSE3aH5mGNHBjA0TTkxdoNHik5EkvPHCt351XnigA4pS7Wsj/Eo9Y8RBU6f35cjN9SYmCFBtzxw=="], + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.60.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w=="], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.60.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-h25Ga0t4jaylMB8M/JKAyrvvfxGRjnPQIR8lnCayyzEjEOx2EJIlIiMbhpWxDRKGKF8jbNH01NnN663dH638mA=="], + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.60.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g=="], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.60.0", "", { "os": "linux", "cpu": "arm" }, "sha512-RzeBwv0B3qtVBWtcuABtSuCzToo2IEAIQrcyB/b2zMvBWVbjo8bZDjACUpnaafaxhTw2W+imQbP2BD1usasK4g=="], + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.60.1", "", { "os": "linux", "cpu": "arm" }, "sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g=="], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.60.0", "", { "os": "linux", "cpu": "arm" }, "sha512-Sf7zusNI2CIU1HLzuu9Tc5YGAHEZs5Lu7N1ssJG4Tkw6e0MEsN7NdjUDDfGNHy2IU+ENyWT+L2obgWiguWibWQ=="], + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.60.1", "", { "os": "linux", "cpu": "arm" }, "sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg=="], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.60.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-DX2x7CMcrJzsE91q7/O02IJQ5/aLkVtYFryqCjduJhUfGKG6yJV8hxaw8pZa93lLEpPTP/ohdN4wFz7yp/ry9A=="], + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.60.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ=="], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.60.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-09EL+yFVbJZlhcQfShpswwRZ0Rg+z/CsSELFCnPt3iK+iqwGsI4zht3secj5vLEs957QvFFXnzAT0FFPIxSrkQ=="], + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.60.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA=="], - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-i9IcCMPr3EXm8EQg5jnja0Zyc1iFxJjZWlb4wr7U2Wx/GrddOuEafxRdMPRYVaXjgbhvqalp6np07hN1w9kAKw=="], + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.60.1", "", { "os": "linux", "cpu": "none" }, "sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ=="], - "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-DGzdJK9kyJ+B78MCkWeGnpXJ91tK/iKA6HwHxF4TAlPIY7GXEvMe8hBFRgdrR9Ly4qebR/7gfUs9y2IoaVEyog=="], + "@rollup/rollup-linux-loong64-musl": ["@rollup/rollup-linux-loong64-musl@4.60.1", "", { "os": "linux", "cpu": "none" }, "sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw=="], - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.60.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-RwpnLsqC8qbS8z1H1AxBA1H6qknR4YpPR9w2XX0vo2Sz10miu57PkNcnHVaZkbqyw/kUWfKMI73jhmfi9BRMUQ=="], + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.60.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw=="], - "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.60.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-Z8pPf54Ly3aqtdWC3G4rFigZgNvd+qJlOE52fmko3KST9SoGfAdSRCwyoyG05q1HrrAblLbk1/PSIV+80/pxLg=="], + "@rollup/rollup-linux-ppc64-musl": ["@rollup/rollup-linux-ppc64-musl@4.60.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg=="], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-3a3qQustp3COCGvnP4SvrMHnPQ9d1vzCakQVRTliaz8cIp/wULGjiGpbcqrkv0WrHTEp8bQD/B3HBjzujVWLOA=="], + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.60.1", "", { "os": "linux", "cpu": "none" }, "sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg=="], - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.60.0", "", { "os": "linux", "cpu": "none" }, "sha512-pjZDsVH/1VsghMJ2/kAaxt6dL0psT6ZexQVrijczOf+PeP2BUqTHYejk3l6TlPRydggINOeNRhvpLa0AYpCWSQ=="], + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.60.1", "", { "os": "linux", "cpu": "none" }, "sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg=="], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.60.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-3ObQs0BhvPgiUVZrN7gqCSvmFuMWvWvsjG5ayJ3Lraqv+2KhOsp+pUbigqbeWqueGIsnn+09HBw27rJ+gYK4VQ=="], + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.60.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ=="], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.60.0", "", { "os": "linux", "cpu": "x64" }, "sha512-EtylprDtQPdS5rXvAayrNDYoJhIz1/vzN2fEubo3yLE7tfAw+948dO0g4M0vkTVFhKojnF+n6C8bDNe+gDRdTg=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.60.1", "", { "os": "linux", "cpu": "x64" }, "sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg=="], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.60.0", "", { "os": "linux", "cpu": "x64" }, "sha512-k09oiRCi/bHU9UVFqD17r3eJR9bn03TyKraCrlz5ULFJGdJGi7VOmm9jl44vOJvRJ6P7WuBi/s2A97LxxHGIdw=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.60.1", "", { "os": "linux", "cpu": "x64" }, "sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w=="], - "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.60.0", "", { "os": "openbsd", "cpu": "x64" }, "sha512-1o/0/pIhozoSaDJoDcec+IVLbnRtQmHwPV730+AOD29lHEEo4F5BEUB24H0OBdhbBBDwIOSuf7vgg0Ywxdfiiw=="], + "@rollup/rollup-openbsd-x64": ["@rollup/rollup-openbsd-x64@4.60.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw=="], - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.60.0", "", { "os": "none", "cpu": "arm64" }, "sha512-pESDkos/PDzYwtyzB5p/UoNU/8fJo68vcXM9ZW2V0kjYayj1KaaUfi1NmTUTUpMn4UhU4gTuK8gIaFO4UGuMbA=="], + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.60.1", "", { "os": "none", "cpu": "arm64" }, "sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA=="], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.60.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-hj1wFStD7B1YBeYmvY+lWXZ7ey73YGPcViMShYikqKT1GtstIKQAtfUI6yrzPjAy/O7pO0VLXGmUVWXQMaYgTQ=="], + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.60.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g=="], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.60.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-SyaIPFoxmUPlNDq5EHkTbiKzmSEmq/gOYFI/3HHJ8iS/v1mbugVa7dXUzcJGQfoytp9DJFLhHH4U3/eTy2Bq4w=="], + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.60.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg=="], - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.60.0", "", { "os": "win32", "cpu": "x64" }, "sha512-RdcryEfzZr+lAr5kRm2ucN9aVlCCa2QNq4hXelZxb8GG0NJSazq44Z3PCCc8wISRuCVnGs0lQJVX5Vp6fKA+IA=="], + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.60.1", "", { "os": "win32", "cpu": "x64" }, "sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg=="], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.60.0", "", { "os": "win32", "cpu": "x64" }, "sha512-PrsWNQ8BuE00O3Xsx3ALh2Df8fAj9+cvvX9AIA6o4KpATR98c9mud4XtDWVvsEuyia5U4tVSTKygawyJkjm60w=="], + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.60.1", "", { "os": "win32", "cpu": "x64" }, "sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ=="], "@standard-schema/utils": ["@standard-schema/utils@0.3.0", "", {}, "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g=="], @@ -487,15 +487,15 @@ "@tanstack/react-query": ["@tanstack/react-query@5.95.2", "", { "dependencies": { "@tanstack/query-core": "5.95.2" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-/wGkvLj/st5Ud1Q76KF1uFxScV7WeqN1slQx5280ycwAyYkIPGaRZAEgHxe3bjirSd5Zpwkj6zNcR4cqYni/ZA=="], - "@tanstack/react-router": ["@tanstack/react-router@1.168.7", "", { "dependencies": { "@tanstack/history": "1.161.6", "@tanstack/react-store": "^0.9.3", "@tanstack/router-core": "1.168.6", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-fW/HvQja4PQeu9lsoyh+pXpZ0UXezbpQkkJvCuH6tHAaW3jvPkjh14lfadrNNiY+pXT7WiMTB3afGhTCC78PDQ=="], + "@tanstack/react-router": ["@tanstack/react-router@1.168.8", "", { "dependencies": { "@tanstack/history": "1.161.6", "@tanstack/react-store": "^0.9.3", "@tanstack/router-core": "1.168.7", "isbot": "^5.1.22" }, "peerDependencies": { "react": ">=18.0.0 || >=19.0.0", "react-dom": ">=18.0.0 || >=19.0.0" } }, "sha512-t0S0QueXubBKmI9eLPcN/A1sLQgTu8/yHerjrvvsGeD12zMdw0uJPKwEKpStQF2OThQtw64cs34uUSYXBUTSNw=="], "@tanstack/react-store": ["@tanstack/react-store@0.9.3", "", { "dependencies": { "@tanstack/store": "0.9.3", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-y2iHd/N9OkoQbFJLUX1T9vbc2O9tjH0pQRgTcx1/Nz4IlwLvkgpuglXUx+mXt0g5ZDFrEeDnONPqkbfxXJKwRg=="], - "@tanstack/router-core": ["@tanstack/router-core@1.168.6", "", { "dependencies": { "@tanstack/history": "1.161.6", "cookie-es": "^2.0.0", "seroval": "^1.4.2", "seroval-plugins": "^1.4.2" }, "bin": { "intent": "bin/intent.js" } }, "sha512-okCno3pImpLFQMJ/4zqEIGjIV5yhxLGj0JByrzQDQehORN1y1q6lJUezT0KPK5qCQiKUApeWaboLPjgBVx1kaQ=="], + "@tanstack/router-core": ["@tanstack/router-core@1.168.7", "", { "dependencies": { "@tanstack/history": "1.161.6", "cookie-es": "^2.0.0", "seroval": "^1.4.2", "seroval-plugins": "^1.4.2" }, "bin": { "intent": "bin/intent.js" } }, "sha512-z4UEdlzMrFaKBsG4OIxlZEm+wsYBtEp//fnX6kW18jhQpETNcM6u2SXNdX+bcIYp6AaR7ERS3SBENzjC/xxwQQ=="], - "@tanstack/router-generator": ["@tanstack/router-generator@1.166.21", "", { "dependencies": { "@tanstack/router-core": "1.168.6", "@tanstack/router-utils": "1.161.6", "@tanstack/virtual-file-routes": "1.161.7", "prettier": "^3.5.0", "recast": "^0.23.11", "source-map": "^0.7.4", "tsx": "^4.19.2", "zod": "^3.24.2" } }, "sha512-pJWsP6HaGrkIkfkcg6vzKyCBMbf1vV1BrQH+bFAVzXj3T/afmix3IPV2hiAj4zzjMxuddJD1on0Hn5+WDYA7zQ=="], + "@tanstack/router-generator": ["@tanstack/router-generator@1.166.22", "", { "dependencies": { "@tanstack/router-core": "1.168.7", "@tanstack/router-utils": "1.161.6", "@tanstack/virtual-file-routes": "1.161.7", "prettier": "^3.5.0", "recast": "^0.23.11", "source-map": "^0.7.4", "tsx": "^4.19.2", "zod": "^3.24.2" } }, "sha512-wQ7H8/Q2rmSPuaxWnurJ3DATNnqWV2tajxri9TSiW4QHsG7cWPD34+goeIinKG+GajJyEdfVpz6w/gRJXfbAPw=="], - "@tanstack/router-plugin": ["@tanstack/router-plugin@1.167.8", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@tanstack/router-core": "1.168.6", "@tanstack/router-generator": "1.166.21", "@tanstack/router-utils": "1.161.6", "@tanstack/virtual-file-routes": "1.161.7", "chokidar": "^3.6.0", "unplugin": "^2.1.2", "zod": "^3.24.2" }, "peerDependencies": { "@rsbuild/core": ">=1.0.2", "@tanstack/react-router": "^1.168.7", "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0", "vite-plugin-solid": "^2.11.10", "webpack": ">=5.92.0" }, "optionalPeers": ["@rsbuild/core", "@tanstack/react-router", "vite", "vite-plugin-solid", "webpack"], "bin": { "intent": "bin/intent.js" } }, "sha512-/X4ACYsSX4bRmomj5X2TBU75cHuIVI99Fsax6DWnP6hPb4PaSjPUHVBfHhk2NemJzEOZu1L31UQ9QDlbHU4ZTQ=="], + "@tanstack/router-plugin": ["@tanstack/router-plugin@1.167.9", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@tanstack/router-core": "1.168.7", "@tanstack/router-generator": "1.166.22", "@tanstack/router-utils": "1.161.6", "@tanstack/virtual-file-routes": "1.161.7", "chokidar": "^3.6.0", "unplugin": "^2.1.2", "zod": "^3.24.2" }, "peerDependencies": { "@rsbuild/core": ">=1.0.2", "@tanstack/react-router": "^1.168.8", "vite": ">=5.0.0 || >=6.0.0 || >=7.0.0", "vite-plugin-solid": "^2.11.10", "webpack": ">=5.92.0" }, "optionalPeers": ["@rsbuild/core", "@tanstack/react-router", "vite", "vite-plugin-solid", "webpack"], "bin": { "intent": "bin/intent.js" } }, "sha512-h/VV05FEHd4PVyc5Zy8B3trWLcdLt/Pmp+mfifmBKGRw+MUtvdQKbBHhmy4ouOf67s5zDJMc+n8R3xgU7bDwFA=="], "@tanstack/router-utils": ["@tanstack/router-utils@1.161.6", "", { "dependencies": { "@babel/core": "^7.28.5", "@babel/generator": "^7.28.5", "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "ansis": "^4.1.0", "babel-dead-code-elimination": "^1.0.12", "diff": "^8.0.2", "pathe": "^2.0.3", "tinyglobby": "^0.2.15" } }, "sha512-nRcYw+w2OEgK6VfjirYvGyPLOK+tZQz1jkYcmH5AjMamQ9PycnlxZF2aEZtPpNoUsaceX2bHptn6Ub5hGXqNvw=="], @@ -503,17 +503,17 @@ "@tanstack/virtual-file-routes": ["@tanstack/virtual-file-routes@1.161.7", "", { "bin": { "intent": "bin/intent.js" } }, "sha512-olW33+Cn+bsCsZKPwEGhlkqS6w3M2slFv11JIobdnCFKMLG97oAI2kWKdx5/zsywTL8flpnoIgaZZPlQTFYhdQ=="], - "@turbo/darwin-64": ["@turbo/darwin-64@2.8.20", "", { "os": "darwin", "cpu": "x64" }, "sha512-FQ9EX1xMU5nbwjxXxM3yU88AQQ6Sqc6S44exPRroMcx9XZHqqppl5ymJF0Ig/z3nvQNwDmz1Gsnvxubo+nXWjQ=="], + "@turbo/darwin-64": ["@turbo/darwin-64@2.8.21", "", { "os": "darwin", "cpu": "x64" }, "sha512-kfGoM0Iw8ZNZpbds+4IzOe0hjvHldqJwUPRAjXJi3KBxg/QOZL95N893SRoMtf2aJ+jJ3dk32yPkp8rvcIjP9g=="], - "@turbo/darwin-arm64": ["@turbo/darwin-arm64@2.8.20", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Gpyh9ATFGThD6/s9L95YWY54cizg/VRWl2B67h0yofG8BpHf67DFAh9nuJVKG7bY0+SBJDAo5cMur+wOl9YOYw=="], + "@turbo/darwin-arm64": ["@turbo/darwin-arm64@2.8.21", "", { "os": "darwin", "cpu": "arm64" }, "sha512-o9HEflxUEyr987x0cTUzZBhDOyL6u95JmdmlkH2VyxAw7zq2sdtM5e72y9ufv2N5SIoOBw1fVn9UES5VY5H6vQ=="], - "@turbo/linux-64": ["@turbo/linux-64@2.8.20", "", { "os": "linux", "cpu": "x64" }, "sha512-p2QxWUYyYUgUFG0b0kR+pPi8t7c9uaVlRtjTTI1AbCvVqkpjUfCcReBn6DgG/Hu8xrWdKLuyQFaLYFzQskZbcA=="], + "@turbo/linux-64": ["@turbo/linux-64@2.8.21", "", { "os": "linux", "cpu": "x64" }, "sha512-uTxlCcXWy5h1fSSymP8XSJ+AudzEHMDV3IDfKX7+DGB8kgJ+SLoTUAH7z4OFA7I/l2sznz0upPdbNNZs91YMag=="], - "@turbo/linux-arm64": ["@turbo/linux-arm64@2.8.20", "", { "os": "linux", "cpu": "arm64" }, "sha512-Gn5yjlZGLRZWarLWqdQzv0wMqyBNIdq1QLi48F1oY5Lo9kiohuf7BPQWtWxeNVS2NgJ1+nb/DzK1JduYC4AWOA=="], + "@turbo/linux-arm64": ["@turbo/linux-arm64@2.8.21", "", { "os": "linux", "cpu": "arm64" }, "sha512-cdHIcxNcihHHkCHp0Y4Zb60K4Qz+CK4xw1gb6s/t/9o4SMeMj+hTBCtoW6QpPnl9xPYmxuTou8Zw6+cylTnREg=="], - "@turbo/windows-64": ["@turbo/windows-64@2.8.20", "", { "os": "win32", "cpu": "x64" }, "sha512-vyaDpYk/8T6Qz5V/X+ihKvKFEZFUoC0oxYpC1sZanK6gaESJlmV3cMRT3Qhcg4D2VxvtC2Jjs9IRkrZGL+exLw=="], + "@turbo/windows-64": ["@turbo/windows-64@2.8.21", "", { "os": "win32", "cpu": "x64" }, "sha512-/iBj4OzbqEY8CX+eaeKbBTMZv2CLXNrt0692F7HnK7LcyYwyDecaAiSET6ZzL4opT7sbwkKvzAC/fhqT3Quu1A=="], - "@turbo/windows-arm64": ["@turbo/windows-arm64@2.8.20", "", { "os": "win32", "cpu": "arm64" }, "sha512-voicVULvUV5yaGXo0Iue13BcHGYW3u0VgqSbfQwBaHbpj1zLjYV4KIe+7fYIo6DO8FVUJzxFps3ODCQG/Wy2Qw=="], + "@turbo/windows-arm64": ["@turbo/windows-arm64@2.8.21", "", { "os": "win32", "cpu": "arm64" }, "sha512-95tMA/ZbIidJFUUtkmqioQ1gf3n3I1YbRP3ZgVdWTVn2qVbkodcIdGXBKRHHrIbRsLRl99SiHi/L7IxhpZDagQ=="], "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], @@ -597,7 +597,7 @@ "base64-arraybuffer": ["base64-arraybuffer@1.0.2", "", {}, "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.10.11", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-DAKrHphkJyiGuau/cFieRYhcTFeK/lBuD++C7cZ6KZHbMhBrisoi+EvhQ5RZrIfV5qwsW8kgQ07JIC+MDJRAhg=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.12", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-qyq26DxfY4awP2gIRXhhLWfwzwI+N5Nxk6iQi8EFizIaWIjqicQTE4sLnZZVdeKPRcVNoJOkkpfzoIYuvCKaIQ=="], "bcrypt": ["bcrypt@6.0.0", "", { "dependencies": { "node-addon-api": "^8.3.0", "node-gyp-build": "^4.8.4" } }, "sha512-cU8v/EGSrnH+HnxV2z0J7/blxH8gq7Xh2JFT6Aroax7UohdmiJJlxApMxtKfuI7z68NvvVcmR78k2LbT6efhRg=="], @@ -615,7 +615,7 @@ "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], - "caniuse-lite": ["caniuse-lite@1.0.30001781", "", {}, "sha512-RdwNCyMsNBftLjW6w01z8bKEvT6e/5tpPVEgtn22TiLGlstHOVecsX2KHFkD5e/vRnIE4EGzpuIODb3mtswtkw=="], + "caniuse-lite": ["caniuse-lite@1.0.30001782", "", {}, "sha512-dZcaJLJeDMh4rELYFw1tvSn1bhZWYFOt468FcbHHxx/Z/dFidd1I6ciyFdi3iwfQCyOjqo9upF6lGQYtMiJWxw=="], "canvg": ["canvg@3.0.11", "", { "dependencies": { "@babel/runtime": "^7.12.5", "@types/raf": "^3.4.0", "core-js": "^3.8.3", "raf": "^3.4.1", "regenerator-runtime": "^0.13.7", "rgbcolor": "^1.0.1", "stackblur-canvas": "^2.0.0", "svg-pathdata": "^6.0.3" } }, "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA=="], @@ -991,7 +991,7 @@ "rgbcolor": ["rgbcolor@1.0.1", "", {}, "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw=="], - "rollup": ["rollup@4.60.0", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.0", "@rollup/rollup-android-arm64": "4.60.0", "@rollup/rollup-darwin-arm64": "4.60.0", "@rollup/rollup-darwin-x64": "4.60.0", "@rollup/rollup-freebsd-arm64": "4.60.0", "@rollup/rollup-freebsd-x64": "4.60.0", "@rollup/rollup-linux-arm-gnueabihf": "4.60.0", "@rollup/rollup-linux-arm-musleabihf": "4.60.0", "@rollup/rollup-linux-arm64-gnu": "4.60.0", "@rollup/rollup-linux-arm64-musl": "4.60.0", "@rollup/rollup-linux-loong64-gnu": "4.60.0", "@rollup/rollup-linux-loong64-musl": "4.60.0", "@rollup/rollup-linux-ppc64-gnu": "4.60.0", "@rollup/rollup-linux-ppc64-musl": "4.60.0", "@rollup/rollup-linux-riscv64-gnu": "4.60.0", "@rollup/rollup-linux-riscv64-musl": "4.60.0", "@rollup/rollup-linux-s390x-gnu": "4.60.0", "@rollup/rollup-linux-x64-gnu": "4.60.0", "@rollup/rollup-linux-x64-musl": "4.60.0", "@rollup/rollup-openbsd-x64": "4.60.0", "@rollup/rollup-openharmony-arm64": "4.60.0", "@rollup/rollup-win32-arm64-msvc": "4.60.0", "@rollup/rollup-win32-ia32-msvc": "4.60.0", "@rollup/rollup-win32-x64-gnu": "4.60.0", "@rollup/rollup-win32-x64-msvc": "4.60.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-yqjxruMGBQJ2gG4HtjZtAfXArHomazDHoFwFFmZZl0r7Pdo7qCIXKqKHZc8yeoMgzJJ+pO6pEEHa+V7uzWlrAQ=="], + "rollup": ["rollup@4.60.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.60.1", "@rollup/rollup-android-arm64": "4.60.1", "@rollup/rollup-darwin-arm64": "4.60.1", "@rollup/rollup-darwin-x64": "4.60.1", "@rollup/rollup-freebsd-arm64": "4.60.1", "@rollup/rollup-freebsd-x64": "4.60.1", "@rollup/rollup-linux-arm-gnueabihf": "4.60.1", "@rollup/rollup-linux-arm-musleabihf": "4.60.1", "@rollup/rollup-linux-arm64-gnu": "4.60.1", "@rollup/rollup-linux-arm64-musl": "4.60.1", "@rollup/rollup-linux-loong64-gnu": "4.60.1", "@rollup/rollup-linux-loong64-musl": "4.60.1", "@rollup/rollup-linux-ppc64-gnu": "4.60.1", "@rollup/rollup-linux-ppc64-musl": "4.60.1", "@rollup/rollup-linux-riscv64-gnu": "4.60.1", "@rollup/rollup-linux-riscv64-musl": "4.60.1", "@rollup/rollup-linux-s390x-gnu": "4.60.1", "@rollup/rollup-linux-x64-gnu": "4.60.1", "@rollup/rollup-linux-x64-musl": "4.60.1", "@rollup/rollup-openbsd-x64": "4.60.1", "@rollup/rollup-openharmony-arm64": "4.60.1", "@rollup/rollup-win32-arm64-msvc": "4.60.1", "@rollup/rollup-win32-ia32-msvc": "4.60.1", "@rollup/rollup-win32-x64-gnu": "4.60.1", "@rollup/rollup-win32-x64-msvc": "4.60.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w=="], "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], @@ -1067,7 +1067,7 @@ "tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="], - "turbo": ["turbo@2.8.20", "", { "optionalDependencies": { "@turbo/darwin-64": "2.8.20", "@turbo/darwin-arm64": "2.8.20", "@turbo/linux-64": "2.8.20", "@turbo/linux-arm64": "2.8.20", "@turbo/windows-64": "2.8.20", "@turbo/windows-arm64": "2.8.20" }, "bin": { "turbo": "bin/turbo" } }, "sha512-Rb4qk5YT8RUwwdXtkLpkVhNEe/lor6+WV7S5tTlLpxSz6MjV5Qi8jGNn4gS6NAvrYGA/rNrE6YUQM85sCZUDbQ=="], + "turbo": ["turbo@2.8.21", "", { "optionalDependencies": { "@turbo/darwin-64": "2.8.21", "@turbo/darwin-arm64": "2.8.21", "@turbo/linux-64": "2.8.21", "@turbo/linux-arm64": "2.8.21", "@turbo/windows-64": "2.8.21", "@turbo/windows-arm64": "2.8.21" }, "bin": { "turbo": "bin/turbo" } }, "sha512-FlJ8OD5Qcp0jTAM7E4a/RhUzRNds2GzKlyxHKA6N247VLy628rrxAGlMpIXSz6VB430+TiQDJ/SMl6PL1lu6wQ=="], "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], @@ -1153,7 +1153,7 @@ "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg=="], - "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.1", "", { "dependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A=="], + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.2", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-sNXv5oLJ7ob93xkZ1XnxisYhGYXfaG9f65/ZgYuAu3qt7b3NadcOEhLvx28hv31PgX8SZJRYrAIPQilQmFpLVw=="], "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index bf10c0c..4c430d3 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -3,7 +3,7 @@ services: build: context: . dockerfile: Dockerfile.dev - container_name: forte-api + container_name: lunarfront-api restart: unless-stopped ports: - "8000:8000" @@ -14,7 +14,7 @@ services: - /app/packages/backend/node_modules - /app/packages/shared/node_modules environment: - DATABASE_URL: postgresql://forte:forte@postgres:5432/forte + DATABASE_URL: postgresql://lunarfront:lunarfront@postgres:5432/lunarfront REDIS_URL: redis://valkey:6379 JWT_SECRET: dev-secret-do-not-use-in-production NODE_ENV: development @@ -28,30 +28,30 @@ services: postgres: image: postgres:16 - container_name: forte-postgres + container_name: lunarfront-postgres restart: unless-stopped environment: - POSTGRES_USER: forte - POSTGRES_PASSWORD: forte - POSTGRES_DB: forte + POSTGRES_USER: lunarfront + POSTGRES_PASSWORD: lunarfront + POSTGRES_DB: lunarfront ports: - "5432:5432" volumes: - - forte-pgdata:/var/lib/postgresql/data + - lunarfront-pgdata:/var/lib/postgresql/data healthcheck: - test: ["CMD-SHELL", "pg_isready -U forte"] + test: ["CMD-SHELL", "pg_isready -U lunarfront"] interval: 5s timeout: 3s retries: 5 valkey: image: valkey/valkey:8 - container_name: forte-valkey + container_name: lunarfront-valkey restart: unless-stopped ports: - "6379:6379" volumes: - - forte-valkey:/data + - lunarfront-valkey:/data healthcheck: test: ["CMD", "valkey-cli", "ping"] interval: 5s @@ -59,5 +59,5 @@ services: retries: 5 volumes: - forte-pgdata: - forte-valkey: + lunarfront-pgdata: + lunarfront-valkey: diff --git a/docs/architecture.md b/docs/architecture.md index 7d690cd..430c9f3 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -3,16 +3,16 @@ ## Monorepo Structure ``` -forte/ +lunarfront/ packages/ - shared/ @forte/shared — Zod schemas, types, business logic, utils - backend/ @forte/backend — Fastify API server - admin/ @forte/admin — Admin UI (React + Vite) + shared/ @lunarfront/shared — Zod schemas, types, business logic, utils + backend/ @lunarfront/backend — Fastify API server + admin/ @lunarfront/admin — Admin UI (React + Vite) planning/ Domain planning docs (01-26) docs/ Technical documentation ``` -Managed with Turborepo and Bun workspaces. `@forte/shared` is a dependency of both `backend` and `admin`. +Managed with Turborepo and Bun workspaces. `@lunarfront/shared` is a dependency of both `backend` and `admin`. ## Backend diff --git a/docs/database.md b/docs/database.md index d955b76..1110ee4 100644 --- a/docs/database.md +++ b/docs/database.md @@ -6,8 +6,8 @@ PostgreSQL 16. Two databases: | Database | Port | Usage | |----------|------|-------| -| `forte` | 5432 | Development | -| `forte_api_test` | 5432 | API integration tests (auto-created by test runner) | +| `lunarfront` | 5432 | Development | +| `lunarfront_api_test` | 5432 | API integration tests (auto-created by test runner) | ## Migrations @@ -35,7 +35,7 @@ All domain tables include `company_id` (uuid FK to `company`). Every query filte | Table | Description | |-------|-------------| -| `company` | Tenant (music store business) | +| `company` | Tenant (tenant business) | | `location` | Physical store location | | `user` | Staff/admin user account | diff --git a/docs/setup.md b/docs/setup.md index f445a2f..fd54d24 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -9,7 +9,7 @@ ## Installation ```bash -git clone && cd forte +git clone && cd lunarfront bun install ``` @@ -18,7 +18,7 @@ bun install Create a `.env` file in the project root: ```env -DATABASE_URL=postgresql://forte:forte@localhost:5432/forte +DATABASE_URL=postgresql://lunarfront:lunarfront@localhost:5432/lunarfront REDIS_URL=redis://localhost:6379 JWT_SECRET=your-secret-here NODE_ENV=development @@ -28,7 +28,7 @@ NODE_ENV=development | Variable | Default | Description | |----------|---------|-------------| -| `DATABASE_URL` | `postgresql://forte:forte@localhost:5432/forte` | PostgreSQL connection string | +| `DATABASE_URL` | `postgresql://lunarfront:lunarfront@localhost:5432/lunarfront` | PostgreSQL connection string | | `REDIS_URL` | `redis://localhost:6379` | Valkey/Redis connection string | | `JWT_SECRET` | (auto-generated in dev) | Secret for signing JWTs. **Required in production.** | | `PORT` | `8000` | Backend API port | @@ -45,7 +45,7 @@ NODE_ENV=development ```bash # Create the database -createdb forte +createdb lunarfront # Run migrations cd packages/backend diff --git a/docs/testing.md b/docs/testing.md index 4db51a4..7667d8e 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -4,7 +4,7 @@ The primary test suite lives at `packages/backend/api-tests/`. It uses a custom runner that: -1. Creates/migrates a `forte_api_test` database +1. Creates/migrates a `lunarfront_api_test` database 2. Seeds company, lookup tables, RBAC permissions/roles 3. Starts the backend on port 8001 4. Registers a test user with admin role diff --git a/package.json b/package.json index baec411..2433a45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { - "name": "forte", + "name": "lunarfront", "private": true, + "packageManager": "bun@1.3.11", "workspaces": ["packages/*"], "scripts": { "dev": "turbo run dev", diff --git a/packages/admin/.tanstack/tmp/57794a11-f0abc49f852aebe0077e70caa4e1d479 b/packages/admin/.tanstack/tmp/57794a11-f0abc49f852aebe0077e70caa4e1d479 deleted file mode 100644 index d49dc15..0000000 --- a/packages/admin/.tanstack/tmp/57794a11-f0abc49f852aebe0077e70caa4e1d479 +++ /dev/null @@ -1,473 +0,0 @@ -/* eslint-disable */ - -// @ts-nocheck - -// noinspection JSUnusedGlobalSymbols - -// This file was automatically generated by TanStack Router. -// You should NOT make any changes in this file as it will be overwritten. -// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. - -import { Route as rootRouteImport } from './routes/__root' -import { Route as LoginRouteImport } from './routes/login' -import { Route as AuthenticatedRouteImport } from './routes/_authenticated' -import { Route as AuthenticatedIndexRouteImport } from './routes/_authenticated/index' -import { Route as AuthenticatedUsersRouteImport } from './routes/_authenticated/users' -import { Route as AuthenticatedProfileRouteImport } from './routes/_authenticated/profile' -import { Route as AuthenticatedHelpRouteImport } from './routes/_authenticated/help' -import { Route as AuthenticatedRolesIndexRouteImport } from './routes/_authenticated/roles/index' -import { Route as AuthenticatedMembersIndexRouteImport } from './routes/_authenticated/members/index' -import { Route as AuthenticatedAccountsIndexRouteImport } from './routes/_authenticated/accounts/index' -import { Route as AuthenticatedRolesNewRouteImport } from './routes/_authenticated/roles/new' -import { Route as AuthenticatedRolesRoleIdRouteImport } from './routes/_authenticated/roles/$roleId' -import { Route as AuthenticatedMembersMemberIdRouteImport } from './routes/_authenticated/members/$memberId' -import { Route as AuthenticatedAccountsNewRouteImport } from './routes/_authenticated/accounts/new' -import { Route as AuthenticatedAccountsAccountIdRouteImport } from './routes/_authenticated/accounts/$accountId' -import { Route as AuthenticatedAccountsAccountIdIndexRouteImport } from './routes/_authenticated/accounts/$accountId/index' -import { Route as AuthenticatedAccountsAccountIdTaxExemptionsRouteImport } from './routes/_authenticated/accounts/$accountId/tax-exemptions' -import { Route as AuthenticatedAccountsAccountIdProcessorLinksRouteImport } from './routes/_authenticated/accounts/$accountId/processor-links' -import { Route as AuthenticatedAccountsAccountIdPaymentMethodsRouteImport } from './routes/_authenticated/accounts/$accountId/payment-methods' -import { Route as AuthenticatedAccountsAccountIdMembersRouteImport } from './routes/_authenticated/accounts/$accountId/members' - -const LoginRoute = LoginRouteImport.update({ - id: '/login', - path: '/login', - getParentRoute: () => rootRouteImport, -} as any) -const AuthenticatedRoute = AuthenticatedRouteImport.update({ - id: '/_authenticated', - getParentRoute: () => rootRouteImport, -} as any) -const AuthenticatedIndexRoute = AuthenticatedIndexRouteImport.update({ - id: '/', - path: '/', - getParentRoute: () => AuthenticatedRoute, -} as any) -const AuthenticatedUsersRoute = AuthenticatedUsersRouteImport.update({ - id: '/users', - path: '/users', - getParentRoute: () => AuthenticatedRoute, -} as any) -const AuthenticatedProfileRoute = AuthenticatedProfileRouteImport.update({ - id: '/profile', - path: '/profile', - getParentRoute: () => AuthenticatedRoute, -} as any) -const AuthenticatedHelpRoute = AuthenticatedHelpRouteImport.update({ - id: '/help', - path: '/help', - getParentRoute: () => AuthenticatedRoute, -} as any) -const AuthenticatedRolesIndexRoute = AuthenticatedRolesIndexRouteImport.update({ - id: '/roles/', - path: '/roles/', - getParentRoute: () => AuthenticatedRoute, -} as any) -const AuthenticatedMembersIndexRoute = - AuthenticatedMembersIndexRouteImport.update({ - id: '/members/', - path: '/members/', - getParentRoute: () => AuthenticatedRoute, - } as any) -const AuthenticatedAccountsIndexRoute = - AuthenticatedAccountsIndexRouteImport.update({ - id: '/accounts/', - path: '/accounts/', - getParentRoute: () => AuthenticatedRoute, - } as any) -const AuthenticatedRolesNewRoute = AuthenticatedRolesNewRouteImport.update({ - id: '/roles/new', - path: '/roles/new', - getParentRoute: () => AuthenticatedRoute, -} as any) -const AuthenticatedRolesRoleIdRoute = - AuthenticatedRolesRoleIdRouteImport.update({ - id: '/roles/$roleId', - path: '/roles/$roleId', - getParentRoute: () => AuthenticatedRoute, - } as any) -const AuthenticatedMembersMemberIdRoute = - AuthenticatedMembersMemberIdRouteImport.update({ - id: '/members/$memberId', - path: '/members/$memberId', - getParentRoute: () => AuthenticatedRoute, - } as any) -const AuthenticatedAccountsNewRoute = - AuthenticatedAccountsNewRouteImport.update({ - id: '/accounts/new', - path: '/accounts/new', - getParentRoute: () => AuthenticatedRoute, - } as any) -const AuthenticatedAccountsAccountIdRoute = - AuthenticatedAccountsAccountIdRouteImport.update({ - id: '/accounts/$accountId', - path: '/accounts/$accountId', - getParentRoute: () => AuthenticatedRoute, - } as any) -const AuthenticatedAccountsAccountIdIndexRoute = - AuthenticatedAccountsAccountIdIndexRouteImport.update({ - id: '/', - path: '/', - getParentRoute: () => AuthenticatedAccountsAccountIdRoute, - } as any) -const AuthenticatedAccountsAccountIdTaxExemptionsRoute = - AuthenticatedAccountsAccountIdTaxExemptionsRouteImport.update({ - id: '/tax-exemptions', - path: '/tax-exemptions', - getParentRoute: () => AuthenticatedAccountsAccountIdRoute, - } as any) -const AuthenticatedAccountsAccountIdProcessorLinksRoute = - AuthenticatedAccountsAccountIdProcessorLinksRouteImport.update({ - id: '/processor-links', - path: '/processor-links', - getParentRoute: () => AuthenticatedAccountsAccountIdRoute, - } as any) -const AuthenticatedAccountsAccountIdPaymentMethodsRoute = - AuthenticatedAccountsAccountIdPaymentMethodsRouteImport.update({ - id: '/payment-methods', - path: '/payment-methods', - getParentRoute: () => AuthenticatedAccountsAccountIdRoute, - } as any) -const AuthenticatedAccountsAccountIdMembersRoute = - AuthenticatedAccountsAccountIdMembersRouteImport.update({ - id: '/members', - path: '/members', - getParentRoute: () => AuthenticatedAccountsAccountIdRoute, - } as any) - -export interface FileRoutesByFullPath { - '/': typeof AuthenticatedIndexRoute - '/login': typeof LoginRoute - '/help': typeof AuthenticatedHelpRoute - '/profile': typeof AuthenticatedProfileRoute - '/users': typeof AuthenticatedUsersRoute - '/accounts/$accountId': typeof AuthenticatedAccountsAccountIdRouteWithChildren - '/accounts/new': typeof AuthenticatedAccountsNewRoute - '/members/$memberId': typeof AuthenticatedMembersMemberIdRoute - '/roles/$roleId': typeof AuthenticatedRolesRoleIdRoute - '/roles/new': typeof AuthenticatedRolesNewRoute - '/accounts/': typeof AuthenticatedAccountsIndexRoute - '/members/': typeof AuthenticatedMembersIndexRoute - '/roles/': typeof AuthenticatedRolesIndexRoute - '/accounts/$accountId/members': typeof AuthenticatedAccountsAccountIdMembersRoute - '/accounts/$accountId/payment-methods': typeof AuthenticatedAccountsAccountIdPaymentMethodsRoute - '/accounts/$accountId/processor-links': typeof AuthenticatedAccountsAccountIdProcessorLinksRoute - '/accounts/$accountId/tax-exemptions': typeof AuthenticatedAccountsAccountIdTaxExemptionsRoute - '/accounts/$accountId/': typeof AuthenticatedAccountsAccountIdIndexRoute -} -export interface FileRoutesByTo { - '/login': typeof LoginRoute - '/help': typeof AuthenticatedHelpRoute - '/profile': typeof AuthenticatedProfileRoute - '/users': typeof AuthenticatedUsersRoute - '/': typeof AuthenticatedIndexRoute - '/accounts/new': typeof AuthenticatedAccountsNewRoute - '/members/$memberId': typeof AuthenticatedMembersMemberIdRoute - '/roles/$roleId': typeof AuthenticatedRolesRoleIdRoute - '/roles/new': typeof AuthenticatedRolesNewRoute - '/accounts': typeof AuthenticatedAccountsIndexRoute - '/members': typeof AuthenticatedMembersIndexRoute - '/roles': typeof AuthenticatedRolesIndexRoute - '/accounts/$accountId/members': typeof AuthenticatedAccountsAccountIdMembersRoute - '/accounts/$accountId/payment-methods': typeof AuthenticatedAccountsAccountIdPaymentMethodsRoute - '/accounts/$accountId/processor-links': typeof AuthenticatedAccountsAccountIdProcessorLinksRoute - '/accounts/$accountId/tax-exemptions': typeof AuthenticatedAccountsAccountIdTaxExemptionsRoute - '/accounts/$accountId': typeof AuthenticatedAccountsAccountIdIndexRoute -} -export interface FileRoutesById { - __root__: typeof rootRouteImport - '/_authenticated': typeof AuthenticatedRouteWithChildren - '/login': typeof LoginRoute - '/_authenticated/help': typeof AuthenticatedHelpRoute - '/_authenticated/profile': typeof AuthenticatedProfileRoute - '/_authenticated/users': typeof AuthenticatedUsersRoute - '/_authenticated/': typeof AuthenticatedIndexRoute - '/_authenticated/accounts/$accountId': typeof AuthenticatedAccountsAccountIdRouteWithChildren - '/_authenticated/accounts/new': typeof AuthenticatedAccountsNewRoute - '/_authenticated/members/$memberId': typeof AuthenticatedMembersMemberIdRoute - '/_authenticated/roles/$roleId': typeof AuthenticatedRolesRoleIdRoute - '/_authenticated/roles/new': typeof AuthenticatedRolesNewRoute - '/_authenticated/accounts/': typeof AuthenticatedAccountsIndexRoute - '/_authenticated/members/': typeof AuthenticatedMembersIndexRoute - '/_authenticated/roles/': typeof AuthenticatedRolesIndexRoute - '/_authenticated/accounts/$accountId/members': typeof AuthenticatedAccountsAccountIdMembersRoute - '/_authenticated/accounts/$accountId/payment-methods': typeof AuthenticatedAccountsAccountIdPaymentMethodsRoute - '/_authenticated/accounts/$accountId/processor-links': typeof AuthenticatedAccountsAccountIdProcessorLinksRoute - '/_authenticated/accounts/$accountId/tax-exemptions': typeof AuthenticatedAccountsAccountIdTaxExemptionsRoute - '/_authenticated/accounts/$accountId/': typeof AuthenticatedAccountsAccountIdIndexRoute -} -export interface FileRouteTypes { - fileRoutesByFullPath: FileRoutesByFullPath - fullPaths: - | '/' - | '/login' - | '/help' - | '/profile' - | '/users' - | '/accounts/$accountId' - | '/accounts/new' - | '/members/$memberId' - | '/roles/$roleId' - | '/roles/new' - | '/accounts/' - | '/members/' - | '/roles/' - | '/accounts/$accountId/members' - | '/accounts/$accountId/payment-methods' - | '/accounts/$accountId/processor-links' - | '/accounts/$accountId/tax-exemptions' - | '/accounts/$accountId/' - fileRoutesByTo: FileRoutesByTo - to: - | '/login' - | '/help' - | '/profile' - | '/users' - | '/' - | '/accounts/new' - | '/members/$memberId' - | '/roles/$roleId' - | '/roles/new' - | '/accounts' - | '/members' - | '/roles' - | '/accounts/$accountId/members' - | '/accounts/$accountId/payment-methods' - | '/accounts/$accountId/processor-links' - | '/accounts/$accountId/tax-exemptions' - | '/accounts/$accountId' - id: - | '__root__' - | '/_authenticated' - | '/login' - | '/_authenticated/help' - | '/_authenticated/profile' - | '/_authenticated/users' - | '/_authenticated/' - | '/_authenticated/accounts/$accountId' - | '/_authenticated/accounts/new' - | '/_authenticated/members/$memberId' - | '/_authenticated/roles/$roleId' - | '/_authenticated/roles/new' - | '/_authenticated/accounts/' - | '/_authenticated/members/' - | '/_authenticated/roles/' - | '/_authenticated/accounts/$accountId/members' - | '/_authenticated/accounts/$accountId/payment-methods' - | '/_authenticated/accounts/$accountId/processor-links' - | '/_authenticated/accounts/$accountId/tax-exemptions' - | '/_authenticated/accounts/$accountId/' - fileRoutesById: FileRoutesById -} -export interface RootRouteChildren { - AuthenticatedRoute: typeof AuthenticatedRouteWithChildren - LoginRoute: typeof LoginRoute -} - -declare module '@tanstack/react-router' { - interface FileRoutesByPath { - '/login': { - id: '/login' - path: '/login' - fullPath: '/login' - preLoaderRoute: typeof LoginRouteImport - parentRoute: typeof rootRouteImport - } - '/_authenticated': { - id: '/_authenticated' - path: '' - fullPath: '/' - preLoaderRoute: typeof AuthenticatedRouteImport - parentRoute: typeof rootRouteImport - } - '/_authenticated/': { - id: '/_authenticated/' - path: '/' - fullPath: '/' - preLoaderRoute: typeof AuthenticatedIndexRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/users': { - id: '/_authenticated/users' - path: '/users' - fullPath: '/users' - preLoaderRoute: typeof AuthenticatedUsersRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/profile': { - id: '/_authenticated/profile' - path: '/profile' - fullPath: '/profile' - preLoaderRoute: typeof AuthenticatedProfileRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/help': { - id: '/_authenticated/help' - path: '/help' - fullPath: '/help' - preLoaderRoute: typeof AuthenticatedHelpRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/roles/': { - id: '/_authenticated/roles/' - path: '/roles' - fullPath: '/roles/' - preLoaderRoute: typeof AuthenticatedRolesIndexRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/members/': { - id: '/_authenticated/members/' - path: '/members' - fullPath: '/members/' - preLoaderRoute: typeof AuthenticatedMembersIndexRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/accounts/': { - id: '/_authenticated/accounts/' - path: '/accounts' - fullPath: '/accounts/' - preLoaderRoute: typeof AuthenticatedAccountsIndexRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/roles/new': { - id: '/_authenticated/roles/new' - path: '/roles/new' - fullPath: '/roles/new' - preLoaderRoute: typeof AuthenticatedRolesNewRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/roles/$roleId': { - id: '/_authenticated/roles/$roleId' - path: '/roles/$roleId' - fullPath: '/roles/$roleId' - preLoaderRoute: typeof AuthenticatedRolesRoleIdRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/members/$memberId': { - id: '/_authenticated/members/$memberId' - path: '/members/$memberId' - fullPath: '/members/$memberId' - preLoaderRoute: typeof AuthenticatedMembersMemberIdRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/accounts/new': { - id: '/_authenticated/accounts/new' - path: '/accounts/new' - fullPath: '/accounts/new' - preLoaderRoute: typeof AuthenticatedAccountsNewRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/accounts/$accountId': { - id: '/_authenticated/accounts/$accountId' - path: '/accounts/$accountId' - fullPath: '/accounts/$accountId' - preLoaderRoute: typeof AuthenticatedAccountsAccountIdRouteImport - parentRoute: typeof AuthenticatedRoute - } - '/_authenticated/accounts/$accountId/': { - id: '/_authenticated/accounts/$accountId/' - path: '/' - fullPath: '/accounts/$accountId/' - preLoaderRoute: typeof AuthenticatedAccountsAccountIdIndexRouteImport - parentRoute: typeof AuthenticatedAccountsAccountIdRoute - } - '/_authenticated/accounts/$accountId/tax-exemptions': { - id: '/_authenticated/accounts/$accountId/tax-exemptions' - path: '/tax-exemptions' - fullPath: '/accounts/$accountId/tax-exemptions' - preLoaderRoute: typeof AuthenticatedAccountsAccountIdTaxExemptionsRouteImport - parentRoute: typeof AuthenticatedAccountsAccountIdRoute - } - '/_authenticated/accounts/$accountId/processor-links': { - id: '/_authenticated/accounts/$accountId/processor-links' - path: '/processor-links' - fullPath: '/accounts/$accountId/processor-links' - preLoaderRoute: typeof AuthenticatedAccountsAccountIdProcessorLinksRouteImport - parentRoute: typeof AuthenticatedAccountsAccountIdRoute - } - '/_authenticated/accounts/$accountId/payment-methods': { - id: '/_authenticated/accounts/$accountId/payment-methods' - path: '/payment-methods' - fullPath: '/accounts/$accountId/payment-methods' - preLoaderRoute: typeof AuthenticatedAccountsAccountIdPaymentMethodsRouteImport - parentRoute: typeof AuthenticatedAccountsAccountIdRoute - } - '/_authenticated/accounts/$accountId/members': { - id: '/_authenticated/accounts/$accountId/members' - path: '/members' - fullPath: '/accounts/$accountId/members' - preLoaderRoute: typeof AuthenticatedAccountsAccountIdMembersRouteImport - parentRoute: typeof AuthenticatedAccountsAccountIdRoute - } - } -} - -interface AuthenticatedAccountsAccountIdRouteChildren { - AuthenticatedAccountsAccountIdMembersRoute: typeof AuthenticatedAccountsAccountIdMembersRoute - AuthenticatedAccountsAccountIdPaymentMethodsRoute: typeof AuthenticatedAccountsAccountIdPaymentMethodsRoute - AuthenticatedAccountsAccountIdProcessorLinksRoute: typeof AuthenticatedAccountsAccountIdProcessorLinksRoute - AuthenticatedAccountsAccountIdTaxExemptionsRoute: typeof AuthenticatedAccountsAccountIdTaxExemptionsRoute - AuthenticatedAccountsAccountIdIndexRoute: typeof AuthenticatedAccountsAccountIdIndexRoute -} - -const AuthenticatedAccountsAccountIdRouteChildren: AuthenticatedAccountsAccountIdRouteChildren = - { - AuthenticatedAccountsAccountIdMembersRoute: - AuthenticatedAccountsAccountIdMembersRoute, - AuthenticatedAccountsAccountIdPaymentMethodsRoute: - AuthenticatedAccountsAccountIdPaymentMethodsRoute, - AuthenticatedAccountsAccountIdProcessorLinksRoute: - AuthenticatedAccountsAccountIdProcessorLinksRoute, - AuthenticatedAccountsAccountIdTaxExemptionsRoute: - AuthenticatedAccountsAccountIdTaxExemptionsRoute, - AuthenticatedAccountsAccountIdIndexRoute: - AuthenticatedAccountsAccountIdIndexRoute, - } - -const AuthenticatedAccountsAccountIdRouteWithChildren = - AuthenticatedAccountsAccountIdRoute._addFileChildren( - AuthenticatedAccountsAccountIdRouteChildren, - ) - -interface AuthenticatedRouteChildren { - AuthenticatedHelpRoute: typeof AuthenticatedHelpRoute - AuthenticatedProfileRoute: typeof AuthenticatedProfileRoute - AuthenticatedUsersRoute: typeof AuthenticatedUsersRoute - AuthenticatedIndexRoute: typeof AuthenticatedIndexRoute - AuthenticatedAccountsAccountIdRoute: typeof AuthenticatedAccountsAccountIdRouteWithChildren - AuthenticatedAccountsNewRoute: typeof AuthenticatedAccountsNewRoute - AuthenticatedMembersMemberIdRoute: typeof AuthenticatedMembersMemberIdRoute - AuthenticatedRolesRoleIdRoute: typeof AuthenticatedRolesRoleIdRoute - AuthenticatedRolesNewRoute: typeof AuthenticatedRolesNewRoute - AuthenticatedAccountsIndexRoute: typeof AuthenticatedAccountsIndexRoute - AuthenticatedMembersIndexRoute: typeof AuthenticatedMembersIndexRoute - AuthenticatedRolesIndexRoute: typeof AuthenticatedRolesIndexRoute -} - -const AuthenticatedRouteChildren: AuthenticatedRouteChildren = { - AuthenticatedHelpRoute: AuthenticatedHelpRoute, - AuthenticatedProfileRoute: AuthenticatedProfileRoute, - AuthenticatedUsersRoute: AuthenticatedUsersRoute, - AuthenticatedIndexRoute: AuthenticatedIndexRoute, - AuthenticatedAccountsAccountIdRoute: - AuthenticatedAccountsAccountIdRouteWithChildren, - AuthenticatedAccountsNewRoute: AuthenticatedAccountsNewRoute, - AuthenticatedMembersMemberIdRoute: AuthenticatedMembersMemberIdRoute, - AuthenticatedRolesRoleIdRoute: AuthenticatedRolesRoleIdRoute, - AuthenticatedRolesNewRoute: AuthenticatedRolesNewRoute, - AuthenticatedAccountsIndexRoute: AuthenticatedAccountsIndexRoute, - AuthenticatedMembersIndexRoute: AuthenticatedMembersIndexRoute, - AuthenticatedRolesIndexRoute: AuthenticatedRolesIndexRoute, -} - -const AuthenticatedRouteWithChildren = AuthenticatedRoute._addFileChildren( - AuthenticatedRouteChildren, -) - -const rootRouteChildren: RootRouteChildren = { - AuthenticatedRoute: AuthenticatedRouteWithChildren, - LoginRoute: LoginRoute, -} -export const routeTree = rootRouteImport - ._addFileChildren(rootRouteChildren) - ._addFileTypes() diff --git a/packages/admin/index.html b/packages/admin/index.html index cc7e081..2c3cc92 100644 --- a/packages/admin/index.html +++ b/packages/admin/index.html @@ -3,13 +3,13 @@ - Forte Admin + LunarFront Admin