diff --git a/web/Dockerfile b/web/Dockerfile index 6206f45d..c963f92e 100644 --- a/web/Dockerfile +++ b/web/Dockerfile @@ -2,6 +2,7 @@ FROM node:24-slim AS deps WORKDIR /app RUN corepack enable pnpm && corepack prepare pnpm@11 --activate COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ +COPY patches ./patches RUN pnpm install --frozen-lockfile FROM node:24-slim AS builder @@ -17,7 +18,12 @@ RUN npx next build FROM node:24-slim AS drizzle WORKDIR /drizzle -RUN npm install drizzle-kit drizzle-orm +RUN apt-get update \ + && apt-get install -y --no-install-recommends patch \ + && rm -rf /var/lib/apt/lists/* +RUN npm install drizzle-kit@0.31.10 drizzle-orm@0.45.2 +COPY patches/drizzle-kit@0.31.10.patch /tmp/drizzle-kit.patch +RUN patch --directory=node_modules/drizzle-kit --strip=1 < /tmp/drizzle-kit.patch FROM node:24-slim AS runner WORKDIR /app diff --git a/web/db/schema.ts b/web/db/schema.ts index 91a6044b..1fa54c8d 100644 --- a/web/db/schema.ts +++ b/web/db/schema.ts @@ -603,12 +603,9 @@ export const serviceRevisions = pgTable( .notNull(), }, (table) => [ - // The database constraint is physically (id, service_id), but drizzle-kit - // 0.31.10 reports it as (service_id, id) during push diffing. Keep this order - // to avoid a drop/recreate that fails because foreign keys depend on it. unique("service_revisions_id_service_id_unique").on( - table.serviceId, table.id, + table.serviceId, ), index("service_revisions_service_created_id_idx").on( table.serviceId, diff --git a/web/package.json b/web/package.json index 8bae61e0..4894ca0d 100644 --- a/web/package.json +++ b/web/package.json @@ -27,7 +27,7 @@ "clsx": "^2.1.1", "cron-parser": "^5.4.0", "cronstrue": "^3.9.0", - "drizzle-orm": "^0.45.1", + "drizzle-orm": "^0.45.2", "inngest": "^4.3.0", "input-otp": "^1.4.2", "ip-address": "^10.1.0", @@ -62,7 +62,7 @@ "@types/react": "19.2.17", "@types/react-dom": "19.2.3", "@types/validator": "^13.15.10", - "drizzle-kit": "^0.31.8", + "drizzle-kit": "^0.31.10", "eslint": "^9", "eslint-config-next": "16.2.9", "tailwindcss": "^4", diff --git a/web/patches/drizzle-kit@0.31.10.patch b/web/patches/drizzle-kit@0.31.10.patch new file mode 100644 index 00000000..6f212aaa --- /dev/null +++ b/web/patches/drizzle-kit@0.31.10.patch @@ -0,0 +1,78 @@ +diff --git a/api.js b/api.js +index f4ecb91959f62fc938416a0585458c0a710af161..538e15d24636ffff2dee2b641629a8d5ed0422f9 100644 +--- a/api.js ++++ b/api.js +@@ -23174,10 +23174,16 @@ WHERE + const checkConstraints = {}; + const tableResponse = await getColumnsInfoQuery({ schema: tableSchema, table: tableName, db }); + const tableConstraints = await db.query( +- `SELECT c.column_name, c.data_type, constraint_type, constraint_name, constraint_schema ++ `SELECT kcu.column_name, c.data_type, tc.constraint_type, tc.constraint_name, tc.constraint_schema + FROM information_schema.table_constraints tc +- JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name) +- JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema +- AND tc.table_name = c.table_name AND ccu.column_name = c.column_name +- WHERE tc.table_name = '${tableName}' and constraint_schema = '${tableSchema}';` ++ JOIN information_schema.key_column_usage kcu ++ ON tc.constraint_name = kcu.constraint_name ++ AND tc.constraint_schema = kcu.constraint_schema ++ AND tc.table_name = kcu.table_name ++ JOIN information_schema.columns AS c ++ ON c.table_schema = tc.constraint_schema ++ AND c.table_name = tc.table_name ++ AND c.column_name = kcu.column_name ++ WHERE tc.table_name = '${tableName}' and tc.constraint_schema = '${tableSchema}' ++ ORDER BY tc.constraint_name, kcu.ordinal_position;` + ); +diff --git a/api.mjs b/api.mjs +index a940272dfb05accf57a472c46c52652ec9ad0080..c6b4beb146da1777804b34768063c225224efd1e 100644 +--- a/api.mjs ++++ b/api.mjs +@@ -23190,10 +23190,16 @@ WHERE + const checkConstraints = {}; + const tableResponse = await getColumnsInfoQuery({ schema: tableSchema, table: tableName, db }); + const tableConstraints = await db.query( +- `SELECT c.column_name, c.data_type, constraint_type, constraint_name, constraint_schema ++ `SELECT kcu.column_name, c.data_type, tc.constraint_type, tc.constraint_name, tc.constraint_schema + FROM information_schema.table_constraints tc +- JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name) +- JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema +- AND tc.table_name = c.table_name AND ccu.column_name = c.column_name +- WHERE tc.table_name = '${tableName}' and constraint_schema = '${tableSchema}';` ++ JOIN information_schema.key_column_usage kcu ++ ON tc.constraint_name = kcu.constraint_name ++ AND tc.constraint_schema = kcu.constraint_schema ++ AND tc.table_name = kcu.table_name ++ JOIN information_schema.columns AS c ++ ON c.table_schema = tc.constraint_schema ++ AND c.table_name = tc.table_name ++ AND c.column_name = kcu.column_name ++ WHERE tc.table_name = '${tableName}' and tc.constraint_schema = '${tableSchema}' ++ ORDER BY tc.constraint_name, kcu.ordinal_position;` + ); +diff --git a/bin.cjs b/bin.cjs +index 07274ea6f53fd54a129b3d338892feda6e995cff..d26825fc18ebe1859260828b6a4efa6e4f95e78c 100755 +--- a/bin.cjs ++++ b/bin.cjs +@@ -17732,10 +17732,16 @@ WHERE + const checkConstraints = {}; + const tableResponse = await getColumnsInfoQuery({ schema: tableSchema, table: tableName, db }); + const tableConstraints = await db.query( +- `SELECT c.column_name, c.data_type, constraint_type, constraint_name, constraint_schema ++ `SELECT kcu.column_name, c.data_type, tc.constraint_type, tc.constraint_name, tc.constraint_schema + FROM information_schema.table_constraints tc +- JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name) +- JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema +- AND tc.table_name = c.table_name AND ccu.column_name = c.column_name +- WHERE tc.table_name = '${tableName}' and constraint_schema = '${tableSchema}';` ++ JOIN information_schema.key_column_usage kcu ++ ON tc.constraint_name = kcu.constraint_name ++ AND tc.constraint_schema = kcu.constraint_schema ++ AND tc.table_name = kcu.table_name ++ JOIN information_schema.columns AS c ++ ON c.table_schema = tc.constraint_schema ++ AND c.table_name = tc.table_name ++ AND c.column_name = kcu.column_name ++ WHERE tc.table_name = '${tableName}' and tc.constraint_schema = '${tableSchema}' ++ ORDER BY tc.constraint_name, kcu.ordinal_position;` + ); diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index 83d1aea3..f2a769d0 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -8,6 +8,9 @@ overrides: '@types/react': 19.2.17 '@types/react-dom': 19.2.3 +patchedDependencies: + drizzle-kit@0.31.10: 3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2 + importers: .: @@ -20,7 +23,7 @@ importers: version: 1.5.0(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) '@better-auth/api-key': specifier: 1.6.23 - version: 1.6.23(@better-auth/core@1.6.23(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.29.2)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(better-auth@1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))))(better-call@1.3.7(zod@4.4.3)) + version: 1.6.23(@better-auth/core@1.6.23(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.29.2)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(better-auth@1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10(patch_hash=3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2))(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))))(better-call@1.3.7(zod@4.4.3)) '@bprogress/next': specifier: ^3.2.12 version: 3.2.12(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(react-dom@19.2.7(react@19.2.7))(react@19.2.7) @@ -35,7 +38,7 @@ importers: version: 5.4.0 better-auth: specifier: 1.6.23 - version: 1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))) + version: 1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10(patch_hash=3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2))(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -49,7 +52,7 @@ importers: specifier: ^3.9.0 version: 3.14.0 drizzle-orm: - specifier: ^0.45.1 + specifier: ^0.45.2 version: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0) inngest: specifier: ^4.3.0 @@ -149,8 +152,8 @@ importers: specifier: ^13.15.10 version: 13.15.10 drizzle-kit: - specifier: ^0.31.8 - version: 0.31.10 + specifier: ^0.31.10 + version: 0.31.10(patch_hash=3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2) eslint: specifier: ^9 version: 9.39.4(jiti@2.7.0) @@ -633,11 +636,11 @@ packages: '@esbuild-kit/core-utils@3.3.2': resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} - deprecated: 'Merged into tsx: https://tsx.is' + deprecated: 'Merged into tsx: https://tsx.hirok.io' '@esbuild-kit/esm-loader@2.6.5': resolution: {integrity: sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA==} - deprecated: 'Merged into tsx: https://tsx.is' + deprecated: 'Merged into tsx: https://tsx.hirok.io' '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} @@ -6471,11 +6474,11 @@ snapshots: optionalDependencies: '@types/react': 19.2.17 - '@better-auth/api-key@1.6.23(@better-auth/core@1.6.23(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.29.2)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(better-auth@1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))))(better-call@1.3.7(zod@4.4.3))': + '@better-auth/api-key@1.6.23(@better-auth/core@1.6.23(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.29.2)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(better-auth@1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10(patch_hash=3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2))(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))))(better-call@1.3.7(zod@4.4.3))': dependencies: '@better-auth/core': 1.6.23(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.29.2)(nanostores@1.3.0) '@better-auth/utils': 0.4.2 - better-auth: 1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))) + better-auth: 1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10(patch_hash=3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2))(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))) better-call: 1.3.7(zod@4.4.3) zod: 4.4.3 @@ -8919,7 +8922,7 @@ snapshots: baseline-browser-mapping@2.10.37: {} - better-auth@1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))): + better-auth@1.6.23(@opentelemetry/api@1.9.1)(drizzle-kit@0.31.10(patch_hash=3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2))(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0))(next@16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7))(pg@8.21.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)(vitest@4.1.9(@opentelemetry/api@1.9.1)(@types/node@24.13.2)(msw@2.14.6(@types/node@24.13.2)(typescript@5.9.3))(vite@8.0.16(@types/node@24.13.2)(esbuild@0.28.1)(jiti@2.7.0)(tsx@4.22.4)(yaml@2.9.0))): dependencies: '@better-auth/core': 1.6.23(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.29.2)(nanostores@1.3.0) '@better-auth/drizzle-adapter': 1.6.23(@better-auth/core@1.6.23(@better-auth/utils@0.4.2)(@better-fetch/fetch@1.3.1)(@opentelemetry/api@1.9.1)(better-call@1.3.7(zod@4.4.3))(jose@6.2.3)(kysely@0.29.2)(nanostores@1.3.0))(@better-auth/utils@0.4.2)(drizzle-orm@0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0)) @@ -8939,7 +8942,7 @@ snapshots: nanostores: 1.3.0 zod: 4.4.3 optionalDependencies: - drizzle-kit: 0.31.10 + drizzle-kit: 0.31.10(patch_hash=3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2) drizzle-orm: 0.45.2(@opentelemetry/api@1.9.1)(@types/pg@8.20.0)(kysely@0.29.2)(pg@8.21.0) next: 16.2.9(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(react-dom@19.2.7(react@19.2.7))(react@19.2.7) pg: 8.21.0 @@ -9304,7 +9307,7 @@ snapshots: dotenv@17.4.2: {} - drizzle-kit@0.31.10: + drizzle-kit@0.31.10(patch_hash=3ebd38e94e42a539a2e289c2b932c00c0ee0c1cee99a6bc49147abb5d3cd2eb2): dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 @@ -9571,7 +9574,7 @@ snapshots: '@next/eslint-plugin-next': 16.2.9 eslint: 9.39.4(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.7.0)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0)) eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.7.0)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.4(jiti@2.7.0)) eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.7.0)) @@ -9594,7 +9597,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.7.0)): + eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 @@ -9609,14 +9612,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.13.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.7.0)): + eslint-module-utils@2.13.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0)): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) eslint: 9.39.4(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.4(jiti@2.7.0)) + eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0)) transitivePeerDependencies: - supports-color @@ -9631,7 +9634,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.39.4(jiti@2.7.0) eslint-import-resolver-node: 0.3.10 - eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.4(jiti@2.7.0)) + eslint-module-utils: 2.13.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint-import-resolver-node@0.3.10)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.61.1(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3))(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0)) hasown: 2.0.4 is-core-module: 2.16.2 is-glob: 4.0.3 diff --git a/web/pnpm-workspace.yaml b/web/pnpm-workspace.yaml index 5cf76850..d1bd6295 100644 --- a/web/pnpm-workspace.yaml +++ b/web/pnpm-workspace.yaml @@ -11,3 +11,8 @@ allowBuilds: protobufjs: false sharp: false unrs-resolver: false + +# Backport https://github.com/drizzle-team/drizzle-orm/pull/5038 until a +# stable Drizzle Kit release preserves composite constraint column order. +patchedDependencies: + drizzle-kit@0.31.10: patches/drizzle-kit@0.31.10.patch