diff --git a/.changeset/config.json b/.changeset/config.json index 32c538a08..cc95104ae 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -2,7 +2,7 @@ "$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json", "changelog": [ "@svitejs/changesets-changelog-github-compact", - { "repo": "TanStack/optimistic" } + { "repo": "TanStack/db" } ], "commit": false, "access": "public", diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..cfc170dbe --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,13 @@ +## šŸŽÆ Changes + + + +## āœ… Checklist + +- [ ] I have followed the steps in the [Contributing guide](https://github.com/TanStack/db/blob/main/CONTRIBUTING.md). +- [ ] I have tested this code locally with `pnpm test:pr`. + +## šŸš€ Release Impact + +- [ ] This change affects published code, and I have generated a [changeset](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md). +- [ ] This change is docs/CI/dev-only (no release). diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 000000000..aa175e3b7 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "configMigration": true, + "extends": [ + "config:recommended", + "group:allNonMajor", + "schedule:weekly", + ":approveMajorUpdates", + ":automergeMinor", + ":disablePeerDependencies", + ":maintainLockFilesMonthly", + ":semanticCommits", + ":semanticCommitTypeAll(chore)" + ], + "ignorePresets": [":ignoreModulesAndTests"], + "labels": ["dependencies"], + "rangeStrategy": "bump", + "postUpdateOptions": ["pnpmDedupe"], + "ignoreDeps": ["@types/node", "node", "typescript"] +} diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml index a5d773afe..933a6edc4 100644 --- a/.github/workflows/autofix.yml +++ b/.github/workflows/autofix.yml @@ -18,7 +18,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 + with: + fetch-depth: 0 - name: Setup Tools uses: tanstack/config/.github/setup@main - name: Fix formatting diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index e7240c769..472b8ec28 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -23,13 +23,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 with: fetch-depth: 0 - name: Setup Tools uses: tanstack/config/.github/setup@main - name: Get base and head commits for `nx affected` - uses: nrwl/nx-set-shas@v4.3.0 + uses: nrwl/nx-set-shas@v4.3.3 with: main-branch-name: main - name: Run Checks @@ -39,7 +39,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 with: fetch-depth: 0 - name: Setup Tools @@ -65,7 +65,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 - name: Setup Tools uses: tanstack/config/.github/setup@main - name: Build Packages @@ -79,7 +79,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 - name: Setup Tools uses: tanstack/config/.github/setup@main - name: Build Packages diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7749bb0b4..9b67f7b67 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4.2.2 + uses: actions/checkout@v5.0.0 with: fetch-depth: 0 - name: Setup Tools @@ -31,7 +31,7 @@ jobs: - name: Run Tests run: pnpm run lint && pnpm run build && pnpm run test - name: Run Changesets (version or publish) - uses: changesets/action@v1.4.9 + uses: changesets/action@v1.5.3 with: version: pnpm run changeset:version publish: pnpm run changeset:publish diff --git a/.npmrc b/.npmrc index 84aee8d99..268c392d3 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1 @@ -link-workspace-packages=true -prefer-workspace-packages=true provenance=true diff --git a/.nvmrc b/.nvmrc index d5b283a3a..b40402760 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.13.1 +24.8.0 diff --git a/eslint.config.mjs b/eslint.config.js similarity index 100% rename from eslint.config.mjs rename to eslint.config.js diff --git a/package.json b/package.json index e53cef3d2..2d8b256eb 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,12 @@ { - "name": "@tanstack/db-monorepo", + "name": "root", "private": true, - "description": "Reactive client queryable store for sync-first applications", - "version": "0.0.0", "repository": { "type": "git", "url": "https://github.com/tanstack/db.git" }, - "author": "Kyle Mathews ", - "packageManager": "pnpm@10.6.3", + "packageManager": "pnpm@10.17.0", "type": "module", - "keywords": [], - "license": "MIT", "scripts": { "build": "pnpm --filter \"./packages/**\" build", "changeset": "changeset", @@ -43,42 +38,25 @@ "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.5", - "fast-glob": "^3.3.3", "husky": "^9.1.7", "jsdom": "^26.1.0", + "knip": "^5.63.1", "lint-staged": "^15.5.2", "markdown-link-extractor": "^4.0.2", "mitt": "^3.0.1", "prettier": "^3.6.2", - "publint": "^0.3.12", + "publint": "^0.3.13", + "sherif": "^1.6.1", "shx": "^0.4.0", - "tsup": "^8.5.0", + "tinyglobby": "^0.2.15", "typescript": "^5.9.2", "vite": "^6.3.6", "vitest": "^3.2.4", "zod": "^3.25.76" }, - "exports": { - "./package.json": "./package.json" - }, - "files": [ - "dist", - "src" - ], "lint-staged": { "*.{ts,tsx}": [ "eslint --fix" ] - }, - "workspaces": [ - "packages/*", - "examples/*", - "examples/react/*" - ], - "overrides": { - "@tanstack/db": "workspace:*", - "@tanstack/db-ivm": "workspace:*", - "@tanstack/react-db": "workspace:*", - "@tanstack/vue-db": "workspace:*" } } diff --git a/packages/electric-db-collection/src/electric.ts b/packages/electric-db-collection/src/electric.ts index dd9c9d2d4..b4c507093 100644 --- a/packages/electric-db-collection/src/electric.ts +++ b/packages/electric-db-collection/src/electric.ts @@ -182,7 +182,7 @@ export function electricCollectionOptions( const wrappedOnInsert = config.onInsert ? async (params: InsertMutationFnParams) => { // Runtime check (that doesn't follow type) - // eslint-disable-next-line + const handlerResult = (await config.onInsert!(params)) ?? {} const txid = (handlerResult as { txid?: Txid | Array }).txid @@ -204,7 +204,7 @@ export function electricCollectionOptions( const wrappedOnUpdate = config.onUpdate ? async (params: UpdateMutationFnParams) => { // Runtime check (that doesn't follow type) - // eslint-disable-next-line + const handlerResult = (await config.onUpdate!(params)) ?? {} const txid = (handlerResult as { txid?: Txid | Array }).txid diff --git a/packages/electric-db-collection/tests/electric.test-d.ts b/packages/electric-db-collection/tests/electric.test-d.ts index 649e4296f..b45d47370 100644 --- a/packages/electric-db-collection/tests/electric.test-d.ts +++ b/packages/electric-db-collection/tests/electric.test-d.ts @@ -200,7 +200,7 @@ describe(`Electric collection type resolution tests`, () => { query: (q) => q .from({ user: usersCollection }) - .where(({ user }) => eq(user.active, true) && gt(user.age, 18)) // eslint-disable-line @typescript-eslint/no-unnecessary-condition + .where(({ user }) => eq(user.active, true) && gt(user.age, 18)) .select(({ user }) => ({ id: user.id, name: user.name, diff --git a/packages/query-db-collection/src/query.ts b/packages/query-db-collection/src/query.ts index b96e2946f..da1ef286c 100644 --- a/packages/query-db-collection/src/query.ts +++ b/packages/query-db-collection/src/query.ts @@ -338,7 +338,6 @@ export function queryCollectionOptions( throw new QueryClientRequiredError() } - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (!getKey) { throw new GetKeyRequiredError() } diff --git a/packages/query-db-collection/tests/query.test-d.ts b/packages/query-db-collection/tests/query.test-d.ts index 747095435..b6f7aefaa 100644 --- a/packages/query-db-collection/tests/query.test-d.ts +++ b/packages/query-db-collection/tests/query.test-d.ts @@ -166,7 +166,7 @@ describe(`Query collection type resolution tests`, () => { query: (q) => q .from({ user: usersCollection }) - .where(({ user }) => eq(user.active, true) && gt(user.age, 18)) // eslint-disable-line @typescript-eslint/no-unnecessary-condition + .where(({ user }) => eq(user.active, true) && gt(user.age, 18)) .select(({ user }) => ({ id: user.id, name: user.name, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 81c5196b7..c60585fb0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -59,15 +59,15 @@ importers: eslint-plugin-react: specifier: ^7.37.5 version: 7.37.5(eslint@9.35.0(jiti@2.5.1)) - fast-glob: - specifier: ^3.3.3 - version: 3.3.3 husky: specifier: ^9.1.7 version: 9.1.7 jsdom: specifier: ^26.1.0 version: 26.1.0 + knip: + specifier: ^5.63.1 + version: 5.64.0(@types/node@22.18.1)(typescript@5.9.2) lint-staged: specifier: ^15.5.2 version: 15.5.2 @@ -81,14 +81,17 @@ importers: specifier: ^3.6.2 version: 3.6.2 publint: - specifier: ^0.3.12 - version: 0.3.12 + specifier: ^0.3.13 + version: 0.3.13 + sherif: + specifier: ^1.6.1 + version: 1.6.1 shx: specifier: ^0.4.0 version: 0.4.0 - tsup: - specifier: ^8.5.0 - version: 8.5.0(@microsoft/api-extractor@7.47.7(@types/node@22.18.1))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.1) + tinyglobby: + specifier: ^0.2.15 + version: 0.2.15 typescript: specifier: ^5.9.2 version: 5.9.2 @@ -2507,6 +2510,9 @@ packages: '@napi-rs/wasm-runtime@1.0.4': resolution: {integrity: sha512-+ZEtJPp8EF8h4kN6rLQECRor00H7jtDgBVtttIUoxuDkXLiQMaSBqju3LV/IEsMvqVG5pviUvR4jYhIA1xNm8w==} + '@napi-rs/wasm-runtime@1.0.5': + resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} + '@netlify/blobs@9.1.2': resolution: {integrity: sha512-7dMjExSH4zj4ShvLem49mE3mf0K171Tx2pV4WDWhJbRUWW3SJIR2qntz0LvUGS97N5HO1SmnzrgWUhEXCsApiw==} engines: {node: ^14.16.0 || >=16.0.0} @@ -2606,6 +2612,101 @@ packages: '@oxc-project/types@0.81.0': resolution: {integrity: sha512-CnOqkybZK8z6Gx7Wb1qF7AEnSzbol1WwcIzxYOr8e91LytGOjo0wCpgoYWZo8sdbpqX+X+TJayIzo4Pv0R/KjA==} + '@oxc-resolver/binding-android-arm-eabi@11.8.2': + resolution: {integrity: sha512-7hykBf8S24IRbO4ueulT9SfYQjTeSOOimKc/CQrWXIWQy1WTePXSNcPq2RkVHO7DdLM8p8X4DVPYy+850Bo93g==} + cpu: [arm] + os: [android] + + '@oxc-resolver/binding-android-arm64@11.8.2': + resolution: {integrity: sha512-y41bxENMjlFuLSLCPWd4A+1PR7T5rU9+e7+4alje3sHgrpRmS3hIU+b1Cvck4qmcUgd0I98NmYxRM65kXGEObQ==} + cpu: [arm64] + os: [android] + + '@oxc-resolver/binding-darwin-arm64@11.8.2': + resolution: {integrity: sha512-P/Zobk9OwQAblAMeiVyOtuX2LjGN8oq5HonvN3mp9S6Kx1GKxREbf5qW+g24Rvhf5WS7et+EmopUGRHSdAItGQ==} + cpu: [arm64] + os: [darwin] + + '@oxc-resolver/binding-darwin-x64@11.8.2': + resolution: {integrity: sha512-EMAQoO9uTiz2H0z71bVzTL77eoBAlN5+KD7HUc9ayYJ5TprU+Oeaml4y4fmsFyspSPN/vGJzEvOWl5GR0adwtw==} + cpu: [x64] + os: [darwin] + + '@oxc-resolver/binding-freebsd-x64@11.8.2': + resolution: {integrity: sha512-Fzeupf4tH9woMm6O/pirEtuzO5docwTrs747Nxqh33OSkz7GbrevyDpx1Q1pc2l3JA2BlDX4zm18tW5ys65bjA==} + cpu: [x64] + os: [freebsd] + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.8.2': + resolution: {integrity: sha512-r9IiPTwc5STC2JahU/rfkbO2BE14MqAVmFbtF7uW7KFaZX/lUnFltkQ5jpwAgKqcef5aIZTJI95qJ03XZw08Rg==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm-musleabihf@11.8.2': + resolution: {integrity: sha512-Q5D8FbxOyQYcWn5s9yv+DyFvcMSUXE87hmL9WG6ICdNZiMUA8DmIbzK1xEnOtDjorEFU44bwH3I9SnqL1kyOsg==} + cpu: [arm] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-gnu@11.8.2': + resolution: {integrity: sha512-8g2Y72gavZ8fesZD22cKo0Z8g8epynwShu7M+wpAoOq432IGUyUxPUKB2/nvyogPToaAlb1OsRiX/za8W4h8Aw==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-arm64-musl@11.8.2': + resolution: {integrity: sha512-N3BPWnIDRmHn/xPDZGKnzFwWxwH1hvs3aVnw4jvMAYarPNDZfbAY+fjHSIwkypV+ozMoJ5lK5PzRO5BOtEx2oQ==} + cpu: [arm64] + os: [linux] + + '@oxc-resolver/binding-linux-ppc64-gnu@11.8.2': + resolution: {integrity: sha512-AXW2AyjENmzNuZD3Z2TO1QWoZzfULWR1otDzw/+MAVMRXBy3W50XxDqNAflRiLB4o0aI0oDTwMfeyuhVv9Ur8Q==} + cpu: [ppc64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-gnu@11.8.2': + resolution: {integrity: sha512-oX+qxJdqOfrJUkGWmcNpu7wiFs6E7KH6hqUORkMAgl4yW+LZxPTz5P4DHvTqTFMywbs9hXVu2KQrdD8ROrdhMQ==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-riscv64-musl@11.8.2': + resolution: {integrity: sha512-TG7LpxXjqlpD1aWnAXw6vMgY74KNV92exPixzEj4AKm4LdGsfnSWYTTJcTQ7deFMYxvBGrZ+qEy8DjGx+5w9GQ==} + cpu: [riscv64] + os: [linux] + + '@oxc-resolver/binding-linux-s390x-gnu@11.8.2': + resolution: {integrity: sha512-1PpXMq0KMD3CQPn3v/UqU4NM2JFjry+mLIH1d3iNVL2vlwRt9lxRfpXTiyiFJrtroUIyeKhw0QbHbF2UfnZVKQ==} + cpu: [s390x] + os: [linux] + + '@oxc-resolver/binding-linux-x64-gnu@11.8.2': + resolution: {integrity: sha512-V1iYhEDbjQzj+o7JgTYVllRgNZ56Tjw0rPBWw03KJQ8Nphy00Vf7AySf22vV0K/93V1lPCgOSbI5/iunRnIfAw==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-linux-x64-musl@11.8.2': + resolution: {integrity: sha512-2hYNXEZSUM7qLEk4uuY3GmMqLU+860v+8PzbloVvRRjTWtHsLZyB5w+5p2gel38eaTcSYfZ2zvp3xcSpKDAbaw==} + cpu: [x64] + os: [linux] + + '@oxc-resolver/binding-wasm32-wasi@11.8.2': + resolution: {integrity: sha512-TjFqB+1siSqhd+S64Hf2qbxqWqtFIlld4DDEVotxOjj5//rX/6uwAL1HWnUHSNIni+wpcyQoXPhO3fBgppCvuA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-resolver/binding-win32-arm64-msvc@11.8.2': + resolution: {integrity: sha512-fs0X6RcAC/khWbXIhPaYQjFHkrFVUtC2IOw1QEx2unRoe6M11tlYbY9NHr3VFBC3nwVpodX+b14A7jGMkAQK8A==} + cpu: [arm64] + os: [win32] + + '@oxc-resolver/binding-win32-ia32-msvc@11.8.2': + resolution: {integrity: sha512-7oEl1ThswVePprRQFc3tzW9IZgVi5xaus/KP3k56eKi2tYpAM0hBvehD8WBsmpgBEb7pe2pI08h9OZveAddt3Q==} + cpu: [ia32] + os: [win32] + + '@oxc-resolver/binding-win32-x64-msvc@11.8.2': + resolution: {integrity: sha512-MngRjE/gpQpg3QcnWRqxX5Nbr/vZJSG7oxhXeHUeOhdFgg+0xCuGpDtwqFmGGVKnd6FQg0gKVo1MqDAERLkEPA==} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -3642,6 +3743,9 @@ packages: '@tybys/wasm-util@0.10.0': resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/argparse@1.0.38': resolution: {integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==} @@ -4402,12 +4506,6 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - bytes@3.1.2: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} @@ -5551,6 +5649,9 @@ packages: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} + fd-package-json@2.0.0: + resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -5602,9 +5703,6 @@ packages: firebase@11.10.0: resolution: {integrity: sha512-nKBXoDzF0DrXTBQJlZa+sbC5By99ysYU1D6PkMRYknm0nCW7rJly47q492Ht7Ndz5MeYSBuboKuhS1e6mFC03w==} - fix-dts-default-cjs-exports@1.0.1: - resolution: {integrity: sha512-pVIECanWFC61Hzl2+oOCtoJ3F17kglZC/6N94eRWycFgBH35hHx0Li604ZIzhseh97mf2p0cv7vVrOZGoqhlEg==} - flat-cache@4.0.1: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} @@ -5629,6 +5727,11 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} + formatly@0.3.0: + resolution: {integrity: sha512-9XNj/o4wrRFyhSMJOvsuyMwy8aUfBaZ1VrqHVfohyXf0Sw0e+yfKG+xZaY3arGCOMdwFsqObtzVOc1gU9KiT9w==} + engines: {node: '>=18.3.0'} + hasBin: true + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -6317,10 +6420,6 @@ packages: jose@6.1.0: resolution: {integrity: sha512-TTQJyoEoKcC1lscpVDCSsVgYzUDg/0Bt3WE//WiTPK6uOCQC2KZS4MpugbMWt/zyjkopgZoXhZuCi00gLudfUA==} - joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} - js-base64@3.7.8: resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==} @@ -6440,6 +6539,14 @@ packages: resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==} engines: {node: '>= 8'} + knip@5.64.0: + resolution: {integrity: sha512-UqDlVXXacGy5YL+PXKrolqRpC7DkGTYs+to67KmWBHIUrTh8SX9gQoGNdFsNZtbj4pCdM/RmC/Rbze555+MhSA==} + engines: {node: '>=18.18.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4' + knitwork@1.2.0: resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==} @@ -6556,10 +6663,6 @@ packages: resolution: {integrity: sha512-nwVGUfTBUwJKXd6lRV8pFNfnrCC1+l49ESJRM19t/tFb/97QfJEixe5DYRvug5JO7DSFKoKaVy7oGMt5rVqZvg==} hasBin: true - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - local-pkg@0.5.1: resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} engines: {node: '>=14'} @@ -6609,9 +6712,6 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash.sortby@4.7.0: - resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -7193,6 +7293,9 @@ packages: resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} engines: {node: '>= 0.4'} + oxc-resolver@11.8.2: + resolution: {integrity: sha512-SM31gnF1l4T8YA7dkAcBhA+jc336bc8scy0Tetz6ndzGmV6c0R99SRnx6In0V5ffwvn1Isjo9I9EGSLF4xi3TA==} + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -7468,24 +7571,6 @@ packages: ts-node: optional: true - postcss-load-config@6.0.1: - resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} - engines: {node: '>= 18'} - peerDependencies: - jiti: '>=1.21.0' - postcss: '>=8.0.9' - tsx: ^4.8.1 - yaml: ^2.4.2 - peerDependenciesMeta: - jiti: - optional: true - postcss: - optional: true - tsx: - optional: true - yaml: - optional: true - postcss-media-query-parser@0.2.3: resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} @@ -7583,6 +7668,11 @@ packages: engines: {node: '>=18'} hasBin: true + publint@0.3.13: + resolution: {integrity: sha512-NC+lph09+BRO9LJgKlIy3WQXyu6/6WDQ0dCA60KALUwdKVf3PfGuC6fY8I+oKB/5kEPh50aOSUz+6yWy1n4EfA==} + engines: {node: '>=18'} + hasBin: true + pump@3.0.3: resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} @@ -7961,6 +8051,40 @@ packages: engines: {node: '>=18'} hasBin: true + sherif-darwin-arm64@1.6.1: + resolution: {integrity: sha512-J15oBJcrnCAZ0rQE8WbMShYw3204A18akCH6C/uZrILTwX/vZyJIqi7lAt5L00LzsadA3HcyQqVjLNNCvuihoQ==} + cpu: [arm64] + os: [darwin] + + sherif-darwin-x64@1.6.1: + resolution: {integrity: sha512-oLA/GtvUasi+qCl35LczOhQ4g/xY2mxE5/eiTYQGT3Ow7FKLscnkE6v5l28bgkFeR/uke0AgZ/CgHhozAf0ulg==} + cpu: [x64] + os: [darwin] + + sherif-linux-arm64@1.6.1: + resolution: {integrity: sha512-OoltlucT7v9BZdkYZRbs1QU0DYMCQ5qgpMqQdMW1Rq3w3amr7+oEiV9NHntD83udOo8xRxKq0uPXfNYu+VptJw==} + cpu: [arm64] + os: [linux] + + sherif-linux-x64@1.6.1: + resolution: {integrity: sha512-qyDyYqpi3ABGkRuCnjnxN3OMT8DxMiiLzhS9p9xC05Y9nr5hjkxvqP4DdJ4e5opm4E7vzRAS7VQoZ6m7h6tsgQ==} + cpu: [x64] + os: [linux] + + sherif-windows-arm64@1.6.1: + resolution: {integrity: sha512-wAbCiqP//lo7bZUlHmZUV3/sGjnJxo6QB5/fqhz5/GUeWh4CTyvlSacJKZxLnXnzpiUSeFnWutquWnHkRov5Ug==} + cpu: [arm64] + os: [win32] + + sherif-windows-x64@1.6.1: + resolution: {integrity: sha512-2r0qMxZGCMO2aq8Hlq7npxtAsUFVDsEFtUM/6dFo1npa/jHe2mbU7ii/Ymy0bloSa/qw/azrSfRV6GLU7Gjtxg==} + cpu: [x64] + os: [win32] + + sherif@1.6.1: + resolution: {integrity: sha512-ZnwyTnmXoUOPClkOA37JWIyFxCoozMGHmhk/p7XbTREI554XXCnBAn3BMX8UsqkhSzQ9eNQsq4U+jnImEIppsQ==} + hasBin: true + shx@0.4.0: resolution: {integrity: sha512-Z0KixSIlGPpijKgcH6oCMCbltPImvaKy0sGH8AkLRXw1KyzpKtaCTizP2xen+hNDqVF4xxgvA0KXSb9o4Q6hnA==} engines: {node: '>=18'} @@ -8025,6 +8149,10 @@ packages: smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + smol-toml@1.4.2: + resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} + engines: {node: '>= 18'} + socket.io-adapter@2.5.5: resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} @@ -8070,11 +8198,6 @@ packages: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} - 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 - sparse-bitfield@3.0.3: resolution: {integrity: sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==} @@ -8213,6 +8336,10 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-json-comments@5.0.2: + resolution: {integrity: sha512-4X2FR3UwhNUE9G49aIsJW5hRRR3GXGTBTZRMfv568O60ojM8HcWjV/VxAxCDW3SUND33O6ZY66ZuRcdkj73q2g==} + engines: {node: '>=14.16'} + strip-literal@3.0.0: resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} @@ -8389,9 +8516,6 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@1.0.1: - resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - tr46@5.1.1: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} @@ -8430,25 +8554,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsup@8.5.0: - resolution: {integrity: sha512-VmBp77lWNQq6PfuMqCHD3xWl22vEoWsKajkF8t+yMBawlUS8JzEI+vOVMeuNZIuMML8qXRizFKi9oD5glKQVcQ==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - '@microsoft/api-extractor': ^7.36.0 - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.5.0' - peerDependenciesMeta: - '@microsoft/api-extractor': - optional: true - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - tsx@4.20.5: resolution: {integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==} engines: {node: '>=18.0.0'} @@ -8930,6 +9035,10 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} + walk-up-path@4.0.0: + resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==} + engines: {node: 20 || >=22} + watchpack@2.4.4: resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} engines: {node: '>=10.13.0'} @@ -8950,9 +9059,6 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - webidl-conversions@7.0.0: resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} engines: {node: '>=12'} @@ -8983,9 +9089,6 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - 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'} @@ -9171,6 +9274,12 @@ packages: peerDependencies: zod: ^3.24.1 + zod-validation-error@3.5.3: + resolution: {integrity: sha512-OT5Y8lbUadqVZCsnyFaTQ4/O2mys4tj7PqhdbBCp7McPwvIEKfPtdA6QfPeFQK2/Rz5LgwmAXRJTugBNBi0btw==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.25.0 || ^4.0.0 + zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -10996,6 +11105,13 @@ snapshots: '@tybys/wasm-util': 0.10.0 optional: true + '@napi-rs/wasm-runtime@1.0.5': + dependencies: + '@emnapi/core': 1.5.0 + '@emnapi/runtime': 1.5.0 + '@tybys/wasm-util': 0.10.1 + optional: true + '@netlify/blobs@9.1.2': dependencies: '@netlify/dev-utils': 2.2.0 @@ -11121,6 +11237,65 @@ snapshots: '@oxc-project/types@0.81.0': {} + '@oxc-resolver/binding-android-arm-eabi@11.8.2': + optional: true + + '@oxc-resolver/binding-android-arm64@11.8.2': + optional: true + + '@oxc-resolver/binding-darwin-arm64@11.8.2': + optional: true + + '@oxc-resolver/binding-darwin-x64@11.8.2': + optional: true + + '@oxc-resolver/binding-freebsd-x64@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-arm-musleabihf@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-ppc64-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-riscv64-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-riscv64-musl@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-s390x-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@11.8.2': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@11.8.2': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@11.8.2': + dependencies: + '@napi-rs/wasm-runtime': 1.0.5 + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.8.2': + optional: true + + '@oxc-resolver/binding-win32-ia32-msvc@11.8.2': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@11.8.2': + optional: true + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -12673,6 +12848,11 @@ snapshots: tslib: 2.8.1 optional: true + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@types/argparse@1.0.38': {} '@types/aria-query@5.0.4': {} @@ -13643,11 +13823,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - bundle-require@5.1.0(esbuild@0.25.9): - dependencies: - esbuild: 0.25.9 - load-tsconfig: 0.2.5 - bytes@3.1.2: {} c12@3.2.0(magicast@0.3.5): @@ -14844,6 +15019,10 @@ snapshots: dependencies: websocket-driver: 0.7.4 + fd-package-json@2.0.0: + dependencies: + walk-up-path: 4.0.0 + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -14949,12 +15128,6 @@ snapshots: transitivePeerDependencies: - '@react-native-async-storage/async-storage' - fix-dts-default-cjs-exports@1.0.1: - dependencies: - magic-string: 0.30.19 - mlly: 1.8.0 - rollup: 4.50.1 - flat-cache@4.0.1: dependencies: flatted: 3.3.3 @@ -14973,6 +15146,10 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 + formatly@0.3.0: + dependencies: + fd-package-json: 2.0.0 + formdata-polyfill@4.0.10: dependencies: fetch-blob: 3.2.0 @@ -15676,8 +15853,6 @@ snapshots: jose@6.1.0: {} - joycon@3.1.1: {} - js-base64@3.7.8: {} js-tokens@4.0.0: {} @@ -15829,6 +16004,24 @@ snapshots: klona@2.0.6: {} + knip@5.64.0(@types/node@22.18.1)(typescript@5.9.2): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@types/node': 22.18.1 + fast-glob: 3.3.3 + formatly: 0.3.0 + jiti: 2.5.1 + js-yaml: 4.1.0 + minimist: 1.2.8 + oxc-resolver: 11.8.2 + picocolors: 1.1.1 + picomatch: 4.0.3 + smol-toml: 1.4.2 + strip-json-comments: 5.0.2 + typescript: 5.9.2 + zod: 3.25.76 + zod-validation-error: 3.5.3(zod@3.25.76) + knitwork@1.2.0: {} known-css-properties@0.30.0: {} @@ -15970,8 +16163,6 @@ snapshots: '@lmdb/lmdb-win32-x64': 3.4.2 optional: true - load-tsconfig@0.2.5: {} - local-pkg@0.5.1: dependencies: mlly: 1.8.0 @@ -16016,8 +16207,6 @@ snapshots: lodash.merge@4.6.2: {} - lodash.sortby@4.7.0: {} - lodash.startcase@4.4.0: {} lodash@4.17.21: {} @@ -16791,6 +16980,30 @@ snapshots: object-keys: 1.1.1 safe-push-apply: 1.0.0 + oxc-resolver@11.8.2: + dependencies: + napi-postinstall: 0.3.3 + optionalDependencies: + '@oxc-resolver/binding-android-arm-eabi': 11.8.2 + '@oxc-resolver/binding-android-arm64': 11.8.2 + '@oxc-resolver/binding-darwin-arm64': 11.8.2 + '@oxc-resolver/binding-darwin-x64': 11.8.2 + '@oxc-resolver/binding-freebsd-x64': 11.8.2 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.8.2 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.8.2 + '@oxc-resolver/binding-linux-arm64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-arm64-musl': 11.8.2 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-riscv64-musl': 11.8.2 + '@oxc-resolver/binding-linux-s390x-gnu': 11.8.2 + '@oxc-resolver/binding-linux-x64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-x64-musl': 11.8.2 + '@oxc-resolver/binding-wasm32-wasi': 11.8.2 + '@oxc-resolver/binding-win32-arm64-msvc': 11.8.2 + '@oxc-resolver/binding-win32-ia32-msvc': 11.8.2 + '@oxc-resolver/binding-win32-x64-msvc': 11.8.2 + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -17045,15 +17258,6 @@ snapshots: optionalDependencies: postcss: 8.5.6 - postcss-load-config@6.0.1(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.5)(yaml@2.8.1): - dependencies: - lilconfig: 3.1.3 - optionalDependencies: - jiti: 2.5.1 - postcss: 8.5.6 - tsx: 4.20.5 - yaml: 2.8.1 - postcss-media-query-parser@0.2.3: {} postcss-nested@6.2.0(postcss@8.5.6): @@ -17148,6 +17352,13 @@ snapshots: picocolors: 1.1.1 sade: 1.8.1 + publint@0.3.13: + dependencies: + '@publint/pack': 0.1.2 + package-manager-detector: 1.3.0 + picocolors: 1.1.1 + sade: 1.8.1 + pump@3.0.3: dependencies: end-of-stream: 1.4.5 @@ -17655,6 +17866,33 @@ snapshots: interpret: 1.4.0 rechoir: 0.6.2 + sherif-darwin-arm64@1.6.1: + optional: true + + sherif-darwin-x64@1.6.1: + optional: true + + sherif-linux-arm64@1.6.1: + optional: true + + sherif-linux-x64@1.6.1: + optional: true + + sherif-windows-arm64@1.6.1: + optional: true + + sherif-windows-x64@1.6.1: + optional: true + + sherif@1.6.1: + optionalDependencies: + sherif-darwin-arm64: 1.6.1 + sherif-darwin-x64: 1.6.1 + sherif-linux-arm64: 1.6.1 + sherif-linux-x64: 1.6.1 + sherif-windows-arm64: 1.6.1 + sherif-windows-x64: 1.6.1 + shx@0.4.0: dependencies: minimist: 1.2.8 @@ -17743,6 +17981,8 @@ snapshots: smob@1.5.0: {} + smol-toml@1.4.2: {} + socket.io-adapter@2.5.5: dependencies: debug: 4.3.7 @@ -17814,10 +18054,6 @@ snapshots: source-map@0.7.6: {} - source-map@0.8.0-beta.0: - dependencies: - whatwg-url: 7.1.0 - sparse-bitfield@3.0.3: dependencies: memory-pager: 1.5.0 @@ -17979,6 +18215,8 @@ snapshots: strip-json-comments@3.1.1: {} + strip-json-comments@5.0.2: {} + strip-literal@3.0.0: dependencies: js-tokens: 9.0.1 @@ -18195,10 +18433,6 @@ snapshots: tr46@0.0.3: {} - tr46@1.0.1: - dependencies: - punycode: 2.3.1 - tr46@5.1.1: dependencies: punycode: 2.3.1 @@ -18227,35 +18461,6 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.0(@microsoft/api-extractor@7.47.7(@types/node@22.18.1))(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.1): - dependencies: - bundle-require: 5.1.0(esbuild@0.25.9) - cac: 6.7.14 - chokidar: 4.0.3 - consola: 3.4.2 - debug: 4.4.1 - esbuild: 0.25.9 - fix-dts-default-cjs-exports: 1.0.1 - joycon: 3.1.1 - picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.5.1)(postcss@8.5.6)(tsx@4.20.5)(yaml@2.8.1) - resolve-from: 5.0.0 - rollup: 4.50.1 - source-map: 0.8.0-beta.0 - sucrase: 3.35.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tree-kill: 1.2.2 - optionalDependencies: - '@microsoft/api-extractor': 7.47.7(@types/node@22.18.1) - postcss: 8.5.6 - typescript: 5.9.2 - transitivePeerDependencies: - - jiti - - supports-color - - tsx - - yaml - tsx@4.20.5: dependencies: esbuild: 0.25.9 @@ -18899,6 +19104,8 @@ snapshots: dependencies: xml-name-validator: 5.0.0 + walk-up-path@4.0.0: {} + watchpack@2.4.4: dependencies: glob-to-regexp: 0.4.1 @@ -18916,8 +19123,6 @@ snapshots: webidl-conversions@3.0.1: {} - webidl-conversions@4.0.2: {} - webidl-conversions@7.0.0: {} webpack-virtual-modules@0.6.2: {} @@ -18946,12 +19151,6 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - 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 @@ -19150,6 +19349,10 @@ snapshots: dependencies: zod: 3.25.76 + zod-validation-error@3.5.3(zod@3.25.76): + dependencies: + zod: 3.25.76 + zod@3.25.76: {} zod@4.1.5: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e8da23a61..78eca2b88 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,98 +1,7 @@ +cleanupUnusedCatalogs: true +linkWorkspacePackages: true +preferWorkspacePackages: true + packages: - - "packages/**" - - "examples/**" -catalog: - "@changesets/cli": ^2.28.1 - "@electric-sql/client": 1.0.0 - "@electric-sql/d2mini": ^0.1.8 - "@eslint/js": ^9.22.0 - "@solid-primitives/map": ^0.7.2 - "@solidjs/testing-library": ^0.8.10 - "@standard-schema/spec": ^1.0.0 - "@stylistic/eslint-plugin": ^4.2.0 - "@sveltejs/package": ^2.4.0 - "@sveltejs/vite-plugin-svelte": ^6.1.0 - "@svitejs/changesets-changelog-github-compact": ^1.2.0 - "@tailwindcss/vite": ^4.0.0-alpha.8 - "@tanstack/config": ^0.20.0 - "@tanstack/electric-db-collection": ^0.0.9 - "@tanstack/query-core": ^5.75.7 - "@tanstack/query-db-collection": ^0.0.9 - "@tanstack/react-db": ^0.0.33 - "@tanstack/react-router": ^1.125.6 - "@tanstack/react-start": ^1.126.1 - "@tanstack/solid-db": ^0.0.27 - "@tanstack/solid-router": ^1.129.8 - "@tanstack/solid-start": ^1.126.1 - "@tanstack/store": ^0.7.0 - "@tanstack/trailbase-db-collection": ^0.0.3 - "@testing-library/jest-dom": ^6.6.3 - "@testing-library/react": ^16.2.0 - "@types/cors": ^2.8.17 - "@types/debug": ^4.1.12 - "@types/express": ^4.17.21 - "@types/node": ^22.13.10 - "@types/pg": ^8.11.11 - "@types/react": ^19.0.12 - "@types/react-dom": ^19.0.4 - "@types/use-sync-external-store": ^0.0.6 - "@typescript-eslint/eslint-plugin": ^8.26.1 - "@typescript-eslint/parser": ^8.26.1 - "@vitejs/plugin-react": ^4.3.4 - "@vitejs/plugin-vue": ^5.2.4 - "@vitest/coverage-istanbul": ^3.0.9 - arktype: ^2.1.20 - concurrently: ^9.2.0 - cors: ^2.8.5 - debug: ^4.4.1 - dotenv: ^16.3.1 - drizzle-kit: ^0.30.5 - drizzle-orm: ^0.40.1 - drizzle-zod: ^0.7.0 - eslint: ^9.22.0 - eslint-config-prettier: ^10.1.1 - eslint-plugin-prettier: ^5.2.3 - eslint-plugin-react: ^7.37.4 - eslint-plugin-react-hooks: ^5.2.0 - eslint-plugin-react-refresh: ^0.4.5 - eslint-plugin-solid: ^0.14.5 - express: ^4.19.2 - fast-glob: ^3.3.3 - husky: ^9.1.7 - jsdom: ^26.0.0 - lint-staged: ^15.5.0 - markdown-link-extractor: ^4.0.2 - mitt: ^3.0.1 - pg: ^8.14.1 - postgres: ^3.4.7 - prettier: ^3.5.3 - publint: ^0.3.9 - react: ^19.1.0 - react-dom: ^19.1.0 - shx: ^0.4.0 - solid-js: ^1.9.0 - svelte: ^5.28.6 - svelte-check: ^4.3.0 - tailwindcss: ^4.1.11 - trailbase: ^0.7.1 - tsup: ^8.0.2 - tsx: ^4.6.2 - typescript: ^5.8.2 - use-sync-external-store: ^1.2.0 - vite: ^6.3.6 - vite-plugin-solid: ^2.11.7 - vite-tsconfig-paths: ^5.1.4 - vitest: ^3.0.9 - vue: ^3.5.13 - zod: ^3.24.2 -catalogs: - conflicts_@types/react-dom_h19_0_3: - "@types/react-dom": ^19.0.3 - conflicts_react_h19_0_0: - react: ^19.0.0 - conflicts_react-dom_h19_0_0: - react-dom: ^19.0.0 - conflicts_solid-js_h1_9_7: - solid-js: ^1.9.7 - conflicts_publint_h0_3_2: - publint: ^0.3.2 + - packages/** + - examples/** diff --git a/renovate.json b/renovate.json deleted file mode 100644 index ee3821597..000000000 --- a/renovate.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:recommended", - ":dependencyDashboard", - ":semanticCommits", - ":separateMajorReleases", - ":combinePatchMinorReleases", - ":ignoreUnstable", - ":updateNotScheduled", - ":automergeDisabled", - "group:monorepos", - "group:recommended", - "workarounds:all" - ], - "timezone": "America/Los_Angeles", - "schedule": ["before 4am on Monday"], - "prCreation": "not-pending", - "prConcurrentLimit": 3, - "branchConcurrentLimit": 5, - "commitMessagePrefix": "chore:", - "semanticCommits": "enabled", - "dependencyDashboard": true, - "dependencyDashboardTitle": "Dependency Dashboard", - "assignees": ["@kylemathews"], - "reviewers": ["@kylemathews"], - "packageRules": [ - { - "description": "Group TanStack packages together", - "matchPackagePatterns": ["^@tanstack/"], - "groupName": "TanStack packages", - "automerge": false - }, - { - "description": "Group TypeScript and related packages", - "matchPackagePatterns": ["typescript", "@types/"], - "groupName": "TypeScript", - "automerge": false - }, - { - "description": "Group ESLint packages", - "matchPackagePatterns": ["eslint", "@eslint/", "@typescript-eslint/"], - "groupName": "ESLint", - "automerge": false - }, - { - "description": "Group Vite packages", - "matchPackagePatterns": ["vite", "@vitejs/", "vitest"], - "groupName": "Vite ecosystem", - "automerge": false - }, - { - "description": "Group React packages", - "matchPackagePatterns": ["react", "@types/react"], - "groupName": "React", - "automerge": false - }, - { - "description": "Auto-merge patch releases for dev dependencies", - "matchDepTypes": ["devDependencies"], - "matchUpdateTypes": ["patch"], - "automerge": true, - "automergeType": "pr" - }, - { - "description": "Weekly schedule for major updates", - "matchUpdateTypes": ["major"], - "schedule": ["before 4am on Monday"], - "reviewers": ["@kylemathews"] - }, - { - "description": "Pin pnpm version updates", - "matchManagers": ["npm"], - "matchPackageNames": ["pnpm"], - "rangeStrategy": "pin" - } - ], - "lockFileMaintenance": { - "enabled": true, - "schedule": ["before 4am on Monday"], - "automerge": true, - "automergeType": "pr" - }, - "osvVulnerabilityAlerts": true, - "vulnerabilityAlerts": { - "labels": ["security"], - "assignees": ["@kylemathews"], - "reviewers": ["@kylemathews"] - }, - "labels": ["dependencies"], - "ignorePaths": ["**/node_modules/**", "**/.output/**", "**/dist/**"] -} diff --git a/scripts/generateDocs.js b/scripts/generateDocs.js deleted file mode 100644 index e6da033fd..000000000 --- a/scripts/generateDocs.js +++ /dev/null @@ -1,121 +0,0 @@ -import { resolve } from "node:path" -import { fileURLToPath } from "node:url" -import { readFileSync, writeFileSync } from "node:fs" -import { generateReferenceDocs } from "@tanstack/config/typedoc" - -import fg from "fast-glob" - -const __dirname = fileURLToPath(new URL(`.`, import.meta.url)) - -/** @type {import('@tanstack/config/typedoc').Package[]} */ -const packages = [ - { - name: `db`, - entryPoints: [resolve(__dirname, `../packages/db/src/index.ts`)], - tsconfig: resolve(__dirname, `../packages/db/tsconfig.docs.json`), - outputDir: resolve(__dirname, `../docs/reference`), - }, - { - name: `electric-db-collection`, - entryPoints: [ - resolve(__dirname, `../packages/electric-db-collection/src/index.ts`), - ], - tsconfig: resolve( - __dirname, - `../packages/electric-db-collection/tsconfig.docs.json` - ), - outputDir: resolve(__dirname, `../docs/reference/electric-db-collection`), - exclude: [`packages/db/**/*`], - }, - { - name: `query-db-collection`, - entryPoints: [ - resolve(__dirname, `../packages/query-db-collection/src/index.ts`), - ], - tsconfig: resolve( - __dirname, - `../packages/query-db-collection/tsconfig.docs.json` - ), - outputDir: resolve(__dirname, `../docs/reference/query-db-collection`), - exclude: [`packages/db/**/*`], - }, - { - name: `react-db`, - entryPoints: [resolve(__dirname, `../packages/react-db/src/index.ts`)], - tsconfig: resolve(__dirname, `../packages/react-db/tsconfig.docs.json`), - outputDir: resolve(__dirname, `../docs/framework/react/reference`), - exclude: [`packages/db/**/*`], - }, - { - name: `solid-db`, - entryPoints: [resolve(__dirname, `../packages/solid-db/src/index.ts`)], - tsconfig: resolve(__dirname, `../packages/solid-db/tsconfig.docs.json`), - outputDir: resolve(__dirname, `../docs/framework/solid/reference`), - exclude: [`packages/db/**/*`], - }, - { - name: `svelte-db`, - entryPoints: [resolve(__dirname, `../packages/svelte-db/src/index.ts`)], - tsconfig: resolve(__dirname, `../packages/svelte-db/tsconfig.docs.json`), - outputDir: resolve(__dirname, `../docs/framework/svelte/reference`), - exclude: [`packages/db/**/*`], - }, - { - name: `trailbase-db-collection`, - entryPoints: [ - resolve(__dirname, `../packages/trailbase-db-collection/src/index.ts`), - ], - tsconfig: resolve( - __dirname, - `../packages/trailbase-db-collection/tsconfig.docs.json` - ), - outputDir: resolve(__dirname, `../docs/reference/trailbase-db-collection`), - exclude: [`packages/db/**/*`], - }, - { - name: `vue-db`, - entryPoints: [resolve(__dirname, `../packages/vue-db/src/index.ts`)], - tsconfig: resolve(__dirname, `../packages/vue-db/tsconfig.docs.json`), - outputDir: resolve(__dirname, `../docs/framework/vue/reference`), - exclude: [`packages/db/**/*`], - }, - { - name: `angular-db`, - entryPoints: [resolve(__dirname, `../packages/angular-db/src/index.ts`)], - tsconfig: resolve(__dirname, `../packages/angular-db/tsconfig.docs.json`), - outputDir: resolve(__dirname, `../docs/framework/angular/reference`), - exclude: [`packages/db/**/*`], - }, -] - -await generateReferenceDocs({ packages }) - -// Find all markdown files matching the pattern -const markdownFiles = [ - ...(await fg(`docs/reference/**/*.md`)), - ...(await fg(`docs/framework/*/reference/**/*.md`)), -] - -console.log(`Found ${markdownFiles.length} markdown files to process\n`) - -// Process each markdown file -markdownFiles.forEach((file) => { - const content = readFileSync(file, `utf-8`) - let updatedContent = content - updatedContent = updatedContent.replaceAll(/\]\(\.\.\//gm, `](../../`) - // updatedContent = content.replaceAll(/\]\(\.\//gm, '](../') - updatedContent = updatedContent.replaceAll( - /\]\((?!https?:\/\/|\/\/|\/|\.\/|\.\.\/|#)([^)]+)\)/gm, - (match, p1) => `](../${p1})` - ) - - // Write the updated content back to the file - if (updatedContent !== content) { - writeFileSync(file, updatedContent, `utf-8`) - console.log(`Processed file: ${file}`) - } -}) - -console.log(`\nāœ… All markdown files have been processed!`) - -process.exit(0) diff --git a/scripts/generateDocs.ts b/scripts/generateDocs.ts new file mode 100644 index 000000000..2d09a4a35 --- /dev/null +++ b/scripts/generateDocs.ts @@ -0,0 +1,122 @@ +import { resolve } from "node:path" +import { fileURLToPath } from "node:url" +import { readFileSync, writeFileSync } from "node:fs" +import { generateReferenceDocs } from "@tanstack/config/typedoc" +import { glob } from "tinyglobby" + +const __dirname = fileURLToPath(new URL(`.`, import.meta.url)) + +await generateReferenceDocs({ + packages: [ + { + name: `db`, + entryPoints: [resolve(__dirname, `../packages/db/src/index.ts`)], + tsconfig: resolve(__dirname, `../packages/db/tsconfig.docs.json`), + outputDir: resolve(__dirname, `../docs/reference`), + }, + { + name: `electric-db-collection`, + entryPoints: [ + resolve(__dirname, `../packages/electric-db-collection/src/index.ts`), + ], + tsconfig: resolve( + __dirname, + `../packages/electric-db-collection/tsconfig.docs.json` + ), + outputDir: resolve(__dirname, `../docs/reference/electric-db-collection`), + exclude: [`packages/db/**/*`], + }, + { + name: `query-db-collection`, + entryPoints: [ + resolve(__dirname, `../packages/query-db-collection/src/index.ts`), + ], + tsconfig: resolve( + __dirname, + `../packages/query-db-collection/tsconfig.docs.json` + ), + outputDir: resolve(__dirname, `../docs/reference/query-db-collection`), + exclude: [`packages/db/**/*`], + }, + { + name: `react-db`, + entryPoints: [resolve(__dirname, `../packages/react-db/src/index.ts`)], + tsconfig: resolve(__dirname, `../packages/react-db/tsconfig.docs.json`), + outputDir: resolve(__dirname, `../docs/framework/react/reference`), + exclude: [`packages/db/**/*`], + }, + { + name: `solid-db`, + entryPoints: [resolve(__dirname, `../packages/solid-db/src/index.ts`)], + tsconfig: resolve(__dirname, `../packages/solid-db/tsconfig.docs.json`), + outputDir: resolve(__dirname, `../docs/framework/solid/reference`), + exclude: [`packages/db/**/*`], + }, + { + name: `svelte-db`, + entryPoints: [resolve(__dirname, `../packages/svelte-db/src/index.ts`)], + tsconfig: resolve(__dirname, `../packages/svelte-db/tsconfig.docs.json`), + outputDir: resolve(__dirname, `../docs/framework/svelte/reference`), + exclude: [`packages/db/**/*`], + }, + { + name: `trailbase-db-collection`, + entryPoints: [ + resolve(__dirname, `../packages/trailbase-db-collection/src/index.ts`), + ], + tsconfig: resolve( + __dirname, + `../packages/trailbase-db-collection/tsconfig.docs.json` + ), + outputDir: resolve( + __dirname, + `../docs/reference/trailbase-db-collection` + ), + exclude: [`packages/db/**/*`], + }, + { + name: `vue-db`, + entryPoints: [resolve(__dirname, `../packages/vue-db/src/index.ts`)], + tsconfig: resolve(__dirname, `../packages/vue-db/tsconfig.docs.json`), + outputDir: resolve(__dirname, `../docs/framework/vue/reference`), + exclude: [`packages/db/**/*`], + }, + { + name: `angular-db`, + entryPoints: [resolve(__dirname, `../packages/angular-db/src/index.ts`)], + tsconfig: resolve(__dirname, `../packages/angular-db/tsconfig.docs.json`), + outputDir: resolve(__dirname, `../docs/framework/angular/reference`), + exclude: [`packages/db/**/*`], + }, + ], +}) + +// Find all markdown files matching the pattern +const markdownFiles = [ + ...(await glob(`docs/reference/**/*.md`)), + ...(await glob(`docs/framework/*/reference/**/*.md`)), +] + +console.log(`Found ${markdownFiles.length} markdown files to process\n`) + +// Process each markdown file +markdownFiles.forEach((file) => { + const content = readFileSync(file, `utf-8`) + let updatedContent = content + updatedContent = updatedContent.replaceAll(/\]\(\.\.\//gm, `](../../`) + // updatedContent = content.replaceAll(/\]\(\.\//gm, '](../') + updatedContent = updatedContent.replaceAll( + /\]\((?!https?:\/\/|\/\/|\/|\.\/|\.\.\/|#)([^)]+)\)/gm, + (match, p1) => `](../${p1})` + ) + + // Write the updated content back to the file + if (updatedContent !== content) { + writeFileSync(file, updatedContent, `utf-8`) + console.log(`Processed file: ${file}`) + } +}) + +console.log(`\nāœ… All markdown files have been processed!`) + +process.exit(0) diff --git a/scripts/verify-links.ts b/scripts/verify-links.ts index 4f3084ec5..4efcb357c 100644 --- a/scripts/verify-links.ts +++ b/scripts/verify-links.ts @@ -1,6 +1,6 @@ import { existsSync, readFileSync, statSync } from "node:fs" import path, { resolve } from "node:path" -import fg from "fast-glob" +import { glob } from "tinyglobby" // @ts-ignore - markdown-link-extractor is not typed import markdownLinkExtractor from "markdown-link-extractor" @@ -87,7 +87,7 @@ function fileExistsForLink( async function findMarkdownLinks() { // Find all markdown files in docs directory - const markdownFiles = await fg(`docs/**/*.md`, { + const markdownFiles = await glob(`docs/**/*.md`, { ignore: [`**/node_modules/**`], }) diff --git a/tsconfig.json b/tsconfig.json index e54c55d56..fcc600141 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -34,8 +34,8 @@ "todo-app/**/*.tsx", "examples/**/*.ts", "examples/**/*.tsx", - "eslint.config.mjs", - "scripts/verify-links.ts" + "eslint.config.js", + "scripts/*.ts" ], "exclude": ["node_modules"] }