From 87292512b9432010267f76288208c35191245f5f Mon Sep 17 00:00:00 2001 From: Jordi Enric <37541088+jordienr@users.noreply.github.com> Date: Mon, 11 Aug 2025 15:47:28 +0200 Subject: [PATCH 01/62] upgrade sentry (#37830) * upgrade sentry * bump docs sentry/nextjs * add error button * rm sentry test --- apps/docs/package.json | 2 +- apps/studio/package.json | 2 +- apps/studio/pages/sign-in.tsx | 1 - pnpm-lock.yaml | 1828 +++++++++------------------------ 4 files changed, 476 insertions(+), 1357 deletions(-) diff --git a/apps/docs/package.json b/apps/docs/package.json index 0d560b06ff9..ae141628524 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -51,7 +51,7 @@ "@octokit/plugin-paginate-graphql": "^4.0.0", "@radix-ui/react-accordion": "^1.1.2", "@radix-ui/react-collapsible": "^1.0.3", - "@sentry/nextjs": "^9.15.0", + "@sentry/nextjs": "^10.3.0", "@supabase/supabase-js": "catalog:", "@tailwindcss/container-queries": "^0.1.1", "@tanstack/react-query": "^5.13.4", diff --git a/apps/studio/package.json b/apps/studio/package.json index 9664e74ef14..d61993cf162 100644 --- a/apps/studio/package.json +++ b/apps/studio/package.json @@ -51,7 +51,7 @@ "@radix-ui/react-slider": "^1.1.2", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-visually-hidden": "^1.1.3", - "@sentry/nextjs": "^8.52.1", + "@sentry/nextjs": "^10.3.0", "@std/path": "npm:@jsr/std__path@^1.0.8", "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.5.0", diff --git a/apps/studio/pages/sign-in.tsx b/apps/studio/pages/sign-in.tsx index c30d1a314a3..2d727728eba 100644 --- a/apps/studio/pages/sign-in.tsx +++ b/apps/studio/pages/sign-in.tsx @@ -46,7 +46,6 @@ const SignInPage: NextPageWithLayout = () => { or - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f22f313f01b..b903ee65287 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -331,8 +331,8 @@ importers: specifier: ^1.0.3 version: 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': - specifier: ^9.15.0 - version: 9.15.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) + specifier: ^10.3.0 + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) '@supabase/supabase-js': specifier: 'catalog:' version: 2.49.3 @@ -737,8 +737,8 @@ importers: specifier: ^1.1.3 version: 1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': - specifier: ^8.52.1 - version: 8.52.1(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) + specifier: ^10.3.0 + version: 10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0) '@std/path': specifier: npm:@jsr/std__path@^1.0.8 version: '@jsr/std__path@1.0.8' @@ -1412,7 +1412,7 @@ importers: version: 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-start': specifier: ^1.114.25 - version: 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) + version: 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) '@types/common-tags': specifier: ^1.8.4 version: 1.8.4 @@ -4711,6 +4711,10 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + '@opentelemetry/api-logs@0.203.0': + resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} + engines: {node: '>=8.0.0'} + '@opentelemetry/api-logs@0.51.1': resolution: {integrity: sha512-E3skn949Pk1z2XtXu/lxf6QAZpawuTM/IUEXcAzpiUkTd73Hmvw26FiN3cJuTmkpM5hZzHwkomVdtrh/n/zzwA==} engines: {node: '>=14'} @@ -4719,10 +4723,6 @@ packages: resolution: {integrity: sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==} engines: {node: '>=14'} - '@opentelemetry/api-logs@0.56.0': - resolution: {integrity: sha512-Wr39+94UNNG3Ei9nv3pHd4AJ63gq5nSemMRpCd8fPwDL9rN3vK26lzxfH27mw16XzOSO+TpyQwBAMaLxaPWG0g==} - engines: {node: '>=14'} - '@opentelemetry/api-logs@0.57.2': resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} engines: {node: '>=14'} @@ -4743,9 +4743,9 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/context-async-hooks@1.30.1': - resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} - engines: {node: '>=14'} + '@opentelemetry/context-async-hooks@2.0.1': + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -4761,15 +4761,15 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@1.29.0': - resolution: {integrity: sha512-gmT7vAreXl0DTHD2rVZcw3+l2g84+5XiHIqdBUxXbExymPCvSsGOpiwMmn8nkiJur28STV31wnhIDrzWDPzjfA==} + '@opentelemetry/core@1.30.1': + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/core@1.30.1': - resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} - engines: {node: '>=14'} + '@opentelemetry/core@2.0.1': + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' @@ -4785,297 +4785,141 @@ packages: peerDependencies: '@opentelemetry/api': ^1.0.0 - '@opentelemetry/instrumentation-amqplib@0.45.0': - resolution: {integrity: sha512-SlKLsOS65NGMIBG1Lh/hLrMDU9WzTUF25apnV6ZmWZB1bBmUwan7qrwwrTu1cL5LzJWCXOdZPuTaxP7pC9qxnQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-amqplib@0.50.0': + resolution: {integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-amqplib@0.46.1': - resolution: {integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-connect@0.47.0': + resolution: {integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.42.0': - resolution: {integrity: sha512-bOoYHBmbnq/jFaLHmXJ55VQ6jrH5fHDMAPjFM0d3JvR0dvIqW7anEoNC33QqYGFYUfVJ50S0d/eoyF61ALqQuA==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-dataloader@0.21.0': + resolution: {integrity: sha512-Xu4CZ1bfhdkV3G6iVHFgKTgHx8GbKSqrTU01kcIJRGHpowVnyOPEv1CW5ow+9GU2X4Eki8zoNuVUenFc3RluxQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-connect@0.43.1': - resolution: {integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-express@0.52.0': + resolution: {integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.15.0': - resolution: {integrity: sha512-5fP35A2jUPk4SerVcduEkpbRAIoqa2PaP5rWumn01T1uSbavXNccAr3Xvx1N6xFtZxXpLJq4FYqGFnMgDWgVng==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-fs@0.23.0': + resolution: {integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-dataloader@0.16.1': - resolution: {integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-generic-pool@0.47.0': + resolution: {integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.46.0': - resolution: {integrity: sha512-BCEClDj/HPq/1xYRAlOr6z+OUnbp2eFp18DSrgyQz4IT9pkdYk8eWHnMi9oZSqlC6J5mQzkFmaW5RrKb1GLQhg==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-graphql@0.51.0': + resolution: {integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-express@0.47.1': - resolution: {integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-hapi@0.50.0': + resolution: {integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fastify@0.43.0': - resolution: {integrity: sha512-Lmdsg7tYiV+K3/NKVAQfnnLNGmakUOFdB0PhoTh2aXuSyCmyNnnDvhn2MsArAPTZ68wnD5Llh5HtmiuTkf+DyQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-http@0.203.0': + resolution: {integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fastify@0.44.2': - resolution: {integrity: sha512-arSp97Y4D2NWogoXRb8CzFK3W2ooVdvqRRtQDljFt9uC3zI6OuShgey6CVFC0JxT1iGjkAr1r4PDz23mWrFULQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-ioredis@0.51.0': + resolution: {integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.18.0': - resolution: {integrity: sha512-kC40y6CEMONm8/MWwoF5GHWIC7gOdF+g3sgsjfwJaUkgD6bdWV+FgG0XApqSbTQndICKzw3RonVk8i7s6mHqhA==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-kafkajs@0.12.0': + resolution: {integrity: sha512-bIe4aSAAxytp88nzBstgr6M7ZiEpW6/D1/SuKXdxxuprf18taVvFL2H5BDNGZ7A14K27haHqzYqtCTqFXHZOYg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-fs@0.19.1': - resolution: {integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-knex@0.48.0': + resolution: {integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.42.0': - resolution: {integrity: sha512-J4QxqiQ1imtB9ogzsOnHra0g3dmmLAx4JCeoK3o0rFes1OirljNHnO8Hsj4s1jAir8WmWvnEEQO1y8yk6j2tog==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-koa@0.51.0': + resolution: {integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-generic-pool@0.43.1': - resolution: {integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-lru-memoizer@0.48.0': + resolution: {integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.46.0': - resolution: {integrity: sha512-tplk0YWINSECcK89PGM7IVtOYenXyoOuhOQlN0X0YrcDUfMS4tZMKkVc0vyhNWYYrexnUHwNry2YNBNugSpjlQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-mongodb@0.56.0': + resolution: {integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-graphql@0.47.1': - resolution: {integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-mongoose@0.50.0': + resolution: {integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.44.0': - resolution: {integrity: sha512-4HdNIMNXWK1O6nsaQOrACo83QWEVoyNODTdVDbUqtqXiv2peDfD0RAPhSQlSGWLPw3S4d9UoOmrV7s2HYj6T2A==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-mysql2@0.49.0': + resolution: {integrity: sha512-dCub9wc02mkJWNyHdVEZ7dvRzy295SmNJa+LrAJY2a/+tIiVBQqEAajFzKwp9zegVVnel9L+WORu34rGLQDzxA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-hapi@0.45.2': - resolution: {integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-mysql@0.49.0': + resolution: {integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.56.0': - resolution: {integrity: sha512-/bWHBUAq8VoATnH9iLk5w8CE9+gj+RgYSUphe7hry472n6fYl7+4PvuScoQMdmSUTprKq/gyr2kOWL6zrC7FkQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-pg@0.55.0': + resolution: {integrity: sha512-yfJ5bYE7CnkW/uNsnrwouG/FR7nmg09zdk2MSs7k0ZOMkDDAE3WBGpVFFApGgNu2U+gtzLgEzOQG4I/X+60hXw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-http@0.57.2': - resolution: {integrity: sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-redis@0.51.0': + resolution: {integrity: sha512-uL/GtBA0u72YPPehwOvthAe+Wf8k3T+XQPBssJmTYl6fzuZjNq8zTfxVFhl9nRFjFVEe+CtiYNT0Q3AyqW1Z0A==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.46.0': - resolution: {integrity: sha512-sOdsq8oGi29V58p1AkefHvuB3l2ymP1IbxRIX3y4lZesQWKL8fLhBmy8xYjINSQ5gHzWul2yoz7pe7boxhZcqQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-tedious@0.22.0': + resolution: {integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 - '@opentelemetry/instrumentation-ioredis@0.47.1': - resolution: {integrity: sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-kafkajs@0.6.0': - resolution: {integrity: sha512-MGQrzqEUAl0tacKJUFpuNHJesyTi51oUzSVizn7FdvJplkRIdS11FukyZBZJEscofSEdk7Ycmg+kNMLi5QHUFg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-kafkajs@0.7.1': - resolution: {integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-knex@0.43.0': - resolution: {integrity: sha512-mOp0TRQNFFSBj5am0WF67fRO7UZMUmsF3/7HSDja9g3H4pnj+4YNvWWyZn4+q0rGrPtywminAXe0rxtgaGYIqg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-knex@0.44.1': - resolution: {integrity: sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-koa@0.46.0': - resolution: {integrity: sha512-RcWXMQdJQANnPUaXbHY5G0Fg6gmleZ/ZtZeSsekWPaZmQq12FGk0L1UwodIgs31OlYfviAZ4yTeytoSUkgo5vQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-koa@0.47.1': - resolution: {integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-lru-memoizer@0.43.0': - resolution: {integrity: sha512-fZc+1eJUV+tFxaB3zkbupiA8SL3vhDUq89HbDNg1asweYrEb9OlHIB+Ot14ZiHUc1qCmmWmZHbPTwa56mVVwzg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-lru-memoizer@0.44.1': - resolution: {integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongodb@0.50.0': - resolution: {integrity: sha512-DtwJMjYFXFT5auAvv8aGrBj1h3ciA/dXQom11rxL7B1+Oy3FopSpanvwYxJ+z0qmBrQ1/iMuWELitYqU4LnlkQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongodb@0.52.0': - resolution: {integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongoose@0.45.0': - resolution: {integrity: sha512-zHgNh+A01C5baI2mb5dAGyMC7DWmUpOfwpV8axtC0Hd5Uzqv+oqKgKbVDIVhOaDkPxjgVJwYF9YQZl2pw2qxIA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongoose@0.46.1': - resolution: {integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql2@0.44.0': - resolution: {integrity: sha512-e9QY4AGsjGFwmfHd6kBa4yPaQZjAq2FuxMb0BbKlXCAjG+jwqw+sr9xWdJGR60jMsTq52hx3mAlE3dUJ9BipxQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql2@0.45.2': - resolution: {integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql@0.44.0': - resolution: {integrity: sha512-al7jbXvT/uT1KV8gdNDzaWd5/WXf+mrjrsF0/NtbnqLa0UUFGgQnoK3cyborgny7I+KxWhL8h7YPTf6Zq4nKsg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql@0.45.1': - resolution: {integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-nestjs-core@0.43.0': - resolution: {integrity: sha512-NEo4RU7HTjiaXk3curqXUvCb9alRiFWxQY//+hvDXwWLlADX2vB6QEmVCeEZrKO+6I/tBrI4vNdAnbCY9ldZVg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-pg@0.49.0': - resolution: {integrity: sha512-3alvNNjPXVdAPdY1G7nGRVINbDxRK02+KAugDiEpzw0jFQfU8IzFkSWA4jyU4/GbMxKvHD+XIOEfSjpieSodKw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-pg@0.51.1': - resolution: {integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-redis-4@0.45.0': - resolution: {integrity: sha512-Sjgym1xn3mdxPRH5CNZtoz+bFd3E3NlGIu7FoYr4YrQouCc9PbnmoBcmSkEdDy5LYgzNildPgsjx9l0EKNjKTQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-redis-4@0.46.1': - resolution: {integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-tedious@0.17.0': - resolution: {integrity: sha512-yRBz2409an03uVd1Q2jWMt3SqwZqRFyKoWYYX3hBAtPDazJ4w5L+1VOij71TKwgZxZZNdDBXImTQjii+VeuzLg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-tedious@0.18.1': - resolution: {integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-undici@0.10.1': - resolution: {integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation-undici@0.14.0': + resolution: {integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.7.0 - '@opentelemetry/instrumentation-undici@0.9.0': - resolution: {integrity: sha512-lxc3cpUZ28CqbrWcUHxGW/ObDpMOYbuxF/ZOzeFZq54P9uJ2Cpa8gcrC9F716mtuiMaekwk8D6n34vg/JtkkxQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.7.0 - - '@opentelemetry/instrumentation@0.53.0': - resolution: {integrity: sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.56.0': - resolution: {integrity: sha512-2KkGBKE+FPXU1F0zKww+stnlUxUTlBvLCiWdP63Z9sqXYeNI/ziNzsxAp4LAdUcTQmXjw1IWgvm5CAb/BHy99w==} - engines: {node: '>=14'} + '@opentelemetry/instrumentation@0.203.0': + resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 @@ -5139,9 +4983,9 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/redis-common@0.36.2': - resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} - engines: {node: '>=14'} + '@opentelemetry/redis-common@0.38.0': + resolution: {integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==} + engines: {node: ^18.19.0 || >=20.6.0} '@opentelemetry/resources@1.24.1': resolution: {integrity: sha512-cyv0MwAaPF7O86x5hk3NNgenMObeejZFLJJDVuSeSMIsknlsj3oOZzRv3qSzlwYomXsICfBeFFlxwHQte5mGXQ==} @@ -5161,6 +5005,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/resources@2.0.1': + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-logs@0.51.1': resolution: {integrity: sha512-ULQQtl82b673PpZc5/0EtH4V+BrwVOgKJZEB7tYZnGTG3I98tQVk89S9/JSixomDr++F4ih+LSJTCqIKBz+MQQ==} engines: {node: '>=14'} @@ -5204,6 +5054,12 @@ packages: peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' + '@opentelemetry/sdk-trace-base@2.0.1': + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + '@opentelemetry/sdk-trace-node@1.24.1': resolution: {integrity: sha512-/FZX8uWaGIAwsDhqI8VvQ+qWtfMNlXjaFYGc+vmxgdRFppCSSIRwrPyIhJO1qx61okyYhoyxVEZAfoiNxrfJCg==} engines: {node: '>=14'} @@ -5228,13 +5084,13 @@ packages: resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.32.0': - resolution: {integrity: sha512-s0OpmpQFSfMrmedAn9Lhg4KWJELHCU6uU9dtIJ28N8UGhf9Y55im5X8fEzwhwDwiSqN+ZPSNrDJF7ivf/AuRPQ==} + '@opentelemetry/semantic-conventions@1.36.0': + resolution: {integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==} engines: {node: '>=14'} - '@opentelemetry/sql-common@0.40.1': - resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} - engines: {node: '>=14'} + '@opentelemetry/sql-common@0.41.0': + resolution: {integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -5461,11 +5317,8 @@ packages: resolution: {integrity: sha512-aQypoot0HPSJa6gDPEPTntc1GT6QINrSbgRlRhadGW2WaYqUK3tK4Bw9SBMZXhmxd3GeAlZjVcODHgiu+THY7A==} engines: {node: '>=18'} - '@prisma/instrumentation@5.22.0': - resolution: {integrity: sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==} - - '@prisma/instrumentation@6.6.0': - resolution: {integrity: sha512-M/a6njz3hbf2oucwdbjNKrSMLuyMCwgDrmTtkF1pm4Nm7CU45J/Hd6lauF2CDACTUYzu3ymcV7P0ZAhIoj6WRw==} + '@prisma/instrumentation@6.13.0': + resolution: {integrity: sha512-b97b0sBycGh89RQcqobSgjGl3jwPaC5cQIOFod6EX1v0zIxlXPmL3ckSXxoHpy+Js0QV/tgCzFvqicMJCtezBA==} peerDependencies: '@opentelemetry/api': ^1.8 @@ -7166,131 +7019,66 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.35.0': - resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.38.0': resolution: {integrity: sha512-ldomqc4/jDZu/xpYU+aRxo3V4mGCV9HeTgUBANI3oIQMOL+SsxB+S2lxMpkFp5UamSS3XuTMQVbsS24R4J4Qjg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.35.0': - resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.38.0': resolution: {integrity: sha512-VUsgcy4GhhT7rokwzYQP+aV9XnSLkkhlEJ0St8pbasuWO/vwphhZQxYEKUP3ayeCYLhk6gEtacRpYP/cj3GjyQ==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.35.0': - resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.38.0': resolution: {integrity: sha512-buA17AYXlW9Rn091sWMq1xGUvWQFOH4N1rqUxGJtEQzhChxWjldGCCup7r/wUnaI6Au8sKXpoh0xg58a7cgcpg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.35.0': - resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.38.0': resolution: {integrity: sha512-Mgcmc78AjunP1SKXl624vVBOF2bzwNWFPMP4fpOu05vS0amnLcX8gHIge7q/lDAHy3T2HeR0TqrriZDQS2Woeg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.35.0': - resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.38.0': resolution: {integrity: sha512-zzJACgjLbQTsscxWqvrEQAEh28hqhebpRz5q/uUd1T7VTwUNZ4VIXQt5hE7ncs0GrF+s7d3S4on4TiXUY8KoQA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.35.0': - resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.38.0': resolution: {integrity: sha512-hCY/KAeYMCyDpEE4pTETam0XZS4/5GXzlLgpi5f0IaPExw9kuB+PDTOTLuPtM10TlRG0U9OSmXJ+Wq9J39LvAg==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.35.0': - resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.38.0': resolution: {integrity: sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.35.0': - resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.38.0': resolution: {integrity: sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.35.0': - resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.38.0': resolution: {integrity: sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.35.0': - resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.38.0': resolution: {integrity: sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.35.0': - resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==} - cpu: [loong64] - os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.38.0': resolution: {integrity: sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': - resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.38.0': resolution: {integrity: sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.35.0': - resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.38.0': resolution: {integrity: sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==} cpu: [riscv64] @@ -7301,61 +7089,31 @@ packages: cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.35.0': - resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.38.0': resolution: {integrity: sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.35.0': - resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.38.0': resolution: {integrity: sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.35.0': - resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.38.0': resolution: {integrity: sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.35.0': - resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.38.0': resolution: {integrity: sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.35.0': - resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.38.0': resolution: {integrity: sha512-mqu4PzTrlpNHHbu5qleGvXJoGgHpChBlrBx/mEhTPpnAL1ZAYFlvHD7rLK839LLKQzqEQMFJfGrrOHItN4ZQqA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.35.0': - resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.38.0': resolution: {integrity: sha512-jjqy3uWlecfB98Psxb5cD6Fny9Fupv9LrDSPTQZUROqjvZmcCqNu4UMl7qqhlUUGpwiAkotj6GYu4SZdcr/nLw==} cpu: [x64] @@ -7367,231 +7125,134 @@ packages: '@rushstack/eslint-patch@1.10.3': resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} - '@sentry-internal/browser-utils@8.52.1': - resolution: {integrity: sha512-+GXnlJCPWxNkneojLFFdfF8rt7nQ1BIRctdZx6JneQRahC9hJ0hHR4WnIa47iB7d+3hJiJWmfe7I+k+6rMuoPA==} - engines: {node: '>=14.18'} - - '@sentry-internal/browser-utils@9.15.0': - resolution: {integrity: sha512-tIM+9zXCefkInRiNmBkXKgkamRjEOlAcf768cBKlMWVOatfNrSEB0UEV7qkAYqnQGWkbPkHFMbFJxWptydLODw==} + '@sentry-internal/browser-utils@10.3.0': + resolution: {integrity: sha512-jKBoNMmxMgojzcpIsUqVk6XL6YiW0i8jtNdD9UdBKd8ExFpVkXhPuMdWB9f/5mVNK/9BnfI74eTiEVHZEkeZ6Q==} engines: {node: '>=18'} - '@sentry-internal/feedback@8.52.1': - resolution: {integrity: sha512-zakzlMHeEb+0FsPtISDNrFjiwIB/JeXc1xzelvSb9QAh3htog+snnqa5rqrRdYmAKNZM3TTe16X/aKqCJ54dCg==} - engines: {node: '>=14.18'} - - '@sentry-internal/feedback@9.15.0': - resolution: {integrity: sha512-jyN0r57WL8V5ViwZpiNvbIhF9I89jxn6mtIQcyV85EjIXDyzJmeTgxc/FIU0kcDVv6zso3qnGRJUxGK+GvoYZg==} + '@sentry-internal/feedback@10.3.0': + resolution: {integrity: sha512-HGvBoUwbj164I/66vrtUjHICuqwcY5RIGAAutD+H+EwhUROpFuzaIe9utIalhyU9CrTN/vFs4UYPWmeOpqg2lQ==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@8.52.1': - resolution: {integrity: sha512-KQKRD6d3m4jTLaxGi8gASEc5kU/SxOsiQ/k1DAeTOZwRhGt63zzbBnSg6IaGZLFNqmKK+QYhoCrn3pPO7+NECg==} - engines: {node: '>=14.18'} - - '@sentry-internal/replay-canvas@9.15.0': - resolution: {integrity: sha512-a1/oiXwcW5OmILjD7/R2UEsPQWXJBUr0u388uCKDUGeyXLxBBbIJGS5E8oLwVQLVxhVJrODgxvT19z9OVcbn7g==} + '@sentry-internal/replay-canvas@10.3.0': + resolution: {integrity: sha512-JGE1YmWb5LYhnaEgaYVMKj03FCQsuvALF2RXJx+Qe8pPwWtEWWBXMFEIt714mv4mO3YQxZnnxQhxFRuSJqXQfQ==} engines: {node: '>=18'} - '@sentry-internal/replay@8.52.1': - resolution: {integrity: sha512-jCk+N5RknOwj3w+yECQKd0ozB3JOKLkkrpGL+v9rQxWM9mYcfcD7+WJfgQVjfqQ19NCtH3m231fTEL4BAUMFMA==} - engines: {node: '>=14.18'} - - '@sentry-internal/replay@9.15.0': - resolution: {integrity: sha512-lv6ENRmfeBuod6Tr1WgLeF0+wIIXlHWNAGofsaNUvm8UKS7USicFsQWKOZPk4UyjTfrEClPp2vx+o7aUcZS6TQ==} + '@sentry-internal/replay@10.3.0': + resolution: {integrity: sha512-SVF7mMDW++LaeaONyxFUQ2Na3aMv6vyhv9V5Yb6yHWgPXI8NCW83mJ/MidHDD3yI0bccgTJUEmB4S0vBioafzg==} engines: {node: '>=18'} - '@sentry/babel-plugin-component-annotate@2.22.7': - resolution: {integrity: sha512-aa7XKgZMVl6l04NY+3X7BP7yvQ/s8scn8KzQfTLrGRarziTlMGrsCOBQtCNWXOPEbtxAIHpZ9dsrAn5EJSivOQ==} + '@sentry/babel-plugin-component-annotate@4.0.2': + resolution: {integrity: sha512-Nr/VamvpQs6w642EI5t+qaCUGnVEro0qqk+S8XO1gc8qSdpc8kkZJFnUk7ozAr+ljYWGfVgWXrxI9lLiriLsRA==} engines: {node: '>= 14'} - '@sentry/babel-plugin-component-annotate@3.3.1': - resolution: {integrity: sha512-5GOxGT7lZN+I8A7Vp0rWY+726FDKEw8HnFiebe51rQrMbfGfCu2Aw9uSM0nT9OG6xhV6WvGccIcCszTPs4fUZQ==} - engines: {node: '>= 14'} - - '@sentry/browser@8.52.1': - resolution: {integrity: sha512-MB7NZ5zSkA5kFEGvEa/y+0pt5UFB8pToFGC2wBR0nfQfhQ9amIdv+LYPyJFGXGIIEVCIQMEnSlm1nGH4RKzZfw==} - engines: {node: '>=14.18'} - - '@sentry/browser@9.15.0': - resolution: {integrity: sha512-ppHESKFVQFpAb3rQI2ateDkmMytVcvAWsjZrZ3hF9iEnO3iTIIu32ib5nqQUL4KKXZQovYnDrSlDcdv3ZwX/8Q==} + '@sentry/browser@10.3.0': + resolution: {integrity: sha512-n0jROCST6XJhU7okSn04uRGFK4FjJZNjVR8nDSi/A6gU7VxVAs3iva5SUykXGFQKSVaXVE8kKjS6BtKfllulQA==} engines: {node: '>=18'} - '@sentry/bundler-plugin-core@2.22.7': - resolution: {integrity: sha512-ouQh5sqcB8vsJ8yTTe0rf+iaUkwmeUlGNFi35IkCFUQlWJ22qS6OfvNjOqFI19e6eGUXks0c/2ieFC4+9wJ+1g==} + '@sentry/bundler-plugin-core@4.0.2': + resolution: {integrity: sha512-LeARs8qHhEw19tk+KZd9DDV+Rh/UeapIH0+C09fTmff9p8Y82Cj89pEQ2a1rdUiF/oYIjQX45vnZscB7ra42yw==} engines: {node: '>= 14'} - '@sentry/bundler-plugin-core@3.3.1': - resolution: {integrity: sha512-Dd6xaWb293j9otEJ1yJqG2Ra6zB49OPzMNdIkdP8wdY+S9UFQE5PyKTyredmPY7hqCc005OrUQZolIIo9Zl13A==} - engines: {node: '>= 14'} - - '@sentry/cli-darwin@2.39.1': - resolution: {integrity: sha512-kiNGNSAkg46LNGatfNH5tfsmI/kCAaPA62KQuFZloZiemTNzhy9/6NJP8HZ/GxGs8GDMxic6wNrV9CkVEgFLJQ==} + '@sentry/cli-darwin@2.51.1': + resolution: {integrity: sha512-R1u8IQdn/7Rr8sf6bVVr0vJT4OqwCFdYsS44Y3OoWGVJW2aAQTWRJOTlV4ueclVLAyUQzmgBjfR8AtiUhd/M5w==} engines: {node: '>=10'} os: [darwin] - '@sentry/cli-darwin@2.42.2': - resolution: {integrity: sha512-GtJSuxER7Vrp1IpxdUyRZzcckzMnb4N5KTW7sbTwUiwqARRo+wxS+gczYrS8tdgtmXs5XYhzhs+t4d52ITHMIg==} - engines: {node: '>=10'} - os: [darwin] - - '@sentry/cli-linux-arm64@2.39.1': - resolution: {integrity: sha512-5VbVJDatolDrWOgaffsEM7znjs0cR8bHt9Bq0mStM3tBolgAeSDHE89NgHggfZR+DJ2VWOy4vgCwkObrUD6NQw==} + '@sentry/cli-linux-arm64@2.51.1': + resolution: {integrity: sha512-nvA/hdhsw4bKLhslgbBqqvETjXwN1FVmwHLOrRvRcejDO6zeIKUElDiL5UOjGG0NC+62AxyNw5ri8Wzp/7rg9Q==} engines: {node: '>=10'} cpu: [arm64] - os: [linux, freebsd] + os: [linux, freebsd, android] - '@sentry/cli-linux-arm64@2.42.2': - resolution: {integrity: sha512-BOxzI7sgEU5Dhq3o4SblFXdE9zScpz6EXc5Zwr1UDZvzgXZGosUtKVc7d1LmkrHP8Q2o18HcDWtF3WvJRb5Zpw==} + '@sentry/cli-linux-arm@2.51.1': + resolution: {integrity: sha512-Klro17OmSSKOOSaxVKBBNPXet2+HrIDZUTSp8NRl4LQsIubdc1S/aQ79cH/g52Muwzpl3aFwPxyXw+46isfEgA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux, freebsd, android] + + '@sentry/cli-linux-i686@2.51.1': + resolution: {integrity: sha512-jp4TmR8VXBdT9dLo6mHniQHN0xKnmJoPGVz9h9VDvO2Vp/8o96rBc555D4Am5wJOXmfuPlyjGcmwHlB3+kQRWw==} + engines: {node: '>=10'} + cpu: [x86, ia32] + os: [linux, freebsd, android] + + '@sentry/cli-linux-x64@2.51.1': + resolution: {integrity: sha512-JuLt0MXM2KHNFmjqXjv23sly56mJmUQzGBWktkpY3r+jE08f5NLKPd5wQ6W/SoLXGIOKnwLz0WoUg7aBVyQdeQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux, freebsd, android] + + '@sentry/cli-win32-arm64@2.51.1': + resolution: {integrity: sha512-PiwjTdIFDazTQCTyDCutiSkt4omggYSKnO3HE1+LDjElsFrWY9pJs4fU3D40WAyE2oKu0MarjNH/WxYGdqEAlg==} engines: {node: '>=10'} cpu: [arm64] - os: [linux, freebsd] + os: [win32] - '@sentry/cli-linux-arm@2.39.1': - resolution: {integrity: sha512-DkENbxyRxUrfLnJLXTA4s5UL/GoctU5Cm4ER1eB7XN7p9WsamFJd/yf2KpltkjEyiTuplv0yAbdjl1KX3vKmEQ==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux, freebsd] - - '@sentry/cli-linux-arm@2.42.2': - resolution: {integrity: sha512-7udCw+YL9lwq+9eL3WLspvnuG+k5Icg92YE7zsteTzWLwgPVzaxeZD2f8hwhsu+wmL+jNqbpCRmktPteh3i2mg==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux, freebsd] - - '@sentry/cli-linux-i686@2.39.1': - resolution: {integrity: sha512-pXWVoKXCRrY7N8vc9H7mETiV9ZCz+zSnX65JQCzZxgYrayQPJTc+NPRnZTdYdk5RlAupXaFicBI2GwOCRqVRkg==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [linux, freebsd] - - '@sentry/cli-linux-i686@2.42.2': - resolution: {integrity: sha512-Sw/dQp5ZPvKnq3/y7wIJyxTUJYPGoTX/YeMbDs8BzDlu9to2LWV3K3r7hE7W1Lpbaw4tSquUHiQjP5QHCOS7aQ==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [linux, freebsd] - - '@sentry/cli-linux-x64@2.39.1': - resolution: {integrity: sha512-IwayNZy+it7FWG4M9LayyUmG1a/8kT9+/IEm67sT5+7dkMIMcpmHDqL8rWcPojOXuTKaOBBjkVdNMBTXy0mXlA==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux, freebsd] - - '@sentry/cli-linux-x64@2.42.2': - resolution: {integrity: sha512-mU4zUspAal6TIwlNLBV5oq6yYqiENnCWSxtSQVzWs0Jyq97wtqGNG9U+QrnwjJZ+ta/hvye9fvL2X25D/RxHQw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux, freebsd] - - '@sentry/cli-win32-i686@2.39.1': - resolution: {integrity: sha512-NglnNoqHSmE+Dz/wHeIVRnV2bLMx7tIn3IQ8vXGO5HWA2f8zYJGktbkLq1Lg23PaQmeZLPGlja3gBQfZYSG10Q==} + '@sentry/cli-win32-i686@2.51.1': + resolution: {integrity: sha512-TMvZZpeiI2HmrDFNVQ0uOiTuYKvjEGOZdmUxe3WlhZW82A/2Oka7sQ24ljcOovbmBOj5+fjCHRUMYvLMCWiysA==} engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] - '@sentry/cli-win32-i686@2.42.2': - resolution: {integrity: sha512-iHvFHPGqgJMNqXJoQpqttfsv2GI3cGodeTq4aoVLU/BT3+hXzbV0x1VpvvEhncJkDgDicJpFLM8sEPHb3b8abw==} - engines: {node: '>=10'} - cpu: [x86, ia32] - os: [win32] - - '@sentry/cli-win32-x64@2.39.1': - resolution: {integrity: sha512-xv0R2CMf/X1Fte3cMWie1NXuHmUyQPDBfCyIt6k6RPFPxAYUgcqgMPznYwVMwWEA1W43PaOkSn3d8ZylsDaETw==} + '@sentry/cli-win32-x64@2.51.1': + resolution: {integrity: sha512-v2hreYUPPTNK1/N7+DeX7XBN/zb7p539k+2Osf0HFyVBaoUC3Y3+KBwSf4ASsnmgTAK7HCGR+X0NH1vP+icw4w==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@sentry/cli-win32-x64@2.42.2': - resolution: {integrity: sha512-vPPGHjYoaGmfrU7xhfFxG7qlTBacroz5NdT+0FmDn6692D8IvpNXl1K+eV3Kag44ipJBBeR8g1HRJyx/F/9ACw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@sentry/cli@2.39.1': - resolution: {integrity: sha512-JIb3e9vh0+OmQ0KxmexMXg9oZsR/G7HMwxt5BUIKAXZ9m17Xll4ETXTRnRUBT3sf7EpNGAmlQk1xEmVN9pYZYQ==} + '@sentry/cli@2.51.1': + resolution: {integrity: sha512-FU+54kNcKJABU0+ekvtnoXHM9zVrDe1zXVFbQT7mS0On0m1P0zFRGdzbnWe2XzpzuEAJXtK6aog/W+esRU9AIA==} engines: {node: '>= 10'} hasBin: true - '@sentry/cli@2.42.2': - resolution: {integrity: sha512-spb7S/RUumCGyiSTg8DlrCX4bivCNmU/A1hcfkwuciTFGu8l5CDc2I6jJWWZw8/0enDGxuj5XujgXvU5tr4bxg==} - engines: {node: '>= 10'} - hasBin: true - - '@sentry/core@8.52.1': - resolution: {integrity: sha512-FG0P9I03xk4jBI4O7NBkw8uqLGH9/RWOSFoRH3eYvUTyBLhkk9IaCFbAAGBNZhojky8T7gqYwnuRbFNlrAiuSA==} - engines: {node: '>=14.18'} - - '@sentry/core@9.15.0': - resolution: {integrity: sha512-lBmo3bzzaYUesdzc2H5K3fajfXyUNuj5koqyFoCAI8rnt9CBl7SUc/P07+E5eipF8mxgiU3QtkI7ALzRQN8pqQ==} + '@sentry/core@10.3.0': + resolution: {integrity: sha512-FEFCqiGkzJrm6TNJvhyjhc4rpC1Kmo/abYOACRd6MLvm8GBz41eFFKxsNxGZAUA3Fk1tR2mPfXIHOJzS0ulVww==} engines: {node: '>=18'} - '@sentry/nextjs@8.52.1': - resolution: {integrity: sha512-/44EJz3ypDiCttg5cMUnR+ub3lXGqSBg8Cas2yeUFL/BzPkdQXs5CTuS7h26ZhqhI89+wuEi25gr2TuX/Dp2FQ==} - engines: {node: '>=14.18'} - peerDependencies: - next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - - '@sentry/nextjs@9.15.0': - resolution: {integrity: sha512-lx/q1Uqe37MtNff8UIBL5G8SaHn48lDlZyQKrsTd+4txBwT2DsAnyR029n/ZQW5bc1/rLM/qebKLy76x+Xq0vA==} + '@sentry/nextjs@10.3.0': + resolution: {integrity: sha512-oyvkabOWYb/ZlGXeNTaHQkX/exVkutJ+YmOaUvp/t2faECJbwUnegVAZzbk1qJoo7WPdKYhdtDCT1W2wD/4CLw==} engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - '@sentry/node@8.52.1': - resolution: {integrity: sha512-we9fIfn5Q0c6U4VPrXhNtJ7uz5HkTlnOQV7hP/GG09tmKa6hrL20tkhCosObl3XZ/qlIbD/GQMv4WmhOgNzgkQ==} - engines: {node: '>=14.18'} - - '@sentry/node@9.15.0': - resolution: {integrity: sha512-K0LdJxIzYbbsbiT+1tKgNq6MUHuDs2DggBDcFEp3T+yXVJYN1AyalUli06Kmxq8yvou6hgLwWL4gjIcB1IQySA==} - engines: {node: '>=18'} - - '@sentry/opentelemetry@8.52.1': - resolution: {integrity: sha512-xaGm/KlfFi3yxK6PP+IRLnvfnd8Hp3yvJIdp3Mvc2aHW1Dh7zz+VTNNmWFZQmAbWrNqIoqZG2s1tZOeJwMHPpg==} - engines: {node: '>=14.18'} - peerDependencies: - '@opentelemetry/api': ^1.9.0 - '@opentelemetry/core': ^1.29.0 - '@opentelemetry/instrumentation': ^0.56.0 - '@opentelemetry/sdk-trace-base': ^1.29.0 - '@opentelemetry/semantic-conventions': ^1.28.0 - - '@sentry/opentelemetry@9.15.0': - resolution: {integrity: sha512-gGOzgSxbuh4B4SlEonL1LFsazmeqL/fn5CIQqRG0UWWxdt6TKAMlj0ThIlGF3jSHW2eXdpvs+4E73uFEaHIqfg==} + '@sentry/node-core@10.3.0': + resolution: {integrity: sha512-JLkm9GpZbSwT2j+tIlcXA/iCWydIOy4EDjXqE7OCqXRnGlWbqA0jtQtwGJV/ma4ktfgOIRVAc9nXE3dNPMoBPw==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 - '@opentelemetry/context-async-hooks': ^1.30.1 - '@opentelemetry/core': ^1.30.1 - '@opentelemetry/instrumentation': ^0.57.1 - '@opentelemetry/sdk-trace-base': ^1.30.1 - '@opentelemetry/semantic-conventions': ^1.28.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 + '@opentelemetry/core': ^1.30.1 || ^2.0.0 + '@opentelemetry/instrumentation': '>=0.57.1 <1' + '@opentelemetry/resources': ^1.30.1 || ^2.0.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 + '@opentelemetry/semantic-conventions': ^1.34.0 - '@sentry/react@8.52.1': - resolution: {integrity: sha512-Qc3NoSgYXSc0BRekAfk4rlWfO3Q/fREteYKZO3CqX7JIZZ6FvE4DvueHZzzfSbejA0ccRUxxQYXlASL8hEOcyg==} - engines: {node: '>=14.18'} + '@sentry/node@10.3.0': + resolution: {integrity: sha512-q7jO5V6B3mGZBy7cZBa/meecMBH8GqurcHDxsNa9S99pM7wEoDteRmRCJXKWSJqCr3PD9QrJI4e1X8YBJu7XSw==} + engines: {node: '>=18'} + + '@sentry/opentelemetry@10.3.0': + resolution: {integrity: sha512-tjXcKLnGycfcSgN4juVyOUGL1t21io3sDROnnAPCCLSHXu+/yqS4Ff1zNYxhxSfUYpoM8Cf2O1kwl4H0+DKvNQ==} + engines: {node: '>=18'} peerDependencies: - react: ^16.14.0 || 17.x || 18.x || 19.x + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 + '@opentelemetry/core': ^1.30.1 || ^2.0.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 + '@opentelemetry/semantic-conventions': ^1.34.0 - '@sentry/react@9.15.0': - resolution: {integrity: sha512-8nojSjiEd/EWIgoWVfkNIkBGL2yoFZoVMBUTcYlypsMnUHNko2RJItOBqZs5/DRBxuzfBKVt8PF+gkhQOm6mPg==} + '@sentry/react@10.3.0': + resolution: {integrity: sha512-a/jHX0tuzBmGM8AZz5CQ3Tm4M9Icp3XPFieWDWCLsaMr1PaK5lTH+ytPN5OyxT0b0Gnp/MkSjA/hpdoJq/N9zQ==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vercel-edge@8.52.1': - resolution: {integrity: sha512-rhBQXssahAtJsUsRWcrNtSOivp8/EnQ0S3Hz94X73qJQ2BFuYtIA/lM8zrub5Jcpa1X3vltW7Hj2oXrqdP6bOg==} - engines: {node: '>=14.18'} - - '@sentry/vercel-edge@9.15.0': - resolution: {integrity: sha512-Rfc6pDbHMg5DMIgyZHVIO4IeHgxcH3myPBy9HP1hMLtcEqKL/YS8dK3oQrZoUsNP9chjXkrp4bBeKT/phX3pMg==} + '@sentry/vercel-edge@10.3.0': + resolution: {integrity: sha512-GYaUnRX4aeo1B528uL33LgYUbWx4YDvWgnDYs7skoh3Cb1f3xHAy8vUcAFDc7nwV3psYMPdy0To5KfCa8nrXgg==} engines: {node: '>=18'} - '@sentry/webpack-plugin@2.22.7': - resolution: {integrity: sha512-j5h5LZHWDlm/FQCCmEghQ9FzYXwfZdlOf3FE/X6rK6lrtx0JCAkq+uhMSasoyP4XYKL4P4vRS6WFSos4jxf/UA==} - engines: {node: '>= 14'} - peerDependencies: - webpack: '>=4.40.0' - - '@sentry/webpack-plugin@3.3.1': - resolution: {integrity: sha512-AFRnGNUnlIvq3M+ADdfWb+DIXWKK6yYEkVPAyOppkjO+cL/19gjXMdvAwv+CMFts28YCFKF8Kr3pamUiCmwodA==} + '@sentry/webpack-plugin@4.0.2': + resolution: {integrity: sha512-UklVtG7Iiw+AvcL0PfiiyW/u3XT+joDAMDvWbx90rFhVSU10ENW5AV5y4pC41qChqEu3P1eBFdaSxg+kdLeqvw==} engines: {node: '>= 14'} peerDependencies: webpack: '>=4.40.0' @@ -8496,9 +8157,6 @@ packages: '@types/common-tags@1.8.4': resolution: {integrity: sha512-S+1hLDJPjWNDhcGxsxEbepzaxWqURP/o+3cP4aa2w7yBXgdcmKGQtZzP8JbyfOd0m+33nh+8+kvxYE2UJtBDkg==} - '@types/connect@3.4.36': - resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} - '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -8637,9 +8295,6 @@ packages: '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} @@ -8732,8 +8387,8 @@ packages: '@types/mute-stream@0.0.4': resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} - '@types/mysql@2.15.26': - resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} + '@types/mysql@2.15.27': + resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} '@types/node-fetch@2.6.6': resolution: {integrity: sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==} @@ -8762,8 +8417,8 @@ packages: '@types/pg@8.11.11': resolution: {integrity: sha512-kGT1qKM8wJQ5qlawUrEkXgvMSXoV213KfMGXcwfDwUIfUHXqXYXOfS1nE1LINRJVVVx5wCm70XnFlMHaIcQAfw==} - '@types/pg@8.6.1': - resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} + '@types/pg@8.15.4': + resolution: {integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==} '@types/phoenix@1.6.4': resolution: {integrity: sha512-B34A7uot1Cv0XtaHRYDATltAdKx0BvVKNgYNqE4WjtPUa4VQJM7kxeXcVKaH+KS+kCmZ+6w+QaUdcljiheiBJA==} @@ -9206,10 +8861,6 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} - engines: {node: '>= 14'} - agent-base@7.1.3: resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} @@ -12413,6 +12064,9 @@ packages: import-in-the-middle@1.13.1: resolution: {integrity: sha512-k2V9wNm9B+ysuelDTHjI9d5KPc4l8zAZTGqj+pcynvWkypZd857ryzN8jNC7Pg2YZXNMJcHRPpaDyCBbNyVRpA==} + import-in-the-middle@1.14.2: + resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==} + import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -16074,16 +15728,6 @@ packages: rollup: optional: true - rollup@3.29.5: - resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.35.0: - resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.38.0: resolution: {integrity: sha512-5SsIRtJy9bf1ErAOiFMFzl64Ex9X5V7bnJ+WlFMb+zmP459OSWCEG7b0ERZ+PEU7xPt4OG3RHbrp1LJlXxYTrw==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -20108,7 +19752,7 @@ snapshots: dependencies: '@contentlayer2/core': 0.5.3(esbuild@0.25.2)(markdown-wasm@1.2.0)(supports-color@8.1.1) '@contentlayer2/utils': 0.5.3 - chokidar: 3.5.3 + chokidar: 3.6.0 fast-glob: 3.3.3 gray-matter: 4.0.3 imagescript: 1.3.0 @@ -20148,16 +19792,16 @@ snapshots: '@contentlayer2/utils@0.4.3': dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) - '@effect-ts/otel-sdk-trace-node': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.9.0)) + '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)) + '@effect-ts/otel-sdk-trace-node': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.9.0)) '@js-temporal/polyfill': 0.4.4 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-grpc': 0.51.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 1.24.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/semantic-conventions': 1.36.0 chokidar: 3.5.3 hash-wasm: 4.11.0 inflection: 3.0.0 @@ -20169,17 +19813,17 @@ snapshots: '@contentlayer2/utils@0.5.3': dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) - '@effect-ts/otel-sdk-trace-node': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.9.0)) + '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)) + '@effect-ts/otel-sdk-trace-node': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.9.0)) '@js-temporal/polyfill': 0.4.4 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-trace-otlp-grpc': 0.51.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 1.24.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - chokidar: 3.5.3 + '@opentelemetry/semantic-conventions': 1.36.0 + chokidar: 3.6.0 hash-wasm: 4.11.0 inflection: 3.0.0 memfs: 4.14.1 @@ -20281,21 +19925,21 @@ snapshots: dependencies: '@effect-ts/system': 0.57.5 - '@effect-ts/otel-sdk-trace-node@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.9.0))': + '@effect-ts/otel-sdk-trace-node@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.9.0))': dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0)) + '@effect-ts/otel': 0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)) '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-node': 1.24.1(@opentelemetry/api@1.9.0) - '@effect-ts/otel@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.26.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.26.0(@opentelemetry/api@1.9.0))': + '@effect-ts/otel@0.15.1(@effect-ts/core@0.60.5)(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))': dependencies: '@effect-ts/core': 0.60.5 '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@effect-ts/system@0.57.5': {} @@ -22025,7 +21669,7 @@ snapshots: '@npmcli/agent@2.2.2(supports-color@8.1.1)': dependencies: - agent-base: 7.1.1(supports-color@8.1.1) + agent-base: 7.1.3 http-proxy-agent: 7.0.2(supports-color@8.1.1) https-proxy-agent: 7.0.6(supports-color@8.1.1) lru-cache: 10.4.3 @@ -22200,6 +21844,10 @@ snapshots: '@open-draft/until@2.1.0': {} + '@opentelemetry/api-logs@0.203.0': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs@0.51.1': dependencies: '@opentelemetry/api': 1.9.0 @@ -22208,10 +21856,6 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.56.0': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs@0.57.2': dependencies: '@opentelemetry/api': 1.9.0 @@ -22226,7 +21870,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -22240,16 +21884,16 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.27.0 - '@opentelemetry/core@1.29.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/exporter-trace-otlp-grpc@0.51.1(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.10.9 @@ -22269,435 +21913,202 @@ snapshots: '@opentelemetry/resources': 1.26.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib@0.45.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-amqplib@0.50.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-connect@0.47.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-connect@0.42.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 - '@types/connect': 3.4.36 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.15.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-dataloader@0.21.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-express@0.52.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.46.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-fs@0.23.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-generic-pool@0.47.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fastify@0.43.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-graphql@0.51.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fastify@0.44.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-hapi@0.50.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.18.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-http@0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-generic-pool@0.42.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-graphql@0.46.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-hapi@0.44.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-http@0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 forwarded-parse: 2.1.2 - semver: 7.7.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-ioredis@0.51.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 - forwarded-parse: 2.1.2 - semver: 7.7.1 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/redis-common': 0.38.0 + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.46.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-kafkajs@0.12.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-knex@0.48.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.6.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-koa@0.51.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-lru-memoizer@0.48.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.43.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-mongodb@0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-mongoose@0.50.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.46.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-mysql2@0.49.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-mysql@0.49.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/mysql': 2.15.27 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.43.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-pg@0.55.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongodb@0.50.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongoose@0.45.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql2@0.44.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql@0.44.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 - '@types/mysql': 2.15.26 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/mysql': 2.15.26 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-nestjs-core@0.43.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-pg@0.49.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.27.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - '@types/pg': 8.6.1 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sql-common': 0.41.0(@opentelemetry/api@1.9.0) + '@types/pg': 8.15.4 '@types/pg-pool': 2.0.6 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-redis@0.51.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - '@types/pg': 8.6.1 - '@types/pg-pool': 2.0.6 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/redis-common': 0.38.0 + '@opentelemetry/semantic-conventions': 1.36.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis-4@0.45.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-tedious@0.22.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.28.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.32.0 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-tedious@0.17.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/semantic-conventions': 1.36.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation-undici@0.14.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/semantic-conventions': 1.32.0 - '@types/tedious': 4.0.14 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation-undici@0.9.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.53.0 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.13.1 + '@opentelemetry/api-logs': 0.203.0 + import-in-the-middle: 1.14.2 require-in-the-middle: 7.5.2(supports-color@8.1.1) - semver: 7.7.1 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color - - '@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.56.0 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.13.1 - require-in-the-middle: 7.5.2(supports-color@8.1.1) - semver: 7.7.1 - shimmer: 1.2.1 transitivePeerDependencies: - supports-color @@ -22706,7 +22117,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/api-logs': 0.57.2 '@types/shimmer': 1.2.0 - import-in-the-middle: 1.13.1 + import-in-the-middle: 1.14.2 require-in-the-middle: 7.5.2(supports-color@8.1.1) semver: 7.7.1 shimmer: 1.2.1 @@ -22773,7 +22184,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.26.0(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common@0.36.2': {} + '@opentelemetry/redis-common@0.38.0': {} '@opentelemetry/resources@1.24.1(@opentelemetry/api@1.9.0)': dependencies: @@ -22793,6 +22204,12 @@ snapshots: '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sdk-logs@0.51.1(@opentelemetry/api-logs@0.51.1)(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -22841,6 +22258,13 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sdk-trace-node@1.24.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -22867,12 +22291,12 @@ snapshots: '@opentelemetry/semantic-conventions@1.28.0': {} - '@opentelemetry/semantic-conventions@1.32.0': {} + '@opentelemetry/semantic-conventions@1.36.0': {} - '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': + '@opentelemetry/sql-common@0.41.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -23261,15 +22685,7 @@ snapshots: '@poppinss/exception@1.2.1': {} - '@prisma/instrumentation@5.22.0(supports-color@8.1.1)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color - - '@prisma/instrumentation@6.6.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': + '@prisma/instrumentation@6.13.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) @@ -24988,7 +24404,7 @@ snapshots: '@redocly/ajv': 8.11.2 '@redocly/config': 0.20.1 colorette: 1.4.0 - https-proxy-agent: 7.0.4(supports-color@9.4.0) + https-proxy-agent: 7.0.6(supports-color@9.4.0) js-levenshtein: 1.1.6 js-yaml: 4.1.0 minimatch: 5.1.6 @@ -25060,9 +24476,9 @@ snapshots: optionalDependencies: rollup: 4.38.0 - '@rollup/plugin-commonjs@28.0.1(rollup@3.29.5)': + '@rollup/plugin-commonjs@28.0.1(rollup@4.38.0)': dependencies: - '@rollup/pluginutils': 5.1.4(rollup@3.29.5) + '@rollup/pluginutils': 5.1.4(rollup@4.38.0) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.6(picomatch@4.0.2) @@ -25070,19 +24486,7 @@ snapshots: magic-string: 0.30.17 picomatch: 4.0.2 optionalDependencies: - rollup: 3.29.5 - - '@rollup/plugin-commonjs@28.0.1(rollup@4.35.0)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.35.0) - commondir: 1.0.1 - estree-walker: 2.0.2 - fdir: 6.4.6(picomatch@4.0.2) - is-reference: 1.2.1 - magic-string: 0.30.17 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.35.0 + rollup: 4.38.0 '@rollup/plugin-commonjs@28.0.3(rollup@4.38.0)': dependencies: @@ -25135,22 +24539,6 @@ snapshots: optionalDependencies: rollup: 4.38.0 - '@rollup/pluginutils@5.1.4(rollup@3.29.5)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 3.29.5 - - '@rollup/pluginutils@5.1.4(rollup@4.35.0)': - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.35.0 - '@rollup/pluginutils@5.1.4(rollup@4.38.0)': dependencies: '@types/estree': 1.0.5 @@ -25159,120 +24547,63 @@ snapshots: optionalDependencies: rollup: 4.38.0 - '@rollup/rollup-android-arm-eabi@4.35.0': - optional: true - '@rollup/rollup-android-arm-eabi@4.38.0': optional: true - '@rollup/rollup-android-arm64@4.35.0': - optional: true - '@rollup/rollup-android-arm64@4.38.0': optional: true - '@rollup/rollup-darwin-arm64@4.35.0': - optional: true - '@rollup/rollup-darwin-arm64@4.38.0': optional: true - '@rollup/rollup-darwin-x64@4.35.0': - optional: true - '@rollup/rollup-darwin-x64@4.38.0': optional: true - '@rollup/rollup-freebsd-arm64@4.35.0': - optional: true - '@rollup/rollup-freebsd-arm64@4.38.0': optional: true - '@rollup/rollup-freebsd-x64@4.35.0': - optional: true - '@rollup/rollup-freebsd-x64@4.38.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.35.0': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.38.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.35.0': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.38.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.35.0': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.38.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.35.0': - optional: true - '@rollup/rollup-linux-arm64-musl@4.38.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.35.0': - optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.38.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': - optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.38.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.35.0': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.38.0': optional: true '@rollup/rollup-linux-riscv64-musl@4.38.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.35.0': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.38.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.35.0': - optional: true - '@rollup/rollup-linux-x64-gnu@4.38.0': optional: true - '@rollup/rollup-linux-x64-musl@4.35.0': - optional: true - '@rollup/rollup-linux-x64-musl@4.38.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.35.0': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.38.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.35.0': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.38.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.35.0': - optional: true - '@rollup/rollup-win32-x64-msvc@4.38.0': optional: true @@ -25280,67 +24611,39 @@ snapshots: '@rushstack/eslint-patch@1.10.3': {} - '@sentry-internal/browser-utils@8.52.1': + '@sentry-internal/browser-utils@10.3.0': dependencies: - '@sentry/core': 8.52.1 + '@sentry/core': 10.3.0 - '@sentry-internal/browser-utils@9.15.0': + '@sentry-internal/feedback@10.3.0': dependencies: - '@sentry/core': 9.15.0 + '@sentry/core': 10.3.0 - '@sentry-internal/feedback@8.52.1': + '@sentry-internal/replay-canvas@10.3.0': dependencies: - '@sentry/core': 8.52.1 + '@sentry-internal/replay': 10.3.0 + '@sentry/core': 10.3.0 - '@sentry-internal/feedback@9.15.0': + '@sentry-internal/replay@10.3.0': dependencies: - '@sentry/core': 9.15.0 + '@sentry-internal/browser-utils': 10.3.0 + '@sentry/core': 10.3.0 - '@sentry-internal/replay-canvas@8.52.1': + '@sentry/babel-plugin-component-annotate@4.0.2': {} + + '@sentry/browser@10.3.0': dependencies: - '@sentry-internal/replay': 8.52.1 - '@sentry/core': 8.52.1 + '@sentry-internal/browser-utils': 10.3.0 + '@sentry-internal/feedback': 10.3.0 + '@sentry-internal/replay': 10.3.0 + '@sentry-internal/replay-canvas': 10.3.0 + '@sentry/core': 10.3.0 - '@sentry-internal/replay-canvas@9.15.0': - dependencies: - '@sentry-internal/replay': 9.15.0 - '@sentry/core': 9.15.0 - - '@sentry-internal/replay@8.52.1': - dependencies: - '@sentry-internal/browser-utils': 8.52.1 - '@sentry/core': 8.52.1 - - '@sentry-internal/replay@9.15.0': - dependencies: - '@sentry-internal/browser-utils': 9.15.0 - '@sentry/core': 9.15.0 - - '@sentry/babel-plugin-component-annotate@2.22.7': {} - - '@sentry/babel-plugin-component-annotate@3.3.1': {} - - '@sentry/browser@8.52.1': - dependencies: - '@sentry-internal/browser-utils': 8.52.1 - '@sentry-internal/feedback': 8.52.1 - '@sentry-internal/replay': 8.52.1 - '@sentry-internal/replay-canvas': 8.52.1 - '@sentry/core': 8.52.1 - - '@sentry/browser@9.15.0': - dependencies: - '@sentry-internal/browser-utils': 9.15.0 - '@sentry-internal/feedback': 9.15.0 - '@sentry-internal/replay': 9.15.0 - '@sentry-internal/replay-canvas': 9.15.0 - '@sentry/core': 9.15.0 - - '@sentry/bundler-plugin-core@2.22.7(encoding@0.1.13)(supports-color@8.1.1)': + '@sentry/bundler-plugin-core@4.0.2(encoding@0.1.13)(supports-color@8.1.1)': dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) - '@sentry/babel-plugin-component-annotate': 2.22.7 - '@sentry/cli': 2.39.1(encoding@0.1.13)(supports-color@8.1.1) + '@sentry/babel-plugin-component-annotate': 4.0.2 + '@sentry/cli': 2.51.1(encoding@0.1.13)(supports-color@8.1.1) dotenv: 16.5.0 find-up: 5.0.0 glob: 9.3.5 @@ -25350,63 +24653,31 @@ snapshots: - encoding - supports-color - '@sentry/bundler-plugin-core@3.3.1(encoding@0.1.13)(supports-color@8.1.1)': - dependencies: - '@babel/core': 7.26.10(supports-color@8.1.1) - '@sentry/babel-plugin-component-annotate': 3.3.1 - '@sentry/cli': 2.42.2(encoding@0.1.13)(supports-color@8.1.1) - dotenv: 16.5.0 - find-up: 5.0.0 - glob: 9.3.5 - magic-string: 0.30.8 - unplugin: 1.0.1 - transitivePeerDependencies: - - encoding - - supports-color - - '@sentry/cli-darwin@2.39.1': + '@sentry/cli-darwin@2.51.1': optional: true - '@sentry/cli-darwin@2.42.2': + '@sentry/cli-linux-arm64@2.51.1': optional: true - '@sentry/cli-linux-arm64@2.39.1': + '@sentry/cli-linux-arm@2.51.1': optional: true - '@sentry/cli-linux-arm64@2.42.2': + '@sentry/cli-linux-i686@2.51.1': optional: true - '@sentry/cli-linux-arm@2.39.1': + '@sentry/cli-linux-x64@2.51.1': optional: true - '@sentry/cli-linux-arm@2.42.2': + '@sentry/cli-win32-arm64@2.51.1': optional: true - '@sentry/cli-linux-i686@2.39.1': + '@sentry/cli-win32-i686@2.51.1': optional: true - '@sentry/cli-linux-i686@2.42.2': + '@sentry/cli-win32-x64@2.51.1': optional: true - '@sentry/cli-linux-x64@2.39.1': - optional: true - - '@sentry/cli-linux-x64@2.42.2': - optional: true - - '@sentry/cli-win32-i686@2.39.1': - optional: true - - '@sentry/cli-win32-i686@2.42.2': - optional: true - - '@sentry/cli-win32-x64@2.39.1': - optional: true - - '@sentry/cli-win32-x64@2.42.2': - optional: true - - '@sentry/cli@2.39.1(encoding@0.1.13)(supports-color@8.1.1)': + '@sentry/cli@2.51.1(encoding@0.1.13)(supports-color@8.1.1)': dependencies: https-proxy-agent: 5.0.1(supports-color@8.1.1) node-fetch: 2.7.0(encoding@0.1.13) @@ -25414,228 +24685,124 @@ snapshots: proxy-from-env: 1.1.0 which: 2.0.2 optionalDependencies: - '@sentry/cli-darwin': 2.39.1 - '@sentry/cli-linux-arm': 2.39.1 - '@sentry/cli-linux-arm64': 2.39.1 - '@sentry/cli-linux-i686': 2.39.1 - '@sentry/cli-linux-x64': 2.39.1 - '@sentry/cli-win32-i686': 2.39.1 - '@sentry/cli-win32-x64': 2.39.1 + '@sentry/cli-darwin': 2.51.1 + '@sentry/cli-linux-arm': 2.51.1 + '@sentry/cli-linux-arm64': 2.51.1 + '@sentry/cli-linux-i686': 2.51.1 + '@sentry/cli-linux-x64': 2.51.1 + '@sentry/cli-win32-arm64': 2.51.1 + '@sentry/cli-win32-i686': 2.51.1 + '@sentry/cli-win32-x64': 2.51.1 transitivePeerDependencies: - encoding - supports-color - '@sentry/cli@2.42.2(encoding@0.1.13)(supports-color@8.1.1)': - dependencies: - https-proxy-agent: 5.0.1(supports-color@8.1.1) - node-fetch: 2.7.0(encoding@0.1.13) - progress: 2.0.3 - proxy-from-env: 1.1.0 - which: 2.0.2 - optionalDependencies: - '@sentry/cli-darwin': 2.42.2 - '@sentry/cli-linux-arm': 2.42.2 - '@sentry/cli-linux-arm64': 2.42.2 - '@sentry/cli-linux-i686': 2.42.2 - '@sentry/cli-linux-x64': 2.42.2 - '@sentry/cli-win32-i686': 2.42.2 - '@sentry/cli-win32-x64': 2.42.2 - transitivePeerDependencies: - - encoding - - supports-color + '@sentry/core@10.3.0': {} - '@sentry/core@8.52.1': {} - - '@sentry/core@9.15.0': {} - - '@sentry/nextjs@8.52.1(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)': + '@sentry/nextjs@10.3.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.28.0 - '@rollup/plugin-commonjs': 28.0.1(rollup@3.29.5) - '@sentry-internal/browser-utils': 8.52.1 - '@sentry/core': 8.52.1 - '@sentry/node': 8.52.1(supports-color@8.1.1) - '@sentry/opentelemetry': 8.52.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.28.0) - '@sentry/react': 8.52.1(react@18.3.1) - '@sentry/vercel-edge': 8.52.1 - '@sentry/webpack-plugin': 2.22.7(encoding@0.1.13)(supports-color@8.1.1)(webpack@5.94.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@rollup/plugin-commonjs': 28.0.1(rollup@4.38.0) + '@sentry-internal/browser-utils': 10.3.0 + '@sentry/core': 10.3.0 + '@sentry/node': 10.3.0(supports-color@8.1.1) + '@sentry/opentelemetry': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + '@sentry/react': 10.3.0(react@18.3.1) + '@sentry/vercel-edge': 10.3.0 + '@sentry/webpack-plugin': 4.0.2(encoding@0.1.13)(supports-color@8.1.1)(webpack@5.94.0) chalk: 3.0.0 next: 15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) resolve: 1.22.8 - rollup: 3.29.5 - stacktrace-parser: 0.1.10 - transitivePeerDependencies: - - '@opentelemetry/core' - - '@opentelemetry/instrumentation' - - '@opentelemetry/sdk-trace-base' - - encoding - - react - - supports-color - - webpack - - '@sentry/nextjs@9.15.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(react@18.3.1)(supports-color@8.1.1)(webpack@5.94.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.32.0 - '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) - '@sentry-internal/browser-utils': 9.15.0 - '@sentry/core': 9.15.0 - '@sentry/node': 9.15.0(supports-color@8.1.1) - '@sentry/opentelemetry': 9.15.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.32.0) - '@sentry/react': 9.15.0(react@18.3.1) - '@sentry/vercel-edge': 9.15.0 - '@sentry/webpack-plugin': 3.3.1(encoding@0.1.13)(supports-color@8.1.1)(webpack@5.94.0) - chalk: 3.0.0 - next: 15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) - resolve: 1.22.8 - rollup: 4.35.0 + rollup: 4.38.0 stacktrace-parser: 0.1.10 transitivePeerDependencies: - '@opentelemetry/context-async-hooks' - '@opentelemetry/core' - - '@opentelemetry/instrumentation' - '@opentelemetry/sdk-trace-base' - encoding - react - supports-color - webpack - '@sentry/node@8.52.1(supports-color@8.1.1)': + '@sentry/node-core@10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-amqplib': 0.45.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-connect': 0.42.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-dataloader': 0.15.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-express': 0.46.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-fastify': 0.43.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-fs': 0.18.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-generic-pool': 0.42.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-graphql': 0.46.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-hapi': 0.44.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-http': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-ioredis': 0.46.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-kafkajs': 0.6.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-knex': 0.43.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-koa': 0.46.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-lru-memoizer': 0.43.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-mongodb': 0.50.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-mongoose': 0.45.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-mysql': 0.44.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-mysql2': 0.44.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-nestjs-core': 0.43.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-pg': 0.49.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-redis-4': 0.45.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-tedious': 0.17.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-undici': 0.9.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - '@prisma/instrumentation': 5.22.0(supports-color@8.1.1) - '@sentry/core': 8.52.1 - '@sentry/opentelemetry': 8.52.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.28.0) - import-in-the-middle: 1.13.1 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@sentry/core': 10.3.0 + '@sentry/opentelemetry': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + import-in-the-middle: 1.14.2 + + '@sentry/node@10.3.0(supports-color@8.1.1)': + dependencies: + '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/instrumentation': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-amqplib': 0.50.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-connect': 0.47.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-dataloader': 0.21.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-express': 0.52.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-fs': 0.23.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-generic-pool': 0.47.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-graphql': 0.51.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-hapi': 0.50.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-http': 0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-ioredis': 0.51.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-kafkajs': 0.12.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-knex': 0.48.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-koa': 0.51.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-lru-memoizer': 0.48.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-mongodb': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-mongoose': 0.50.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-mysql': 0.49.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-mysql2': 0.49.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-pg': 0.55.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-redis': 0.51.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-tedious': 0.22.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/instrumentation-undici': 0.14.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@prisma/instrumentation': 6.13.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) + '@sentry/core': 10.3.0 + '@sentry/node-core': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + '@sentry/opentelemetry': 10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) + import-in-the-middle: 1.14.2 + minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/node@9.15.0(supports-color@8.1.1)': + '@sentry/opentelemetry@10.3.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0)': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-amqplib': 0.46.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-connect': 0.43.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-dataloader': 0.16.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-express': 0.47.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-fastify': 0.44.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-fs': 0.19.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-generic-pool': 0.43.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-graphql': 0.47.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-hapi': 0.45.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-http': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-ioredis': 0.47.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-kafkajs': 0.7.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-knex': 0.44.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-koa': 0.47.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-lru-memoizer': 0.44.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-mongodb': 0.52.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-mongoose': 0.46.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-mysql': 0.45.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-mysql2': 0.45.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-pg': 0.51.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-redis-4': 0.46.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-tedious': 0.18.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/instrumentation-undici': 0.10.1(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@prisma/instrumentation': 6.6.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@sentry/core': 9.15.0 - '@sentry/opentelemetry': 9.15.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.32.0) - import-in-the-middle: 1.13.1 - transitivePeerDependencies: - - supports-color + '@opentelemetry/context-async-hooks': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-trace-base': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/semantic-conventions': 1.36.0 + '@sentry/core': 10.3.0 - '@sentry/opentelemetry@8.52.1(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.28.0)': + '@sentry/react@10.3.0(react@18.3.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - '@sentry/core': 8.52.1 - - '@sentry/opentelemetry@9.15.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.32.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0)(supports-color@8.1.1) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.32.0 - '@sentry/core': 9.15.0 - - '@sentry/react@8.52.1(react@18.3.1)': - dependencies: - '@sentry/browser': 8.52.1 - '@sentry/core': 8.52.1 + '@sentry/browser': 10.3.0 + '@sentry/core': 10.3.0 hoist-non-react-statics: 3.3.2 react: 18.3.1 - '@sentry/react@9.15.0(react@18.3.1)': - dependencies: - '@sentry/browser': 9.15.0 - '@sentry/core': 9.15.0 - hoist-non-react-statics: 3.3.2 - react: 18.3.1 - - '@sentry/vercel-edge@8.52.1': + '@sentry/vercel-edge@10.3.0': dependencies: '@opentelemetry/api': 1.9.0 - '@sentry/core': 8.52.1 + '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) + '@sentry/core': 10.3.0 - '@sentry/vercel-edge@9.15.0': + '@sentry/webpack-plugin@4.0.2(encoding@0.1.13)(supports-color@8.1.1)(webpack@5.94.0)': dependencies: - '@opentelemetry/api': 1.9.0 - '@sentry/core': 9.15.0 - - '@sentry/webpack-plugin@2.22.7(encoding@0.1.13)(supports-color@8.1.1)(webpack@5.94.0)': - dependencies: - '@sentry/bundler-plugin-core': 2.22.7(encoding@0.1.13)(supports-color@8.1.1) - unplugin: 1.0.1 - uuid: 9.0.1 - webpack: 5.94.0 - transitivePeerDependencies: - - encoding - - supports-color - - '@sentry/webpack-plugin@3.3.1(encoding@0.1.13)(supports-color@8.1.1)(webpack@5.94.0)': - dependencies: - '@sentry/bundler-plugin-core': 3.3.1(encoding@0.1.13)(supports-color@8.1.1) + '@sentry/bundler-plugin-core': 4.0.2(encoding@0.1.13)(supports-color@8.1.1) unplugin: 1.0.1 uuid: 9.0.1 webpack: 5.94.0 @@ -26570,7 +25737,7 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-client@1.114.27(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': + '@tanstack/react-start-client@1.114.27(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': dependencies: '@tanstack/react-router': 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/router-core': 1.114.25 @@ -26581,7 +25748,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -26625,7 +25792,7 @@ snapshots: - xml2js - yaml - '@tanstack/react-start-config@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': + '@tanstack/react-start-config@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': dependencies: '@tanstack/react-start-plugin': 1.114.12(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) '@tanstack/router-core': 1.114.25 @@ -26635,11 +25802,11 @@ snapshots: '@tanstack/start-server-functions-handler': 1.114.25 '@vitejs/plugin-react': 4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5)) import-meta-resolve: 4.1.0 - nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2) + nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2) ofetch: 1.4.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) zod: 3.25.76 transitivePeerDependencies: @@ -26717,11 +25884,11 @@ snapshots: - tsx - yaml - '@tanstack/react-start-router-manifest@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': + '@tanstack/react-start-router-manifest@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': dependencies: '@tanstack/router-core': 1.114.25 tiny-invariant: 1.3.3 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -26780,13 +25947,13 @@ snapshots: tiny-warning: 1.0.3 unctx: 2.4.1 - '@tanstack/react-start@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': + '@tanstack/react-start@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': dependencies: - '@tanstack/react-start-client': 1.114.27(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) - '@tanstack/react-start-config': 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) - '@tanstack/react-start-router-manifest': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + '@tanstack/react-start-client': 1.114.27(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + '@tanstack/react-start-config': 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) + '@tanstack/react-start-router-manifest': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) '@tanstack/react-start-server': 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/start-api-routes': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + '@tanstack/start-api-routes': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) '@tanstack/start-server-functions-client': 1.114.25(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) '@tanstack/start-server-functions-handler': 1.114.25 '@tanstack/start-server-functions-server': 1.114.12(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) @@ -26937,11 +26104,11 @@ snapshots: - tsx - yaml - '@tanstack/start-api-routes@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': + '@tanstack/start-api-routes@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': dependencies: '@tanstack/router-core': 1.114.25 '@tanstack/start-server-core': 1.114.25 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -27240,10 +26407,6 @@ snapshots: '@types/common-tags@1.8.4': {} - '@types/connect@3.4.36': - dependencies: - '@types/node': 22.13.14 - '@types/connect@3.4.38': dependencies: '@types/node': 22.13.14 @@ -27406,8 +26569,6 @@ snapshots: '@types/estree@1.0.5': {} - '@types/estree@1.0.6': {} - '@types/estree@1.0.7': {} '@types/extend@3.0.4': {} @@ -27495,7 +26656,7 @@ snapshots: dependencies: '@types/node': 22.13.14 - '@types/mysql@2.15.26': + '@types/mysql@2.15.27': dependencies: '@types/node': 22.13.14 @@ -27522,7 +26683,7 @@ snapshots: '@types/pg-pool@2.0.6': dependencies: - '@types/pg': 8.6.1 + '@types/pg': 8.15.4 '@types/pg@8.10.2': dependencies: @@ -27536,7 +26697,7 @@ snapshots: pg-protocol: 1.7.1 pg-types: 4.0.2 - '@types/pg@8.6.1': + '@types/pg@8.15.4': dependencies: '@types/node': 22.13.14 pg-protocol: 1.7.1 @@ -28155,18 +27316,6 @@ snapshots: transitivePeerDependencies: - supports-color - agent-base@7.1.1(supports-color@8.1.1): - dependencies: - debug: 4.4.0(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - agent-base@7.1.1(supports-color@9.4.0): - dependencies: - debug: 4.4.0(supports-color@9.4.0) - transitivePeerDependencies: - - supports-color - agent-base@7.1.3: {} agentkeepalive@4.5.0: @@ -29544,10 +28693,10 @@ snapshots: dayjs@1.11.13: {} - db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)): + db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)): optionalDependencies: '@electric-sql/pglite': 0.2.15 - drizzle-orm: 0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1) + drizzle-orm: 0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1) debounce-promise@3.1.2: {} @@ -29792,11 +28941,11 @@ snapshots: pg: 8.11.3 react: 18.3.1 - drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1): + drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1): optionalDependencies: '@electric-sql/pglite': 0.2.15 '@opentelemetry/api': 1.9.0 - '@types/pg': 8.11.11 + '@types/pg': 8.15.4 '@types/react': 18.3.3 pg: 8.13.1 react: 18.3.1 @@ -31784,18 +30933,11 @@ snapshots: https-proxy-agent@7.0.4(supports-color@8.1.1): dependencies: - agent-base: 7.1.1(supports-color@8.1.1) + agent-base: 7.1.3 debug: 4.4.0(supports-color@8.1.1) transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.4(supports-color@9.4.0): - dependencies: - agent-base: 7.1.1(supports-color@9.4.0) - debug: 4.4.0(supports-color@9.4.0) - transitivePeerDependencies: - - supports-color - https-proxy-agent@7.0.6(supports-color@8.1.1): dependencies: agent-base: 7.1.3 @@ -31869,6 +31011,13 @@ snapshots: cjs-module-lexer: 1.4.1 module-details-from-path: 1.0.3 + import-in-the-middle@1.14.2: + dependencies: + acorn: 8.14.1 + acorn-import-attributes: 1.9.5(acorn@8.14.1) + cjs-module-lexer: 1.4.1 + module-details-from-path: 1.0.3 + import-meta-resolve@4.1.0: {} imurmurhash@0.1.4: {} @@ -34327,7 +33476,7 @@ snapshots: nice-try@1.0.5: {} - nitropack@2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2): + nitropack@2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@netlify/functions': 3.0.4 @@ -34349,7 +33498,7 @@ snapshots: cookie-es: 2.0.0 croner: 9.0.0 crossws: 0.3.4 - db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)) + db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)) defu: 6.1.4 destr: 2.0.3 dot-prop: 9.0.0 @@ -34396,7 +33545,7 @@ snapshots: unenv: 2.0.0-rc.15 unimport: 4.1.2 unplugin-utils: 0.2.4 - unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)) + unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)) untyped: 2.0.0 unwasm: 0.3.9 youch: 4.1.0-beta.6 @@ -36656,35 +35805,6 @@ snapshots: optionalDependencies: rollup: 4.38.0 - rollup@3.29.5: - optionalDependencies: - fsevents: 2.3.3 - - rollup@4.35.0: - dependencies: - '@types/estree': 1.0.6 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.35.0 - '@rollup/rollup-android-arm64': 4.35.0 - '@rollup/rollup-darwin-arm64': 4.35.0 - '@rollup/rollup-darwin-x64': 4.35.0 - '@rollup/rollup-freebsd-arm64': 4.35.0 - '@rollup/rollup-freebsd-x64': 4.35.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.35.0 - '@rollup/rollup-linux-arm-musleabihf': 4.35.0 - '@rollup/rollup-linux-arm64-gnu': 4.35.0 - '@rollup/rollup-linux-arm64-musl': 4.35.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.35.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0 - '@rollup/rollup-linux-riscv64-gnu': 4.35.0 - '@rollup/rollup-linux-s390x-gnu': 4.35.0 - '@rollup/rollup-linux-x64-gnu': 4.35.0 - '@rollup/rollup-linux-x64-musl': 4.35.0 - '@rollup/rollup-win32-arm64-msvc': 4.35.0 - '@rollup/rollup-win32-ia32-msvc': 4.35.0 - '@rollup/rollup-win32-x64-msvc': 4.35.0 - fsevents: 2.3.3 - rollup@4.38.0: dependencies: '@types/estree': 1.0.7 @@ -38546,7 +37666,7 @@ snapshots: acorn: 8.14.1 webpack-virtual-modules: 0.6.2 - unstorage@1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)): + unstorage@1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -38558,7 +37678,7 @@ snapshots: ufo: 1.5.4 optionalDependencies: aws4fetch: 1.0.20 - db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)) + db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)) ioredis: 5.6.0(supports-color@8.1.1) untun@0.1.3: @@ -38791,7 +37911,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vinxi@0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5): + vinxi@0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5): dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) @@ -38813,7 +37933,7 @@ snapshots: hookable: 5.5.3 http-proxy: 1.18.1 micromatch: 4.0.8 - nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2) + nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2) node-fetch-native: 1.6.6 path-to-regexp: 6.3.0 pathe: 1.1.2 @@ -38824,7 +37944,7 @@ snapshots: ufo: 1.5.4 unctx: 2.4.1 unenv: 1.10.0 - unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.11.11)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)) + unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)) vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) zod: 3.25.76 transitivePeerDependencies: From 7e91d7c4a30c00242d729e28909ddb9c03ec1e10 Mon Sep 17 00:00:00 2001 From: Francesco Sansalvadore Date: Mon, 11 Aug 2025 17:44:38 +0200 Subject: [PATCH 02/62] fix cms types and build (#36145) * fix cms types and build --------- Co-authored-by: Ivan Vasilov --- apps/cms/.env | 17 + apps/cms/.env.example | 13 - apps/cms/{.eslintrc.js => .eslintrc.cjs} | 0 apps/cms/.gitignore | 5 +- apps/cms/.vercelignore | 48 + apps/cms/docker-compose.yml | 2 +- apps/cms/next.config.mjs | 19 +- apps/cms/package.json | 48 +- apps/cms/redirects.js | 20 - apps/cms/scripts/migrate.ts | 28 + apps/cms/src/access/isAdmin.ts | 2 +- apps/cms/src/access/isAuthenticated.ts | 2 +- .../cms/src/blocks/ArchiveBlock/Component.tsx | 65 - apps/cms/src/blocks/ArchiveBlock/config.ts | 94 - .../cms/src/blocks/CallToAction/Component.tsx | 23 - apps/cms/src/blocks/CallToAction/config.ts | 42 - apps/cms/src/blocks/Code/CopyButton.tsx | 2 +- apps/cms/src/blocks/Content/Component.tsx | 43 - apps/cms/src/blocks/Content/config.ts | 79 - apps/cms/src/blocks/Form/Checkbox/index.tsx | 45 - apps/cms/src/blocks/Form/Component.tsx | 162 - apps/cms/src/blocks/Form/Country/index.tsx | 65 - apps/cms/src/blocks/Form/Country/options.ts | 982 --- apps/cms/src/blocks/Form/Email/index.tsx | 38 - apps/cms/src/blocks/Form/Error/index.tsx | 15 - apps/cms/src/blocks/Form/Message/index.tsx | 13 - apps/cms/src/blocks/Form/Number/index.tsx | 36 - apps/cms/src/blocks/Form/Select/index.tsx | 63 - apps/cms/src/blocks/Form/State/index.tsx | 64 - apps/cms/src/blocks/Form/State/options.ts | 52 - apps/cms/src/blocks/Form/Text/index.tsx | 32 - apps/cms/src/blocks/Form/Textarea/index.tsx | 40 - apps/cms/src/blocks/Form/Width/index.tsx | 13 - apps/cms/src/blocks/Form/config.ts | 51 - apps/cms/src/blocks/Form/fields.tsx | 21 - .../cms/src/blocks/RelatedPosts/Component.tsx | 32 - apps/cms/src/blocks/RenderBlocks.tsx | 51 - apps/cms/src/collections/Authors.ts | 2 +- apps/cms/src/collections/Categories.ts | 2 +- .../Customers/hooks/revalidateCustomer.ts | 31 +- apps/cms/src/collections/Customers/index.ts | 18 +- .../Events/hooks/revalidateEvent.ts | 32 +- apps/cms/src/collections/Events/index.ts | 20 +- apps/cms/src/collections/Media.ts | 4 +- .../Posts/hooks/populateAuthors.ts | 2 +- .../collections/Posts/hooks/revalidatePost.ts | 32 +- apps/cms/src/collections/Posts/index.ts | 20 +- apps/cms/src/collections/Tags.ts | 2 +- apps/cms/src/collections/Users.ts | 4 +- apps/cms/src/components/Card/index.tsx | 14 +- apps/cms/src/components/Link/index.tsx | 10 +- .../src/components/PayloadRedirects/index.tsx | 48 - apps/cms/src/components/RichText/index.tsx | 10 +- apps/cms/src/fields/link.ts | 4 +- apps/cms/src/fields/linkGroup.ts | 6 +- apps/cms/src/fields/slug/index.ts | 2 +- apps/cms/src/migrations/20250529_103319.ts | 1136 --- ...50529_103319.json => 20250619_155345.json} | 375 +- apps/cms/src/migrations/20250619_155345.ts | 1136 +++ apps/cms/src/migrations/20250619_160549.json | 7330 ++++++++++++++++ apps/cms/src/migrations/20250619_160549.ts | 15 + ...0808_145722_update_payload_migrations.json | 7418 +++++++++++++++++ ...250808_145722_update_payload_migrations.ts | 21 + apps/cms/src/migrations/index.ts | 20 +- apps/cms/src/payload-types.ts | 14 + apps/cms/src/payload.config.ts | 87 +- apps/cms/src/payload.migrate.config.ts | 11 + apps/cms/src/plugins/index.ts | 87 - apps/cms/src/providers/HeaderTheme/index.tsx | 6 +- apps/cms/src/providers/Theme/index.tsx | 2 +- apps/cms/src/providers/Theme/shared.ts | 2 +- apps/cms/src/search/Component.tsx | 41 - apps/cms/src/search/beforeSync.ts | 44 - apps/cms/src/search/fieldOverrides.ts | 61 - apps/cms/src/utilities/formatAuthors.ts | 24 - apps/cms/src/utilities/generateMeta.ts | 4 +- apps/cms/src/utilities/generatePreviewPath.ts | 1 - apps/cms/src/utilities/getDocument.ts | 19 +- apps/cms/src/utilities/getGlobals.ts | 19 +- apps/cms/src/utilities/getMeUser.ts | 2 +- apps/cms/src/utilities/getRedirects.ts | 26 - apps/cms/src/utilities/getURL.ts | 4 +- apps/cms/src/utilities/mergeOpenGraph.ts | 2 +- apps/cms/supabase/config.toml | 52 +- apps/cms/tsconfig.json | 3 +- apps/cms/vercel.json | 5 + package.json | 1 - pnpm-lock.yaml | 861 +- 88 files changed, 17044 insertions(+), 4375 deletions(-) create mode 100644 apps/cms/.env delete mode 100644 apps/cms/.env.example rename apps/cms/{.eslintrc.js => .eslintrc.cjs} (100%) create mode 100644 apps/cms/.vercelignore delete mode 100644 apps/cms/redirects.js create mode 100644 apps/cms/scripts/migrate.ts delete mode 100644 apps/cms/src/blocks/ArchiveBlock/Component.tsx delete mode 100644 apps/cms/src/blocks/ArchiveBlock/config.ts delete mode 100644 apps/cms/src/blocks/CallToAction/Component.tsx delete mode 100644 apps/cms/src/blocks/CallToAction/config.ts delete mode 100644 apps/cms/src/blocks/Content/Component.tsx delete mode 100644 apps/cms/src/blocks/Content/config.ts delete mode 100644 apps/cms/src/blocks/Form/Checkbox/index.tsx delete mode 100644 apps/cms/src/blocks/Form/Component.tsx delete mode 100644 apps/cms/src/blocks/Form/Country/index.tsx delete mode 100644 apps/cms/src/blocks/Form/Country/options.ts delete mode 100644 apps/cms/src/blocks/Form/Email/index.tsx delete mode 100644 apps/cms/src/blocks/Form/Error/index.tsx delete mode 100644 apps/cms/src/blocks/Form/Message/index.tsx delete mode 100644 apps/cms/src/blocks/Form/Number/index.tsx delete mode 100644 apps/cms/src/blocks/Form/Select/index.tsx delete mode 100644 apps/cms/src/blocks/Form/State/index.tsx delete mode 100644 apps/cms/src/blocks/Form/State/options.ts delete mode 100644 apps/cms/src/blocks/Form/Text/index.tsx delete mode 100644 apps/cms/src/blocks/Form/Textarea/index.tsx delete mode 100644 apps/cms/src/blocks/Form/Width/index.tsx delete mode 100644 apps/cms/src/blocks/Form/config.ts delete mode 100644 apps/cms/src/blocks/Form/fields.tsx delete mode 100644 apps/cms/src/blocks/RelatedPosts/Component.tsx delete mode 100644 apps/cms/src/blocks/RenderBlocks.tsx delete mode 100644 apps/cms/src/components/PayloadRedirects/index.tsx delete mode 100644 apps/cms/src/migrations/20250529_103319.ts rename apps/cms/src/migrations/{20250529_103319.json => 20250619_155345.json} (95%) create mode 100644 apps/cms/src/migrations/20250619_155345.ts create mode 100644 apps/cms/src/migrations/20250619_160549.json create mode 100644 apps/cms/src/migrations/20250619_160549.ts create mode 100644 apps/cms/src/migrations/20250808_145722_update_payload_migrations.json create mode 100644 apps/cms/src/migrations/20250808_145722_update_payload_migrations.ts create mode 100644 apps/cms/src/payload.migrate.config.ts delete mode 100644 apps/cms/src/plugins/index.ts delete mode 100644 apps/cms/src/search/Component.tsx delete mode 100644 apps/cms/src/search/beforeSync.ts delete mode 100644 apps/cms/src/search/fieldOverrides.ts delete mode 100644 apps/cms/src/utilities/formatAuthors.ts delete mode 100644 apps/cms/src/utilities/getRedirects.ts create mode 100644 apps/cms/vercel.json diff --git a/apps/cms/.env b/apps/cms/.env new file mode 100644 index 00000000000..94f021dce47 --- /dev/null +++ b/apps/cms/.env @@ -0,0 +1,17 @@ +# [LOCAL ENV] - NEVER USE PROD VALUES LOCALLY +# as editing PayloadCMS typescript config INSTANTLY CHANGES DB SCHEMA in dev mode +# The values set here are the default values provided when running `supabase start`. +# Do not add secrets here, this file is git-tracked. Use .env.local instead. +DATABASE_URI=postgresql://postgres:postgres@127.0.0.1:34322/postgres +PAYLOAD_SECRET=secret + +S3_BUCKET=cms +S3_ACCESS_KEY_ID=625729a08b95bf1b7ff351a663f3a23c +S3_SECRET_ACCESS_KEY=850181e4652dd023b7a98c58ae0d2d34bd487ee0cc3254aed6eda37307425907 +S3_REGION=local +S3_ENDPOINT=http://127.0.0.1:34321/storage/v1/s3 + +BLOG_APP_URL=http://localhost:3000 +NEXT_PUBLIC_SERVER_URL=http://localhost:3000/blog +CRON_SECRET=secret +PREVIEW_SECRET=secret \ No newline at end of file diff --git a/apps/cms/.env.example b/apps/cms/.env.example deleted file mode 100644 index b8b497ca476..00000000000 --- a/apps/cms/.env.example +++ /dev/null @@ -1,13 +0,0 @@ -DATABASE_URI=postgres://postgres:@127.0.0.1:5432/your-database-name -PAYLOAD_SECRET=YOUR_SECRET_HERE - -S3_BUCKET= -S3_ACCESS_KEY_ID= -S3_SECRET_ACCESS_KEY= -S3_REGION= -S3_ENDPOINT= - -NEXT_PUBLIC_SERVER_URL=http://localhost:3000/blog -CRON_SECRET=YOUR_CRON_SECRET_HERE -PREVIEW_SECRET=YOUR_SECRET_HERE -BLOG_APP_URL=http://localhost:3000 \ No newline at end of file diff --git a/apps/cms/.eslintrc.js b/apps/cms/.eslintrc.cjs similarity index 100% rename from apps/cms/.eslintrc.js rename to apps/cms/.eslintrc.cjs diff --git a/apps/cms/.gitignore b/apps/cms/.gitignore index 3d53a40bcb8..954563c7fcb 100644 --- a/apps/cms/.gitignore +++ b/apps/cms/.gitignore @@ -29,7 +29,8 @@ yarn-debug.log* yarn-error.log* # local env files -.env*.local +!.env +.env.local # vercel .vercel @@ -38,6 +39,4 @@ yarn-error.log* *.tsbuildinfo next-env.d.ts -.env - /media diff --git a/apps/cms/.vercelignore b/apps/cms/.vercelignore new file mode 100644 index 00000000000..3b3aaed4c81 --- /dev/null +++ b/apps/cms/.vercelignore @@ -0,0 +1,48 @@ +# Dependencies +node_modules +**/node_modules + +# Build artifacts +.next/cache +.turbo +.eslintcache + +# Development files +*.log +.env.local +.env.*.local + +# Test files +**/*.test.* +**/*.spec.* +__tests__ +**/__tests__ +coverage + +# Documentation +README.md +*.md +docs + +# IDE files +.vscode +.idea +*.swp +*.swo + +# OS files +.DS_Store +Thumbs.db + +# Other apps (since we're only deploying CMS) +../studio +../www +../docs +../design-system +../ui-library +../../examples +../../tests +../../supabase +../../packages/ui-patterns +../../packages/ui +../../packages/shared-data \ No newline at end of file diff --git a/apps/cms/docker-compose.yml b/apps/cms/docker-compose.yml index dc5ddababa2..a475be621b0 100644 --- a/apps/cms/docker-compose.yml +++ b/apps/cms/docker-compose.yml @@ -15,7 +15,7 @@ services: env_file: - .env - # Uncomment the following to use postgres + # Uncomment the following to use postgres postgres: restart: always image: postgres:latest diff --git a/apps/cms/next.config.mjs b/apps/cms/next.config.mjs index cc7ee7f02ba..8c87e87b2f0 100644 --- a/apps/cms/next.config.mjs +++ b/apps/cms/next.config.mjs @@ -1,6 +1,23 @@ import { withPayload } from '@payloadcms/next/withPayload' -import redirects from './redirects.js' +const redirects = async () => { + const internetExplorerRedirect = { + destination: '/ie-incompatible.html', + has: [ + { + type: 'header', + key: 'user-agent', + value: '(.*Trident.*)', // all ie browsers + }, + ], + permanent: false, + source: '/:path((?!ie-incompatible.html$).*)', // all pages except the incompatibility page + } + + const redirects = [internetExplorerRedirect] + + return redirects +} const NEXT_PUBLIC_SERVER_URL = process.env.VERCEL_PROJECT_PRODUCTION_URL ? `https://${process.env.VERCEL_PROJECT_PRODUCTION_URL}` diff --git a/apps/cms/package.json b/apps/cms/package.json index 56250c8af63..ea0d762bd1a 100644 --- a/apps/cms/package.json +++ b/apps/cms/package.json @@ -5,43 +5,59 @@ "license": "MIT", "scripts": { "build": "cross-env NODE_OPTIONS=--no-deprecation next build --turbopack", + "ci": "pnpm migrate && pnpm build", + "clean": "rimraf node_modules .next", "dev": "cross-env NODE_OPTIONS=--no-deprecation next dev --turbopack --port 3030", + "dev:prod": "cross-env NODE_OPTIONS=--no-deprecation rm -rf .next && pnpm build && pnpm start", "devsafe": "rm -rf .next && cross-env NODE_OPTIONS=--no-deprecation next dev", "generate:importmap": "cross-env NODE_OPTIONS=--no-deprecation payload generate:importmap", "generate:types": "cross-env NODE_OPTIONS=--no-deprecation payload generate:types", "lint": "cross-env NODE_OPTIONS=--no-deprecation next lint", + "migrate": "cross-env NODE_OPTIONS=--no-deprecation tsx scripts/migrate.ts", "payload": "cross-env NODE_OPTIONS=--no-deprecation payload", - "start": "cross-env NODE_OPTIONS=--no-deprecation next start", - "ci": "cross-env NODE_OPTIONS=--no-deprecation payload migrate && pnpm build", - "clean": "rimraf node_modules .next", + "start": "cross-env NODE_OPTIONS=--no-deprecation next start --port 3030", + "vercel-build": "pnpm migrate && pnpm build", "typecheck_IGNORED": "tsc --noEmit" }, "dependencies": { - "@payloadcms/db-postgres": "3.33.0", - "@payloadcms/live-preview-react": "^3.33.0", - "@payloadcms/next": "3.33.0", - "@payloadcms/payload-cloud": "3.33.0", - "@payloadcms/plugin-form-builder": "3.33.0", - "@payloadcms/plugin-nested-docs": "3.33.0", - "@payloadcms/plugin-seo": "3.33.0", - "@payloadcms/richtext-lexical": "3.33.0", - "@payloadcms/storage-s3": "3.33.0", - "@payloadcms/ui": "3.33.0", + "@payloadcms/admin-bar": "^3.50.0", + "@payloadcms/db-postgres": "^3.50.0", + "@payloadcms/live-preview-react": "^3.50.0", + "@payloadcms/next": "3.50.0", + "@payloadcms/payload-cloud": "3.50.0", + "@payloadcms/plugin-form-builder": "3.50.0", + "@payloadcms/plugin-nested-docs": "3.50.0", + "@payloadcms/plugin-seo": "3.50.0", + "@payloadcms/richtext-lexical": "3.50.0", + "@payloadcms/storage-s3": "3.50.0", + "@payloadcms/ui": "3.50.0", + "@radix-ui/react-checkbox": "^1.3.2", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-select": "^2.0.0", + "@radix-ui/react-slot": "^1.2.3", + "class-variance-authority": "^0.7.1", + "clsx": "^1.2.1", "common": "workspace:*", "config": "workspace:*", "cross-env": "^7.0.3", "eslint-config-supabase": "workspace:*", - "graphql": "^16.8.1", + "graphql": "^16.11.0", + "image-size": "2.0.2", + "lucide-react": "^0.511.0", "next": "catalog:", - "payload": "3.33.0", + "payload": "3.50.0", + "pg": "^8.16.3", + "prism-react-renderer": "^2.3.1", "react": "catalog:", "react-dom": "catalog:", - "sharp": "0.32.6" + "sharp": "0.32.6", + "tailwind-merge": "^1.13.2" }, "devDependencies": { "@types/node": "catalog:", "@types/react": "catalog:", "@types/react-dom": "catalog:", + "tsx": "^4.19.3", "typescript": "5.7.3" } } diff --git a/apps/cms/redirects.js b/apps/cms/redirects.js deleted file mode 100644 index 21b76ecc1b8..00000000000 --- a/apps/cms/redirects.js +++ /dev/null @@ -1,20 +0,0 @@ -const redirects = async () => { - const internetExplorerRedirect = { - destination: '/ie-incompatible.html', - has: [ - { - type: 'header', - key: 'user-agent', - value: '(.*Trident.*)', // all ie browsers - }, - ], - permanent: false, - source: '/:path((?!ie-incompatible.html$).*)', // all pages except the incompatibility page - } - - const redirects = [internetExplorerRedirect] - - return redirects -} - -export default redirects diff --git a/apps/cms/scripts/migrate.ts b/apps/cms/scripts/migrate.ts new file mode 100644 index 00000000000..5d3a12c11e7 --- /dev/null +++ b/apps/cms/scripts/migrate.ts @@ -0,0 +1,28 @@ +import payload from 'payload' +// Use a minimal config for migrations to avoid importing the full app graph during build +import payloadConfig from '../src/payload.migrate.config.ts' + +async function run() { + try { + await payload.init({ config: payloadConfig }) + + // Ensure non-interactive: remove any dev-mode migration sentinel rows + try { + await payload.delete({ + collection: 'payload-migrations', + where: { batch: { equals: -1 } }, + }) + } catch {} + + await payload.db.migrate() + // eslint-disable-next-line no-console + console.log('✅ Payload migrations complete') + process.exit(0) + } catch (err) { + // eslint-disable-next-line no-console + console.error('❌ Payload migrations failed:', err) + process.exit(1) + } +} + +run() diff --git a/apps/cms/src/access/isAdmin.ts b/apps/cms/src/access/isAdmin.ts index 67922028caa..5e1261e26fb 100644 --- a/apps/cms/src/access/isAdmin.ts +++ b/apps/cms/src/access/isAdmin.ts @@ -1,5 +1,5 @@ import type { AccessArgs, FieldAccess } from 'payload' -import type { User } from '@/payload-types' +import type { User } from '../payload-types' type isAdmin = (args: AccessArgs) => boolean diff --git a/apps/cms/src/access/isAuthenticated.ts b/apps/cms/src/access/isAuthenticated.ts index 4112452bc3d..62d467a63e9 100644 --- a/apps/cms/src/access/isAuthenticated.ts +++ b/apps/cms/src/access/isAuthenticated.ts @@ -1,6 +1,6 @@ import type { AccessArgs } from 'payload' -import type { User } from '@/payload-types' +import type { User } from '../payload-types' type isAuthenticated = (args: AccessArgs) => boolean diff --git a/apps/cms/src/blocks/ArchiveBlock/Component.tsx b/apps/cms/src/blocks/ArchiveBlock/Component.tsx deleted file mode 100644 index 48a57ec5d69..00000000000 --- a/apps/cms/src/blocks/ArchiveBlock/Component.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import type { Post, ArchiveBlock as ArchiveBlockProps } from '@/payload-types' - -import configPromise from '@payload-config' -import { getPayload } from 'payload' -import React from 'react' -import RichText from '@/components/RichText' - -import { CollectionArchive } from '@/components/CollectionArchive' - -export const ArchiveBlock: React.FC< - ArchiveBlockProps & { - id?: string - } -> = async (props) => { - const { id, categories, introContent, limit: limitFromProps, populateBy, selectedDocs } = props - - const limit = limitFromProps || 3 - - let posts: Post[] = [] - - if (populateBy === 'collection') { - const payload = await getPayload({ config: configPromise }) - - const flattenedCategories = categories?.map((category) => { - if (typeof category === 'object') return category.id - else return category - }) - - const fetchedPosts = await payload.find({ - collection: 'posts', - depth: 1, - limit, - ...(flattenedCategories && flattenedCategories.length > 0 - ? { - where: { - categories: { - in: flattenedCategories, - }, - }, - } - : {}), - }) - - posts = fetchedPosts.docs - } else { - if (selectedDocs?.length) { - const filteredSelectedPosts = selectedDocs.map((post) => { - if (typeof post.value === 'object') return post.value - }) as Post[] - - posts = filteredSelectedPosts - } - } - - return ( -
- {introContent && ( -
- -
- )} - -
- ) -} diff --git a/apps/cms/src/blocks/ArchiveBlock/config.ts b/apps/cms/src/blocks/ArchiveBlock/config.ts deleted file mode 100644 index f87a376bd51..00000000000 --- a/apps/cms/src/blocks/ArchiveBlock/config.ts +++ /dev/null @@ -1,94 +0,0 @@ -import type { Block } from 'payload' - -import { - FixedToolbarFeature, - HeadingFeature, - InlineToolbarFeature, - lexicalEditor, -} from '@payloadcms/richtext-lexical' - -export const Archive: Block = { - slug: 'archive', - interfaceName: 'ArchiveBlock', - fields: [ - { - name: 'introContent', - type: 'richText', - editor: lexicalEditor({ - features: ({ rootFeatures }) => { - return [ - ...rootFeatures, - HeadingFeature({ enabledHeadingSizes: ['h1', 'h2', 'h3', 'h4'] }), - FixedToolbarFeature(), - InlineToolbarFeature(), - ] - }, - }), - label: 'Intro Content', - }, - { - name: 'populateBy', - type: 'select', - defaultValue: 'collection', - options: [ - { - label: 'Collection', - value: 'collection', - }, - { - label: 'Individual Selection', - value: 'selection', - }, - ], - }, - { - name: 'relationTo', - type: 'select', - admin: { - condition: (_, siblingData) => siblingData.populateBy === 'collection', - }, - defaultValue: 'posts', - label: 'Collections To Show', - options: [ - { - label: 'Posts', - value: 'posts', - }, - ], - }, - { - name: 'categories', - type: 'relationship', - admin: { - condition: (_, siblingData) => siblingData.populateBy === 'collection', - }, - hasMany: true, - label: 'Categories To Show', - relationTo: 'categories', - }, - { - name: 'limit', - type: 'number', - admin: { - condition: (_, siblingData) => siblingData.populateBy === 'collection', - step: 1, - }, - defaultValue: 10, - label: 'Limit', - }, - { - name: 'selectedDocs', - type: 'relationship', - admin: { - condition: (_, siblingData) => siblingData.populateBy === 'selection', - }, - hasMany: true, - label: 'Selection', - relationTo: ['posts'], - }, - ], - labels: { - plural: 'Archives', - singular: 'Archive', - }, -} diff --git a/apps/cms/src/blocks/CallToAction/Component.tsx b/apps/cms/src/blocks/CallToAction/Component.tsx deleted file mode 100644 index 6b3771cf232..00000000000 --- a/apps/cms/src/blocks/CallToAction/Component.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react' - -import type { CallToActionBlock as CTABlockProps } from '@/payload-types' - -import RichText from '@/components/RichText' -import { CMSLink } from '@/components/Link' - -export const CallToActionBlock: React.FC = ({ links, richText }) => { - return ( -
-
-
- {richText && } -
-
- {(links || []).map(({ link }, i) => { - return - })} -
-
-
- ) -} diff --git a/apps/cms/src/blocks/CallToAction/config.ts b/apps/cms/src/blocks/CallToAction/config.ts deleted file mode 100644 index f4ffa77c6a1..00000000000 --- a/apps/cms/src/blocks/CallToAction/config.ts +++ /dev/null @@ -1,42 +0,0 @@ -import type { Block } from 'payload' - -import { - FixedToolbarFeature, - HeadingFeature, - InlineToolbarFeature, - lexicalEditor, -} from '@payloadcms/richtext-lexical' - -import { linkGroup } from '../../fields/linkGroup' - -export const CallToAction: Block = { - slug: 'cta', - interfaceName: 'CallToActionBlock', - fields: [ - { - name: 'richText', - type: 'richText', - editor: lexicalEditor({ - features: ({ rootFeatures }) => { - return [ - ...rootFeatures, - HeadingFeature({ enabledHeadingSizes: ['h1', 'h2', 'h3', 'h4'] }), - FixedToolbarFeature(), - InlineToolbarFeature(), - ] - }, - }), - label: false, - }, - linkGroup({ - appearances: ['default', 'outline'], - overrides: { - maxRows: 2, - }, - }), - ], - labels: { - plural: 'Calls to Action', - singular: 'Call to Action', - }, -} diff --git a/apps/cms/src/blocks/Code/CopyButton.tsx b/apps/cms/src/blocks/Code/CopyButton.tsx index 8d204bfffd6..546148fa740 100644 --- a/apps/cms/src/blocks/Code/CopyButton.tsx +++ b/apps/cms/src/blocks/Code/CopyButton.tsx @@ -19,7 +19,7 @@ export function CopyButton({ code }: { code: string }) {
- - )} - -
- - ) -} diff --git a/apps/cms/src/blocks/Form/Country/index.tsx b/apps/cms/src/blocks/Form/Country/index.tsx deleted file mode 100644 index 9c85b753972..00000000000 --- a/apps/cms/src/blocks/Form/Country/index.tsx +++ /dev/null @@ -1,65 +0,0 @@ -import type { CountryField } from '@payloadcms/plugin-form-builder/types' -import type { Control, FieldErrorsImpl } from 'react-hook-form' - -import { Label } from '@/components/ui/label' -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@/components/ui/select' -import React from 'react' -import { Controller } from 'react-hook-form' - -import { Error } from '../Error' -import { Width } from '../Width' -import { countryOptions } from './options' - -export const Country: React.FC< - CountryField & { - control: Control - errors: Partial - } -> = ({ name, control, errors, label, required, width }) => { - return ( - - - { - const controlledValue = countryOptions.find((t) => t.value === value) - - return ( - - ) - }} - rules={{ required }} - /> - {errors[name] && } - - ) -} diff --git a/apps/cms/src/blocks/Form/Country/options.ts b/apps/cms/src/blocks/Form/Country/options.ts deleted file mode 100644 index f952c1df890..00000000000 --- a/apps/cms/src/blocks/Form/Country/options.ts +++ /dev/null @@ -1,982 +0,0 @@ -export const countryOptions = [ - { - label: 'Afghanistan', - value: 'AF', - }, - { - label: 'Åland Islands', - value: 'AX', - }, - { - label: 'Albania', - value: 'AL', - }, - { - label: 'Algeria', - value: 'DZ', - }, - { - label: 'American Samoa', - value: 'AS', - }, - { - label: 'Andorra', - value: 'AD', - }, - { - label: 'Angola', - value: 'AO', - }, - { - label: 'Anguilla', - value: 'AI', - }, - { - label: 'Antarctica', - value: 'AQ', - }, - { - label: 'Antigua and Barbuda', - value: 'AG', - }, - { - label: 'Argentina', - value: 'AR', - }, - { - label: 'Armenia', - value: 'AM', - }, - { - label: 'Aruba', - value: 'AW', - }, - { - label: 'Australia', - value: 'AU', - }, - { - label: 'Austria', - value: 'AT', - }, - { - label: 'Azerbaijan', - value: 'AZ', - }, - { - label: 'Bahamas', - value: 'BS', - }, - { - label: 'Bahrain', - value: 'BH', - }, - { - label: 'Bangladesh', - value: 'BD', - }, - { - label: 'Barbados', - value: 'BB', - }, - { - label: 'Belarus', - value: 'BY', - }, - { - label: 'Belgium', - value: 'BE', - }, - { - label: 'Belize', - value: 'BZ', - }, - { - label: 'Benin', - value: 'BJ', - }, - { - label: 'Bermuda', - value: 'BM', - }, - { - label: 'Bhutan', - value: 'BT', - }, - { - label: 'Bolivia', - value: 'BO', - }, - { - label: 'Bosnia and Herzegovina', - value: 'BA', - }, - { - label: 'Botswana', - value: 'BW', - }, - { - label: 'Bouvet Island', - value: 'BV', - }, - { - label: 'Brazil', - value: 'BR', - }, - { - label: 'British Indian Ocean Territory', - value: 'IO', - }, - { - label: 'Brunei Darussalam', - value: 'BN', - }, - { - label: 'Bulgaria', - value: 'BG', - }, - { - label: 'Burkina Faso', - value: 'BF', - }, - { - label: 'Burundi', - value: 'BI', - }, - { - label: 'Cambodia', - value: 'KH', - }, - { - label: 'Cameroon', - value: 'CM', - }, - { - label: 'Canada', - value: 'CA', - }, - { - label: 'Cape Verde', - value: 'CV', - }, - { - label: 'Cayman Islands', - value: 'KY', - }, - { - label: 'Central African Republic', - value: 'CF', - }, - { - label: 'Chad', - value: 'TD', - }, - { - label: 'Chile', - value: 'CL', - }, - { - label: 'China', - value: 'CN', - }, - { - label: 'Christmas Island', - value: 'CX', - }, - { - label: 'Cocos (Keeling) Islands', - value: 'CC', - }, - { - label: 'Colombia', - value: 'CO', - }, - { - label: 'Comoros', - value: 'KM', - }, - { - label: 'Congo', - value: 'CG', - }, - { - label: 'Congo, The Democratic Republic of the', - value: 'CD', - }, - { - label: 'Cook Islands', - value: 'CK', - }, - { - label: 'Costa Rica', - value: 'CR', - }, - { - label: "Cote D'Ivoire", - value: 'CI', - }, - { - label: 'Croatia', - value: 'HR', - }, - { - label: 'Cuba', - value: 'CU', - }, - { - label: 'Cyprus', - value: 'CY', - }, - { - label: 'Czech Republic', - value: 'CZ', - }, - { - label: 'Denmark', - value: 'DK', - }, - { - label: 'Djibouti', - value: 'DJ', - }, - { - label: 'Dominica', - value: 'DM', - }, - { - label: 'Dominican Republic', - value: 'DO', - }, - { - label: 'Ecuador', - value: 'EC', - }, - { - label: 'Egypt', - value: 'EG', - }, - { - label: 'El Salvador', - value: 'SV', - }, - { - label: 'Equatorial Guinea', - value: 'GQ', - }, - { - label: 'Eritrea', - value: 'ER', - }, - { - label: 'Estonia', - value: 'EE', - }, - { - label: 'Ethiopia', - value: 'ET', - }, - { - label: 'Falkland Islands (Malvinas)', - value: 'FK', - }, - { - label: 'Faroe Islands', - value: 'FO', - }, - { - label: 'Fiji', - value: 'FJ', - }, - { - label: 'Finland', - value: 'FI', - }, - { - label: 'France', - value: 'FR', - }, - { - label: 'French Guiana', - value: 'GF', - }, - { - label: 'French Polynesia', - value: 'PF', - }, - { - label: 'French Southern Territories', - value: 'TF', - }, - { - label: 'Gabon', - value: 'GA', - }, - { - label: 'Gambia', - value: 'GM', - }, - { - label: 'Georgia', - value: 'GE', - }, - { - label: 'Germany', - value: 'DE', - }, - { - label: 'Ghana', - value: 'GH', - }, - { - label: 'Gibraltar', - value: 'GI', - }, - { - label: 'Greece', - value: 'GR', - }, - { - label: 'Greenland', - value: 'GL', - }, - { - label: 'Grenada', - value: 'GD', - }, - { - label: 'Guadeloupe', - value: 'GP', - }, - { - label: 'Guam', - value: 'GU', - }, - { - label: 'Guatemala', - value: 'GT', - }, - { - label: 'Guernsey', - value: 'GG', - }, - { - label: 'Guinea', - value: 'GN', - }, - { - label: 'Guinea-Bissau', - value: 'GW', - }, - { - label: 'Guyana', - value: 'GY', - }, - { - label: 'Haiti', - value: 'HT', - }, - { - label: 'Heard Island and Mcdonald Islands', - value: 'HM', - }, - { - label: 'Holy See (Vatican City State)', - value: 'VA', - }, - { - label: 'Honduras', - value: 'HN', - }, - { - label: 'Hong Kong', - value: 'HK', - }, - { - label: 'Hungary', - value: 'HU', - }, - { - label: 'Iceland', - value: 'IS', - }, - { - label: 'India', - value: 'IN', - }, - { - label: 'Indonesia', - value: 'ID', - }, - { - label: 'Iran, Islamic Republic Of', - value: 'IR', - }, - { - label: 'Iraq', - value: 'IQ', - }, - { - label: 'Ireland', - value: 'IE', - }, - { - label: 'Isle of Man', - value: 'IM', - }, - { - label: 'Israel', - value: 'IL', - }, - { - label: 'Italy', - value: 'IT', - }, - { - label: 'Jamaica', - value: 'JM', - }, - { - label: 'Japan', - value: 'JP', - }, - { - label: 'Jersey', - value: 'JE', - }, - { - label: 'Jordan', - value: 'JO', - }, - { - label: 'Kazakhstan', - value: 'KZ', - }, - { - label: 'Kenya', - value: 'KE', - }, - { - label: 'Kiribati', - value: 'KI', - }, - { - label: "Democratic People's Republic of Korea", - value: 'KP', - }, - { - label: 'Korea, Republic of', - value: 'KR', - }, - { - label: 'Kosovo', - value: 'XK', - }, - { - label: 'Kuwait', - value: 'KW', - }, - { - label: 'Kyrgyzstan', - value: 'KG', - }, - { - label: "Lao People's Democratic Republic", - value: 'LA', - }, - { - label: 'Latvia', - value: 'LV', - }, - { - label: 'Lebanon', - value: 'LB', - }, - { - label: 'Lesotho', - value: 'LS', - }, - { - label: 'Liberia', - value: 'LR', - }, - { - label: 'Libyan Arab Jamahiriya', - value: 'LY', - }, - { - label: 'Liechtenstein', - value: 'LI', - }, - { - label: 'Lithuania', - value: 'LT', - }, - { - label: 'Luxembourg', - value: 'LU', - }, - { - label: 'Macao', - value: 'MO', - }, - { - label: 'Macedonia, The Former Yugoslav Republic of', - value: 'MK', - }, - { - label: 'Madagascar', - value: 'MG', - }, - { - label: 'Malawi', - value: 'MW', - }, - { - label: 'Malaysia', - value: 'MY', - }, - { - label: 'Maldives', - value: 'MV', - }, - { - label: 'Mali', - value: 'ML', - }, - { - label: 'Malta', - value: 'MT', - }, - { - label: 'Marshall Islands', - value: 'MH', - }, - { - label: 'Martinique', - value: 'MQ', - }, - { - label: 'Mauritania', - value: 'MR', - }, - { - label: 'Mauritius', - value: 'MU', - }, - { - label: 'Mayotte', - value: 'YT', - }, - { - label: 'Mexico', - value: 'MX', - }, - { - label: 'Micronesia, Federated States of', - value: 'FM', - }, - { - label: 'Moldova, Republic of', - value: 'MD', - }, - { - label: 'Monaco', - value: 'MC', - }, - { - label: 'Mongolia', - value: 'MN', - }, - { - label: 'Montenegro', - value: 'ME', - }, - { - label: 'Montserrat', - value: 'MS', - }, - { - label: 'Morocco', - value: 'MA', - }, - { - label: 'Mozambique', - value: 'MZ', - }, - { - label: 'Myanmar', - value: 'MM', - }, - { - label: 'Namibia', - value: 'NA', - }, - { - label: 'Nauru', - value: 'NR', - }, - { - label: 'Nepal', - value: 'NP', - }, - { - label: 'Netherlands', - value: 'NL', - }, - { - label: 'Netherlands Antilles', - value: 'AN', - }, - { - label: 'New Caledonia', - value: 'NC', - }, - { - label: 'New Zealand', - value: 'NZ', - }, - { - label: 'Nicaragua', - value: 'NI', - }, - { - label: 'Niger', - value: 'NE', - }, - { - label: 'Nigeria', - value: 'NG', - }, - { - label: 'Niue', - value: 'NU', - }, - { - label: 'Norfolk Island', - value: 'NF', - }, - { - label: 'Northern Mariana Islands', - value: 'MP', - }, - { - label: 'Norway', - value: 'NO', - }, - { - label: 'Oman', - value: 'OM', - }, - { - label: 'Pakistan', - value: 'PK', - }, - { - label: 'Palau', - value: 'PW', - }, - { - label: 'Palestinian Territory, Occupied', - value: 'PS', - }, - { - label: 'Panama', - value: 'PA', - }, - { - label: 'Papua New Guinea', - value: 'PG', - }, - { - label: 'Paraguay', - value: 'PY', - }, - { - label: 'Peru', - value: 'PE', - }, - { - label: 'Philippines', - value: 'PH', - }, - { - label: 'Pitcairn', - value: 'PN', - }, - { - label: 'Poland', - value: 'PL', - }, - { - label: 'Portugal', - value: 'PT', - }, - { - label: 'Puerto Rico', - value: 'PR', - }, - { - label: 'Qatar', - value: 'QA', - }, - { - label: 'Reunion', - value: 'RE', - }, - { - label: 'Romania', - value: 'RO', - }, - { - label: 'Russian Federation', - value: 'RU', - }, - { - label: 'Rwanda', - value: 'RW', - }, - { - label: 'Saint Helena', - value: 'SH', - }, - { - label: 'Saint Kitts and Nevis', - value: 'KN', - }, - { - label: 'Saint Lucia', - value: 'LC', - }, - { - label: 'Saint Pierre and Miquelon', - value: 'PM', - }, - { - label: 'Saint Vincent and the Grenadines', - value: 'VC', - }, - { - label: 'Samoa', - value: 'WS', - }, - { - label: 'San Marino', - value: 'SM', - }, - { - label: 'Sao Tome and Principe', - value: 'ST', - }, - { - label: 'Saudi Arabia', - value: 'SA', - }, - { - label: 'Senegal', - value: 'SN', - }, - { - label: 'Serbia', - value: 'RS', - }, - { - label: 'Seychelles', - value: 'SC', - }, - { - label: 'Sierra Leone', - value: 'SL', - }, - { - label: 'Singapore', - value: 'SG', - }, - { - label: 'Slovakia', - value: 'SK', - }, - { - label: 'Slovenia', - value: 'SI', - }, - { - label: 'Solomon Islands', - value: 'SB', - }, - { - label: 'Somalia', - value: 'SO', - }, - { - label: 'South Africa', - value: 'ZA', - }, - { - label: 'South Georgia and the South Sandwich Islands', - value: 'GS', - }, - { - label: 'Spain', - value: 'ES', - }, - { - label: 'Sri Lanka', - value: 'LK', - }, - { - label: 'Sudan', - value: 'SD', - }, - { - label: 'Suriname', - value: 'SR', - }, - { - label: 'Svalbard and Jan Mayen', - value: 'SJ', - }, - { - label: 'Swaziland', - value: 'SZ', - }, - { - label: 'Sweden', - value: 'SE', - }, - { - label: 'Switzerland', - value: 'CH', - }, - { - label: 'Syrian Arab Republic', - value: 'SY', - }, - { - label: 'Taiwan', - value: 'TW', - }, - { - label: 'Tajikistan', - value: 'TJ', - }, - { - label: 'Tanzania, United Republic of', - value: 'TZ', - }, - { - label: 'Thailand', - value: 'TH', - }, - { - label: 'Timor-Leste', - value: 'TL', - }, - { - label: 'Togo', - value: 'TG', - }, - { - label: 'Tokelau', - value: 'TK', - }, - { - label: 'Tonga', - value: 'TO', - }, - { - label: 'Trinidad and Tobago', - value: 'TT', - }, - { - label: 'Tunisia', - value: 'TN', - }, - { - label: 'Turkey', - value: 'TR', - }, - { - label: 'Turkmenistan', - value: 'TM', - }, - { - label: 'Turks and Caicos Islands', - value: 'TC', - }, - { - label: 'Tuvalu', - value: 'TV', - }, - { - label: 'Uganda', - value: 'UG', - }, - { - label: 'Ukraine', - value: 'UA', - }, - { - label: 'United Arab Emirates', - value: 'AE', - }, - { - label: 'United Kingdom', - value: 'GB', - }, - { - label: 'United States', - value: 'US', - }, - { - label: 'United States Minor Outlying Islands', - value: 'UM', - }, - { - label: 'Uruguay', - value: 'UY', - }, - { - label: 'Uzbekistan', - value: 'UZ', - }, - { - label: 'Vanuatu', - value: 'VU', - }, - { - label: 'Venezuela', - value: 'VE', - }, - { - label: 'Viet Nam', - value: 'VN', - }, - { - label: 'Virgin Islands, British', - value: 'VG', - }, - { - label: 'Virgin Islands, U.S.', - value: 'VI', - }, - { - label: 'Wallis and Futuna', - value: 'WF', - }, - { - label: 'Western Sahara', - value: 'EH', - }, - { - label: 'Yemen', - value: 'YE', - }, - { - label: 'Zambia', - value: 'ZM', - }, - { - label: 'Zimbabwe', - value: 'ZW', - }, -] diff --git a/apps/cms/src/blocks/Form/Email/index.tsx b/apps/cms/src/blocks/Form/Email/index.tsx deleted file mode 100644 index fc9fd2804cd..00000000000 --- a/apps/cms/src/blocks/Form/Email/index.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import type { EmailField } from '@payloadcms/plugin-form-builder/types' -import type { FieldErrorsImpl, FieldValues, UseFormRegister } from 'react-hook-form' - -import { Input } from '@/components/ui/input' -import { Label } from '@/components/ui/label' -import React from 'react' - -import { Error } from '../Error' -import { Width } from '../Width' - -export const Email: React.FC< - EmailField & { - errors: Partial - register: UseFormRegister - } -> = ({ name, defaultValue, errors, label, register, required, width }) => { - return ( - - - - - {errors[name] && } - - ) -} diff --git a/apps/cms/src/blocks/Form/Error/index.tsx b/apps/cms/src/blocks/Form/Error/index.tsx deleted file mode 100644 index a7b9e47e805..00000000000 --- a/apps/cms/src/blocks/Form/Error/index.tsx +++ /dev/null @@ -1,15 +0,0 @@ -'use client' - -import * as React from 'react' -import { useFormContext } from 'react-hook-form' - -export const Error = ({ name }: { name: string }) => { - const { - formState: { errors }, - } = useFormContext() - return ( -
- {(errors[name]?.message as string) || 'This field is required'} -
- ) -} diff --git a/apps/cms/src/blocks/Form/Message/index.tsx b/apps/cms/src/blocks/Form/Message/index.tsx deleted file mode 100644 index 5924cf95f40..00000000000 --- a/apps/cms/src/blocks/Form/Message/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import RichText from '@/components/RichText' -import React from 'react' - -import { Width } from '../Width' -import { SerializedEditorState } from '@payloadcms/richtext-lexical/lexical' - -export const Message: React.FC<{ message: SerializedEditorState }> = ({ message }) => { - return ( - - {message && } - - ) -} diff --git a/apps/cms/src/blocks/Form/Number/index.tsx b/apps/cms/src/blocks/Form/Number/index.tsx deleted file mode 100644 index f26e54a4486..00000000000 --- a/apps/cms/src/blocks/Form/Number/index.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import type { TextField } from '@payloadcms/plugin-form-builder/types' -import type { FieldErrorsImpl, FieldValues, UseFormRegister } from 'react-hook-form' - -import { Input } from '@/components/ui/input' -import { Label } from '@/components/ui/label' -import React from 'react' - -import { Error } from '../Error' -import { Width } from '../Width' -export const Number: React.FC< - TextField & { - errors: Partial - register: UseFormRegister - } -> = ({ name, defaultValue, errors, label, register, required, width }) => { - return ( - - - - {errors[name] && } - - ) -} diff --git a/apps/cms/src/blocks/Form/Select/index.tsx b/apps/cms/src/blocks/Form/Select/index.tsx deleted file mode 100644 index 30c0e8312ac..00000000000 --- a/apps/cms/src/blocks/Form/Select/index.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import type { SelectField } from '@payloadcms/plugin-form-builder/types' -import type { Control, FieldErrorsImpl } from 'react-hook-form' - -import { Label } from '@/components/ui/label' -import { - Select as SelectComponent, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@/components/ui/select' -import React from 'react' -import { Controller } from 'react-hook-form' - -import { Error } from '../Error' -import { Width } from '../Width' - -export const Select: React.FC< - SelectField & { - control: Control - errors: Partial - } -> = ({ name, control, errors, label, options, required, width, defaultValue }) => { - return ( - - - { - const controlledValue = options.find((t) => t.value === value) - - return ( - onChange(val)} value={controlledValue?.value}> - - - - - {options.map(({ label, value }) => { - return ( - - {label} - - ) - })} - - - ) - }} - rules={{ required }} - /> - {errors[name] && } - - ) -} diff --git a/apps/cms/src/blocks/Form/State/index.tsx b/apps/cms/src/blocks/Form/State/index.tsx deleted file mode 100644 index 29e49cae0c3..00000000000 --- a/apps/cms/src/blocks/Form/State/index.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import type { StateField } from '@payloadcms/plugin-form-builder/types' -import type { Control, FieldErrorsImpl } from 'react-hook-form' - -import { Label } from '@/components/ui/label' -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@/components/ui/select' -import React from 'react' -import { Controller } from 'react-hook-form' - -import { Error } from '../Error' -import { Width } from '../Width' -import { stateOptions } from './options' - -export const State: React.FC< - StateField & { - control: Control - errors: Partial - } -> = ({ name, control, errors, label, required, width }) => { - return ( - - - { - const controlledValue = stateOptions.find((t) => t.value === value) - - return ( - - ) - }} - rules={{ required }} - /> - {errors[name] && } - - ) -} diff --git a/apps/cms/src/blocks/Form/State/options.ts b/apps/cms/src/blocks/Form/State/options.ts deleted file mode 100644 index 8dff991e7ab..00000000000 --- a/apps/cms/src/blocks/Form/State/options.ts +++ /dev/null @@ -1,52 +0,0 @@ -export const stateOptions = [ - { label: 'Alabama', value: 'AL' }, - { label: 'Alaska', value: 'AK' }, - { label: 'Arizona', value: 'AZ' }, - { label: 'Arkansas', value: 'AR' }, - { label: 'California', value: 'CA' }, - { label: 'Colorado', value: 'CO' }, - { label: 'Connecticut', value: 'CT' }, - { label: 'Delaware', value: 'DE' }, - { label: 'Florida', value: 'FL' }, - { label: 'Georgia', value: 'GA' }, - { label: 'Hawaii', value: 'HI' }, - { label: 'Idaho', value: 'ID' }, - { label: 'Illinois', value: 'IL' }, - { label: 'Indiana', value: 'IN' }, - { label: 'Iowa', value: 'IA' }, - { label: 'Kansas', value: 'KS' }, - { label: 'Kentucky', value: 'KY' }, - { label: 'Louisiana', value: 'LA' }, - { label: 'Maine', value: 'ME' }, - { label: 'Maryland', value: 'MD' }, - { label: 'Massachusetts', value: 'MA' }, - { label: 'Michigan', value: 'MI' }, - { label: 'Minnesota', value: 'MN' }, - { label: 'Mississippi', value: 'MS' }, - { label: 'Missouri', value: 'MO' }, - { label: 'Montana', value: 'MT' }, - { label: 'Nebraska', value: 'NE' }, - { label: 'Nevada', value: 'NV' }, - { label: 'New Hampshire', value: 'NH' }, - { label: 'New Jersey', value: 'NJ' }, - { label: 'New Mexico', value: 'NM' }, - { label: 'New York', value: 'NY' }, - { label: 'North Carolina', value: 'NC' }, - { label: 'North Dakota', value: 'ND' }, - { label: 'Ohio', value: 'OH' }, - { label: 'Oklahoma', value: 'OK' }, - { label: 'Oregon', value: 'OR' }, - { label: 'Pennsylvania', value: 'PA' }, - { label: 'Rhode Island', value: 'RI' }, - { label: 'South Carolina', value: 'SC' }, - { label: 'South Dakota', value: 'SD' }, - { label: 'Tennessee', value: 'TN' }, - { label: 'Texas', value: 'TX' }, - { label: 'Utah', value: 'UT' }, - { label: 'Vermont', value: 'VT' }, - { label: 'Virginia', value: 'VA' }, - { label: 'Washington', value: 'WA' }, - { label: 'West Virginia', value: 'WV' }, - { label: 'Wisconsin', value: 'WI' }, - { label: 'Wyoming', value: 'WY' }, -] diff --git a/apps/cms/src/blocks/Form/Text/index.tsx b/apps/cms/src/blocks/Form/Text/index.tsx deleted file mode 100644 index be1e0ff12bd..00000000000 --- a/apps/cms/src/blocks/Form/Text/index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import type { TextField } from '@payloadcms/plugin-form-builder/types' -import type { FieldErrorsImpl, FieldValues, UseFormRegister } from 'react-hook-form' - -import { Input } from '@/components/ui/input' -import { Label } from '@/components/ui/label' -import React from 'react' - -import { Error } from '../Error' -import { Width } from '../Width' - -export const Text: React.FC< - TextField & { - errors: Partial - register: UseFormRegister - } -> = ({ name, defaultValue, errors, label, register, required, width }) => { - return ( - - - - {errors[name] && } - - ) -} diff --git a/apps/cms/src/blocks/Form/Textarea/index.tsx b/apps/cms/src/blocks/Form/Textarea/index.tsx deleted file mode 100644 index ecb6e21afdb..00000000000 --- a/apps/cms/src/blocks/Form/Textarea/index.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import type { TextField } from '@payloadcms/plugin-form-builder/types' -import type { FieldErrorsImpl, FieldValues, UseFormRegister } from 'react-hook-form' - -import { Label } from '@/components/ui/label' -import { Textarea as TextAreaComponent } from '@/components/ui/textarea' -import React from 'react' - -import { Error } from '../Error' -import { Width } from '../Width' - -export const Textarea: React.FC< - TextField & { - errors: Partial - register: UseFormRegister - rows?: number - } -> = ({ name, defaultValue, errors, label, register, required, rows = 3, width }) => { - return ( - - - - - - {errors[name] && } - - ) -} diff --git a/apps/cms/src/blocks/Form/Width/index.tsx b/apps/cms/src/blocks/Form/Width/index.tsx deleted file mode 100644 index bcc51a33333..00000000000 --- a/apps/cms/src/blocks/Form/Width/index.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import * as React from 'react' - -export const Width: React.FC<{ - children: React.ReactNode - className?: string - width?: number | string -}> = ({ children, className, width }) => { - return ( -
- {children} -
- ) -} diff --git a/apps/cms/src/blocks/Form/config.ts b/apps/cms/src/blocks/Form/config.ts deleted file mode 100644 index 5334289f3a0..00000000000 --- a/apps/cms/src/blocks/Form/config.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { Block } from 'payload' - -import { - FixedToolbarFeature, - HeadingFeature, - InlineToolbarFeature, - lexicalEditor, -} from '@payloadcms/richtext-lexical' - -export const FormBlock: Block = { - slug: 'formBlock', - interfaceName: 'FormBlock', - fields: [ - { - name: 'form', - type: 'relationship', - relationTo: 'forms', - required: true, - }, - { - name: 'enableIntro', - type: 'checkbox', - label: 'Enable Intro Content', - }, - { - name: 'introContent', - type: 'richText', - admin: { - condition: (_, { enableIntro }) => Boolean(enableIntro), - }, - editor: lexicalEditor({ - features: ({ rootFeatures }) => { - return [ - ...rootFeatures, - HeadingFeature({ enabledHeadingSizes: ['h1', 'h2', 'h3', 'h4'] }), - FixedToolbarFeature(), - InlineToolbarFeature(), - ] - }, - }), - label: 'Intro Content', - }, - ], - graphQL: { - singularName: 'FormBlock', - }, - labels: { - plural: 'Form Blocks', - singular: 'Form Block', - }, -} diff --git a/apps/cms/src/blocks/Form/fields.tsx b/apps/cms/src/blocks/Form/fields.tsx deleted file mode 100644 index fa660f7e398..00000000000 --- a/apps/cms/src/blocks/Form/fields.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Checkbox } from './Checkbox' -import { Country } from './Country' -import { Email } from './Email' -import { Message } from './Message' -import { Number } from './Number' -import { Select } from './Select' -import { State } from './State' -import { Text } from './Text' -import { Textarea } from './Textarea' - -export const fields = { - checkbox: Checkbox, - country: Country, - email: Email, - message: Message, - number: Number, - select: Select, - state: State, - text: Text, - textarea: Textarea, -} diff --git a/apps/cms/src/blocks/RelatedPosts/Component.tsx b/apps/cms/src/blocks/RelatedPosts/Component.tsx deleted file mode 100644 index 8d8c9798b20..00000000000 --- a/apps/cms/src/blocks/RelatedPosts/Component.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import clsx from 'clsx' -import React from 'react' -import RichText from '@/components/RichText' - -import type { Post } from '@/payload-types' - -import { Card } from '../../components/Card' -import { SerializedEditorState } from '@payloadcms/richtext-lexical/lexical' - -export type RelatedPostsProps = { - className?: string - docs?: Post[] - introContent?: SerializedEditorState -} - -export const RelatedPosts: React.FC = (props) => { - const { className, docs, introContent } = props - - return ( -
- {introContent && } - -
- {docs?.map((doc, index) => { - if (typeof doc === 'string') return null - - return - })} -
-
- ) -} diff --git a/apps/cms/src/blocks/RenderBlocks.tsx b/apps/cms/src/blocks/RenderBlocks.tsx deleted file mode 100644 index c84634a64ad..00000000000 --- a/apps/cms/src/blocks/RenderBlocks.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import React, { Fragment } from 'react' - -import type { Page } from '@/payload-types' - -import { ArchiveBlock } from '@/blocks/ArchiveBlock/Component' -import { CallToActionBlock } from '@/blocks/CallToAction/Component' -import { ContentBlock } from '@/blocks/Content/Component' -import { FormBlock } from '@/blocks/Form/Component' -import { MediaBlock } from '@/blocks/MediaBlock/Component' - -const blockComponents = { - archive: ArchiveBlock, - content: ContentBlock, - cta: CallToActionBlock, - formBlock: FormBlock, - mediaBlock: MediaBlock, -} - -export const RenderBlocks: React.FC<{ - blocks: Page['layout'][0][] -}> = (props) => { - const { blocks } = props - - const hasBlocks = blocks && Array.isArray(blocks) && blocks.length > 0 - - if (hasBlocks) { - return ( - - {blocks.map((block, index) => { - const { blockType } = block - - if (blockType && blockType in blockComponents) { - const Block = blockComponents[blockType] - - if (Block) { - return ( -
- {/* @ts-expect-error there may be some mismatch between the expected types here */} - -
- ) - } - } - return null - })} -
- ) - } - - return null -} diff --git a/apps/cms/src/collections/Authors.ts b/apps/cms/src/collections/Authors.ts index f9ba90abc79..44cb98321cd 100644 --- a/apps/cms/src/collections/Authors.ts +++ b/apps/cms/src/collections/Authors.ts @@ -1,4 +1,4 @@ -import { CollectionConfig } from 'payload' +import type { CollectionConfig } from 'payload' export const Authors: CollectionConfig = { slug: 'authors', diff --git a/apps/cms/src/collections/Categories.ts b/apps/cms/src/collections/Categories.ts index 6203fb9bed4..7fc90e96c2a 100644 --- a/apps/cms/src/collections/Categories.ts +++ b/apps/cms/src/collections/Categories.ts @@ -1,4 +1,4 @@ -import { CollectionConfig } from 'payload' +import type { CollectionConfig } from 'payload' export const Categories: CollectionConfig = { slug: 'categories', diff --git a/apps/cms/src/collections/Customers/hooks/revalidateCustomer.ts b/apps/cms/src/collections/Customers/hooks/revalidateCustomer.ts index 5e6f9cbe797..df9cc3626e7 100644 --- a/apps/cms/src/collections/Customers/hooks/revalidateCustomer.ts +++ b/apps/cms/src/collections/Customers/hooks/revalidateCustomer.ts @@ -1,10 +1,10 @@ import type { CollectionAfterChangeHook, CollectionAfterDeleteHook } from 'payload' -import { revalidatePath, revalidateTag } from 'next/cache' +// Avoid importing next/cache at module scope so migrations can run in a plain Node env import type { Customer } from '../../../payload-types' -export const revalidateCustomer: CollectionAfterChangeHook = ({ +export const revalidateCustomer: CollectionAfterChangeHook = async ({ doc, previousDoc, req: { payload, context }, @@ -14,9 +14,13 @@ export const revalidateCustomer: CollectionAfterChangeHook = ({ const path = `/customers/${doc.slug}` payload.logger.info(`Revalidating event at path: ${path}`) - - revalidatePath(path) - revalidateTag('customers-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(path) + revalidateTag('customers-sitemap') + } catch { + // no-op when not running inside Next runtime (e.g., during payload migrate) + } } // If the event was previously published, we need to revalidate the old path @@ -25,22 +29,27 @@ export const revalidateCustomer: CollectionAfterChangeHook = ({ payload.logger.info(`Revalidating old event at path: ${oldPath}`) - revalidatePath(oldPath) - revalidateTag('customers-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(oldPath) + revalidateTag('customers-sitemap') + } catch {} } } return doc } -export const revalidateDelete: CollectionAfterDeleteHook = ({ +export const revalidateDelete: CollectionAfterDeleteHook = async ({ doc, req: { context }, }) => { if (!context.disableRevalidate) { const path = `/customers/${doc?.slug}` - - revalidatePath(path) - revalidateTag('customers-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(path) + revalidateTag('customers-sitemap') + } catch {} } return doc diff --git a/apps/cms/src/collections/Customers/index.ts b/apps/cms/src/collections/Customers/index.ts index 2fad829f378..a7108d200e3 100644 --- a/apps/cms/src/collections/Customers/index.ts +++ b/apps/cms/src/collections/Customers/index.ts @@ -9,15 +9,15 @@ import { lexicalEditor, } from '@payloadcms/richtext-lexical' -import { isAnyone } from '@/access/isAnyone' -import { isAuthenticated } from '@/access/isAuthenticated' +import { isAnyone } from '../../access/isAnyone.ts' +import { isAuthenticated } from '../../access/isAuthenticated.ts' -import { Banner } from '../../blocks/Banner/config' -import { Code } from '../../blocks/Code/config' -import { MediaBlock } from '../../blocks/MediaBlock/config' -import { Quote } from '../../blocks/Quote/config' -import { YouTube } from '../../blocks/YouTube/config' -import { revalidateDelete, revalidateCustomer } from './hooks/revalidateCustomer' +import { Banner } from '../../blocks/Banner/config.ts' +import { Code } from '../../blocks/Code/config.ts' +import { MediaBlock } from '../../blocks/MediaBlock/config.ts' +import { Quote } from '../../blocks/Quote/config.ts' +import { YouTube } from '../../blocks/YouTube/config.ts' +import { revalidateDelete, revalidateCustomer } from './hooks/revalidateCustomer.ts' import { MetaDescriptionField, @@ -26,7 +26,7 @@ import { OverviewField, PreviewField, } from '@payloadcms/plugin-seo/fields' -import { slugField } from '@/fields/slug' +import { slugField } from '../../fields/slug/index.ts' const industryOptions = [ { label: 'Healthcare', value: 'healthcare' }, diff --git a/apps/cms/src/collections/Events/hooks/revalidateEvent.ts b/apps/cms/src/collections/Events/hooks/revalidateEvent.ts index 792860785eb..98d2a20b868 100644 --- a/apps/cms/src/collections/Events/hooks/revalidateEvent.ts +++ b/apps/cms/src/collections/Events/hooks/revalidateEvent.ts @@ -1,10 +1,10 @@ import type { CollectionAfterChangeHook, CollectionAfterDeleteHook } from 'payload' -import { revalidatePath, revalidateTag } from 'next/cache' +// Avoid importing next/cache at module scope so migrations can run in a plain Node env import type { Event } from '../../../payload-types' -export const revalidateEvent: CollectionAfterChangeHook = ({ +export const revalidateEvent: CollectionAfterChangeHook = async ({ doc, previousDoc, req: { payload, context }, @@ -14,9 +14,11 @@ export const revalidateEvent: CollectionAfterChangeHook = ({ const path = `/events/${doc.slug}` payload.logger.info(`Revalidating event at path: ${path}`) - - revalidatePath(path) - revalidateTag('events-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(path) + revalidateTag('events-sitemap') + } catch {} } // If the event was previously published, we need to revalidate the old path @@ -25,19 +27,27 @@ export const revalidateEvent: CollectionAfterChangeHook = ({ payload.logger.info(`Revalidating old event at path: ${oldPath}`) - revalidatePath(oldPath) - revalidateTag('events-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(oldPath) + revalidateTag('events-sitemap') + } catch {} } } return doc } -export const revalidateDelete: CollectionAfterDeleteHook = ({ doc, req: { context } }) => { +export const revalidateDelete: CollectionAfterDeleteHook = async ({ + doc, + req: { context }, +}) => { if (!context.disableRevalidate) { const path = `/events/${doc?.slug}` - - revalidatePath(path) - revalidateTag('events-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(path) + revalidateTag('events-sitemap') + } catch {} } return doc diff --git a/apps/cms/src/collections/Events/index.ts b/apps/cms/src/collections/Events/index.ts index be5f1841c98..ad99e840e2d 100644 --- a/apps/cms/src/collections/Events/index.ts +++ b/apps/cms/src/collections/Events/index.ts @@ -9,15 +9,15 @@ import { lexicalEditor, } from '@payloadcms/richtext-lexical' -import { isAnyone } from '@/access/isAnyone' -import { isAuthenticated } from '@/access/isAuthenticated' +import { isAnyone } from '../../access/isAnyone.ts' +import { isAuthenticated } from '../../access/isAuthenticated.ts' -import { Banner } from '@/blocks/Banner/config' -import { Code } from '@/blocks/Code/config' -import { MediaBlock } from '@/blocks/MediaBlock/config' -import { Quote } from '@/blocks/Quote/config' -import { YouTube } from '@/blocks/YouTube/config' -import { revalidateDelete, revalidateEvent } from './hooks/revalidateEvent' +import { Banner } from '../../blocks/Banner/config.ts' +import { Code } from '../../blocks/Code/config.ts' +import { MediaBlock } from '../../blocks/MediaBlock/config.ts' +import { Quote } from '../../blocks/Quote/config.ts' +import { YouTube } from '../../blocks/YouTube/config.ts' +import { revalidateDelete, revalidateEvent } from './hooks/revalidateEvent.ts' import { MetaDescriptionField, @@ -26,8 +26,8 @@ import { OverviewField, PreviewField, } from '@payloadcms/plugin-seo/fields' -import { slugField } from '@/fields/slug' -import { timezoneOptions } from '../../utilities/timezones' +import { slugField } from '../../fields/slug/index.ts' +import { timezoneOptions } from '../../utilities/timezones.ts' const eventTypeOptions = [ { label: 'Conference', value: 'conference' }, diff --git a/apps/cms/src/collections/Media.ts b/apps/cms/src/collections/Media.ts index 9e82a3cecd4..9b8f9c70ae8 100644 --- a/apps/cms/src/collections/Media.ts +++ b/apps/cms/src/collections/Media.ts @@ -5,8 +5,8 @@ import { lexicalEditor, } from '@payloadcms/richtext-lexical' -import { isAnyone } from '@/access/isAnyone' -import { isAuthenticated } from '@/access/isAuthenticated' +import { isAnyone } from '../access/isAnyone.ts' +import { isAuthenticated } from '../access/isAuthenticated.ts' export const Media: CollectionConfig = { slug: 'media', diff --git a/apps/cms/src/collections/Posts/hooks/populateAuthors.ts b/apps/cms/src/collections/Posts/hooks/populateAuthors.ts index 8617cb1fd02..6a57e36534a 100644 --- a/apps/cms/src/collections/Posts/hooks/populateAuthors.ts +++ b/apps/cms/src/collections/Posts/hooks/populateAuthors.ts @@ -1,5 +1,5 @@ import type { CollectionAfterReadHook } from 'payload' -import { Author } from 'src/payload-types' +import type { Author } from '../../../payload-types' export const populateAuthors: CollectionAfterReadHook = async ({ doc, req: { payload } }) => { if (doc?.authors && doc?.authors?.length > 0) { diff --git a/apps/cms/src/collections/Posts/hooks/revalidatePost.ts b/apps/cms/src/collections/Posts/hooks/revalidatePost.ts index ff43752852e..018f7b9cb41 100644 --- a/apps/cms/src/collections/Posts/hooks/revalidatePost.ts +++ b/apps/cms/src/collections/Posts/hooks/revalidatePost.ts @@ -1,10 +1,10 @@ import type { CollectionAfterChangeHook, CollectionAfterDeleteHook } from 'payload' -import { revalidatePath, revalidateTag } from 'next/cache' +// Avoid importing next/cache at module scope so migrations can run in a plain Node env import type { Post } from '../../../payload-types' -export const revalidatePost: CollectionAfterChangeHook = ({ +export const revalidatePost: CollectionAfterChangeHook = async ({ doc, previousDoc, req: { payload, context }, @@ -14,9 +14,11 @@ export const revalidatePost: CollectionAfterChangeHook = ({ const path = `/posts/${doc.slug}` payload.logger.info(`Revalidating post at path: ${path}`) - - revalidatePath(path) - revalidateTag('posts-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(path) + revalidateTag('posts-sitemap') + } catch {} } // If the post was previously published, we need to revalidate the old path @@ -25,19 +27,27 @@ export const revalidatePost: CollectionAfterChangeHook = ({ payload.logger.info(`Revalidating old post at path: ${oldPath}`) - revalidatePath(oldPath) - revalidateTag('posts-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(oldPath) + revalidateTag('posts-sitemap') + } catch {} } } return doc } -export const revalidateDelete: CollectionAfterDeleteHook = ({ doc, req: { context } }) => { +export const revalidateDelete: CollectionAfterDeleteHook = async ({ + doc, + req: { context }, +}) => { if (!context.disableRevalidate) { const path = `/posts/${doc?.slug}` - - revalidatePath(path) - revalidateTag('posts-sitemap') + try { + const { revalidatePath, revalidateTag } = await import('next/cache') + revalidatePath(path) + revalidateTag('posts-sitemap') + } catch {} } return doc diff --git a/apps/cms/src/collections/Posts/index.ts b/apps/cms/src/collections/Posts/index.ts index 402a323a6aa..7c20c798867 100644 --- a/apps/cms/src/collections/Posts/index.ts +++ b/apps/cms/src/collections/Posts/index.ts @@ -9,16 +9,16 @@ import { lexicalEditor, } from '@payloadcms/richtext-lexical' -import { isAnyone } from '@/access/isAnyone' -import { isAuthenticated } from '@/access/isAuthenticated' +import { isAnyone } from '../../access/isAnyone.ts' +import { isAuthenticated } from '../../access/isAuthenticated.ts' -import { Banner } from '@/blocks/Banner/config' -import { Code } from '@/blocks/Code/config' -import { MediaBlock } from '@/blocks/MediaBlock/config' -import { Quote } from '@/blocks/Quote/config' -import { YouTube } from '@/blocks/YouTube/config' -import { populateAuthors } from './hooks/populateAuthors' -import { revalidateDelete, revalidatePost } from './hooks/revalidatePost' +import { Banner } from '../../blocks/Banner/config.ts' +import { Code } from '../../blocks/Code/config.ts' +import { MediaBlock } from '../../blocks/MediaBlock/config.ts' +import { Quote } from '../../blocks/Quote/config.ts' +import { YouTube } from '../../blocks/YouTube/config.ts' +import { populateAuthors } from './hooks/populateAuthors.ts' +import { revalidateDelete, revalidatePost } from './hooks/revalidatePost.ts' import { MetaDescriptionField, @@ -27,7 +27,7 @@ import { OverviewField, PreviewField, } from '@payloadcms/plugin-seo/fields' -import { slugField } from '@/fields/slug' +import { slugField } from '../../fields/slug/index.ts' const launchweekOptions = [ { label: '6', value: '6' }, diff --git a/apps/cms/src/collections/Tags.ts b/apps/cms/src/collections/Tags.ts index 07bad6cdffc..d21dd5a4728 100644 --- a/apps/cms/src/collections/Tags.ts +++ b/apps/cms/src/collections/Tags.ts @@ -1,4 +1,4 @@ -import { CollectionConfig } from 'payload' +import type { CollectionConfig } from 'payload' export const Tags: CollectionConfig = { slug: 'tags', diff --git a/apps/cms/src/collections/Users.ts b/apps/cms/src/collections/Users.ts index 0108529b13c..de665459f8e 100644 --- a/apps/cms/src/collections/Users.ts +++ b/apps/cms/src/collections/Users.ts @@ -1,6 +1,6 @@ import type { CollectionConfig } from 'payload' -import { isAdmin, isAdminFieldLevel } from '@/access/isAdmin' -import { isAdminOrSelf } from '@/access/isAdminOrSelf' +import { isAdmin, isAdminFieldLevel } from '../access/isAdmin.ts' +import { isAdminOrSelf } from '../access/isAdminOrSelf.ts' export const Users: CollectionConfig = { slug: 'users', diff --git a/apps/cms/src/components/Card/index.tsx b/apps/cms/src/components/Card/index.tsx index d9587ebbba5..72c44d27f72 100644 --- a/apps/cms/src/components/Card/index.tsx +++ b/apps/cms/src/components/Card/index.tsx @@ -35,7 +35,7 @@ export const Card: React.FC<{ 'border border-border rounded-lg overflow-hidden bg-card hover:cursor-pointer', className )} - ref={card.ref} + ref={card.ref as React.Ref} >
{!metaImage &&
No image
} @@ -48,15 +48,15 @@ export const Card: React.FC<{
{categories?.map((category, index) => { if (typeof category === 'object') { - const { title: titleFromCategory } = category + const { name: nameFromCategory } = category - const categoryTitle = titleFromCategory || 'Untitled category' + const categoryName = nameFromCategory || 'Untitled category' const isLast = index === categories.length - 1 return ( - {categoryTitle} + {categoryName} {!isLast && ,  } ) @@ -71,7 +71,11 @@ export const Card: React.FC<{ {titleToUse && (

- + } + > {titleToUse}

diff --git a/apps/cms/src/components/Link/index.tsx b/apps/cms/src/components/Link/index.tsx index 0cf220eec59..ed9f7be0b23 100644 --- a/apps/cms/src/components/Link/index.tsx +++ b/apps/cms/src/components/Link/index.tsx @@ -3,7 +3,7 @@ import { cn } from '@/utilities/ui' import Link from 'next/link' import React from 'react' -import type { Page, Post } from '@/payload-types' +import type { Post } from '@/payload-types' type CMSLinkType = { appearance?: 'inline' | ButtonProps['variant'] @@ -12,8 +12,8 @@ type CMSLinkType = { label?: string | null newTab?: boolean | null reference?: { - relationTo: 'pages' | 'posts' - value: Page | Post | string | number + relationTo: 'posts' + value: Post | string | number } | null size?: ButtonProps['size'] | null type?: 'custom' | 'reference' | null @@ -35,9 +35,7 @@ export const CMSLink: React.FC = (props) => { const href = type === 'reference' && typeof reference?.value === 'object' && reference.value.slug - ? `${reference?.relationTo !== 'pages' ? `/${reference?.relationTo}` : ''}/${ - reference.value.slug - }` + ? `/${reference.value.slug}` : url if (!href) return null diff --git a/apps/cms/src/components/PayloadRedirects/index.tsx b/apps/cms/src/components/PayloadRedirects/index.tsx deleted file mode 100644 index d09f188e7b5..00000000000 --- a/apps/cms/src/components/PayloadRedirects/index.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import type React from 'react' -import type { Post } from '@/payload-types' - -import { getCachedDocument } from '@/utilities/getDocument' -import { getCachedRedirects } from '@/utilities/getRedirects' -import { notFound, redirect } from 'next/navigation' - -interface Props { - disableNotFound?: boolean - url: string -} - -/* This component helps us with SSR based dynamic redirects */ -export const PayloadRedirects: React.FC = async ({ disableNotFound, url }) => { - const redirects = await getCachedRedirects()() - - const redirectItem = redirects.find((redirect) => redirect.from === url) - - if (redirectItem) { - if (redirectItem.to?.url) { - redirect(redirectItem.to.url) - } - - let redirectUrl: string - - if (typeof redirectItem.to?.reference?.value === 'string') { - const collection = redirectItem.to?.reference?.relationTo - const id = redirectItem.to?.reference?.value - - const document = (await getCachedDocument(collection, id)()) as Post - redirectUrl = `${redirectItem.to?.reference?.relationTo !== 'pages' ? `/${redirectItem.to?.reference?.relationTo}` : ''}/${ - document?.slug - }` - } else { - redirectUrl = `${redirectItem.to?.reference?.relationTo !== 'pages' ? `/${redirectItem.to?.reference?.relationTo}` : ''}/${ - typeof redirectItem.to?.reference?.value === 'object' - ? redirectItem.to?.reference?.value?.slug - : '' - }` - } - - if (redirectUrl) redirect(redirectUrl) - } - - if (disableNotFound) return null - - notFound() -} diff --git a/apps/cms/src/components/RichText/index.tsx b/apps/cms/src/components/RichText/index.tsx index b38c2a250fc..727236737d4 100644 --- a/apps/cms/src/components/RichText/index.tsx +++ b/apps/cms/src/components/RichText/index.tsx @@ -15,13 +15,11 @@ import { CodeBlock, CodeBlockProps } from '@/blocks/Code/Component' import type { BannerBlock as BannerBlockProps, - CallToActionBlock as CTABlockProps, MediaBlock as MediaBlockProps, QuoteBlock as QuoteBlockProps, YouTubeBlock as YouTubeBlockProps, } from '@/payload-types' import { BannerBlock } from '@/blocks/Banner/Component' -import { CallToActionBlock } from '@/blocks/CallToAction/Component' import { QuoteBlock } from '@/blocks/Quote/Component' import { YouTubeBlock } from '@/blocks/YouTube/Component' import { cn } from '@/utilities/ui' @@ -29,12 +27,7 @@ import { cn } from '@/utilities/ui' type NodeTypes = | DefaultNodeTypes | SerializedBlockNode< - | CTABlockProps - | MediaBlockProps - | BannerBlockProps - | CodeBlockProps - | QuoteBlockProps - | YouTubeBlockProps + MediaBlockProps | BannerBlockProps | CodeBlockProps | QuoteBlockProps | YouTubeBlockProps > const internalDocToHref = ({ linkNode }: { linkNode: SerializedLinkNode }) => { @@ -62,7 +55,6 @@ const jsxConverters: JSXConvertersFunction = ({ defaultConverters }) /> ), code: ({ node }) => , - cta: ({ node }) => , quote: ({ node }) => , youtube: ({ node }) => , }, diff --git a/apps/cms/src/fields/link.ts b/apps/cms/src/fields/link.ts index 2834e257aff..5b6b1a185b7 100644 --- a/apps/cms/src/fields/link.ts +++ b/apps/cms/src/fields/link.ts @@ -1,6 +1,6 @@ import type { Field, GroupField } from 'payload' -import deepMerge from '@/utilities/deepMerge' +import deepMerge from '../utilities/deepMerge.ts' export type LinkAppearances = 'default' | 'outline' @@ -75,7 +75,7 @@ export const link: LinkType = ({ appearances, disableLabel = false, overrides = condition: (_, siblingData) => siblingData?.type === 'reference', }, label: 'Document to link to', - relationTo: ['pages', 'posts'], + relationTo: ['posts'], required: true, }, { diff --git a/apps/cms/src/fields/linkGroup.ts b/apps/cms/src/fields/linkGroup.ts index c86fa33cf56..72e58a0cfae 100644 --- a/apps/cms/src/fields/linkGroup.ts +++ b/apps/cms/src/fields/linkGroup.ts @@ -1,9 +1,9 @@ import type { ArrayField, Field } from 'payload' -import type { LinkAppearances } from './link' +import type { LinkAppearances } from './link.ts' -import deepMerge from '@/utilities/deepMerge' -import { link } from './link' +import deepMerge from '../utilities/deepMerge.ts' +import { link } from './link.ts' type LinkGroupType = (options?: { appearances?: LinkAppearances[] | false diff --git a/apps/cms/src/fields/slug/index.ts b/apps/cms/src/fields/slug/index.ts index 5892ee5debb..9cbdfda8181 100644 --- a/apps/cms/src/fields/slug/index.ts +++ b/apps/cms/src/fields/slug/index.ts @@ -1,6 +1,6 @@ import type { CheckboxField, TextField } from 'payload' -import { formatSlugHook } from './formatSlug' +import { formatSlugHook } from './formatSlug.ts' type Overrides = { slugOverrides?: Partial diff --git a/apps/cms/src/migrations/20250529_103319.ts b/apps/cms/src/migrations/20250529_103319.ts deleted file mode 100644 index aee3c5f37a5..00000000000 --- a/apps/cms/src/migrations/20250529_103319.ts +++ /dev/null @@ -1,1136 +0,0 @@ -import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres' - -export async function up({ db }: MigrateUpArgs): Promise { - await db.execute(sql` - CREATE TYPE "cms-payload"."enum_customers_industry" AS ENUM('healthcare', 'fintech', 'ecommerce', 'education', 'gaming', 'media', 'real-estate', 'saas', 'social', 'analytics', 'ai', 'developer-tools'); - CREATE TYPE "cms-payload"."enum_customers_supabase_products" AS ENUM('database', 'auth', 'storage', 'realtime', 'functions', 'vector'); - CREATE TYPE "cms-payload"."enum_customers_company_size" AS ENUM('startup', 'enterprise', 'indie_dev'); - CREATE TYPE "cms-payload"."enum_customers_region" AS ENUM('Asia', 'Europe', 'North America', 'South America', 'Africa', 'Oceania'); - CREATE TYPE "cms-payload"."enum_customers_status" AS ENUM('draft', 'published'); - CREATE TYPE "cms-payload"."enum__customers_v_version_industry" AS ENUM('healthcare', 'fintech', 'ecommerce', 'education', 'gaming', 'media', 'real-estate', 'saas', 'social', 'analytics', 'ai', 'developer-tools'); - CREATE TYPE "cms-payload"."enum__customers_v_version_supabase_products" AS ENUM('database', 'auth', 'storage', 'realtime', 'functions', 'vector'); - CREATE TYPE "cms-payload"."enum__customers_v_version_company_size" AS ENUM('startup', 'enterprise', 'indie_dev'); - CREATE TYPE "cms-payload"."enum__customers_v_version_region" AS ENUM('Asia', 'Europe', 'North America', 'South America', 'Africa', 'Oceania'); - CREATE TYPE "cms-payload"."enum__customers_v_version_status" AS ENUM('draft', 'published'); - CREATE TYPE "cms-payload"."enum_events_type" AS ENUM('conference', 'hackathon', 'launch-week', 'meetup', 'office-hours', 'talk', 'webinar', 'workshop', 'other'); - CREATE TYPE "cms-payload"."enum_events_timezone" AS ENUM('Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum', 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville', 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou', 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan', 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Fort_Nelson', 'America/Fortaleza', 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Kralendijk', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Lower_Princes', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Beulah', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix', 'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Punta_Arenas', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Sitka', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola', 'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/Syowa', 'Antarctica/Troll', 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Hebron', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Istanbul', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qostanay', 'Asia/Qyzylorda', 'Asia/Riyadh', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faroe', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/Perth', 'Australia/Sydney', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Astrakhan', 'Europe/Athens', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Kirov', 'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Saratov', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Ulyanovsk', 'Europe/Uzhgorod', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zaporozhye', 'Europe/Zurich', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Bougainville', 'Pacific/Chatham', 'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Pohnpei', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Wake', 'Pacific/Wallis', 'UTC'); - CREATE TYPE "cms-payload"."enum_events_link_target" AS ENUM('_self', '_blank'); - CREATE TYPE "cms-payload"."enum_events_main_cta_target" AS ENUM('_self', '_blank'); - CREATE TYPE "cms-payload"."enum_events_status" AS ENUM('draft', 'published'); - CREATE TYPE "cms-payload"."enum__events_v_version_type" AS ENUM('conference', 'hackathon', 'launch-week', 'meetup', 'office-hours', 'talk', 'webinar', 'workshop', 'other'); - CREATE TYPE "cms-payload"."enum__events_v_version_timezone" AS ENUM('Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum', 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville', 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou', 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan', 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Fort_Nelson', 'America/Fortaleza', 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Kralendijk', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Lower_Princes', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Beulah', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix', 'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Punta_Arenas', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Sitka', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola', 'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/Syowa', 'Antarctica/Troll', 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Hebron', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Istanbul', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qostanay', 'Asia/Qyzylorda', 'Asia/Riyadh', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faroe', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/Perth', 'Australia/Sydney', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Astrakhan', 'Europe/Athens', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Kirov', 'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Saratov', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Ulyanovsk', 'Europe/Uzhgorod', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zaporozhye', 'Europe/Zurich', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Bougainville', 'Pacific/Chatham', 'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Pohnpei', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Wake', 'Pacific/Wallis', 'UTC'); - CREATE TYPE "cms-payload"."enum__events_v_version_link_target" AS ENUM('_self', '_blank'); - CREATE TYPE "cms-payload"."enum__events_v_version_main_cta_target" AS ENUM('_self', '_blank'); - CREATE TYPE "cms-payload"."enum__events_v_version_status" AS ENUM('draft', 'published'); - CREATE TYPE "cms-payload"."enum_posts_launchweek" AS ENUM('6', '7', '8', 'x', 'ga', '12', '13', '14', '15'); - CREATE TYPE "cms-payload"."enum_posts_status" AS ENUM('draft', 'published'); - CREATE TYPE "cms-payload"."enum__posts_v_version_launchweek" AS ENUM('6', '7', '8', 'x', 'ga', '12', '13', '14', '15'); - CREATE TYPE "cms-payload"."enum__posts_v_version_status" AS ENUM('draft', 'published'); - CREATE TYPE "cms-payload"."enum_users_roles" AS ENUM('admin', 'editor'); - CREATE TYPE "cms-payload"."enum_payload_jobs_log_task_slug" AS ENUM('inline', 'schedulePublish'); - CREATE TYPE "cms-payload"."enum_payload_jobs_log_state" AS ENUM('failed', 'succeeded'); - CREATE TYPE "cms-payload"."enum_payload_jobs_task_slug" AS ENUM('inline', 'schedulePublish'); - CREATE TABLE IF NOT EXISTS "cms-payload"."authors" ( - "id" serial PRIMARY KEY NOT NULL, - "author" varchar NOT NULL, - "author_id" varchar, - "position" varchar, - "author_url" varchar, - "author_image_url_id" integer, - "username" varchar, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."categories_breadcrumbs" ( - "_order" integer NOT NULL, - "_parent_id" integer NOT NULL, - "id" varchar PRIMARY KEY NOT NULL, - "doc_id" integer, - "url" varchar, - "label" varchar - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."categories" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "parent_id" integer, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."customers_stats" ( - "_order" integer NOT NULL, - "_parent_id" integer NOT NULL, - "id" varchar PRIMARY KEY NOT NULL, - "stat" varchar, - "label" varchar - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."customers_misc" ( - "_order" integer NOT NULL, - "_parent_id" integer NOT NULL, - "id" varchar PRIMARY KEY NOT NULL, - "label" varchar, - "text" varchar - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."customers_industry" ( - "order" integer NOT NULL, - "parent_id" integer NOT NULL, - "value" "cms-payload"."enum_customers_industry", - "id" serial PRIMARY KEY NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."customers_supabase_products" ( - "order" integer NOT NULL, - "parent_id" integer NOT NULL, - "value" "cms-payload"."enum_customers_supabase_products", - "id" serial PRIMARY KEY NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."customers" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar, - "title" varchar, - "slug" varchar, - "slug_lock" boolean DEFAULT true, - "content" jsonb, - "description" varchar, - "about" varchar, - "company_url" varchar, - "company_size" "cms-payload"."enum_customers_company_size", - "region" "cms-payload"."enum_customers_region", - "meta_title" varchar, - "meta_image_id" integer, - "meta_description" varchar, - "published_at" timestamp(3) with time zone, - "logo_id" integer, - "logo_inverse_id" integer, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "_status" "cms-payload"."enum_customers_status" DEFAULT 'draft' - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_customers_v_version_stats" ( - "_order" integer NOT NULL, - "_parent_id" integer NOT NULL, - "id" serial PRIMARY KEY NOT NULL, - "stat" varchar, - "label" varchar, - "_uuid" varchar - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_customers_v_version_misc" ( - "_order" integer NOT NULL, - "_parent_id" integer NOT NULL, - "id" serial PRIMARY KEY NOT NULL, - "label" varchar, - "text" varchar, - "_uuid" varchar - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_customers_v_version_industry" ( - "order" integer NOT NULL, - "parent_id" integer NOT NULL, - "value" "cms-payload"."enum__customers_v_version_industry", - "id" serial PRIMARY KEY NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_customers_v_version_supabase_products" ( - "order" integer NOT NULL, - "parent_id" integer NOT NULL, - "value" "cms-payload"."enum__customers_v_version_supabase_products", - "id" serial PRIMARY KEY NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_customers_v" ( - "id" serial PRIMARY KEY NOT NULL, - "parent_id" integer, - "version_name" varchar, - "version_title" varchar, - "version_slug" varchar, - "version_slug_lock" boolean DEFAULT true, - "version_content" jsonb, - "version_description" varchar, - "version_about" varchar, - "version_company_url" varchar, - "version_company_size" "cms-payload"."enum__customers_v_version_company_size", - "version_region" "cms-payload"."enum__customers_v_version_region", - "version_meta_title" varchar, - "version_meta_image_id" integer, - "version_meta_description" varchar, - "version_published_at" timestamp(3) with time zone, - "version_logo_id" integer, - "version_logo_inverse_id" integer, - "version_updated_at" timestamp(3) with time zone, - "version_created_at" timestamp(3) with time zone, - "version__status" "cms-payload"."enum__customers_v_version_status" DEFAULT 'draft', - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "latest" boolean, - "autosave" boolean - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."events_type" ( - "order" integer NOT NULL, - "parent_id" integer NOT NULL, - "value" "cms-payload"."enum_events_type", - "id" serial PRIMARY KEY NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."events" ( - "id" serial PRIMARY KEY NOT NULL, - "title" varchar, - "slug" varchar, - "slug_lock" boolean DEFAULT true, - "subtitle" varchar, - "content" jsonb, - "thumb_id" integer, - "image_id" integer, - "date" timestamp(3) with time zone, - "timezone" "cms-payload"."enum_events_timezone", - "show_end_date" boolean DEFAULT false, - "end_date" timestamp(3) with time zone, - "duration" varchar, - "on_demand" boolean DEFAULT false, - "disable_page_build" boolean DEFAULT false, - "link_href" varchar, - "link_target" "cms-payload"."enum_events_link_target" DEFAULT '_blank', - "main_cta_href" varchar, - "main_cta_target" "cms-payload"."enum_events_main_cta_target" DEFAULT '_blank', - "main_cta_label" varchar, - "main_cta_disabled" boolean DEFAULT false, - "main_cta_disabled_label" varchar, - "company_show_company" boolean DEFAULT false, - "company_name" varchar, - "company_website_url" varchar, - "company_logo_id" integer, - "company_logo_light_id" integer, - "participants_show_participants" boolean DEFAULT false, - "meta_title" varchar, - "meta_image_id" integer, - "meta_description" varchar, - "published_at" timestamp(3) with time zone, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "_status" "cms-payload"."enum_events_status" DEFAULT 'draft' - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."events_rels" ( - "id" serial PRIMARY KEY NOT NULL, - "order" integer, - "parent_id" integer NOT NULL, - "path" varchar NOT NULL, - "authors_id" integer - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_events_v_version_type" ( - "order" integer NOT NULL, - "parent_id" integer NOT NULL, - "value" "cms-payload"."enum__events_v_version_type", - "id" serial PRIMARY KEY NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_events_v" ( - "id" serial PRIMARY KEY NOT NULL, - "parent_id" integer, - "version_title" varchar, - "version_slug" varchar, - "version_slug_lock" boolean DEFAULT true, - "version_subtitle" varchar, - "version_content" jsonb, - "version_thumb_id" integer, - "version_image_id" integer, - "version_date" timestamp(3) with time zone, - "version_timezone" "cms-payload"."enum__events_v_version_timezone", - "version_show_end_date" boolean DEFAULT false, - "version_end_date" timestamp(3) with time zone, - "version_duration" varchar, - "version_on_demand" boolean DEFAULT false, - "version_disable_page_build" boolean DEFAULT false, - "version_link_href" varchar, - "version_link_target" "cms-payload"."enum__events_v_version_link_target" DEFAULT '_blank', - "version_main_cta_href" varchar, - "version_main_cta_target" "cms-payload"."enum__events_v_version_main_cta_target" DEFAULT '_blank', - "version_main_cta_label" varchar, - "version_main_cta_disabled" boolean DEFAULT false, - "version_main_cta_disabled_label" varchar, - "version_company_show_company" boolean DEFAULT false, - "version_company_name" varchar, - "version_company_website_url" varchar, - "version_company_logo_id" integer, - "version_company_logo_light_id" integer, - "version_participants_show_participants" boolean DEFAULT false, - "version_meta_title" varchar, - "version_meta_image_id" integer, - "version_meta_description" varchar, - "version_published_at" timestamp(3) with time zone, - "version_updated_at" timestamp(3) with time zone, - "version_created_at" timestamp(3) with time zone, - "version__status" "cms-payload"."enum__events_v_version_status" DEFAULT 'draft', - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "latest" boolean, - "autosave" boolean - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_events_v_rels" ( - "id" serial PRIMARY KEY NOT NULL, - "order" integer, - "parent_id" integer NOT NULL, - "path" varchar NOT NULL, - "authors_id" integer - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."media" ( - "id" serial PRIMARY KEY NOT NULL, - "alt" varchar, - "caption" jsonb, - "prefix" varchar DEFAULT 'media', - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "url" varchar, - "thumbnail_u_r_l" varchar, - "filename" varchar, - "mime_type" varchar, - "filesize" numeric, - "width" numeric, - "height" numeric, - "focal_x" numeric, - "focal_y" numeric, - "sizes_thumbnail_url" varchar, - "sizes_thumbnail_width" numeric, - "sizes_thumbnail_height" numeric, - "sizes_thumbnail_mime_type" varchar, - "sizes_thumbnail_filesize" numeric, - "sizes_thumbnail_filename" varchar, - "sizes_square_url" varchar, - "sizes_square_width" numeric, - "sizes_square_height" numeric, - "sizes_square_mime_type" varchar, - "sizes_square_filesize" numeric, - "sizes_square_filename" varchar, - "sizes_small_url" varchar, - "sizes_small_width" numeric, - "sizes_small_height" numeric, - "sizes_small_mime_type" varchar, - "sizes_small_filesize" numeric, - "sizes_small_filename" varchar, - "sizes_medium_url" varchar, - "sizes_medium_width" numeric, - "sizes_medium_height" numeric, - "sizes_medium_mime_type" varchar, - "sizes_medium_filesize" numeric, - "sizes_medium_filename" varchar, - "sizes_large_url" varchar, - "sizes_large_width" numeric, - "sizes_large_height" numeric, - "sizes_large_mime_type" varchar, - "sizes_large_filesize" numeric, - "sizes_large_filename" varchar, - "sizes_xlarge_url" varchar, - "sizes_xlarge_width" numeric, - "sizes_xlarge_height" numeric, - "sizes_xlarge_mime_type" varchar, - "sizes_xlarge_filesize" numeric, - "sizes_xlarge_filename" varchar, - "sizes_og_url" varchar, - "sizes_og_width" numeric, - "sizes_og_height" numeric, - "sizes_og_mime_type" varchar, - "sizes_og_filesize" numeric, - "sizes_og_filename" varchar - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."posts" ( - "id" serial PRIMARY KEY NOT NULL, - "title" varchar, - "slug" varchar, - "slug_lock" boolean DEFAULT true, - "content" jsonb, - "thumb_id" integer, - "image_id" integer, - "launchweek" "cms-payload"."enum_posts_launchweek", - "reading_time" numeric, - "date" timestamp(3) with time zone, - "toc_depth" numeric DEFAULT 2, - "description" varchar, - "meta_title" varchar, - "meta_image_id" integer, - "meta_description" varchar, - "published_at" timestamp(3) with time zone, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "_status" "cms-payload"."enum_posts_status" DEFAULT 'draft' - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."posts_rels" ( - "id" serial PRIMARY KEY NOT NULL, - "order" integer, - "parent_id" integer NOT NULL, - "path" varchar NOT NULL, - "categories_id" integer, - "authors_id" integer, - "tags_id" integer - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_posts_v" ( - "id" serial PRIMARY KEY NOT NULL, - "parent_id" integer, - "version_title" varchar, - "version_slug" varchar, - "version_slug_lock" boolean DEFAULT true, - "version_content" jsonb, - "version_thumb_id" integer, - "version_image_id" integer, - "version_launchweek" "cms-payload"."enum__posts_v_version_launchweek", - "version_reading_time" numeric, - "version_date" timestamp(3) with time zone, - "version_toc_depth" numeric DEFAULT 2, - "version_description" varchar, - "version_meta_title" varchar, - "version_meta_image_id" integer, - "version_meta_description" varchar, - "version_published_at" timestamp(3) with time zone, - "version_updated_at" timestamp(3) with time zone, - "version_created_at" timestamp(3) with time zone, - "version__status" "cms-payload"."enum__posts_v_version_status" DEFAULT 'draft', - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "latest" boolean, - "autosave" boolean - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."_posts_v_rels" ( - "id" serial PRIMARY KEY NOT NULL, - "order" integer, - "parent_id" integer NOT NULL, - "path" varchar NOT NULL, - "categories_id" integer, - "authors_id" integer, - "tags_id" integer - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."tags" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."users_roles" ( - "order" integer NOT NULL, - "parent_id" integer NOT NULL, - "value" "cms-payload"."enum_users_roles", - "id" serial PRIMARY KEY NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."users" ( - "id" serial PRIMARY KEY NOT NULL, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "email" varchar NOT NULL, - "reset_password_token" varchar, - "reset_password_expiration" timestamp(3) with time zone, - "salt" varchar, - "hash" varchar, - "login_attempts" numeric DEFAULT 0, - "lock_until" timestamp(3) with time zone - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."payload_jobs_log" ( - "_order" integer NOT NULL, - "_parent_id" integer NOT NULL, - "id" varchar PRIMARY KEY NOT NULL, - "executed_at" timestamp(3) with time zone NOT NULL, - "completed_at" timestamp(3) with time zone NOT NULL, - "task_slug" "cms-payload"."enum_payload_jobs_log_task_slug" NOT NULL, - "task_i_d" varchar NOT NULL, - "input" jsonb, - "output" jsonb, - "state" "cms-payload"."enum_payload_jobs_log_state" NOT NULL, - "error" jsonb - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."payload_jobs" ( - "id" serial PRIMARY KEY NOT NULL, - "input" jsonb, - "completed_at" timestamp(3) with time zone, - "total_tried" numeric DEFAULT 0, - "has_error" boolean DEFAULT false, - "error" jsonb, - "task_slug" "cms-payload"."enum_payload_jobs_task_slug", - "queue" varchar DEFAULT 'default', - "wait_until" timestamp(3) with time zone, - "processing" boolean DEFAULT false, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."payload_locked_documents" ( - "id" serial PRIMARY KEY NOT NULL, - "global_slug" varchar, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."payload_locked_documents_rels" ( - "id" serial PRIMARY KEY NOT NULL, - "order" integer, - "parent_id" integer NOT NULL, - "path" varchar NOT NULL, - "authors_id" integer, - "categories_id" integer, - "customers_id" integer, - "events_id" integer, - "media_id" integer, - "posts_id" integer, - "tags_id" integer, - "users_id" integer, - "payload_jobs_id" integer - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."payload_preferences" ( - "id" serial PRIMARY KEY NOT NULL, - "key" varchar, - "value" jsonb, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."payload_preferences_rels" ( - "id" serial PRIMARY KEY NOT NULL, - "order" integer, - "parent_id" integer NOT NULL, - "path" varchar NOT NULL, - "users_id" integer - ); - - CREATE TABLE IF NOT EXISTS "cms-payload"."payload_migrations" ( - "id" serial PRIMARY KEY NOT NULL, - "name" varchar, - "batch" numeric, - "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, - "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL - ); - - DO $$ BEGIN - ALTER TABLE "cms-payload"."authors" ADD CONSTRAINT "authors_author_image_url_id_media_id_fk" FOREIGN KEY ("author_image_url_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."categories_breadcrumbs" ADD CONSTRAINT "categories_breadcrumbs_doc_id_categories_id_fk" FOREIGN KEY ("doc_id") REFERENCES "cms-payload"."categories"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."categories_breadcrumbs" ADD CONSTRAINT "categories_breadcrumbs_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "cms-payload"."categories"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."categories" ADD CONSTRAINT "categories_parent_id_categories_id_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."categories"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."customers_stats" ADD CONSTRAINT "customers_stats_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "cms-payload"."customers"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."customers_misc" ADD CONSTRAINT "customers_misc_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "cms-payload"."customers"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."customers_industry" ADD CONSTRAINT "customers_industry_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."customers"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."customers_supabase_products" ADD CONSTRAINT "customers_supabase_products_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."customers"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."customers" ADD CONSTRAINT "customers_meta_image_id_media_id_fk" FOREIGN KEY ("meta_image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."customers" ADD CONSTRAINT "customers_logo_id_media_id_fk" FOREIGN KEY ("logo_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."customers" ADD CONSTRAINT "customers_logo_inverse_id_media_id_fk" FOREIGN KEY ("logo_inverse_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_customers_v_version_stats" ADD CONSTRAINT "_customers_v_version_stats_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "cms-payload"."_customers_v"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_customers_v_version_misc" ADD CONSTRAINT "_customers_v_version_misc_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "cms-payload"."_customers_v"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_customers_v_version_industry" ADD CONSTRAINT "_customers_v_version_industry_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."_customers_v"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_customers_v_version_supabase_products" ADD CONSTRAINT "_customers_v_version_supabase_products_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."_customers_v"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_customers_v" ADD CONSTRAINT "_customers_v_parent_id_customers_id_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."customers"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_customers_v" ADD CONSTRAINT "_customers_v_version_meta_image_id_media_id_fk" FOREIGN KEY ("version_meta_image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_customers_v" ADD CONSTRAINT "_customers_v_version_logo_id_media_id_fk" FOREIGN KEY ("version_logo_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_customers_v" ADD CONSTRAINT "_customers_v_version_logo_inverse_id_media_id_fk" FOREIGN KEY ("version_logo_inverse_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."events_type" ADD CONSTRAINT "events_type_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."events"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."events" ADD CONSTRAINT "events_thumb_id_media_id_fk" FOREIGN KEY ("thumb_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."events" ADD CONSTRAINT "events_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."events" ADD CONSTRAINT "events_company_logo_id_media_id_fk" FOREIGN KEY ("company_logo_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."events" ADD CONSTRAINT "events_company_logo_light_id_media_id_fk" FOREIGN KEY ("company_logo_light_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."events" ADD CONSTRAINT "events_meta_image_id_media_id_fk" FOREIGN KEY ("meta_image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."events_rels" ADD CONSTRAINT "events_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."events"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."events_rels" ADD CONSTRAINT "events_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "cms-payload"."authors"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v_version_type" ADD CONSTRAINT "_events_v_version_type_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."_events_v"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v" ADD CONSTRAINT "_events_v_parent_id_events_id_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."events"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v" ADD CONSTRAINT "_events_v_version_thumb_id_media_id_fk" FOREIGN KEY ("version_thumb_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v" ADD CONSTRAINT "_events_v_version_image_id_media_id_fk" FOREIGN KEY ("version_image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v" ADD CONSTRAINT "_events_v_version_company_logo_id_media_id_fk" FOREIGN KEY ("version_company_logo_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v" ADD CONSTRAINT "_events_v_version_company_logo_light_id_media_id_fk" FOREIGN KEY ("version_company_logo_light_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v" ADD CONSTRAINT "_events_v_version_meta_image_id_media_id_fk" FOREIGN KEY ("version_meta_image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v_rels" ADD CONSTRAINT "_events_v_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."_events_v"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_events_v_rels" ADD CONSTRAINT "_events_v_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "cms-payload"."authors"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."posts" ADD CONSTRAINT "posts_thumb_id_media_id_fk" FOREIGN KEY ("thumb_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."posts" ADD CONSTRAINT "posts_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."posts" ADD CONSTRAINT "posts_meta_image_id_media_id_fk" FOREIGN KEY ("meta_image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."posts_rels" ADD CONSTRAINT "posts_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."posts"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."posts_rels" ADD CONSTRAINT "posts_rels_categories_fk" FOREIGN KEY ("categories_id") REFERENCES "cms-payload"."categories"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."posts_rels" ADD CONSTRAINT "posts_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "cms-payload"."authors"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."posts_rels" ADD CONSTRAINT "posts_rels_tags_fk" FOREIGN KEY ("tags_id") REFERENCES "cms-payload"."tags"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_posts_v" ADD CONSTRAINT "_posts_v_parent_id_posts_id_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."posts"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_posts_v" ADD CONSTRAINT "_posts_v_version_thumb_id_media_id_fk" FOREIGN KEY ("version_thumb_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_posts_v" ADD CONSTRAINT "_posts_v_version_image_id_media_id_fk" FOREIGN KEY ("version_image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_posts_v" ADD CONSTRAINT "_posts_v_version_meta_image_id_media_id_fk" FOREIGN KEY ("version_meta_image_id") REFERENCES "cms-payload"."media"("id") ON DELETE set null ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_posts_v_rels" ADD CONSTRAINT "_posts_v_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."_posts_v"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_posts_v_rels" ADD CONSTRAINT "_posts_v_rels_categories_fk" FOREIGN KEY ("categories_id") REFERENCES "cms-payload"."categories"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_posts_v_rels" ADD CONSTRAINT "_posts_v_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "cms-payload"."authors"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."_posts_v_rels" ADD CONSTRAINT "_posts_v_rels_tags_fk" FOREIGN KEY ("tags_id") REFERENCES "cms-payload"."tags"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."users_roles" ADD CONSTRAINT "users_roles_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."users"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_jobs_log" ADD CONSTRAINT "payload_jobs_log_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "cms-payload"."payload_jobs"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."payload_locked_documents"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "cms-payload"."authors"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_categories_fk" FOREIGN KEY ("categories_id") REFERENCES "cms-payload"."categories"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_customers_fk" FOREIGN KEY ("customers_id") REFERENCES "cms-payload"."customers"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_events_fk" FOREIGN KEY ("events_id") REFERENCES "cms-payload"."events"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_media_fk" FOREIGN KEY ("media_id") REFERENCES "cms-payload"."media"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_posts_fk" FOREIGN KEY ("posts_id") REFERENCES "cms-payload"."posts"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_tags_fk" FOREIGN KEY ("tags_id") REFERENCES "cms-payload"."tags"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_users_fk" FOREIGN KEY ("users_id") REFERENCES "cms-payload"."users"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_payload_jobs_fk" FOREIGN KEY ("payload_jobs_id") REFERENCES "cms-payload"."payload_jobs"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_preferences_rels" ADD CONSTRAINT "payload_preferences_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "cms-payload"."payload_preferences"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - DO $$ BEGIN - ALTER TABLE "cms-payload"."payload_preferences_rels" ADD CONSTRAINT "payload_preferences_rels_users_fk" FOREIGN KEY ("users_id") REFERENCES "cms-payload"."users"("id") ON DELETE cascade ON UPDATE no action; - EXCEPTION - WHEN duplicate_object THEN null; - END $$; - - CREATE INDEX IF NOT EXISTS "authors_author_image_url_idx" ON "cms-payload"."authors" USING btree ("author_image_url_id"); - CREATE INDEX IF NOT EXISTS "authors_updated_at_idx" ON "cms-payload"."authors" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "authors_created_at_idx" ON "cms-payload"."authors" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "categories_breadcrumbs_order_idx" ON "cms-payload"."categories_breadcrumbs" USING btree ("_order"); - CREATE INDEX IF NOT EXISTS "categories_breadcrumbs_parent_id_idx" ON "cms-payload"."categories_breadcrumbs" USING btree ("_parent_id"); - CREATE INDEX IF NOT EXISTS "categories_breadcrumbs_doc_idx" ON "cms-payload"."categories_breadcrumbs" USING btree ("doc_id"); - CREATE INDEX IF NOT EXISTS "categories_parent_idx" ON "cms-payload"."categories" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "categories_updated_at_idx" ON "cms-payload"."categories" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "categories_created_at_idx" ON "cms-payload"."categories" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "customers_stats_order_idx" ON "cms-payload"."customers_stats" USING btree ("_order"); - CREATE INDEX IF NOT EXISTS "customers_stats_parent_id_idx" ON "cms-payload"."customers_stats" USING btree ("_parent_id"); - CREATE INDEX IF NOT EXISTS "customers_misc_order_idx" ON "cms-payload"."customers_misc" USING btree ("_order"); - CREATE INDEX IF NOT EXISTS "customers_misc_parent_id_idx" ON "cms-payload"."customers_misc" USING btree ("_parent_id"); - CREATE INDEX IF NOT EXISTS "customers_industry_order_idx" ON "cms-payload"."customers_industry" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "customers_industry_parent_idx" ON "cms-payload"."customers_industry" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "customers_supabase_products_order_idx" ON "cms-payload"."customers_supabase_products" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "customers_supabase_products_parent_idx" ON "cms-payload"."customers_supabase_products" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "customers_slug_idx" ON "cms-payload"."customers" USING btree ("slug"); - CREATE INDEX IF NOT EXISTS "customers_meta_meta_image_idx" ON "cms-payload"."customers" USING btree ("meta_image_id"); - CREATE INDEX IF NOT EXISTS "customers_logo_idx" ON "cms-payload"."customers" USING btree ("logo_id"); - CREATE INDEX IF NOT EXISTS "customers_logo_inverse_idx" ON "cms-payload"."customers" USING btree ("logo_inverse_id"); - CREATE INDEX IF NOT EXISTS "customers_updated_at_idx" ON "cms-payload"."customers" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "customers_created_at_idx" ON "cms-payload"."customers" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "customers__status_idx" ON "cms-payload"."customers" USING btree ("_status"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_stats_order_idx" ON "cms-payload"."_customers_v_version_stats" USING btree ("_order"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_stats_parent_id_idx" ON "cms-payload"."_customers_v_version_stats" USING btree ("_parent_id"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_misc_order_idx" ON "cms-payload"."_customers_v_version_misc" USING btree ("_order"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_misc_parent_id_idx" ON "cms-payload"."_customers_v_version_misc" USING btree ("_parent_id"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_industry_order_idx" ON "cms-payload"."_customers_v_version_industry" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_industry_parent_idx" ON "cms-payload"."_customers_v_version_industry" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_supabase_products_order_idx" ON "cms-payload"."_customers_v_version_supabase_products" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_supabase_products_parent_idx" ON "cms-payload"."_customers_v_version_supabase_products" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "_customers_v_parent_idx" ON "cms-payload"."_customers_v" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_version_slug_idx" ON "cms-payload"."_customers_v" USING btree ("version_slug"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_meta_version_meta_image_idx" ON "cms-payload"."_customers_v" USING btree ("version_meta_image_id"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_version_logo_idx" ON "cms-payload"."_customers_v" USING btree ("version_logo_id"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_version_logo_inverse_idx" ON "cms-payload"."_customers_v" USING btree ("version_logo_inverse_id"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_version_updated_at_idx" ON "cms-payload"."_customers_v" USING btree ("version_updated_at"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_version_created_at_idx" ON "cms-payload"."_customers_v" USING btree ("version_created_at"); - CREATE INDEX IF NOT EXISTS "_customers_v_version_version__status_idx" ON "cms-payload"."_customers_v" USING btree ("version__status"); - CREATE INDEX IF NOT EXISTS "_customers_v_created_at_idx" ON "cms-payload"."_customers_v" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "_customers_v_updated_at_idx" ON "cms-payload"."_customers_v" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "_customers_v_latest_idx" ON "cms-payload"."_customers_v" USING btree ("latest"); - CREATE INDEX IF NOT EXISTS "_customers_v_autosave_idx" ON "cms-payload"."_customers_v" USING btree ("autosave"); - CREATE INDEX IF NOT EXISTS "events_type_order_idx" ON "cms-payload"."events_type" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "events_type_parent_idx" ON "cms-payload"."events_type" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "events_slug_idx" ON "cms-payload"."events" USING btree ("slug"); - CREATE INDEX IF NOT EXISTS "events_thumb_idx" ON "cms-payload"."events" USING btree ("thumb_id"); - CREATE INDEX IF NOT EXISTS "events_image_idx" ON "cms-payload"."events" USING btree ("image_id"); - CREATE INDEX IF NOT EXISTS "events_company_company_logo_idx" ON "cms-payload"."events" USING btree ("company_logo_id"); - CREATE INDEX IF NOT EXISTS "events_company_company_logo_light_idx" ON "cms-payload"."events" USING btree ("company_logo_light_id"); - CREATE INDEX IF NOT EXISTS "events_meta_meta_image_idx" ON "cms-payload"."events" USING btree ("meta_image_id"); - CREATE INDEX IF NOT EXISTS "events_updated_at_idx" ON "cms-payload"."events" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "events_created_at_idx" ON "cms-payload"."events" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "events__status_idx" ON "cms-payload"."events" USING btree ("_status"); - CREATE INDEX IF NOT EXISTS "events_rels_order_idx" ON "cms-payload"."events_rels" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "events_rels_parent_idx" ON "cms-payload"."events_rels" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "events_rels_path_idx" ON "cms-payload"."events_rels" USING btree ("path"); - CREATE INDEX IF NOT EXISTS "events_rels_authors_id_idx" ON "cms-payload"."events_rels" USING btree ("authors_id"); - CREATE INDEX IF NOT EXISTS "_events_v_version_type_order_idx" ON "cms-payload"."_events_v_version_type" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "_events_v_version_type_parent_idx" ON "cms-payload"."_events_v_version_type" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "_events_v_parent_idx" ON "cms-payload"."_events_v" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "_events_v_version_version_slug_idx" ON "cms-payload"."_events_v" USING btree ("version_slug"); - CREATE INDEX IF NOT EXISTS "_events_v_version_version_thumb_idx" ON "cms-payload"."_events_v" USING btree ("version_thumb_id"); - CREATE INDEX IF NOT EXISTS "_events_v_version_version_image_idx" ON "cms-payload"."_events_v" USING btree ("version_image_id"); - CREATE INDEX IF NOT EXISTS "_events_v_version_company_version_company_logo_idx" ON "cms-payload"."_events_v" USING btree ("version_company_logo_id"); - CREATE INDEX IF NOT EXISTS "_events_v_version_company_version_company_logo_light_idx" ON "cms-payload"."_events_v" USING btree ("version_company_logo_light_id"); - CREATE INDEX IF NOT EXISTS "_events_v_version_meta_version_meta_image_idx" ON "cms-payload"."_events_v" USING btree ("version_meta_image_id"); - CREATE INDEX IF NOT EXISTS "_events_v_version_version_updated_at_idx" ON "cms-payload"."_events_v" USING btree ("version_updated_at"); - CREATE INDEX IF NOT EXISTS "_events_v_version_version_created_at_idx" ON "cms-payload"."_events_v" USING btree ("version_created_at"); - CREATE INDEX IF NOT EXISTS "_events_v_version_version__status_idx" ON "cms-payload"."_events_v" USING btree ("version__status"); - CREATE INDEX IF NOT EXISTS "_events_v_created_at_idx" ON "cms-payload"."_events_v" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "_events_v_updated_at_idx" ON "cms-payload"."_events_v" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "_events_v_latest_idx" ON "cms-payload"."_events_v" USING btree ("latest"); - CREATE INDEX IF NOT EXISTS "_events_v_autosave_idx" ON "cms-payload"."_events_v" USING btree ("autosave"); - CREATE INDEX IF NOT EXISTS "_events_v_rels_order_idx" ON "cms-payload"."_events_v_rels" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "_events_v_rels_parent_idx" ON "cms-payload"."_events_v_rels" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "_events_v_rels_path_idx" ON "cms-payload"."_events_v_rels" USING btree ("path"); - CREATE INDEX IF NOT EXISTS "_events_v_rels_authors_id_idx" ON "cms-payload"."_events_v_rels" USING btree ("authors_id"); - CREATE INDEX IF NOT EXISTS "media_updated_at_idx" ON "cms-payload"."media" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "media_created_at_idx" ON "cms-payload"."media" USING btree ("created_at"); - CREATE UNIQUE INDEX IF NOT EXISTS "media_filename_idx" ON "cms-payload"."media" USING btree ("filename"); - CREATE INDEX IF NOT EXISTS "media_sizes_thumbnail_sizes_thumbnail_filename_idx" ON "cms-payload"."media" USING btree ("sizes_thumbnail_filename"); - CREATE INDEX IF NOT EXISTS "media_sizes_square_sizes_square_filename_idx" ON "cms-payload"."media" USING btree ("sizes_square_filename"); - CREATE INDEX IF NOT EXISTS "media_sizes_small_sizes_small_filename_idx" ON "cms-payload"."media" USING btree ("sizes_small_filename"); - CREATE INDEX IF NOT EXISTS "media_sizes_medium_sizes_medium_filename_idx" ON "cms-payload"."media" USING btree ("sizes_medium_filename"); - CREATE INDEX IF NOT EXISTS "media_sizes_large_sizes_large_filename_idx" ON "cms-payload"."media" USING btree ("sizes_large_filename"); - CREATE INDEX IF NOT EXISTS "media_sizes_xlarge_sizes_xlarge_filename_idx" ON "cms-payload"."media" USING btree ("sizes_xlarge_filename"); - CREATE INDEX IF NOT EXISTS "media_sizes_og_sizes_og_filename_idx" ON "cms-payload"."media" USING btree ("sizes_og_filename"); - CREATE INDEX IF NOT EXISTS "posts_slug_idx" ON "cms-payload"."posts" USING btree ("slug"); - CREATE INDEX IF NOT EXISTS "posts_thumb_idx" ON "cms-payload"."posts" USING btree ("thumb_id"); - CREATE INDEX IF NOT EXISTS "posts_image_idx" ON "cms-payload"."posts" USING btree ("image_id"); - CREATE INDEX IF NOT EXISTS "posts_meta_meta_image_idx" ON "cms-payload"."posts" USING btree ("meta_image_id"); - CREATE INDEX IF NOT EXISTS "posts_updated_at_idx" ON "cms-payload"."posts" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "posts_created_at_idx" ON "cms-payload"."posts" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "posts__status_idx" ON "cms-payload"."posts" USING btree ("_status"); - CREATE INDEX IF NOT EXISTS "posts_rels_order_idx" ON "cms-payload"."posts_rels" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "posts_rels_parent_idx" ON "cms-payload"."posts_rels" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "posts_rels_path_idx" ON "cms-payload"."posts_rels" USING btree ("path"); - CREATE INDEX IF NOT EXISTS "posts_rels_categories_id_idx" ON "cms-payload"."posts_rels" USING btree ("categories_id"); - CREATE INDEX IF NOT EXISTS "posts_rels_authors_id_idx" ON "cms-payload"."posts_rels" USING btree ("authors_id"); - CREATE INDEX IF NOT EXISTS "posts_rels_tags_id_idx" ON "cms-payload"."posts_rels" USING btree ("tags_id"); - CREATE INDEX IF NOT EXISTS "_posts_v_parent_idx" ON "cms-payload"."_posts_v" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "_posts_v_version_version_slug_idx" ON "cms-payload"."_posts_v" USING btree ("version_slug"); - CREATE INDEX IF NOT EXISTS "_posts_v_version_version_thumb_idx" ON "cms-payload"."_posts_v" USING btree ("version_thumb_id"); - CREATE INDEX IF NOT EXISTS "_posts_v_version_version_image_idx" ON "cms-payload"."_posts_v" USING btree ("version_image_id"); - CREATE INDEX IF NOT EXISTS "_posts_v_version_meta_version_meta_image_idx" ON "cms-payload"."_posts_v" USING btree ("version_meta_image_id"); - CREATE INDEX IF NOT EXISTS "_posts_v_version_version_updated_at_idx" ON "cms-payload"."_posts_v" USING btree ("version_updated_at"); - CREATE INDEX IF NOT EXISTS "_posts_v_version_version_created_at_idx" ON "cms-payload"."_posts_v" USING btree ("version_created_at"); - CREATE INDEX IF NOT EXISTS "_posts_v_version_version__status_idx" ON "cms-payload"."_posts_v" USING btree ("version__status"); - CREATE INDEX IF NOT EXISTS "_posts_v_created_at_idx" ON "cms-payload"."_posts_v" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "_posts_v_updated_at_idx" ON "cms-payload"."_posts_v" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "_posts_v_latest_idx" ON "cms-payload"."_posts_v" USING btree ("latest"); - CREATE INDEX IF NOT EXISTS "_posts_v_autosave_idx" ON "cms-payload"."_posts_v" USING btree ("autosave"); - CREATE INDEX IF NOT EXISTS "_posts_v_rels_order_idx" ON "cms-payload"."_posts_v_rels" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "_posts_v_rels_parent_idx" ON "cms-payload"."_posts_v_rels" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "_posts_v_rels_path_idx" ON "cms-payload"."_posts_v_rels" USING btree ("path"); - CREATE INDEX IF NOT EXISTS "_posts_v_rels_categories_id_idx" ON "cms-payload"."_posts_v_rels" USING btree ("categories_id"); - CREATE INDEX IF NOT EXISTS "_posts_v_rels_authors_id_idx" ON "cms-payload"."_posts_v_rels" USING btree ("authors_id"); - CREATE INDEX IF NOT EXISTS "_posts_v_rels_tags_id_idx" ON "cms-payload"."_posts_v_rels" USING btree ("tags_id"); - CREATE INDEX IF NOT EXISTS "tags_updated_at_idx" ON "cms-payload"."tags" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "tags_created_at_idx" ON "cms-payload"."tags" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "users_roles_order_idx" ON "cms-payload"."users_roles" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "users_roles_parent_idx" ON "cms-payload"."users_roles" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "users_updated_at_idx" ON "cms-payload"."users" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "users_created_at_idx" ON "cms-payload"."users" USING btree ("created_at"); - CREATE UNIQUE INDEX IF NOT EXISTS "users_email_idx" ON "cms-payload"."users" USING btree ("email"); - CREATE INDEX IF NOT EXISTS "payload_jobs_log_order_idx" ON "cms-payload"."payload_jobs_log" USING btree ("_order"); - CREATE INDEX IF NOT EXISTS "payload_jobs_log_parent_id_idx" ON "cms-payload"."payload_jobs_log" USING btree ("_parent_id"); - CREATE INDEX IF NOT EXISTS "payload_jobs_completed_at_idx" ON "cms-payload"."payload_jobs" USING btree ("completed_at"); - CREATE INDEX IF NOT EXISTS "payload_jobs_total_tried_idx" ON "cms-payload"."payload_jobs" USING btree ("total_tried"); - CREATE INDEX IF NOT EXISTS "payload_jobs_has_error_idx" ON "cms-payload"."payload_jobs" USING btree ("has_error"); - CREATE INDEX IF NOT EXISTS "payload_jobs_task_slug_idx" ON "cms-payload"."payload_jobs" USING btree ("task_slug"); - CREATE INDEX IF NOT EXISTS "payload_jobs_queue_idx" ON "cms-payload"."payload_jobs" USING btree ("queue"); - CREATE INDEX IF NOT EXISTS "payload_jobs_wait_until_idx" ON "cms-payload"."payload_jobs" USING btree ("wait_until"); - CREATE INDEX IF NOT EXISTS "payload_jobs_processing_idx" ON "cms-payload"."payload_jobs" USING btree ("processing"); - CREATE INDEX IF NOT EXISTS "payload_jobs_updated_at_idx" ON "cms-payload"."payload_jobs" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "payload_jobs_created_at_idx" ON "cms-payload"."payload_jobs" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_global_slug_idx" ON "cms-payload"."payload_locked_documents" USING btree ("global_slug"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_updated_at_idx" ON "cms-payload"."payload_locked_documents" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_created_at_idx" ON "cms-payload"."payload_locked_documents" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_order_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_parent_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_path_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("path"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_authors_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("authors_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_categories_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("categories_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_customers_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("customers_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_events_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("events_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_media_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("media_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_posts_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("posts_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_tags_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("tags_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_users_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("users_id"); - CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_payload_jobs_id_idx" ON "cms-payload"."payload_locked_documents_rels" USING btree ("payload_jobs_id"); - CREATE INDEX IF NOT EXISTS "payload_preferences_key_idx" ON "cms-payload"."payload_preferences" USING btree ("key"); - CREATE INDEX IF NOT EXISTS "payload_preferences_updated_at_idx" ON "cms-payload"."payload_preferences" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "payload_preferences_created_at_idx" ON "cms-payload"."payload_preferences" USING btree ("created_at"); - CREATE INDEX IF NOT EXISTS "payload_preferences_rels_order_idx" ON "cms-payload"."payload_preferences_rels" USING btree ("order"); - CREATE INDEX IF NOT EXISTS "payload_preferences_rels_parent_idx" ON "cms-payload"."payload_preferences_rels" USING btree ("parent_id"); - CREATE INDEX IF NOT EXISTS "payload_preferences_rels_path_idx" ON "cms-payload"."payload_preferences_rels" USING btree ("path"); - CREATE INDEX IF NOT EXISTS "payload_preferences_rels_users_id_idx" ON "cms-payload"."payload_preferences_rels" USING btree ("users_id"); - CREATE INDEX IF NOT EXISTS "payload_migrations_updated_at_idx" ON "cms-payload"."payload_migrations" USING btree ("updated_at"); - CREATE INDEX IF NOT EXISTS "payload_migrations_created_at_idx" ON "cms-payload"."payload_migrations" USING btree ("created_at");`) -} - -export async function down({ db }: MigrateDownArgs): Promise { - await db.execute(sql` - DROP TABLE "cms-payload"."authors" CASCADE; - DROP TABLE "cms-payload"."categories_breadcrumbs" CASCADE; - DROP TABLE "cms-payload"."categories" CASCADE; - DROP TABLE "cms-payload"."customers_stats" CASCADE; - DROP TABLE "cms-payload"."customers_misc" CASCADE; - DROP TABLE "cms-payload"."customers_industry" CASCADE; - DROP TABLE "cms-payload"."customers_supabase_products" CASCADE; - DROP TABLE "cms-payload"."customers" CASCADE; - DROP TABLE "cms-payload"."_customers_v_version_stats" CASCADE; - DROP TABLE "cms-payload"."_customers_v_version_misc" CASCADE; - DROP TABLE "cms-payload"."_customers_v_version_industry" CASCADE; - DROP TABLE "cms-payload"."_customers_v_version_supabase_products" CASCADE; - DROP TABLE "cms-payload"."_customers_v" CASCADE; - DROP TABLE "cms-payload"."events_type" CASCADE; - DROP TABLE "cms-payload"."events" CASCADE; - DROP TABLE "cms-payload"."events_rels" CASCADE; - DROP TABLE "cms-payload"."_events_v_version_type" CASCADE; - DROP TABLE "cms-payload"."_events_v" CASCADE; - DROP TABLE "cms-payload"."_events_v_rels" CASCADE; - DROP TABLE "cms-payload"."media" CASCADE; - DROP TABLE "cms-payload"."posts" CASCADE; - DROP TABLE "cms-payload"."posts_rels" CASCADE; - DROP TABLE "cms-payload"."_posts_v" CASCADE; - DROP TABLE "cms-payload"."_posts_v_rels" CASCADE; - DROP TABLE "cms-payload"."tags" CASCADE; - DROP TABLE "cms-payload"."users_roles" CASCADE; - DROP TABLE "cms-payload"."users" CASCADE; - DROP TABLE "cms-payload"."payload_jobs_log" CASCADE; - DROP TABLE "cms-payload"."payload_jobs" CASCADE; - DROP TABLE "cms-payload"."payload_locked_documents" CASCADE; - DROP TABLE "cms-payload"."payload_locked_documents_rels" CASCADE; - DROP TABLE "cms-payload"."payload_preferences" CASCADE; - DROP TABLE "cms-payload"."payload_preferences_rels" CASCADE; - DROP TABLE "cms-payload"."payload_migrations" CASCADE; - DROP TYPE "cms-payload"."enum_customers_industry"; - DROP TYPE "cms-payload"."enum_customers_supabase_products"; - DROP TYPE "cms-payload"."enum_customers_company_size"; - DROP TYPE "cms-payload"."enum_customers_region"; - DROP TYPE "cms-payload"."enum_customers_status"; - DROP TYPE "cms-payload"."enum__customers_v_version_industry"; - DROP TYPE "cms-payload"."enum__customers_v_version_supabase_products"; - DROP TYPE "cms-payload"."enum__customers_v_version_company_size"; - DROP TYPE "cms-payload"."enum__customers_v_version_region"; - DROP TYPE "cms-payload"."enum__customers_v_version_status"; - DROP TYPE "cms-payload"."enum_events_type"; - DROP TYPE "cms-payload"."enum_events_timezone"; - DROP TYPE "cms-payload"."enum_events_link_target"; - DROP TYPE "cms-payload"."enum_events_main_cta_target"; - DROP TYPE "cms-payload"."enum_events_status"; - DROP TYPE "cms-payload"."enum__events_v_version_type"; - DROP TYPE "cms-payload"."enum__events_v_version_timezone"; - DROP TYPE "cms-payload"."enum__events_v_version_link_target"; - DROP TYPE "cms-payload"."enum__events_v_version_main_cta_target"; - DROP TYPE "cms-payload"."enum__events_v_version_status"; - DROP TYPE "cms-payload"."enum_posts_launchweek"; - DROP TYPE "cms-payload"."enum_posts_status"; - DROP TYPE "cms-payload"."enum__posts_v_version_launchweek"; - DROP TYPE "cms-payload"."enum__posts_v_version_status"; - DROP TYPE "cms-payload"."enum_users_roles"; - DROP TYPE "cms-payload"."enum_payload_jobs_log_task_slug"; - DROP TYPE "cms-payload"."enum_payload_jobs_log_state"; - DROP TYPE "cms-payload"."enum_payload_jobs_task_slug";`) -} diff --git a/apps/cms/src/migrations/20250529_103319.json b/apps/cms/src/migrations/20250619_155345.json similarity index 95% rename from apps/cms/src/migrations/20250529_103319.json rename to apps/cms/src/migrations/20250619_155345.json index 04fb0783181..7fec1a1285b 100644 --- a/apps/cms/src/migrations/20250529_103319.json +++ b/apps/cms/src/migrations/20250619_155345.json @@ -1,12 +1,12 @@ { - "id": "b20fdabe-061b-43a4-8abf-b401ef5818d1", + "id": "46141a51-8524-466d-9e94-70fe5c73221c", "prevId": "00000000-0000-0000-0000-000000000000", "version": "7", "dialect": "postgresql", "tables": { - "cms-payload.authors": { + "public.authors": { "name": "authors", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -117,7 +117,6 @@ "name": "authors_author_image_url_id_media_id_fk", "tableFrom": "authors", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "author_image_url_id" ], @@ -134,9 +133,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.categories_breadcrumbs": { + "public.categories_breadcrumbs": { "name": "categories_breadcrumbs", - "schema": "cms-payload", + "schema": "", "columns": { "_order": { "name": "_order", @@ -227,7 +226,6 @@ "name": "categories_breadcrumbs_doc_id_categories_id_fk", "tableFrom": "categories_breadcrumbs", "tableTo": "categories", - "schemaTo": "cms-payload", "columnsFrom": [ "doc_id" ], @@ -241,7 +239,6 @@ "name": "categories_breadcrumbs_parent_id_fk", "tableFrom": "categories_breadcrumbs", "tableTo": "categories", - "schemaTo": "cms-payload", "columnsFrom": [ "_parent_id" ], @@ -258,9 +255,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.categories": { + "public.categories": { "name": "categories", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -347,7 +344,6 @@ "name": "categories_parent_id_categories_id_fk", "tableFrom": "categories", "tableTo": "categories", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -364,9 +360,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.customers_stats": { + "public.customers_stats": { "name": "customers_stats", - "schema": "cms-payload", + "schema": "", "columns": { "_order": { "name": "_order", @@ -436,7 +432,6 @@ "name": "customers_stats_parent_id_fk", "tableFrom": "customers_stats", "tableTo": "customers", - "schemaTo": "cms-payload", "columnsFrom": [ "_parent_id" ], @@ -453,9 +448,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.customers_misc": { + "public.customers_misc": { "name": "customers_misc", - "schema": "cms-payload", + "schema": "", "columns": { "_order": { "name": "_order", @@ -525,7 +520,6 @@ "name": "customers_misc_parent_id_fk", "tableFrom": "customers_misc", "tableTo": "customers", - "schemaTo": "cms-payload", "columnsFrom": [ "_parent_id" ], @@ -542,9 +536,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.customers_industry": { + "public.customers_industry": { "name": "customers_industry", - "schema": "cms-payload", + "schema": "", "columns": { "order": { "name": "order", @@ -561,7 +555,7 @@ "value": { "name": "value", "type": "enum_customers_industry", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -609,7 +603,6 @@ "name": "customers_industry_parent_fk", "tableFrom": "customers_industry", "tableTo": "customers", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -626,9 +619,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.customers_supabase_products": { + "public.customers_supabase_products": { "name": "customers_supabase_products", - "schema": "cms-payload", + "schema": "", "columns": { "order": { "name": "order", @@ -645,7 +638,7 @@ "value": { "name": "value", "type": "enum_customers_supabase_products", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -693,7 +686,6 @@ "name": "customers_supabase_products_parent_fk", "tableFrom": "customers_supabase_products", "tableTo": "customers", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -710,9 +702,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.customers": { + "public.customers": { "name": "customers", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -772,14 +764,14 @@ "company_size": { "name": "company_size", "type": "enum_customers_company_size", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, "region": { "name": "region", "type": "enum_customers_region", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -836,7 +828,7 @@ "_status": { "name": "_status", "type": "enum_customers_status", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'draft'" @@ -954,7 +946,6 @@ "name": "customers_meta_image_id_media_id_fk", "tableFrom": "customers", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "meta_image_id" ], @@ -968,7 +959,6 @@ "name": "customers_logo_id_media_id_fk", "tableFrom": "customers", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "logo_id" ], @@ -982,7 +972,6 @@ "name": "customers_logo_inverse_id_media_id_fk", "tableFrom": "customers", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "logo_inverse_id" ], @@ -999,9 +988,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._customers_v_version_stats": { + "public._customers_v_version_stats": { "name": "_customers_v_version_stats", - "schema": "cms-payload", + "schema": "", "columns": { "_order": { "name": "_order", @@ -1077,7 +1066,6 @@ "name": "_customers_v_version_stats_parent_id_fk", "tableFrom": "_customers_v_version_stats", "tableTo": "_customers_v", - "schemaTo": "cms-payload", "columnsFrom": [ "_parent_id" ], @@ -1094,9 +1082,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._customers_v_version_misc": { + "public._customers_v_version_misc": { "name": "_customers_v_version_misc", - "schema": "cms-payload", + "schema": "", "columns": { "_order": { "name": "_order", @@ -1172,7 +1160,6 @@ "name": "_customers_v_version_misc_parent_id_fk", "tableFrom": "_customers_v_version_misc", "tableTo": "_customers_v", - "schemaTo": "cms-payload", "columnsFrom": [ "_parent_id" ], @@ -1189,9 +1176,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._customers_v_version_industry": { + "public._customers_v_version_industry": { "name": "_customers_v_version_industry", - "schema": "cms-payload", + "schema": "", "columns": { "order": { "name": "order", @@ -1208,7 +1195,7 @@ "value": { "name": "value", "type": "enum__customers_v_version_industry", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -1256,7 +1243,6 @@ "name": "_customers_v_version_industry_parent_fk", "tableFrom": "_customers_v_version_industry", "tableTo": "_customers_v", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -1273,9 +1259,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._customers_v_version_supabase_products": { + "public._customers_v_version_supabase_products": { "name": "_customers_v_version_supabase_products", - "schema": "cms-payload", + "schema": "", "columns": { "order": { "name": "order", @@ -1292,7 +1278,7 @@ "value": { "name": "value", "type": "enum__customers_v_version_supabase_products", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -1340,7 +1326,6 @@ "name": "_customers_v_version_supabase_products_parent_fk", "tableFrom": "_customers_v_version_supabase_products", "tableTo": "_customers_v", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -1357,9 +1342,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._customers_v": { + "public._customers_v": { "name": "_customers_v", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -1425,14 +1410,14 @@ "version_company_size": { "name": "version_company_size", "type": "enum__customers_v_version_company_size", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, "version_region": { "name": "version_region", "type": "enum__customers_v_version_region", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -1487,7 +1472,7 @@ "version__status": { "name": "version__status", "type": "enum__customers_v_version_status", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'draft'" @@ -1706,7 +1691,6 @@ "name": "_customers_v_parent_id_customers_id_fk", "tableFrom": "_customers_v", "tableTo": "customers", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -1720,7 +1704,6 @@ "name": "_customers_v_version_meta_image_id_media_id_fk", "tableFrom": "_customers_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_meta_image_id" ], @@ -1734,7 +1717,6 @@ "name": "_customers_v_version_logo_id_media_id_fk", "tableFrom": "_customers_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_logo_id" ], @@ -1748,7 +1730,6 @@ "name": "_customers_v_version_logo_inverse_id_media_id_fk", "tableFrom": "_customers_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_logo_inverse_id" ], @@ -1765,9 +1746,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.events_type": { + "public.events_type": { "name": "events_type", - "schema": "cms-payload", + "schema": "", "columns": { "order": { "name": "order", @@ -1784,7 +1765,7 @@ "value": { "name": "value", "type": "enum_events_type", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -1832,7 +1813,6 @@ "name": "events_type_parent_fk", "tableFrom": "events_type", "tableTo": "events", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -1849,9 +1829,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.events": { + "public.events": { "name": "events", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -1911,7 +1891,7 @@ "timezone": { "name": "timezone", "type": "enum_events_timezone", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -1957,7 +1937,7 @@ "link_target": { "name": "link_target", "type": "enum_events_link_target", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'_blank'" @@ -1971,7 +1951,7 @@ "main_cta_target": { "name": "main_cta_target", "type": "enum_events_main_cta_target", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'_blank'" @@ -2074,7 +2054,7 @@ "_status": { "name": "_status", "type": "enum_events_status", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'draft'" @@ -2222,7 +2202,6 @@ "name": "events_thumb_id_media_id_fk", "tableFrom": "events", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "thumb_id" ], @@ -2236,7 +2215,6 @@ "name": "events_image_id_media_id_fk", "tableFrom": "events", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "image_id" ], @@ -2250,7 +2228,6 @@ "name": "events_company_logo_id_media_id_fk", "tableFrom": "events", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "company_logo_id" ], @@ -2264,7 +2241,6 @@ "name": "events_company_logo_light_id_media_id_fk", "tableFrom": "events", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "company_logo_light_id" ], @@ -2278,7 +2254,6 @@ "name": "events_meta_image_id_media_id_fk", "tableFrom": "events", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "meta_image_id" ], @@ -2295,9 +2270,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.events_rels": { + "public.events_rels": { "name": "events_rels", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -2397,7 +2372,6 @@ "name": "events_rels_parent_fk", "tableFrom": "events_rels", "tableTo": "events", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -2411,7 +2385,6 @@ "name": "events_rels_authors_fk", "tableFrom": "events_rels", "tableTo": "authors", - "schemaTo": "cms-payload", "columnsFrom": [ "authors_id" ], @@ -2428,9 +2401,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._events_v_version_type": { + "public._events_v_version_type": { "name": "_events_v_version_type", - "schema": "cms-payload", + "schema": "", "columns": { "order": { "name": "order", @@ -2447,7 +2420,7 @@ "value": { "name": "value", "type": "enum__events_v_version_type", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -2495,7 +2468,6 @@ "name": "_events_v_version_type_parent_fk", "tableFrom": "_events_v_version_type", "tableTo": "_events_v", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -2512,9 +2484,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._events_v": { + "public._events_v": { "name": "_events_v", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -2580,7 +2552,7 @@ "version_timezone": { "name": "version_timezone", "type": "enum__events_v_version_timezone", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -2626,7 +2598,7 @@ "version_link_target": { "name": "version_link_target", "type": "enum__events_v_version_link_target", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'_blank'" @@ -2640,7 +2612,7 @@ "version_main_cta_target": { "name": "version_main_cta_target", "type": "enum__events_v_version_main_cta_target", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'_blank'" @@ -2741,7 +2713,7 @@ "version__status": { "name": "version__status", "type": "enum__events_v_version_status", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'draft'" @@ -2990,7 +2962,6 @@ "name": "_events_v_parent_id_events_id_fk", "tableFrom": "_events_v", "tableTo": "events", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -3004,7 +2975,6 @@ "name": "_events_v_version_thumb_id_media_id_fk", "tableFrom": "_events_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_thumb_id" ], @@ -3018,7 +2988,6 @@ "name": "_events_v_version_image_id_media_id_fk", "tableFrom": "_events_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_image_id" ], @@ -3032,7 +3001,6 @@ "name": "_events_v_version_company_logo_id_media_id_fk", "tableFrom": "_events_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_company_logo_id" ], @@ -3046,7 +3014,6 @@ "name": "_events_v_version_company_logo_light_id_media_id_fk", "tableFrom": "_events_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_company_logo_light_id" ], @@ -3060,7 +3027,6 @@ "name": "_events_v_version_meta_image_id_media_id_fk", "tableFrom": "_events_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_meta_image_id" ], @@ -3077,9 +3043,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._events_v_rels": { + "public._events_v_rels": { "name": "_events_v_rels", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -3179,7 +3145,6 @@ "name": "_events_v_rels_parent_fk", "tableFrom": "_events_v_rels", "tableTo": "_events_v", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -3193,7 +3158,6 @@ "name": "_events_v_rels_authors_fk", "tableFrom": "_events_v_rels", "tableTo": "authors", - "schemaTo": "cms-payload", "columnsFrom": [ "authors_id" ], @@ -3210,9 +3174,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.media": { + "public.media": { "name": "media", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -3719,9 +3683,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.posts": { + "public.posts": { "name": "posts", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -3769,7 +3733,7 @@ "launchweek": { "name": "launchweek", "type": "enum_posts_launchweek", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -3839,7 +3803,7 @@ "_status": { "name": "_status", "type": "enum_posts_status", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'draft'" @@ -3957,7 +3921,6 @@ "name": "posts_thumb_id_media_id_fk", "tableFrom": "posts", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "thumb_id" ], @@ -3971,7 +3934,6 @@ "name": "posts_image_id_media_id_fk", "tableFrom": "posts", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "image_id" ], @@ -3985,7 +3947,6 @@ "name": "posts_meta_image_id_media_id_fk", "tableFrom": "posts", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "meta_image_id" ], @@ -4002,9 +3963,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.posts_rels": { + "public.posts_rels": { "name": "posts_rels", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -4146,7 +4107,6 @@ "name": "posts_rels_parent_fk", "tableFrom": "posts_rels", "tableTo": "posts", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -4160,7 +4120,6 @@ "name": "posts_rels_categories_fk", "tableFrom": "posts_rels", "tableTo": "categories", - "schemaTo": "cms-payload", "columnsFrom": [ "categories_id" ], @@ -4174,7 +4133,6 @@ "name": "posts_rels_authors_fk", "tableFrom": "posts_rels", "tableTo": "authors", - "schemaTo": "cms-payload", "columnsFrom": [ "authors_id" ], @@ -4188,7 +4146,6 @@ "name": "posts_rels_tags_fk", "tableFrom": "posts_rels", "tableTo": "tags", - "schemaTo": "cms-payload", "columnsFrom": [ "tags_id" ], @@ -4205,9 +4162,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._posts_v": { + "public._posts_v": { "name": "_posts_v", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -4261,7 +4218,7 @@ "version_launchweek": { "name": "version_launchweek", "type": "enum__posts_v_version_launchweek", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -4329,7 +4286,7 @@ "version__status": { "name": "version__status", "type": "enum__posts_v_version_status", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false, "default": "'draft'" @@ -4548,7 +4505,6 @@ "name": "_posts_v_parent_id_posts_id_fk", "tableFrom": "_posts_v", "tableTo": "posts", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -4562,7 +4518,6 @@ "name": "_posts_v_version_thumb_id_media_id_fk", "tableFrom": "_posts_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_thumb_id" ], @@ -4576,7 +4531,6 @@ "name": "_posts_v_version_image_id_media_id_fk", "tableFrom": "_posts_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_image_id" ], @@ -4590,7 +4544,6 @@ "name": "_posts_v_version_meta_image_id_media_id_fk", "tableFrom": "_posts_v", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "version_meta_image_id" ], @@ -4607,9 +4560,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload._posts_v_rels": { + "public._posts_v_rels": { "name": "_posts_v_rels", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -4751,7 +4704,6 @@ "name": "_posts_v_rels_parent_fk", "tableFrom": "_posts_v_rels", "tableTo": "_posts_v", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -4765,7 +4717,6 @@ "name": "_posts_v_rels_categories_fk", "tableFrom": "_posts_v_rels", "tableTo": "categories", - "schemaTo": "cms-payload", "columnsFrom": [ "categories_id" ], @@ -4779,7 +4730,6 @@ "name": "_posts_v_rels_authors_fk", "tableFrom": "_posts_v_rels", "tableTo": "authors", - "schemaTo": "cms-payload", "columnsFrom": [ "authors_id" ], @@ -4793,7 +4743,6 @@ "name": "_posts_v_rels_tags_fk", "tableFrom": "_posts_v_rels", "tableTo": "tags", - "schemaTo": "cms-payload", "columnsFrom": [ "tags_id" ], @@ -4810,9 +4759,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.tags": { + "public.tags": { "name": "tags", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -4880,9 +4829,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.users_roles": { + "public.users_roles": { "name": "users_roles", - "schema": "cms-payload", + "schema": "", "columns": { "order": { "name": "order", @@ -4899,7 +4848,7 @@ "value": { "name": "value", "type": "enum_users_roles", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -4947,7 +4896,6 @@ "name": "users_roles_parent_fk", "tableFrom": "users_roles", "tableTo": "users", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -4964,9 +4912,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.users": { + "public.users": { "name": "users", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -5086,9 +5034,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.payload_jobs_log": { + "public.payload_jobs_log": { "name": "payload_jobs_log", - "schema": "cms-payload", + "schema": "", "columns": { "_order": { "name": "_order", @@ -5123,7 +5071,7 @@ "task_slug": { "name": "task_slug", "type": "enum_payload_jobs_log_task_slug", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": true }, @@ -5148,7 +5096,7 @@ "state": { "name": "state", "type": "enum_payload_jobs_log_state", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": true }, @@ -5196,7 +5144,6 @@ "name": "payload_jobs_log_parent_id_fk", "tableFrom": "payload_jobs_log", "tableTo": "payload_jobs", - "schemaTo": "cms-payload", "columnsFrom": [ "_parent_id" ], @@ -5213,9 +5160,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.payload_jobs": { + "public.payload_jobs": { "name": "payload_jobs", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -5258,7 +5205,7 @@ "task_slug": { "name": "task_slug", "type": "enum_payload_jobs_task_slug", - "typeSchema": "cms-payload", + "typeSchema": "public", "primaryKey": false, "notNull": false }, @@ -5441,9 +5388,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.payload_locked_documents": { + "public.payload_locked_documents": { "name": "payload_locked_documents", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -5526,9 +5473,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.payload_locked_documents_rels": { + "public.payload_locked_documents_rels": { "name": "payload_locked_documents_rels", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -5796,7 +5743,6 @@ "name": "payload_locked_documents_rels_parent_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "payload_locked_documents", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -5810,7 +5756,6 @@ "name": "payload_locked_documents_rels_authors_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "authors", - "schemaTo": "cms-payload", "columnsFrom": [ "authors_id" ], @@ -5824,7 +5769,6 @@ "name": "payload_locked_documents_rels_categories_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "categories", - "schemaTo": "cms-payload", "columnsFrom": [ "categories_id" ], @@ -5838,7 +5782,6 @@ "name": "payload_locked_documents_rels_customers_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "customers", - "schemaTo": "cms-payload", "columnsFrom": [ "customers_id" ], @@ -5852,7 +5795,6 @@ "name": "payload_locked_documents_rels_events_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "events", - "schemaTo": "cms-payload", "columnsFrom": [ "events_id" ], @@ -5866,7 +5808,6 @@ "name": "payload_locked_documents_rels_media_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "media", - "schemaTo": "cms-payload", "columnsFrom": [ "media_id" ], @@ -5880,7 +5821,6 @@ "name": "payload_locked_documents_rels_posts_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "posts", - "schemaTo": "cms-payload", "columnsFrom": [ "posts_id" ], @@ -5894,7 +5834,6 @@ "name": "payload_locked_documents_rels_tags_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "tags", - "schemaTo": "cms-payload", "columnsFrom": [ "tags_id" ], @@ -5908,7 +5847,6 @@ "name": "payload_locked_documents_rels_users_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "users", - "schemaTo": "cms-payload", "columnsFrom": [ "users_id" ], @@ -5922,7 +5860,6 @@ "name": "payload_locked_documents_rels_payload_jobs_fk", "tableFrom": "payload_locked_documents_rels", "tableTo": "payload_jobs", - "schemaTo": "cms-payload", "columnsFrom": [ "payload_jobs_id" ], @@ -5939,9 +5876,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.payload_preferences": { + "public.payload_preferences": { "name": "payload_preferences", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -6030,9 +5967,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.payload_preferences_rels": { + "public.payload_preferences_rels": { "name": "payload_preferences_rels", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -6132,7 +6069,6 @@ "name": "payload_preferences_rels_parent_fk", "tableFrom": "payload_preferences_rels", "tableTo": "payload_preferences", - "schemaTo": "cms-payload", "columnsFrom": [ "parent_id" ], @@ -6146,7 +6082,6 @@ "name": "payload_preferences_rels_users_fk", "tableFrom": "payload_preferences_rels", "tableTo": "users", - "schemaTo": "cms-payload", "columnsFrom": [ "users_id" ], @@ -6163,9 +6098,9 @@ "checkConstraints": {}, "isRLSEnabled": false }, - "cms-payload.payload_migrations": { + "public.payload_migrations": { "name": "payload_migrations", - "schema": "cms-payload", + "schema": "", "columns": { "id": { "name": "id", @@ -6241,9 +6176,9 @@ } }, "enums": { - "cms-payload.enum_customers_industry": { + "public.enum_customers_industry": { "name": "enum_customers_industry", - "schema": "cms-payload", + "schema": "public", "values": [ "healthcare", "fintech", @@ -6259,9 +6194,9 @@ "developer-tools" ] }, - "cms-payload.enum_customers_supabase_products": { + "public.enum_customers_supabase_products": { "name": "enum_customers_supabase_products", - "schema": "cms-payload", + "schema": "public", "values": [ "database", "auth", @@ -6271,18 +6206,18 @@ "vector" ] }, - "cms-payload.enum_customers_company_size": { + "public.enum_customers_company_size": { "name": "enum_customers_company_size", - "schema": "cms-payload", + "schema": "public", "values": [ "startup", "enterprise", "indie_dev" ] }, - "cms-payload.enum_customers_region": { + "public.enum_customers_region": { "name": "enum_customers_region", - "schema": "cms-payload", + "schema": "public", "values": [ "Asia", "Europe", @@ -6292,17 +6227,17 @@ "Oceania" ] }, - "cms-payload.enum_customers_status": { + "public.enum_customers_status": { "name": "enum_customers_status", - "schema": "cms-payload", + "schema": "public", "values": [ "draft", "published" ] }, - "cms-payload.enum__customers_v_version_industry": { + "public.enum__customers_v_version_industry": { "name": "enum__customers_v_version_industry", - "schema": "cms-payload", + "schema": "public", "values": [ "healthcare", "fintech", @@ -6318,9 +6253,9 @@ "developer-tools" ] }, - "cms-payload.enum__customers_v_version_supabase_products": { + "public.enum__customers_v_version_supabase_products": { "name": "enum__customers_v_version_supabase_products", - "schema": "cms-payload", + "schema": "public", "values": [ "database", "auth", @@ -6330,18 +6265,18 @@ "vector" ] }, - "cms-payload.enum__customers_v_version_company_size": { + "public.enum__customers_v_version_company_size": { "name": "enum__customers_v_version_company_size", - "schema": "cms-payload", + "schema": "public", "values": [ "startup", "enterprise", "indie_dev" ] }, - "cms-payload.enum__customers_v_version_region": { + "public.enum__customers_v_version_region": { "name": "enum__customers_v_version_region", - "schema": "cms-payload", + "schema": "public", "values": [ "Asia", "Europe", @@ -6351,17 +6286,17 @@ "Oceania" ] }, - "cms-payload.enum__customers_v_version_status": { + "public.enum__customers_v_version_status": { "name": "enum__customers_v_version_status", - "schema": "cms-payload", + "schema": "public", "values": [ "draft", "published" ] }, - "cms-payload.enum_events_type": { + "public.enum_events_type": { "name": "enum_events_type", - "schema": "cms-payload", + "schema": "public", "values": [ "conference", "hackathon", @@ -6374,9 +6309,9 @@ "other" ] }, - "cms-payload.enum_events_timezone": { + "public.enum_events_timezone": { "name": "enum_events_timezone", - "schema": "cms-payload", + "schema": "public", "values": [ "Africa/Abidjan", "Africa/Accra", @@ -6807,33 +6742,33 @@ "UTC" ] }, - "cms-payload.enum_events_link_target": { + "public.enum_events_link_target": { "name": "enum_events_link_target", - "schema": "cms-payload", + "schema": "public", "values": [ "_self", "_blank" ] }, - "cms-payload.enum_events_main_cta_target": { + "public.enum_events_main_cta_target": { "name": "enum_events_main_cta_target", - "schema": "cms-payload", + "schema": "public", "values": [ "_self", "_blank" ] }, - "cms-payload.enum_events_status": { + "public.enum_events_status": { "name": "enum_events_status", - "schema": "cms-payload", + "schema": "public", "values": [ "draft", "published" ] }, - "cms-payload.enum__events_v_version_type": { + "public.enum__events_v_version_type": { "name": "enum__events_v_version_type", - "schema": "cms-payload", + "schema": "public", "values": [ "conference", "hackathon", @@ -6846,9 +6781,9 @@ "other" ] }, - "cms-payload.enum__events_v_version_timezone": { + "public.enum__events_v_version_timezone": { "name": "enum__events_v_version_timezone", - "schema": "cms-payload", + "schema": "public", "values": [ "Africa/Abidjan", "Africa/Accra", @@ -7279,33 +7214,33 @@ "UTC" ] }, - "cms-payload.enum__events_v_version_link_target": { + "public.enum__events_v_version_link_target": { "name": "enum__events_v_version_link_target", - "schema": "cms-payload", + "schema": "public", "values": [ "_self", "_blank" ] }, - "cms-payload.enum__events_v_version_main_cta_target": { + "public.enum__events_v_version_main_cta_target": { "name": "enum__events_v_version_main_cta_target", - "schema": "cms-payload", + "schema": "public", "values": [ "_self", "_blank" ] }, - "cms-payload.enum__events_v_version_status": { + "public.enum__events_v_version_status": { "name": "enum__events_v_version_status", - "schema": "cms-payload", + "schema": "public", "values": [ "draft", "published" ] }, - "cms-payload.enum_posts_launchweek": { + "public.enum_posts_launchweek": { "name": "enum_posts_launchweek", - "schema": "cms-payload", + "schema": "public", "values": [ "6", "7", @@ -7318,17 +7253,17 @@ "15" ] }, - "cms-payload.enum_posts_status": { + "public.enum_posts_status": { "name": "enum_posts_status", - "schema": "cms-payload", + "schema": "public", "values": [ "draft", "published" ] }, - "cms-payload.enum__posts_v_version_launchweek": { + "public.enum__posts_v_version_launchweek": { "name": "enum__posts_v_version_launchweek", - "schema": "cms-payload", + "schema": "public", "values": [ "6", "7", @@ -7341,50 +7276,48 @@ "15" ] }, - "cms-payload.enum__posts_v_version_status": { + "public.enum__posts_v_version_status": { "name": "enum__posts_v_version_status", - "schema": "cms-payload", + "schema": "public", "values": [ "draft", "published" ] }, - "cms-payload.enum_users_roles": { + "public.enum_users_roles": { "name": "enum_users_roles", - "schema": "cms-payload", + "schema": "public", "values": [ "admin", "editor" ] }, - "cms-payload.enum_payload_jobs_log_task_slug": { + "public.enum_payload_jobs_log_task_slug": { "name": "enum_payload_jobs_log_task_slug", - "schema": "cms-payload", + "schema": "public", "values": [ "inline", "schedulePublish" ] }, - "cms-payload.enum_payload_jobs_log_state": { + "public.enum_payload_jobs_log_state": { "name": "enum_payload_jobs_log_state", - "schema": "cms-payload", + "schema": "public", "values": [ "failed", "succeeded" ] }, - "cms-payload.enum_payload_jobs_task_slug": { + "public.enum_payload_jobs_task_slug": { "name": "enum_payload_jobs_task_slug", - "schema": "cms-payload", + "schema": "public", "values": [ "inline", "schedulePublish" ] } }, - "schemas": { - "cms-payload": "cms-payload" - }, + "schemas": {}, "sequences": {}, "roles": {}, "policies": {}, diff --git a/apps/cms/src/migrations/20250619_155345.ts b/apps/cms/src/migrations/20250619_155345.ts new file mode 100644 index 00000000000..65af423d602 --- /dev/null +++ b/apps/cms/src/migrations/20250619_155345.ts @@ -0,0 +1,1136 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres' + +export async function up({ db, payload, req }: MigrateUpArgs): Promise { + await db.execute(sql` + CREATE TYPE "public"."enum_customers_industry" AS ENUM('healthcare', 'fintech', 'ecommerce', 'education', 'gaming', 'media', 'real-estate', 'saas', 'social', 'analytics', 'ai', 'developer-tools'); + CREATE TYPE "public"."enum_customers_supabase_products" AS ENUM('database', 'auth', 'storage', 'realtime', 'functions', 'vector'); + CREATE TYPE "public"."enum_customers_company_size" AS ENUM('startup', 'enterprise', 'indie_dev'); + CREATE TYPE "public"."enum_customers_region" AS ENUM('Asia', 'Europe', 'North America', 'South America', 'Africa', 'Oceania'); + CREATE TYPE "public"."enum_customers_status" AS ENUM('draft', 'published'); + CREATE TYPE "public"."enum__customers_v_version_industry" AS ENUM('healthcare', 'fintech', 'ecommerce', 'education', 'gaming', 'media', 'real-estate', 'saas', 'social', 'analytics', 'ai', 'developer-tools'); + CREATE TYPE "public"."enum__customers_v_version_supabase_products" AS ENUM('database', 'auth', 'storage', 'realtime', 'functions', 'vector'); + CREATE TYPE "public"."enum__customers_v_version_company_size" AS ENUM('startup', 'enterprise', 'indie_dev'); + CREATE TYPE "public"."enum__customers_v_version_region" AS ENUM('Asia', 'Europe', 'North America', 'South America', 'Africa', 'Oceania'); + CREATE TYPE "public"."enum__customers_v_version_status" AS ENUM('draft', 'published'); + CREATE TYPE "public"."enum_events_type" AS ENUM('conference', 'hackathon', 'launch-week', 'meetup', 'office-hours', 'talk', 'webinar', 'workshop', 'other'); + CREATE TYPE "public"."enum_events_timezone" AS ENUM('Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum', 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville', 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou', 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan', 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Fort_Nelson', 'America/Fortaleza', 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Kralendijk', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Lower_Princes', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Beulah', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix', 'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Punta_Arenas', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Sitka', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola', 'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/Syowa', 'Antarctica/Troll', 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Hebron', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Istanbul', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qostanay', 'Asia/Qyzylorda', 'Asia/Riyadh', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faroe', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/Perth', 'Australia/Sydney', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Astrakhan', 'Europe/Athens', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Kirov', 'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Saratov', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Ulyanovsk', 'Europe/Uzhgorod', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zaporozhye', 'Europe/Zurich', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Bougainville', 'Pacific/Chatham', 'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Pohnpei', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Wake', 'Pacific/Wallis', 'UTC'); + CREATE TYPE "public"."enum_events_link_target" AS ENUM('_self', '_blank'); + CREATE TYPE "public"."enum_events_main_cta_target" AS ENUM('_self', '_blank'); + CREATE TYPE "public"."enum_events_status" AS ENUM('draft', 'published'); + CREATE TYPE "public"."enum__events_v_version_type" AS ENUM('conference', 'hackathon', 'launch-week', 'meetup', 'office-hours', 'talk', 'webinar', 'workshop', 'other'); + CREATE TYPE "public"."enum__events_v_version_timezone" AS ENUM('Africa/Abidjan', 'Africa/Accra', 'Africa/Addis_Ababa', 'Africa/Algiers', 'Africa/Asmara', 'Africa/Bamako', 'Africa/Bangui', 'Africa/Banjul', 'Africa/Bissau', 'Africa/Blantyre', 'Africa/Brazzaville', 'Africa/Bujumbura', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/Conakry', 'Africa/Dakar', 'Africa/Dar_es_Salaam', 'Africa/Djibouti', 'Africa/Douala', 'Africa/El_Aaiun', 'Africa/Freetown', 'Africa/Gaborone', 'Africa/Harare', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Kampala', 'Africa/Khartoum', 'Africa/Kigali', 'Africa/Kinshasa', 'Africa/Lagos', 'Africa/Libreville', 'Africa/Lome', 'Africa/Luanda', 'Africa/Lubumbashi', 'Africa/Lusaka', 'Africa/Malabo', 'Africa/Maputo', 'Africa/Maseru', 'Africa/Mbabane', 'Africa/Mogadishu', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Niamey', 'Africa/Nouakchott', 'Africa/Ouagadougou', 'Africa/Porto-Novo', 'Africa/Sao_Tome', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Anguilla', 'America/Antigua', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Aruba', 'America/Asuncion', 'America/Atikokan', 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Cayenne', 'America/Cayman', 'America/Chicago', 'America/Chihuahua', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Dominica', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Fort_Nelson', 'America/Fortaleza', 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Grenada', 'America/Guadeloupe', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Kralendijk', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Lower_Princes', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Marigot', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Montserrat', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Beulah', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix', 'America/Port-au-Prince', 'America/Port_of_Spain', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Punta_Arenas', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Sitka', 'America/St_Barthelemy', 'America/St_Johns', 'America/St_Kitts', 'America/St_Lucia', 'America/St_Thomas', 'America/St_Vincent', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Tortola', 'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/McMurdo', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/Syowa', 'Antarctica/Troll', 'Antarctica/Vostok', 'Arctic/Longyearbyen', 'Asia/Aden', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Bahrain', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Hebron', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Istanbul', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Kuwait', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Muscat', 'Asia/Nicosia', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Phnom_Penh', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qostanay', 'Asia/Qyzylorda', 'Asia/Riyadh', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Ust-Nera', 'Asia/Vientiane', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faroe', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/St_Helena', 'Atlantic/Stanley', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/Perth', 'Australia/Sydney', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Astrakhan', 'Europe/Athens', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Busingen', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Guernsey', 'Europe/Helsinki', 'Europe/Isle_of_Man', 'Europe/Istanbul', 'Europe/Jersey', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Kirov', 'Europe/Lisbon', 'Europe/Ljubljana', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Mariehamn', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Europe/Oslo', 'Europe/Paris', 'Europe/Podgorica', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/San_Marino', 'Europe/Sarajevo', 'Europe/Saratov', 'Europe/Simferopol', 'Europe/Skopje', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Ulyanovsk', 'Europe/Uzhgorod', 'Europe/Vaduz', 'Europe/Vatican', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Zaporozhye', 'Europe/Zurich', 'Indian/Antananarivo', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Comoro', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Mayotte', 'Indian/Reunion', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Bougainville', 'Pacific/Chatham', 'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Midway', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Pohnpei', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Saipan', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Wake', 'Pacific/Wallis', 'UTC'); + CREATE TYPE "public"."enum__events_v_version_link_target" AS ENUM('_self', '_blank'); + CREATE TYPE "public"."enum__events_v_version_main_cta_target" AS ENUM('_self', '_blank'); + CREATE TYPE "public"."enum__events_v_version_status" AS ENUM('draft', 'published'); + CREATE TYPE "public"."enum_posts_launchweek" AS ENUM('6', '7', '8', 'x', 'ga', '12', '13', '14', '15'); + CREATE TYPE "public"."enum_posts_status" AS ENUM('draft', 'published'); + CREATE TYPE "public"."enum__posts_v_version_launchweek" AS ENUM('6', '7', '8', 'x', 'ga', '12', '13', '14', '15'); + CREATE TYPE "public"."enum__posts_v_version_status" AS ENUM('draft', 'published'); + CREATE TYPE "public"."enum_users_roles" AS ENUM('admin', 'editor'); + CREATE TYPE "public"."enum_payload_jobs_log_task_slug" AS ENUM('inline', 'schedulePublish'); + CREATE TYPE "public"."enum_payload_jobs_log_state" AS ENUM('failed', 'succeeded'); + CREATE TYPE "public"."enum_payload_jobs_task_slug" AS ENUM('inline', 'schedulePublish'); + CREATE TABLE IF NOT EXISTS "authors" ( + "id" serial PRIMARY KEY NOT NULL, + "author" varchar NOT NULL, + "author_id" varchar, + "position" varchar, + "author_url" varchar, + "author_image_url_id" integer, + "username" varchar, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "categories_breadcrumbs" ( + "_order" integer NOT NULL, + "_parent_id" integer NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "doc_id" integer, + "url" varchar, + "label" varchar + ); + + CREATE TABLE IF NOT EXISTS "categories" ( + "id" serial PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "parent_id" integer, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "customers_stats" ( + "_order" integer NOT NULL, + "_parent_id" integer NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "stat" varchar, + "label" varchar + ); + + CREATE TABLE IF NOT EXISTS "customers_misc" ( + "_order" integer NOT NULL, + "_parent_id" integer NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "label" varchar, + "text" varchar + ); + + CREATE TABLE IF NOT EXISTS "customers_industry" ( + "order" integer NOT NULL, + "parent_id" integer NOT NULL, + "value" "enum_customers_industry", + "id" serial PRIMARY KEY NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "customers_supabase_products" ( + "order" integer NOT NULL, + "parent_id" integer NOT NULL, + "value" "enum_customers_supabase_products", + "id" serial PRIMARY KEY NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "customers" ( + "id" serial PRIMARY KEY NOT NULL, + "name" varchar, + "title" varchar, + "slug" varchar, + "slug_lock" boolean DEFAULT true, + "content" jsonb, + "description" varchar, + "about" varchar, + "company_url" varchar, + "company_size" "enum_customers_company_size", + "region" "enum_customers_region", + "meta_title" varchar, + "meta_image_id" integer, + "meta_description" varchar, + "published_at" timestamp(3) with time zone, + "logo_id" integer, + "logo_inverse_id" integer, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "_status" "enum_customers_status" DEFAULT 'draft' + ); + + CREATE TABLE IF NOT EXISTS "_customers_v_version_stats" ( + "_order" integer NOT NULL, + "_parent_id" integer NOT NULL, + "id" serial PRIMARY KEY NOT NULL, + "stat" varchar, + "label" varchar, + "_uuid" varchar + ); + + CREATE TABLE IF NOT EXISTS "_customers_v_version_misc" ( + "_order" integer NOT NULL, + "_parent_id" integer NOT NULL, + "id" serial PRIMARY KEY NOT NULL, + "label" varchar, + "text" varchar, + "_uuid" varchar + ); + + CREATE TABLE IF NOT EXISTS "_customers_v_version_industry" ( + "order" integer NOT NULL, + "parent_id" integer NOT NULL, + "value" "enum__customers_v_version_industry", + "id" serial PRIMARY KEY NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "_customers_v_version_supabase_products" ( + "order" integer NOT NULL, + "parent_id" integer NOT NULL, + "value" "enum__customers_v_version_supabase_products", + "id" serial PRIMARY KEY NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "_customers_v" ( + "id" serial PRIMARY KEY NOT NULL, + "parent_id" integer, + "version_name" varchar, + "version_title" varchar, + "version_slug" varchar, + "version_slug_lock" boolean DEFAULT true, + "version_content" jsonb, + "version_description" varchar, + "version_about" varchar, + "version_company_url" varchar, + "version_company_size" "enum__customers_v_version_company_size", + "version_region" "enum__customers_v_version_region", + "version_meta_title" varchar, + "version_meta_image_id" integer, + "version_meta_description" varchar, + "version_published_at" timestamp(3) with time zone, + "version_logo_id" integer, + "version_logo_inverse_id" integer, + "version_updated_at" timestamp(3) with time zone, + "version_created_at" timestamp(3) with time zone, + "version__status" "enum__customers_v_version_status" DEFAULT 'draft', + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "latest" boolean, + "autosave" boolean + ); + + CREATE TABLE IF NOT EXISTS "events_type" ( + "order" integer NOT NULL, + "parent_id" integer NOT NULL, + "value" "enum_events_type", + "id" serial PRIMARY KEY NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "events" ( + "id" serial PRIMARY KEY NOT NULL, + "title" varchar, + "slug" varchar, + "slug_lock" boolean DEFAULT true, + "subtitle" varchar, + "content" jsonb, + "thumb_id" integer, + "image_id" integer, + "date" timestamp(3) with time zone, + "timezone" "enum_events_timezone", + "show_end_date" boolean DEFAULT false, + "end_date" timestamp(3) with time zone, + "duration" varchar, + "on_demand" boolean DEFAULT false, + "disable_page_build" boolean DEFAULT false, + "link_href" varchar, + "link_target" "enum_events_link_target" DEFAULT '_blank', + "main_cta_href" varchar, + "main_cta_target" "enum_events_main_cta_target" DEFAULT '_blank', + "main_cta_label" varchar, + "main_cta_disabled" boolean DEFAULT false, + "main_cta_disabled_label" varchar, + "company_show_company" boolean DEFAULT false, + "company_name" varchar, + "company_website_url" varchar, + "company_logo_id" integer, + "company_logo_light_id" integer, + "participants_show_participants" boolean DEFAULT false, + "meta_title" varchar, + "meta_image_id" integer, + "meta_description" varchar, + "published_at" timestamp(3) with time zone, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "_status" "enum_events_status" DEFAULT 'draft' + ); + + CREATE TABLE IF NOT EXISTS "events_rels" ( + "id" serial PRIMARY KEY NOT NULL, + "order" integer, + "parent_id" integer NOT NULL, + "path" varchar NOT NULL, + "authors_id" integer + ); + + CREATE TABLE IF NOT EXISTS "_events_v_version_type" ( + "order" integer NOT NULL, + "parent_id" integer NOT NULL, + "value" "enum__events_v_version_type", + "id" serial PRIMARY KEY NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "_events_v" ( + "id" serial PRIMARY KEY NOT NULL, + "parent_id" integer, + "version_title" varchar, + "version_slug" varchar, + "version_slug_lock" boolean DEFAULT true, + "version_subtitle" varchar, + "version_content" jsonb, + "version_thumb_id" integer, + "version_image_id" integer, + "version_date" timestamp(3) with time zone, + "version_timezone" "enum__events_v_version_timezone", + "version_show_end_date" boolean DEFAULT false, + "version_end_date" timestamp(3) with time zone, + "version_duration" varchar, + "version_on_demand" boolean DEFAULT false, + "version_disable_page_build" boolean DEFAULT false, + "version_link_href" varchar, + "version_link_target" "enum__events_v_version_link_target" DEFAULT '_blank', + "version_main_cta_href" varchar, + "version_main_cta_target" "enum__events_v_version_main_cta_target" DEFAULT '_blank', + "version_main_cta_label" varchar, + "version_main_cta_disabled" boolean DEFAULT false, + "version_main_cta_disabled_label" varchar, + "version_company_show_company" boolean DEFAULT false, + "version_company_name" varchar, + "version_company_website_url" varchar, + "version_company_logo_id" integer, + "version_company_logo_light_id" integer, + "version_participants_show_participants" boolean DEFAULT false, + "version_meta_title" varchar, + "version_meta_image_id" integer, + "version_meta_description" varchar, + "version_published_at" timestamp(3) with time zone, + "version_updated_at" timestamp(3) with time zone, + "version_created_at" timestamp(3) with time zone, + "version__status" "enum__events_v_version_status" DEFAULT 'draft', + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "latest" boolean, + "autosave" boolean + ); + + CREATE TABLE IF NOT EXISTS "_events_v_rels" ( + "id" serial PRIMARY KEY NOT NULL, + "order" integer, + "parent_id" integer NOT NULL, + "path" varchar NOT NULL, + "authors_id" integer + ); + + CREATE TABLE IF NOT EXISTS "media" ( + "id" serial PRIMARY KEY NOT NULL, + "alt" varchar, + "caption" jsonb, + "prefix" varchar DEFAULT 'media', + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "url" varchar, + "thumbnail_u_r_l" varchar, + "filename" varchar, + "mime_type" varchar, + "filesize" numeric, + "width" numeric, + "height" numeric, + "focal_x" numeric, + "focal_y" numeric, + "sizes_thumbnail_url" varchar, + "sizes_thumbnail_width" numeric, + "sizes_thumbnail_height" numeric, + "sizes_thumbnail_mime_type" varchar, + "sizes_thumbnail_filesize" numeric, + "sizes_thumbnail_filename" varchar, + "sizes_square_url" varchar, + "sizes_square_width" numeric, + "sizes_square_height" numeric, + "sizes_square_mime_type" varchar, + "sizes_square_filesize" numeric, + "sizes_square_filename" varchar, + "sizes_small_url" varchar, + "sizes_small_width" numeric, + "sizes_small_height" numeric, + "sizes_small_mime_type" varchar, + "sizes_small_filesize" numeric, + "sizes_small_filename" varchar, + "sizes_medium_url" varchar, + "sizes_medium_width" numeric, + "sizes_medium_height" numeric, + "sizes_medium_mime_type" varchar, + "sizes_medium_filesize" numeric, + "sizes_medium_filename" varchar, + "sizes_large_url" varchar, + "sizes_large_width" numeric, + "sizes_large_height" numeric, + "sizes_large_mime_type" varchar, + "sizes_large_filesize" numeric, + "sizes_large_filename" varchar, + "sizes_xlarge_url" varchar, + "sizes_xlarge_width" numeric, + "sizes_xlarge_height" numeric, + "sizes_xlarge_mime_type" varchar, + "sizes_xlarge_filesize" numeric, + "sizes_xlarge_filename" varchar, + "sizes_og_url" varchar, + "sizes_og_width" numeric, + "sizes_og_height" numeric, + "sizes_og_mime_type" varchar, + "sizes_og_filesize" numeric, + "sizes_og_filename" varchar + ); + + CREATE TABLE IF NOT EXISTS "posts" ( + "id" serial PRIMARY KEY NOT NULL, + "title" varchar, + "slug" varchar, + "slug_lock" boolean DEFAULT true, + "content" jsonb, + "thumb_id" integer, + "image_id" integer, + "launchweek" "enum_posts_launchweek", + "reading_time" numeric, + "date" timestamp(3) with time zone, + "toc_depth" numeric DEFAULT 2, + "description" varchar, + "meta_title" varchar, + "meta_image_id" integer, + "meta_description" varchar, + "published_at" timestamp(3) with time zone, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "_status" "enum_posts_status" DEFAULT 'draft' + ); + + CREATE TABLE IF NOT EXISTS "posts_rels" ( + "id" serial PRIMARY KEY NOT NULL, + "order" integer, + "parent_id" integer NOT NULL, + "path" varchar NOT NULL, + "categories_id" integer, + "authors_id" integer, + "tags_id" integer + ); + + CREATE TABLE IF NOT EXISTS "_posts_v" ( + "id" serial PRIMARY KEY NOT NULL, + "parent_id" integer, + "version_title" varchar, + "version_slug" varchar, + "version_slug_lock" boolean DEFAULT true, + "version_content" jsonb, + "version_thumb_id" integer, + "version_image_id" integer, + "version_launchweek" "enum__posts_v_version_launchweek", + "version_reading_time" numeric, + "version_date" timestamp(3) with time zone, + "version_toc_depth" numeric DEFAULT 2, + "version_description" varchar, + "version_meta_title" varchar, + "version_meta_image_id" integer, + "version_meta_description" varchar, + "version_published_at" timestamp(3) with time zone, + "version_updated_at" timestamp(3) with time zone, + "version_created_at" timestamp(3) with time zone, + "version__status" "enum__posts_v_version_status" DEFAULT 'draft', + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "latest" boolean, + "autosave" boolean + ); + + CREATE TABLE IF NOT EXISTS "_posts_v_rels" ( + "id" serial PRIMARY KEY NOT NULL, + "order" integer, + "parent_id" integer NOT NULL, + "path" varchar NOT NULL, + "categories_id" integer, + "authors_id" integer, + "tags_id" integer + ); + + CREATE TABLE IF NOT EXISTS "tags" ( + "id" serial PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "users_roles" ( + "order" integer NOT NULL, + "parent_id" integer NOT NULL, + "value" "enum_users_roles", + "id" serial PRIMARY KEY NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "users" ( + "id" serial PRIMARY KEY NOT NULL, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "email" varchar NOT NULL, + "reset_password_token" varchar, + "reset_password_expiration" timestamp(3) with time zone, + "salt" varchar, + "hash" varchar, + "login_attempts" numeric DEFAULT 0, + "lock_until" timestamp(3) with time zone + ); + + CREATE TABLE IF NOT EXISTS "payload_jobs_log" ( + "_order" integer NOT NULL, + "_parent_id" integer NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "executed_at" timestamp(3) with time zone NOT NULL, + "completed_at" timestamp(3) with time zone NOT NULL, + "task_slug" "enum_payload_jobs_log_task_slug" NOT NULL, + "task_i_d" varchar NOT NULL, + "input" jsonb, + "output" jsonb, + "state" "enum_payload_jobs_log_state" NOT NULL, + "error" jsonb + ); + + CREATE TABLE IF NOT EXISTS "payload_jobs" ( + "id" serial PRIMARY KEY NOT NULL, + "input" jsonb, + "completed_at" timestamp(3) with time zone, + "total_tried" numeric DEFAULT 0, + "has_error" boolean DEFAULT false, + "error" jsonb, + "task_slug" "enum_payload_jobs_task_slug", + "queue" varchar DEFAULT 'default', + "wait_until" timestamp(3) with time zone, + "processing" boolean DEFAULT false, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "payload_locked_documents" ( + "id" serial PRIMARY KEY NOT NULL, + "global_slug" varchar, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "payload_locked_documents_rels" ( + "id" serial PRIMARY KEY NOT NULL, + "order" integer, + "parent_id" integer NOT NULL, + "path" varchar NOT NULL, + "authors_id" integer, + "categories_id" integer, + "customers_id" integer, + "events_id" integer, + "media_id" integer, + "posts_id" integer, + "tags_id" integer, + "users_id" integer, + "payload_jobs_id" integer + ); + + CREATE TABLE IF NOT EXISTS "payload_preferences" ( + "id" serial PRIMARY KEY NOT NULL, + "key" varchar, + "value" jsonb, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + ); + + CREATE TABLE IF NOT EXISTS "payload_preferences_rels" ( + "id" serial PRIMARY KEY NOT NULL, + "order" integer, + "parent_id" integer NOT NULL, + "path" varchar NOT NULL, + "users_id" integer + ); + + CREATE TABLE IF NOT EXISTS "payload_migrations" ( + "id" serial PRIMARY KEY NOT NULL, + "name" varchar, + "batch" numeric, + "updated_at" timestamp(3) with time zone DEFAULT now() NOT NULL, + "created_at" timestamp(3) with time zone DEFAULT now() NOT NULL + ); + + DO $$ BEGIN + ALTER TABLE "authors" ADD CONSTRAINT "authors_author_image_url_id_media_id_fk" FOREIGN KEY ("author_image_url_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "categories_breadcrumbs" ADD CONSTRAINT "categories_breadcrumbs_doc_id_categories_id_fk" FOREIGN KEY ("doc_id") REFERENCES "public"."categories"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "categories_breadcrumbs" ADD CONSTRAINT "categories_breadcrumbs_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."categories"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "categories" ADD CONSTRAINT "categories_parent_id_categories_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."categories"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "customers_stats" ADD CONSTRAINT "customers_stats_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."customers"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "customers_misc" ADD CONSTRAINT "customers_misc_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."customers"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "customers_industry" ADD CONSTRAINT "customers_industry_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."customers"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "customers_supabase_products" ADD CONSTRAINT "customers_supabase_products_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."customers"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "customers" ADD CONSTRAINT "customers_meta_image_id_media_id_fk" FOREIGN KEY ("meta_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "customers" ADD CONSTRAINT "customers_logo_id_media_id_fk" FOREIGN KEY ("logo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "customers" ADD CONSTRAINT "customers_logo_inverse_id_media_id_fk" FOREIGN KEY ("logo_inverse_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_customers_v_version_stats" ADD CONSTRAINT "_customers_v_version_stats_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."_customers_v"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_customers_v_version_misc" ADD CONSTRAINT "_customers_v_version_misc_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."_customers_v"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_customers_v_version_industry" ADD CONSTRAINT "_customers_v_version_industry_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."_customers_v"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_customers_v_version_supabase_products" ADD CONSTRAINT "_customers_v_version_supabase_products_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."_customers_v"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_customers_v" ADD CONSTRAINT "_customers_v_parent_id_customers_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."customers"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_customers_v" ADD CONSTRAINT "_customers_v_version_meta_image_id_media_id_fk" FOREIGN KEY ("version_meta_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_customers_v" ADD CONSTRAINT "_customers_v_version_logo_id_media_id_fk" FOREIGN KEY ("version_logo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_customers_v" ADD CONSTRAINT "_customers_v_version_logo_inverse_id_media_id_fk" FOREIGN KEY ("version_logo_inverse_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "events_type" ADD CONSTRAINT "events_type_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."events"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "events" ADD CONSTRAINT "events_thumb_id_media_id_fk" FOREIGN KEY ("thumb_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "events" ADD CONSTRAINT "events_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "events" ADD CONSTRAINT "events_company_logo_id_media_id_fk" FOREIGN KEY ("company_logo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "events" ADD CONSTRAINT "events_company_logo_light_id_media_id_fk" FOREIGN KEY ("company_logo_light_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "events" ADD CONSTRAINT "events_meta_image_id_media_id_fk" FOREIGN KEY ("meta_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "events_rels" ADD CONSTRAINT "events_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."events"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "events_rels" ADD CONSTRAINT "events_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "public"."authors"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v_version_type" ADD CONSTRAINT "_events_v_version_type_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."_events_v"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v" ADD CONSTRAINT "_events_v_parent_id_events_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."events"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v" ADD CONSTRAINT "_events_v_version_thumb_id_media_id_fk" FOREIGN KEY ("version_thumb_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v" ADD CONSTRAINT "_events_v_version_image_id_media_id_fk" FOREIGN KEY ("version_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v" ADD CONSTRAINT "_events_v_version_company_logo_id_media_id_fk" FOREIGN KEY ("version_company_logo_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v" ADD CONSTRAINT "_events_v_version_company_logo_light_id_media_id_fk" FOREIGN KEY ("version_company_logo_light_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v" ADD CONSTRAINT "_events_v_version_meta_image_id_media_id_fk" FOREIGN KEY ("version_meta_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v_rels" ADD CONSTRAINT "_events_v_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."_events_v"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_events_v_rels" ADD CONSTRAINT "_events_v_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "public"."authors"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "posts" ADD CONSTRAINT "posts_thumb_id_media_id_fk" FOREIGN KEY ("thumb_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "posts" ADD CONSTRAINT "posts_image_id_media_id_fk" FOREIGN KEY ("image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "posts" ADD CONSTRAINT "posts_meta_image_id_media_id_fk" FOREIGN KEY ("meta_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "posts_rels" ADD CONSTRAINT "posts_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."posts"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "posts_rels" ADD CONSTRAINT "posts_rels_categories_fk" FOREIGN KEY ("categories_id") REFERENCES "public"."categories"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "posts_rels" ADD CONSTRAINT "posts_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "public"."authors"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "posts_rels" ADD CONSTRAINT "posts_rels_tags_fk" FOREIGN KEY ("tags_id") REFERENCES "public"."tags"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_posts_v" ADD CONSTRAINT "_posts_v_parent_id_posts_id_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."posts"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_posts_v" ADD CONSTRAINT "_posts_v_version_thumb_id_media_id_fk" FOREIGN KEY ("version_thumb_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_posts_v" ADD CONSTRAINT "_posts_v_version_image_id_media_id_fk" FOREIGN KEY ("version_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_posts_v" ADD CONSTRAINT "_posts_v_version_meta_image_id_media_id_fk" FOREIGN KEY ("version_meta_image_id") REFERENCES "public"."media"("id") ON DELETE set null ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_posts_v_rels" ADD CONSTRAINT "_posts_v_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."_posts_v"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_posts_v_rels" ADD CONSTRAINT "_posts_v_rels_categories_fk" FOREIGN KEY ("categories_id") REFERENCES "public"."categories"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_posts_v_rels" ADD CONSTRAINT "_posts_v_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "public"."authors"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "_posts_v_rels" ADD CONSTRAINT "_posts_v_rels_tags_fk" FOREIGN KEY ("tags_id") REFERENCES "public"."tags"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "users_roles" ADD CONSTRAINT "users_roles_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_jobs_log" ADD CONSTRAINT "payload_jobs_log_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."payload_jobs"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."payload_locked_documents"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_authors_fk" FOREIGN KEY ("authors_id") REFERENCES "public"."authors"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_categories_fk" FOREIGN KEY ("categories_id") REFERENCES "public"."categories"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_customers_fk" FOREIGN KEY ("customers_id") REFERENCES "public"."customers"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_events_fk" FOREIGN KEY ("events_id") REFERENCES "public"."events"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_media_fk" FOREIGN KEY ("media_id") REFERENCES "public"."media"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_posts_fk" FOREIGN KEY ("posts_id") REFERENCES "public"."posts"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_tags_fk" FOREIGN KEY ("tags_id") REFERENCES "public"."tags"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_users_fk" FOREIGN KEY ("users_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_locked_documents_rels" ADD CONSTRAINT "payload_locked_documents_rels_payload_jobs_fk" FOREIGN KEY ("payload_jobs_id") REFERENCES "public"."payload_jobs"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_preferences_rels" ADD CONSTRAINT "payload_preferences_rels_parent_fk" FOREIGN KEY ("parent_id") REFERENCES "public"."payload_preferences"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + DO $$ BEGIN + ALTER TABLE "payload_preferences_rels" ADD CONSTRAINT "payload_preferences_rels_users_fk" FOREIGN KEY ("users_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + + CREATE INDEX IF NOT EXISTS "authors_author_image_url_idx" ON "authors" USING btree ("author_image_url_id"); + CREATE INDEX IF NOT EXISTS "authors_updated_at_idx" ON "authors" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "authors_created_at_idx" ON "authors" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "categories_breadcrumbs_order_idx" ON "categories_breadcrumbs" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "categories_breadcrumbs_parent_id_idx" ON "categories_breadcrumbs" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "categories_breadcrumbs_doc_idx" ON "categories_breadcrumbs" USING btree ("doc_id"); + CREATE INDEX IF NOT EXISTS "categories_parent_idx" ON "categories" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "categories_updated_at_idx" ON "categories" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "categories_created_at_idx" ON "categories" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "customers_stats_order_idx" ON "customers_stats" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "customers_stats_parent_id_idx" ON "customers_stats" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "customers_misc_order_idx" ON "customers_misc" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "customers_misc_parent_id_idx" ON "customers_misc" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "customers_industry_order_idx" ON "customers_industry" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "customers_industry_parent_idx" ON "customers_industry" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "customers_supabase_products_order_idx" ON "customers_supabase_products" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "customers_supabase_products_parent_idx" ON "customers_supabase_products" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "customers_slug_idx" ON "customers" USING btree ("slug"); + CREATE INDEX IF NOT EXISTS "customers_meta_meta_image_idx" ON "customers" USING btree ("meta_image_id"); + CREATE INDEX IF NOT EXISTS "customers_logo_idx" ON "customers" USING btree ("logo_id"); + CREATE INDEX IF NOT EXISTS "customers_logo_inverse_idx" ON "customers" USING btree ("logo_inverse_id"); + CREATE INDEX IF NOT EXISTS "customers_updated_at_idx" ON "customers" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "customers_created_at_idx" ON "customers" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "customers__status_idx" ON "customers" USING btree ("_status"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_stats_order_idx" ON "_customers_v_version_stats" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_stats_parent_id_idx" ON "_customers_v_version_stats" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_misc_order_idx" ON "_customers_v_version_misc" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_misc_parent_id_idx" ON "_customers_v_version_misc" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_industry_order_idx" ON "_customers_v_version_industry" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_industry_parent_idx" ON "_customers_v_version_industry" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_supabase_products_order_idx" ON "_customers_v_version_supabase_products" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_supabase_products_parent_idx" ON "_customers_v_version_supabase_products" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "_customers_v_parent_idx" ON "_customers_v" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_version_slug_idx" ON "_customers_v" USING btree ("version_slug"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_meta_version_meta_image_idx" ON "_customers_v" USING btree ("version_meta_image_id"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_version_logo_idx" ON "_customers_v" USING btree ("version_logo_id"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_version_logo_inverse_idx" ON "_customers_v" USING btree ("version_logo_inverse_id"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_version_updated_at_idx" ON "_customers_v" USING btree ("version_updated_at"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_version_created_at_idx" ON "_customers_v" USING btree ("version_created_at"); + CREATE INDEX IF NOT EXISTS "_customers_v_version_version__status_idx" ON "_customers_v" USING btree ("version__status"); + CREATE INDEX IF NOT EXISTS "_customers_v_created_at_idx" ON "_customers_v" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "_customers_v_updated_at_idx" ON "_customers_v" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "_customers_v_latest_idx" ON "_customers_v" USING btree ("latest"); + CREATE INDEX IF NOT EXISTS "_customers_v_autosave_idx" ON "_customers_v" USING btree ("autosave"); + CREATE INDEX IF NOT EXISTS "events_type_order_idx" ON "events_type" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "events_type_parent_idx" ON "events_type" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "events_slug_idx" ON "events" USING btree ("slug"); + CREATE INDEX IF NOT EXISTS "events_thumb_idx" ON "events" USING btree ("thumb_id"); + CREATE INDEX IF NOT EXISTS "events_image_idx" ON "events" USING btree ("image_id"); + CREATE INDEX IF NOT EXISTS "events_company_company_logo_idx" ON "events" USING btree ("company_logo_id"); + CREATE INDEX IF NOT EXISTS "events_company_company_logo_light_idx" ON "events" USING btree ("company_logo_light_id"); + CREATE INDEX IF NOT EXISTS "events_meta_meta_image_idx" ON "events" USING btree ("meta_image_id"); + CREATE INDEX IF NOT EXISTS "events_updated_at_idx" ON "events" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "events_created_at_idx" ON "events" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "events__status_idx" ON "events" USING btree ("_status"); + CREATE INDEX IF NOT EXISTS "events_rels_order_idx" ON "events_rels" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "events_rels_parent_idx" ON "events_rels" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "events_rels_path_idx" ON "events_rels" USING btree ("path"); + CREATE INDEX IF NOT EXISTS "events_rels_authors_id_idx" ON "events_rels" USING btree ("authors_id"); + CREATE INDEX IF NOT EXISTS "_events_v_version_type_order_idx" ON "_events_v_version_type" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "_events_v_version_type_parent_idx" ON "_events_v_version_type" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "_events_v_parent_idx" ON "_events_v" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "_events_v_version_version_slug_idx" ON "_events_v" USING btree ("version_slug"); + CREATE INDEX IF NOT EXISTS "_events_v_version_version_thumb_idx" ON "_events_v" USING btree ("version_thumb_id"); + CREATE INDEX IF NOT EXISTS "_events_v_version_version_image_idx" ON "_events_v" USING btree ("version_image_id"); + CREATE INDEX IF NOT EXISTS "_events_v_version_company_version_company_logo_idx" ON "_events_v" USING btree ("version_company_logo_id"); + CREATE INDEX IF NOT EXISTS "_events_v_version_company_version_company_logo_light_idx" ON "_events_v" USING btree ("version_company_logo_light_id"); + CREATE INDEX IF NOT EXISTS "_events_v_version_meta_version_meta_image_idx" ON "_events_v" USING btree ("version_meta_image_id"); + CREATE INDEX IF NOT EXISTS "_events_v_version_version_updated_at_idx" ON "_events_v" USING btree ("version_updated_at"); + CREATE INDEX IF NOT EXISTS "_events_v_version_version_created_at_idx" ON "_events_v" USING btree ("version_created_at"); + CREATE INDEX IF NOT EXISTS "_events_v_version_version__status_idx" ON "_events_v" USING btree ("version__status"); + CREATE INDEX IF NOT EXISTS "_events_v_created_at_idx" ON "_events_v" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "_events_v_updated_at_idx" ON "_events_v" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "_events_v_latest_idx" ON "_events_v" USING btree ("latest"); + CREATE INDEX IF NOT EXISTS "_events_v_autosave_idx" ON "_events_v" USING btree ("autosave"); + CREATE INDEX IF NOT EXISTS "_events_v_rels_order_idx" ON "_events_v_rels" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "_events_v_rels_parent_idx" ON "_events_v_rels" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "_events_v_rels_path_idx" ON "_events_v_rels" USING btree ("path"); + CREATE INDEX IF NOT EXISTS "_events_v_rels_authors_id_idx" ON "_events_v_rels" USING btree ("authors_id"); + CREATE INDEX IF NOT EXISTS "media_updated_at_idx" ON "media" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "media_created_at_idx" ON "media" USING btree ("created_at"); + CREATE UNIQUE INDEX IF NOT EXISTS "media_filename_idx" ON "media" USING btree ("filename"); + CREATE INDEX IF NOT EXISTS "media_sizes_thumbnail_sizes_thumbnail_filename_idx" ON "media" USING btree ("sizes_thumbnail_filename"); + CREATE INDEX IF NOT EXISTS "media_sizes_square_sizes_square_filename_idx" ON "media" USING btree ("sizes_square_filename"); + CREATE INDEX IF NOT EXISTS "media_sizes_small_sizes_small_filename_idx" ON "media" USING btree ("sizes_small_filename"); + CREATE INDEX IF NOT EXISTS "media_sizes_medium_sizes_medium_filename_idx" ON "media" USING btree ("sizes_medium_filename"); + CREATE INDEX IF NOT EXISTS "media_sizes_large_sizes_large_filename_idx" ON "media" USING btree ("sizes_large_filename"); + CREATE INDEX IF NOT EXISTS "media_sizes_xlarge_sizes_xlarge_filename_idx" ON "media" USING btree ("sizes_xlarge_filename"); + CREATE INDEX IF NOT EXISTS "media_sizes_og_sizes_og_filename_idx" ON "media" USING btree ("sizes_og_filename"); + CREATE INDEX IF NOT EXISTS "posts_slug_idx" ON "posts" USING btree ("slug"); + CREATE INDEX IF NOT EXISTS "posts_thumb_idx" ON "posts" USING btree ("thumb_id"); + CREATE INDEX IF NOT EXISTS "posts_image_idx" ON "posts" USING btree ("image_id"); + CREATE INDEX IF NOT EXISTS "posts_meta_meta_image_idx" ON "posts" USING btree ("meta_image_id"); + CREATE INDEX IF NOT EXISTS "posts_updated_at_idx" ON "posts" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "posts_created_at_idx" ON "posts" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "posts__status_idx" ON "posts" USING btree ("_status"); + CREATE INDEX IF NOT EXISTS "posts_rels_order_idx" ON "posts_rels" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "posts_rels_parent_idx" ON "posts_rels" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "posts_rels_path_idx" ON "posts_rels" USING btree ("path"); + CREATE INDEX IF NOT EXISTS "posts_rels_categories_id_idx" ON "posts_rels" USING btree ("categories_id"); + CREATE INDEX IF NOT EXISTS "posts_rels_authors_id_idx" ON "posts_rels" USING btree ("authors_id"); + CREATE INDEX IF NOT EXISTS "posts_rels_tags_id_idx" ON "posts_rels" USING btree ("tags_id"); + CREATE INDEX IF NOT EXISTS "_posts_v_parent_idx" ON "_posts_v" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "_posts_v_version_version_slug_idx" ON "_posts_v" USING btree ("version_slug"); + CREATE INDEX IF NOT EXISTS "_posts_v_version_version_thumb_idx" ON "_posts_v" USING btree ("version_thumb_id"); + CREATE INDEX IF NOT EXISTS "_posts_v_version_version_image_idx" ON "_posts_v" USING btree ("version_image_id"); + CREATE INDEX IF NOT EXISTS "_posts_v_version_meta_version_meta_image_idx" ON "_posts_v" USING btree ("version_meta_image_id"); + CREATE INDEX IF NOT EXISTS "_posts_v_version_version_updated_at_idx" ON "_posts_v" USING btree ("version_updated_at"); + CREATE INDEX IF NOT EXISTS "_posts_v_version_version_created_at_idx" ON "_posts_v" USING btree ("version_created_at"); + CREATE INDEX IF NOT EXISTS "_posts_v_version_version__status_idx" ON "_posts_v" USING btree ("version__status"); + CREATE INDEX IF NOT EXISTS "_posts_v_created_at_idx" ON "_posts_v" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "_posts_v_updated_at_idx" ON "_posts_v" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "_posts_v_latest_idx" ON "_posts_v" USING btree ("latest"); + CREATE INDEX IF NOT EXISTS "_posts_v_autosave_idx" ON "_posts_v" USING btree ("autosave"); + CREATE INDEX IF NOT EXISTS "_posts_v_rels_order_idx" ON "_posts_v_rels" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "_posts_v_rels_parent_idx" ON "_posts_v_rels" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "_posts_v_rels_path_idx" ON "_posts_v_rels" USING btree ("path"); + CREATE INDEX IF NOT EXISTS "_posts_v_rels_categories_id_idx" ON "_posts_v_rels" USING btree ("categories_id"); + CREATE INDEX IF NOT EXISTS "_posts_v_rels_authors_id_idx" ON "_posts_v_rels" USING btree ("authors_id"); + CREATE INDEX IF NOT EXISTS "_posts_v_rels_tags_id_idx" ON "_posts_v_rels" USING btree ("tags_id"); + CREATE INDEX IF NOT EXISTS "tags_updated_at_idx" ON "tags" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "tags_created_at_idx" ON "tags" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "users_roles_order_idx" ON "users_roles" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "users_roles_parent_idx" ON "users_roles" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "users_updated_at_idx" ON "users" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "users_created_at_idx" ON "users" USING btree ("created_at"); + CREATE UNIQUE INDEX IF NOT EXISTS "users_email_idx" ON "users" USING btree ("email"); + CREATE INDEX IF NOT EXISTS "payload_jobs_log_order_idx" ON "payload_jobs_log" USING btree ("_order"); + CREATE INDEX IF NOT EXISTS "payload_jobs_log_parent_id_idx" ON "payload_jobs_log" USING btree ("_parent_id"); + CREATE INDEX IF NOT EXISTS "payload_jobs_completed_at_idx" ON "payload_jobs" USING btree ("completed_at"); + CREATE INDEX IF NOT EXISTS "payload_jobs_total_tried_idx" ON "payload_jobs" USING btree ("total_tried"); + CREATE INDEX IF NOT EXISTS "payload_jobs_has_error_idx" ON "payload_jobs" USING btree ("has_error"); + CREATE INDEX IF NOT EXISTS "payload_jobs_task_slug_idx" ON "payload_jobs" USING btree ("task_slug"); + CREATE INDEX IF NOT EXISTS "payload_jobs_queue_idx" ON "payload_jobs" USING btree ("queue"); + CREATE INDEX IF NOT EXISTS "payload_jobs_wait_until_idx" ON "payload_jobs" USING btree ("wait_until"); + CREATE INDEX IF NOT EXISTS "payload_jobs_processing_idx" ON "payload_jobs" USING btree ("processing"); + CREATE INDEX IF NOT EXISTS "payload_jobs_updated_at_idx" ON "payload_jobs" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "payload_jobs_created_at_idx" ON "payload_jobs" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_global_slug_idx" ON "payload_locked_documents" USING btree ("global_slug"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_updated_at_idx" ON "payload_locked_documents" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_created_at_idx" ON "payload_locked_documents" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_order_idx" ON "payload_locked_documents_rels" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_parent_idx" ON "payload_locked_documents_rels" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_path_idx" ON "payload_locked_documents_rels" USING btree ("path"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_authors_id_idx" ON "payload_locked_documents_rels" USING btree ("authors_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_categories_id_idx" ON "payload_locked_documents_rels" USING btree ("categories_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_customers_id_idx" ON "payload_locked_documents_rels" USING btree ("customers_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_events_id_idx" ON "payload_locked_documents_rels" USING btree ("events_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_media_id_idx" ON "payload_locked_documents_rels" USING btree ("media_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_posts_id_idx" ON "payload_locked_documents_rels" USING btree ("posts_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_tags_id_idx" ON "payload_locked_documents_rels" USING btree ("tags_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_users_id_idx" ON "payload_locked_documents_rels" USING btree ("users_id"); + CREATE INDEX IF NOT EXISTS "payload_locked_documents_rels_payload_jobs_id_idx" ON "payload_locked_documents_rels" USING btree ("payload_jobs_id"); + CREATE INDEX IF NOT EXISTS "payload_preferences_key_idx" ON "payload_preferences" USING btree ("key"); + CREATE INDEX IF NOT EXISTS "payload_preferences_updated_at_idx" ON "payload_preferences" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "payload_preferences_created_at_idx" ON "payload_preferences" USING btree ("created_at"); + CREATE INDEX IF NOT EXISTS "payload_preferences_rels_order_idx" ON "payload_preferences_rels" USING btree ("order"); + CREATE INDEX IF NOT EXISTS "payload_preferences_rels_parent_idx" ON "payload_preferences_rels" USING btree ("parent_id"); + CREATE INDEX IF NOT EXISTS "payload_preferences_rels_path_idx" ON "payload_preferences_rels" USING btree ("path"); + CREATE INDEX IF NOT EXISTS "payload_preferences_rels_users_id_idx" ON "payload_preferences_rels" USING btree ("users_id"); + CREATE INDEX IF NOT EXISTS "payload_migrations_updated_at_idx" ON "payload_migrations" USING btree ("updated_at"); + CREATE INDEX IF NOT EXISTS "payload_migrations_created_at_idx" ON "payload_migrations" USING btree ("created_at");`) +} + +export async function down({ db, payload, req }: MigrateDownArgs): Promise { + await db.execute(sql` + DROP TABLE "authors" CASCADE; + DROP TABLE "categories_breadcrumbs" CASCADE; + DROP TABLE "categories" CASCADE; + DROP TABLE "customers_stats" CASCADE; + DROP TABLE "customers_misc" CASCADE; + DROP TABLE "customers_industry" CASCADE; + DROP TABLE "customers_supabase_products" CASCADE; + DROP TABLE "customers" CASCADE; + DROP TABLE "_customers_v_version_stats" CASCADE; + DROP TABLE "_customers_v_version_misc" CASCADE; + DROP TABLE "_customers_v_version_industry" CASCADE; + DROP TABLE "_customers_v_version_supabase_products" CASCADE; + DROP TABLE "_customers_v" CASCADE; + DROP TABLE "events_type" CASCADE; + DROP TABLE "events" CASCADE; + DROP TABLE "events_rels" CASCADE; + DROP TABLE "_events_v_version_type" CASCADE; + DROP TABLE "_events_v" CASCADE; + DROP TABLE "_events_v_rels" CASCADE; + DROP TABLE "media" CASCADE; + DROP TABLE "posts" CASCADE; + DROP TABLE "posts_rels" CASCADE; + DROP TABLE "_posts_v" CASCADE; + DROP TABLE "_posts_v_rels" CASCADE; + DROP TABLE "tags" CASCADE; + DROP TABLE "users_roles" CASCADE; + DROP TABLE "users" CASCADE; + DROP TABLE "payload_jobs_log" CASCADE; + DROP TABLE "payload_jobs" CASCADE; + DROP TABLE "payload_locked_documents" CASCADE; + DROP TABLE "payload_locked_documents_rels" CASCADE; + DROP TABLE "payload_preferences" CASCADE; + DROP TABLE "payload_preferences_rels" CASCADE; + DROP TABLE "payload_migrations" CASCADE; + DROP TYPE "public"."enum_customers_industry"; + DROP TYPE "public"."enum_customers_supabase_products"; + DROP TYPE "public"."enum_customers_company_size"; + DROP TYPE "public"."enum_customers_region"; + DROP TYPE "public"."enum_customers_status"; + DROP TYPE "public"."enum__customers_v_version_industry"; + DROP TYPE "public"."enum__customers_v_version_supabase_products"; + DROP TYPE "public"."enum__customers_v_version_company_size"; + DROP TYPE "public"."enum__customers_v_version_region"; + DROP TYPE "public"."enum__customers_v_version_status"; + DROP TYPE "public"."enum_events_type"; + DROP TYPE "public"."enum_events_timezone"; + DROP TYPE "public"."enum_events_link_target"; + DROP TYPE "public"."enum_events_main_cta_target"; + DROP TYPE "public"."enum_events_status"; + DROP TYPE "public"."enum__events_v_version_type"; + DROP TYPE "public"."enum__events_v_version_timezone"; + DROP TYPE "public"."enum__events_v_version_link_target"; + DROP TYPE "public"."enum__events_v_version_main_cta_target"; + DROP TYPE "public"."enum__events_v_version_status"; + DROP TYPE "public"."enum_posts_launchweek"; + DROP TYPE "public"."enum_posts_status"; + DROP TYPE "public"."enum__posts_v_version_launchweek"; + DROP TYPE "public"."enum__posts_v_version_status"; + DROP TYPE "public"."enum_users_roles"; + DROP TYPE "public"."enum_payload_jobs_log_task_slug"; + DROP TYPE "public"."enum_payload_jobs_log_state"; + DROP TYPE "public"."enum_payload_jobs_task_slug";`) +} diff --git a/apps/cms/src/migrations/20250619_160549.json b/apps/cms/src/migrations/20250619_160549.json new file mode 100644 index 00000000000..ef0494db176 --- /dev/null +++ b/apps/cms/src/migrations/20250619_160549.json @@ -0,0 +1,7330 @@ +{ + "id": "38bb76e1-daff-4133-8c6a-e751be8348e0", + "prevId": "00000000-0000-0000-0000-000000000000", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.authors": { + "name": "authors", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "author": { + "name": "author", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "author_id": { + "name": "author_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "position": { + "name": "position", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "author_url": { + "name": "author_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "author_image_url_id": { + "name": "author_image_url_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "username": { + "name": "username", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "authors_author_image_url_idx": { + "name": "authors_author_image_url_idx", + "columns": [ + { + "expression": "author_image_url_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "authors_updated_at_idx": { + "name": "authors_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "authors_created_at_idx": { + "name": "authors_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "authors_author_image_url_id_media_id_fk": { + "name": "authors_author_image_url_id_media_id_fk", + "tableFrom": "authors", + "tableTo": "media", + "columnsFrom": [ + "author_image_url_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.categories_breadcrumbs": { + "name": "categories_breadcrumbs", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "doc_id": { + "name": "doc_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "categories_breadcrumbs_order_idx": { + "name": "categories_breadcrumbs_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "categories_breadcrumbs_parent_id_idx": { + "name": "categories_breadcrumbs_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "categories_breadcrumbs_doc_idx": { + "name": "categories_breadcrumbs_doc_idx", + "columns": [ + { + "expression": "doc_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "categories_breadcrumbs_doc_id_categories_id_fk": { + "name": "categories_breadcrumbs_doc_id_categories_id_fk", + "tableFrom": "categories_breadcrumbs", + "tableTo": "categories", + "columnsFrom": [ + "doc_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "categories_breadcrumbs_parent_id_fk": { + "name": "categories_breadcrumbs_parent_id_fk", + "tableFrom": "categories_breadcrumbs", + "tableTo": "categories", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.categories": { + "name": "categories", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "categories_parent_idx": { + "name": "categories_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "categories_updated_at_idx": { + "name": "categories_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "categories_created_at_idx": { + "name": "categories_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "categories_parent_id_categories_id_fk": { + "name": "categories_parent_id_categories_id_fk", + "tableFrom": "categories", + "tableTo": "categories", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers_stats": { + "name": "customers_stats", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "stat": { + "name": "stat", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "customers_stats_order_idx": { + "name": "customers_stats_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_stats_parent_id_idx": { + "name": "customers_stats_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_stats_parent_id_fk": { + "name": "customers_stats_parent_id_fk", + "tableFrom": "customers_stats", + "tableTo": "customers", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers_misc": { + "name": "customers_misc", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "customers_misc_order_idx": { + "name": "customers_misc_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_misc_parent_id_idx": { + "name": "customers_misc_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_misc_parent_id_fk": { + "name": "customers_misc_parent_id_fk", + "tableFrom": "customers_misc", + "tableTo": "customers", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers_industry": { + "name": "customers_industry", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_customers_industry", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "customers_industry_order_idx": { + "name": "customers_industry_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_industry_parent_idx": { + "name": "customers_industry_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_industry_parent_fk": { + "name": "customers_industry_parent_fk", + "tableFrom": "customers_industry", + "tableTo": "customers", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers_supabase_products": { + "name": "customers_supabase_products", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_customers_supabase_products", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "customers_supabase_products_order_idx": { + "name": "customers_supabase_products_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_supabase_products_parent_idx": { + "name": "customers_supabase_products_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_supabase_products_parent_fk": { + "name": "customers_supabase_products_parent_fk", + "tableFrom": "customers_supabase_products", + "tableTo": "customers", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers": { + "name": "customers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug_lock": { + "name": "slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "about": { + "name": "about", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_url": { + "name": "company_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_size": { + "name": "company_size", + "type": "enum_customers_company_size", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "region": { + "name": "region", + "type": "enum_customers_region", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "meta_title": { + "name": "meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "meta_image_id": { + "name": "meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "meta_description": { + "name": "meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "published_at": { + "name": "published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "logo_id": { + "name": "logo_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "logo_inverse_id": { + "name": "logo_inverse_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "_status": { + "name": "_status", + "type": "enum_customers_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + } + }, + "indexes": { + "customers_slug_idx": { + "name": "customers_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_meta_meta_image_idx": { + "name": "customers_meta_meta_image_idx", + "columns": [ + { + "expression": "meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_logo_idx": { + "name": "customers_logo_idx", + "columns": [ + { + "expression": "logo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_logo_inverse_idx": { + "name": "customers_logo_inverse_idx", + "columns": [ + { + "expression": "logo_inverse_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_updated_at_idx": { + "name": "customers_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_created_at_idx": { + "name": "customers_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers__status_idx": { + "name": "customers__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_meta_image_id_media_id_fk": { + "name": "customers_meta_image_id_media_id_fk", + "tableFrom": "customers", + "tableTo": "media", + "columnsFrom": [ + "meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "customers_logo_id_media_id_fk": { + "name": "customers_logo_id_media_id_fk", + "tableFrom": "customers", + "tableTo": "media", + "columnsFrom": [ + "logo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "customers_logo_inverse_id_media_id_fk": { + "name": "customers_logo_inverse_id_media_id_fk", + "tableFrom": "customers", + "tableTo": "media", + "columnsFrom": [ + "logo_inverse_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v_version_stats": { + "name": "_customers_v_version_stats", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "stat": { + "name": "stat", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "_uuid": { + "name": "_uuid", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_customers_v_version_stats_order_idx": { + "name": "_customers_v_version_stats_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_stats_parent_id_idx": { + "name": "_customers_v_version_stats_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_version_stats_parent_id_fk": { + "name": "_customers_v_version_stats_parent_id_fk", + "tableFrom": "_customers_v_version_stats", + "tableTo": "_customers_v", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v_version_misc": { + "name": "_customers_v_version_misc", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "_uuid": { + "name": "_uuid", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_customers_v_version_misc_order_idx": { + "name": "_customers_v_version_misc_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_misc_parent_id_idx": { + "name": "_customers_v_version_misc_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_version_misc_parent_id_fk": { + "name": "_customers_v_version_misc_parent_id_fk", + "tableFrom": "_customers_v_version_misc", + "tableTo": "_customers_v", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v_version_industry": { + "name": "_customers_v_version_industry", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum__customers_v_version_industry", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "_customers_v_version_industry_order_idx": { + "name": "_customers_v_version_industry_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_industry_parent_idx": { + "name": "_customers_v_version_industry_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_version_industry_parent_fk": { + "name": "_customers_v_version_industry_parent_fk", + "tableFrom": "_customers_v_version_industry", + "tableTo": "_customers_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v_version_supabase_products": { + "name": "_customers_v_version_supabase_products", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum__customers_v_version_supabase_products", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "_customers_v_version_supabase_products_order_idx": { + "name": "_customers_v_version_supabase_products_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_supabase_products_parent_idx": { + "name": "_customers_v_version_supabase_products_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_version_supabase_products_parent_fk": { + "name": "_customers_v_version_supabase_products_parent_fk", + "tableFrom": "_customers_v_version_supabase_products", + "tableTo": "_customers_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v": { + "name": "_customers_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_name": { + "name": "version_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_title": { + "name": "version_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug": { + "name": "version_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug_lock": { + "name": "version_slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "version_content": { + "name": "version_content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "version_description": { + "name": "version_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_about": { + "name": "version_about", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_url": { + "name": "version_company_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_size": { + "name": "version_company_size", + "type": "enum__customers_v_version_company_size", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_region": { + "name": "version_region", + "type": "enum__customers_v_version_region", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_meta_title": { + "name": "version_meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_meta_image_id": { + "name": "version_meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_meta_description": { + "name": "version_meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_published_at": { + "name": "version_published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_logo_id": { + "name": "version_logo_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_logo_inverse_id": { + "name": "version_logo_inverse_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__customers_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "autosave": { + "name": "autosave", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_customers_v_parent_idx": { + "name": "_customers_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_slug_idx": { + "name": "_customers_v_version_version_slug_idx", + "columns": [ + { + "expression": "version_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_meta_version_meta_image_idx": { + "name": "_customers_v_version_meta_version_meta_image_idx", + "columns": [ + { + "expression": "version_meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_logo_idx": { + "name": "_customers_v_version_version_logo_idx", + "columns": [ + { + "expression": "version_logo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_logo_inverse_idx": { + "name": "_customers_v_version_version_logo_inverse_idx", + "columns": [ + { + "expression": "version_logo_inverse_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_updated_at_idx": { + "name": "_customers_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_created_at_idx": { + "name": "_customers_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version__status_idx": { + "name": "_customers_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_created_at_idx": { + "name": "_customers_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_updated_at_idx": { + "name": "_customers_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_latest_idx": { + "name": "_customers_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_autosave_idx": { + "name": "_customers_v_autosave_idx", + "columns": [ + { + "expression": "autosave", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_parent_id_customers_id_fk": { + "name": "_customers_v_parent_id_customers_id_fk", + "tableFrom": "_customers_v", + "tableTo": "customers", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_customers_v_version_meta_image_id_media_id_fk": { + "name": "_customers_v_version_meta_image_id_media_id_fk", + "tableFrom": "_customers_v", + "tableTo": "media", + "columnsFrom": [ + "version_meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_customers_v_version_logo_id_media_id_fk": { + "name": "_customers_v_version_logo_id_media_id_fk", + "tableFrom": "_customers_v", + "tableTo": "media", + "columnsFrom": [ + "version_logo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_customers_v_version_logo_inverse_id_media_id_fk": { + "name": "_customers_v_version_logo_inverse_id_media_id_fk", + "tableFrom": "_customers_v", + "tableTo": "media", + "columnsFrom": [ + "version_logo_inverse_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.events_type": { + "name": "events_type", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_events_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "events_type_order_idx": { + "name": "events_type_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_type_parent_idx": { + "name": "events_type_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "events_type_parent_fk": { + "name": "events_type_parent_fk", + "tableFrom": "events_type", + "tableTo": "events", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.events": { + "name": "events", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug_lock": { + "name": "slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "subtitle": { + "name": "subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "thumb_id": { + "name": "thumb_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "image_id": { + "name": "image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "timezone": { + "name": "timezone", + "type": "enum_events_timezone", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "show_end_date": { + "name": "show_end_date", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "end_date": { + "name": "end_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "duration": { + "name": "duration", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "on_demand": { + "name": "on_demand", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "disable_page_build": { + "name": "disable_page_build", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "link_href": { + "name": "link_href", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "link_target": { + "name": "link_target", + "type": "enum_events_link_target", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'_blank'" + }, + "main_cta_href": { + "name": "main_cta_href", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "main_cta_target": { + "name": "main_cta_target", + "type": "enum_events_main_cta_target", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'_blank'" + }, + "main_cta_label": { + "name": "main_cta_label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "main_cta_disabled": { + "name": "main_cta_disabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "main_cta_disabled_label": { + "name": "main_cta_disabled_label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_show_company": { + "name": "company_show_company", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "company_name": { + "name": "company_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_website_url": { + "name": "company_website_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_logo_id": { + "name": "company_logo_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "company_logo_light_id": { + "name": "company_logo_light_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "participants_show_participants": { + "name": "participants_show_participants", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "meta_title": { + "name": "meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "meta_image_id": { + "name": "meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "meta_description": { + "name": "meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "published_at": { + "name": "published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "_status": { + "name": "_status", + "type": "enum_events_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + } + }, + "indexes": { + "events_slug_idx": { + "name": "events_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_thumb_idx": { + "name": "events_thumb_idx", + "columns": [ + { + "expression": "thumb_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_image_idx": { + "name": "events_image_idx", + "columns": [ + { + "expression": "image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_company_company_logo_idx": { + "name": "events_company_company_logo_idx", + "columns": [ + { + "expression": "company_logo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_company_company_logo_light_idx": { + "name": "events_company_company_logo_light_idx", + "columns": [ + { + "expression": "company_logo_light_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_meta_meta_image_idx": { + "name": "events_meta_meta_image_idx", + "columns": [ + { + "expression": "meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_updated_at_idx": { + "name": "events_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_created_at_idx": { + "name": "events_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events__status_idx": { + "name": "events__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "events_thumb_id_media_id_fk": { + "name": "events_thumb_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "thumb_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_image_id_media_id_fk": { + "name": "events_image_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_company_logo_id_media_id_fk": { + "name": "events_company_logo_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "company_logo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_company_logo_light_id_media_id_fk": { + "name": "events_company_logo_light_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "company_logo_light_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_meta_image_id_media_id_fk": { + "name": "events_meta_image_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.events_rels": { + "name": "events_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "events_rels_order_idx": { + "name": "events_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_rels_parent_idx": { + "name": "events_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_rels_path_idx": { + "name": "events_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_rels_authors_id_idx": { + "name": "events_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "events_rels_parent_fk": { + "name": "events_rels_parent_fk", + "tableFrom": "events_rels", + "tableTo": "events", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "events_rels_authors_fk": { + "name": "events_rels_authors_fk", + "tableFrom": "events_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._events_v_version_type": { + "name": "_events_v_version_type", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum__events_v_version_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "_events_v_version_type_order_idx": { + "name": "_events_v_version_type_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_type_parent_idx": { + "name": "_events_v_version_type_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_events_v_version_type_parent_fk": { + "name": "_events_v_version_type_parent_fk", + "tableFrom": "_events_v_version_type", + "tableTo": "_events_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._events_v": { + "name": "_events_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_title": { + "name": "version_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug": { + "name": "version_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug_lock": { + "name": "version_slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "version_subtitle": { + "name": "version_subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_content": { + "name": "version_content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "version_thumb_id": { + "name": "version_thumb_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_image_id": { + "name": "version_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_date": { + "name": "version_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_timezone": { + "name": "version_timezone", + "type": "enum__events_v_version_timezone", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_show_end_date": { + "name": "version_show_end_date", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_end_date": { + "name": "version_end_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_duration": { + "name": "version_duration", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_on_demand": { + "name": "version_on_demand", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_disable_page_build": { + "name": "version_disable_page_build", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_link_href": { + "name": "version_link_href", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_link_target": { + "name": "version_link_target", + "type": "enum__events_v_version_link_target", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'_blank'" + }, + "version_main_cta_href": { + "name": "version_main_cta_href", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_main_cta_target": { + "name": "version_main_cta_target", + "type": "enum__events_v_version_main_cta_target", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'_blank'" + }, + "version_main_cta_label": { + "name": "version_main_cta_label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_main_cta_disabled": { + "name": "version_main_cta_disabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_main_cta_disabled_label": { + "name": "version_main_cta_disabled_label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_show_company": { + "name": "version_company_show_company", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_company_name": { + "name": "version_company_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_website_url": { + "name": "version_company_website_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_logo_id": { + "name": "version_company_logo_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_company_logo_light_id": { + "name": "version_company_logo_light_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_participants_show_participants": { + "name": "version_participants_show_participants", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_meta_title": { + "name": "version_meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_meta_image_id": { + "name": "version_meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_meta_description": { + "name": "version_meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_published_at": { + "name": "version_published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__events_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "autosave": { + "name": "autosave", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_events_v_parent_idx": { + "name": "_events_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_slug_idx": { + "name": "_events_v_version_version_slug_idx", + "columns": [ + { + "expression": "version_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_thumb_idx": { + "name": "_events_v_version_version_thumb_idx", + "columns": [ + { + "expression": "version_thumb_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_image_idx": { + "name": "_events_v_version_version_image_idx", + "columns": [ + { + "expression": "version_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_company_version_company_logo_idx": { + "name": "_events_v_version_company_version_company_logo_idx", + "columns": [ + { + "expression": "version_company_logo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_company_version_company_logo_light_idx": { + "name": "_events_v_version_company_version_company_logo_light_idx", + "columns": [ + { + "expression": "version_company_logo_light_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_meta_version_meta_image_idx": { + "name": "_events_v_version_meta_version_meta_image_idx", + "columns": [ + { + "expression": "version_meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_updated_at_idx": { + "name": "_events_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_created_at_idx": { + "name": "_events_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version__status_idx": { + "name": "_events_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_created_at_idx": { + "name": "_events_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_updated_at_idx": { + "name": "_events_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_latest_idx": { + "name": "_events_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_autosave_idx": { + "name": "_events_v_autosave_idx", + "columns": [ + { + "expression": "autosave", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_events_v_parent_id_events_id_fk": { + "name": "_events_v_parent_id_events_id_fk", + "tableFrom": "_events_v", + "tableTo": "events", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_thumb_id_media_id_fk": { + "name": "_events_v_version_thumb_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_thumb_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_image_id_media_id_fk": { + "name": "_events_v_version_image_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_company_logo_id_media_id_fk": { + "name": "_events_v_version_company_logo_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_company_logo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_company_logo_light_id_media_id_fk": { + "name": "_events_v_version_company_logo_light_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_company_logo_light_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_meta_image_id_media_id_fk": { + "name": "_events_v_version_meta_image_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._events_v_rels": { + "name": "_events_v_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_events_v_rels_order_idx": { + "name": "_events_v_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_rels_parent_idx": { + "name": "_events_v_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_rels_path_idx": { + "name": "_events_v_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_rels_authors_id_idx": { + "name": "_events_v_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_events_v_rels_parent_fk": { + "name": "_events_v_rels_parent_fk", + "tableFrom": "_events_v_rels", + "tableTo": "_events_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_events_v_rels_authors_fk": { + "name": "_events_v_rels_authors_fk", + "tableFrom": "_events_v_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.media": { + "name": "media", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "alt": { + "name": "alt", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "caption": { + "name": "caption", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "prefix": { + "name": "prefix", + "type": "varchar", + "primaryKey": false, + "notNull": false, + "default": "'media'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "thumbnail_u_r_l": { + "name": "thumbnail_u_r_l", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filename": { + "name": "filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filesize": { + "name": "filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "height": { + "name": "height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_x": { + "name": "focal_x", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_y": { + "name": "focal_y", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_url": { + "name": "sizes_thumbnail_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_width": { + "name": "sizes_thumbnail_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_height": { + "name": "sizes_thumbnail_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_mime_type": { + "name": "sizes_thumbnail_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_filesize": { + "name": "sizes_thumbnail_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_filename": { + "name": "sizes_thumbnail_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_square_url": { + "name": "sizes_square_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_square_width": { + "name": "sizes_square_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_square_height": { + "name": "sizes_square_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_square_mime_type": { + "name": "sizes_square_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_square_filesize": { + "name": "sizes_square_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_square_filename": { + "name": "sizes_square_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_small_url": { + "name": "sizes_small_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_small_width": { + "name": "sizes_small_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_small_height": { + "name": "sizes_small_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_small_mime_type": { + "name": "sizes_small_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_small_filesize": { + "name": "sizes_small_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_small_filename": { + "name": "sizes_small_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_url": { + "name": "sizes_medium_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_width": { + "name": "sizes_medium_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_height": { + "name": "sizes_medium_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_mime_type": { + "name": "sizes_medium_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_filesize": { + "name": "sizes_medium_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_filename": { + "name": "sizes_medium_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_large_url": { + "name": "sizes_large_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_large_width": { + "name": "sizes_large_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_large_height": { + "name": "sizes_large_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_large_mime_type": { + "name": "sizes_large_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_large_filesize": { + "name": "sizes_large_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_large_filename": { + "name": "sizes_large_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_url": { + "name": "sizes_xlarge_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_width": { + "name": "sizes_xlarge_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_height": { + "name": "sizes_xlarge_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_mime_type": { + "name": "sizes_xlarge_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_filesize": { + "name": "sizes_xlarge_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_filename": { + "name": "sizes_xlarge_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_og_url": { + "name": "sizes_og_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_og_width": { + "name": "sizes_og_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_og_height": { + "name": "sizes_og_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_og_mime_type": { + "name": "sizes_og_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_og_filesize": { + "name": "sizes_og_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_og_filename": { + "name": "sizes_og_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "media_updated_at_idx": { + "name": "media_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_created_at_idx": { + "name": "media_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_filename_idx": { + "name": "media_filename_idx", + "columns": [ + { + "expression": "filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_thumbnail_sizes_thumbnail_filename_idx": { + "name": "media_sizes_thumbnail_sizes_thumbnail_filename_idx", + "columns": [ + { + "expression": "sizes_thumbnail_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_square_sizes_square_filename_idx": { + "name": "media_sizes_square_sizes_square_filename_idx", + "columns": [ + { + "expression": "sizes_square_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_small_sizes_small_filename_idx": { + "name": "media_sizes_small_sizes_small_filename_idx", + "columns": [ + { + "expression": "sizes_small_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_medium_sizes_medium_filename_idx": { + "name": "media_sizes_medium_sizes_medium_filename_idx", + "columns": [ + { + "expression": "sizes_medium_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_large_sizes_large_filename_idx": { + "name": "media_sizes_large_sizes_large_filename_idx", + "columns": [ + { + "expression": "sizes_large_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_xlarge_sizes_xlarge_filename_idx": { + "name": "media_sizes_xlarge_sizes_xlarge_filename_idx", + "columns": [ + { + "expression": "sizes_xlarge_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_og_sizes_og_filename_idx": { + "name": "media_sizes_og_sizes_og_filename_idx", + "columns": [ + { + "expression": "sizes_og_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.posts": { + "name": "posts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug_lock": { + "name": "slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "thumb_id": { + "name": "thumb_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "image_id": { + "name": "image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "launchweek": { + "name": "launchweek", + "type": "enum_posts_launchweek", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "reading_time": { + "name": "reading_time", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "toc_depth": { + "name": "toc_depth", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 2 + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "meta_title": { + "name": "meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "meta_image_id": { + "name": "meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "meta_description": { + "name": "meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "published_at": { + "name": "published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "_status": { + "name": "_status", + "type": "enum_posts_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + } + }, + "indexes": { + "posts_slug_idx": { + "name": "posts_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_thumb_idx": { + "name": "posts_thumb_idx", + "columns": [ + { + "expression": "thumb_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_image_idx": { + "name": "posts_image_idx", + "columns": [ + { + "expression": "image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_meta_meta_image_idx": { + "name": "posts_meta_meta_image_idx", + "columns": [ + { + "expression": "meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_updated_at_idx": { + "name": "posts_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_created_at_idx": { + "name": "posts_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts__status_idx": { + "name": "posts__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "posts_thumb_id_media_id_fk": { + "name": "posts_thumb_id_media_id_fk", + "tableFrom": "posts", + "tableTo": "media", + "columnsFrom": [ + "thumb_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "posts_image_id_media_id_fk": { + "name": "posts_image_id_media_id_fk", + "tableFrom": "posts", + "tableTo": "media", + "columnsFrom": [ + "image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "posts_meta_image_id_media_id_fk": { + "name": "posts_meta_image_id_media_id_fk", + "tableFrom": "posts", + "tableTo": "media", + "columnsFrom": [ + "meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.posts_rels": { + "name": "posts_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "categories_id": { + "name": "categories_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tags_id": { + "name": "tags_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "posts_rels_order_idx": { + "name": "posts_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_parent_idx": { + "name": "posts_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_path_idx": { + "name": "posts_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_categories_id_idx": { + "name": "posts_rels_categories_id_idx", + "columns": [ + { + "expression": "categories_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_authors_id_idx": { + "name": "posts_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_tags_id_idx": { + "name": "posts_rels_tags_id_idx", + "columns": [ + { + "expression": "tags_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "posts_rels_parent_fk": { + "name": "posts_rels_parent_fk", + "tableFrom": "posts_rels", + "tableTo": "posts", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "posts_rels_categories_fk": { + "name": "posts_rels_categories_fk", + "tableFrom": "posts_rels", + "tableTo": "categories", + "columnsFrom": [ + "categories_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "posts_rels_authors_fk": { + "name": "posts_rels_authors_fk", + "tableFrom": "posts_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "posts_rels_tags_fk": { + "name": "posts_rels_tags_fk", + "tableFrom": "posts_rels", + "tableTo": "tags", + "columnsFrom": [ + "tags_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._posts_v": { + "name": "_posts_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_title": { + "name": "version_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug": { + "name": "version_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug_lock": { + "name": "version_slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "version_content": { + "name": "version_content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "version_thumb_id": { + "name": "version_thumb_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_image_id": { + "name": "version_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_launchweek": { + "name": "version_launchweek", + "type": "enum__posts_v_version_launchweek", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_reading_time": { + "name": "version_reading_time", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "version_date": { + "name": "version_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_toc_depth": { + "name": "version_toc_depth", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 2 + }, + "version_description": { + "name": "version_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_meta_title": { + "name": "version_meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_meta_image_id": { + "name": "version_meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_meta_description": { + "name": "version_meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_published_at": { + "name": "version_published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__posts_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "autosave": { + "name": "autosave", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_posts_v_parent_idx": { + "name": "_posts_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_slug_idx": { + "name": "_posts_v_version_version_slug_idx", + "columns": [ + { + "expression": "version_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_thumb_idx": { + "name": "_posts_v_version_version_thumb_idx", + "columns": [ + { + "expression": "version_thumb_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_image_idx": { + "name": "_posts_v_version_version_image_idx", + "columns": [ + { + "expression": "version_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_meta_version_meta_image_idx": { + "name": "_posts_v_version_meta_version_meta_image_idx", + "columns": [ + { + "expression": "version_meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_updated_at_idx": { + "name": "_posts_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_created_at_idx": { + "name": "_posts_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version__status_idx": { + "name": "_posts_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_created_at_idx": { + "name": "_posts_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_updated_at_idx": { + "name": "_posts_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_latest_idx": { + "name": "_posts_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_autosave_idx": { + "name": "_posts_v_autosave_idx", + "columns": [ + { + "expression": "autosave", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_posts_v_parent_id_posts_id_fk": { + "name": "_posts_v_parent_id_posts_id_fk", + "tableFrom": "_posts_v", + "tableTo": "posts", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_posts_v_version_thumb_id_media_id_fk": { + "name": "_posts_v_version_thumb_id_media_id_fk", + "tableFrom": "_posts_v", + "tableTo": "media", + "columnsFrom": [ + "version_thumb_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_posts_v_version_image_id_media_id_fk": { + "name": "_posts_v_version_image_id_media_id_fk", + "tableFrom": "_posts_v", + "tableTo": "media", + "columnsFrom": [ + "version_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_posts_v_version_meta_image_id_media_id_fk": { + "name": "_posts_v_version_meta_image_id_media_id_fk", + "tableFrom": "_posts_v", + "tableTo": "media", + "columnsFrom": [ + "version_meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._posts_v_rels": { + "name": "_posts_v_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "categories_id": { + "name": "categories_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tags_id": { + "name": "tags_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_posts_v_rels_order_idx": { + "name": "_posts_v_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_parent_idx": { + "name": "_posts_v_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_path_idx": { + "name": "_posts_v_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_categories_id_idx": { + "name": "_posts_v_rels_categories_id_idx", + "columns": [ + { + "expression": "categories_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_authors_id_idx": { + "name": "_posts_v_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_tags_id_idx": { + "name": "_posts_v_rels_tags_id_idx", + "columns": [ + { + "expression": "tags_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_posts_v_rels_parent_fk": { + "name": "_posts_v_rels_parent_fk", + "tableFrom": "_posts_v_rels", + "tableTo": "_posts_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_posts_v_rels_categories_fk": { + "name": "_posts_v_rels_categories_fk", + "tableFrom": "_posts_v_rels", + "tableTo": "categories", + "columnsFrom": [ + "categories_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_posts_v_rels_authors_fk": { + "name": "_posts_v_rels_authors_fk", + "tableFrom": "_posts_v_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_posts_v_rels_tags_fk": { + "name": "_posts_v_rels_tags_fk", + "tableFrom": "_posts_v_rels", + "tableTo": "tags", + "columnsFrom": [ + "tags_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tags": { + "name": "tags", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "tags_updated_at_idx": { + "name": "tags_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "tags_created_at_idx": { + "name": "tags_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users_roles": { + "name": "users_roles", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_users_roles", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "users_roles_order_idx": { + "name": "users_roles_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_roles_parent_idx": { + "name": "users_roles_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "users_roles_parent_fk": { + "name": "users_roles_parent_fk", + "tableFrom": "users_roles", + "tableTo": "users", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "reset_password_token": { + "name": "reset_password_token", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "reset_password_expiration": { + "name": "reset_password_expiration", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "salt": { + "name": "salt", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "hash": { + "name": "hash", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "login_attempts": { + "name": "login_attempts", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "lock_until": { + "name": "lock_until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "users_updated_at_idx": { + "name": "users_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_created_at_idx": { + "name": "users_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_email_idx": { + "name": "users_email_idx", + "columns": [ + { + "expression": "email", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_jobs_log": { + "name": "payload_jobs_log", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "executed_at": { + "name": "executed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "task_slug": { + "name": "task_slug", + "type": "enum_payload_jobs_log_task_slug", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "task_i_d": { + "name": "task_i_d", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "input": { + "name": "input", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "output": { + "name": "output", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "state": { + "name": "state", + "type": "enum_payload_jobs_log_state", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "error": { + "name": "error", + "type": "jsonb", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_jobs_log_order_idx": { + "name": "payload_jobs_log_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_log_parent_id_idx": { + "name": "payload_jobs_log_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_jobs_log_parent_id_fk": { + "name": "payload_jobs_log_parent_id_fk", + "tableFrom": "payload_jobs_log", + "tableTo": "payload_jobs", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_jobs": { + "name": "payload_jobs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "input": { + "name": "input", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "total_tried": { + "name": "total_tried", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "has_error": { + "name": "has_error", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "error": { + "name": "error", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "task_slug": { + "name": "task_slug", + "type": "enum_payload_jobs_task_slug", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "queue": { + "name": "queue", + "type": "varchar", + "primaryKey": false, + "notNull": false, + "default": "'default'" + }, + "wait_until": { + "name": "wait_until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "processing": { + "name": "processing", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_jobs_completed_at_idx": { + "name": "payload_jobs_completed_at_idx", + "columns": [ + { + "expression": "completed_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_total_tried_idx": { + "name": "payload_jobs_total_tried_idx", + "columns": [ + { + "expression": "total_tried", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_has_error_idx": { + "name": "payload_jobs_has_error_idx", + "columns": [ + { + "expression": "has_error", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_task_slug_idx": { + "name": "payload_jobs_task_slug_idx", + "columns": [ + { + "expression": "task_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_queue_idx": { + "name": "payload_jobs_queue_idx", + "columns": [ + { + "expression": "queue", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_wait_until_idx": { + "name": "payload_jobs_wait_until_idx", + "columns": [ + { + "expression": "wait_until", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_processing_idx": { + "name": "payload_jobs_processing_idx", + "columns": [ + { + "expression": "processing", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_updated_at_idx": { + "name": "payload_jobs_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_created_at_idx": { + "name": "payload_jobs_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_locked_documents": { + "name": "payload_locked_documents", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "global_slug": { + "name": "global_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_locked_documents_global_slug_idx": { + "name": "payload_locked_documents_global_slug_idx", + "columns": [ + { + "expression": "global_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_updated_at_idx": { + "name": "payload_locked_documents_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_created_at_idx": { + "name": "payload_locked_documents_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_locked_documents_rels": { + "name": "payload_locked_documents_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "categories_id": { + "name": "categories_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "customers_id": { + "name": "customers_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "events_id": { + "name": "events_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "media_id": { + "name": "media_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "posts_id": { + "name": "posts_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tags_id": { + "name": "tags_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "users_id": { + "name": "users_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "payload_jobs_id": { + "name": "payload_jobs_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_locked_documents_rels_order_idx": { + "name": "payload_locked_documents_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_parent_idx": { + "name": "payload_locked_documents_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_path_idx": { + "name": "payload_locked_documents_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_authors_id_idx": { + "name": "payload_locked_documents_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_categories_id_idx": { + "name": "payload_locked_documents_rels_categories_id_idx", + "columns": [ + { + "expression": "categories_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_customers_id_idx": { + "name": "payload_locked_documents_rels_customers_id_idx", + "columns": [ + { + "expression": "customers_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_events_id_idx": { + "name": "payload_locked_documents_rels_events_id_idx", + "columns": [ + { + "expression": "events_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_media_id_idx": { + "name": "payload_locked_documents_rels_media_id_idx", + "columns": [ + { + "expression": "media_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_posts_id_idx": { + "name": "payload_locked_documents_rels_posts_id_idx", + "columns": [ + { + "expression": "posts_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_tags_id_idx": { + "name": "payload_locked_documents_rels_tags_id_idx", + "columns": [ + { + "expression": "tags_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_users_id_idx": { + "name": "payload_locked_documents_rels_users_id_idx", + "columns": [ + { + "expression": "users_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_payload_jobs_id_idx": { + "name": "payload_locked_documents_rels_payload_jobs_id_idx", + "columns": [ + { + "expression": "payload_jobs_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_locked_documents_rels_parent_fk": { + "name": "payload_locked_documents_rels_parent_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "payload_locked_documents", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_authors_fk": { + "name": "payload_locked_documents_rels_authors_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_categories_fk": { + "name": "payload_locked_documents_rels_categories_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "categories", + "columnsFrom": [ + "categories_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_customers_fk": { + "name": "payload_locked_documents_rels_customers_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "customers", + "columnsFrom": [ + "customers_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_events_fk": { + "name": "payload_locked_documents_rels_events_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "events", + "columnsFrom": [ + "events_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_media_fk": { + "name": "payload_locked_documents_rels_media_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "media", + "columnsFrom": [ + "media_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_posts_fk": { + "name": "payload_locked_documents_rels_posts_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "posts", + "columnsFrom": [ + "posts_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_tags_fk": { + "name": "payload_locked_documents_rels_tags_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "tags", + "columnsFrom": [ + "tags_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_users_fk": { + "name": "payload_locked_documents_rels_users_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "users", + "columnsFrom": [ + "users_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_payload_jobs_fk": { + "name": "payload_locked_documents_rels_payload_jobs_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "payload_jobs", + "columnsFrom": [ + "payload_jobs_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_preferences": { + "name": "payload_preferences", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "key": { + "name": "key", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "value": { + "name": "value", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_preferences_key_idx": { + "name": "payload_preferences_key_idx", + "columns": [ + { + "expression": "key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_updated_at_idx": { + "name": "payload_preferences_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_created_at_idx": { + "name": "payload_preferences_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_preferences_rels": { + "name": "payload_preferences_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "users_id": { + "name": "users_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_preferences_rels_order_idx": { + "name": "payload_preferences_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_parent_idx": { + "name": "payload_preferences_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_path_idx": { + "name": "payload_preferences_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_users_id_idx": { + "name": "payload_preferences_rels_users_id_idx", + "columns": [ + { + "expression": "users_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_preferences_rels_parent_fk": { + "name": "payload_preferences_rels_parent_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "payload_preferences", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_preferences_rels_users_fk": { + "name": "payload_preferences_rels_users_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "users", + "columnsFrom": [ + "users_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_migrations": { + "name": "payload_migrations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "batch": { + "name": "batch", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_migrations_updated_at_idx": { + "name": "payload_migrations_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_migrations_created_at_idx": { + "name": "payload_migrations_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.enum_customers_industry": { + "name": "enum_customers_industry", + "schema": "public", + "values": [ + "healthcare", + "fintech", + "ecommerce", + "education", + "gaming", + "media", + "real-estate", + "saas", + "social", + "analytics", + "ai", + "developer-tools" + ] + }, + "public.enum_customers_supabase_products": { + "name": "enum_customers_supabase_products", + "schema": "public", + "values": [ + "database", + "auth", + "storage", + "realtime", + "functions", + "vector" + ] + }, + "public.enum_customers_company_size": { + "name": "enum_customers_company_size", + "schema": "public", + "values": [ + "startup", + "enterprise", + "indie_dev" + ] + }, + "public.enum_customers_region": { + "name": "enum_customers_region", + "schema": "public", + "values": [ + "Asia", + "Europe", + "North America", + "South America", + "Africa", + "Oceania" + ] + }, + "public.enum_customers_status": { + "name": "enum_customers_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__customers_v_version_industry": { + "name": "enum__customers_v_version_industry", + "schema": "public", + "values": [ + "healthcare", + "fintech", + "ecommerce", + "education", + "gaming", + "media", + "real-estate", + "saas", + "social", + "analytics", + "ai", + "developer-tools" + ] + }, + "public.enum__customers_v_version_supabase_products": { + "name": "enum__customers_v_version_supabase_products", + "schema": "public", + "values": [ + "database", + "auth", + "storage", + "realtime", + "functions", + "vector" + ] + }, + "public.enum__customers_v_version_company_size": { + "name": "enum__customers_v_version_company_size", + "schema": "public", + "values": [ + "startup", + "enterprise", + "indie_dev" + ] + }, + "public.enum__customers_v_version_region": { + "name": "enum__customers_v_version_region", + "schema": "public", + "values": [ + "Asia", + "Europe", + "North America", + "South America", + "Africa", + "Oceania" + ] + }, + "public.enum__customers_v_version_status": { + "name": "enum__customers_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_events_type": { + "name": "enum_events_type", + "schema": "public", + "values": [ + "conference", + "hackathon", + "launch-week", + "meetup", + "office-hours", + "talk", + "webinar", + "workshop", + "other" + ] + }, + "public.enum_events_timezone": { + "name": "enum_events_timezone", + "schema": "public", + "values": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "UTC" + ] + }, + "public.enum_events_link_target": { + "name": "enum_events_link_target", + "schema": "public", + "values": [ + "_self", + "_blank" + ] + }, + "public.enum_events_main_cta_target": { + "name": "enum_events_main_cta_target", + "schema": "public", + "values": [ + "_self", + "_blank" + ] + }, + "public.enum_events_status": { + "name": "enum_events_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__events_v_version_type": { + "name": "enum__events_v_version_type", + "schema": "public", + "values": [ + "conference", + "hackathon", + "launch-week", + "meetup", + "office-hours", + "talk", + "webinar", + "workshop", + "other" + ] + }, + "public.enum__events_v_version_timezone": { + "name": "enum__events_v_version_timezone", + "schema": "public", + "values": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "UTC" + ] + }, + "public.enum__events_v_version_link_target": { + "name": "enum__events_v_version_link_target", + "schema": "public", + "values": [ + "_self", + "_blank" + ] + }, + "public.enum__events_v_version_main_cta_target": { + "name": "enum__events_v_version_main_cta_target", + "schema": "public", + "values": [ + "_self", + "_blank" + ] + }, + "public.enum__events_v_version_status": { + "name": "enum__events_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_posts_launchweek": { + "name": "enum_posts_launchweek", + "schema": "public", + "values": [ + "6", + "7", + "8", + "x", + "ga", + "12", + "13", + "14", + "15" + ] + }, + "public.enum_posts_status": { + "name": "enum_posts_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__posts_v_version_launchweek": { + "name": "enum__posts_v_version_launchweek", + "schema": "public", + "values": [ + "6", + "7", + "8", + "x", + "ga", + "12", + "13", + "14", + "15" + ] + }, + "public.enum__posts_v_version_status": { + "name": "enum__posts_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_users_roles": { + "name": "enum_users_roles", + "schema": "public", + "values": [ + "admin", + "editor" + ] + }, + "public.enum_payload_jobs_log_task_slug": { + "name": "enum_payload_jobs_log_task_slug", + "schema": "public", + "values": [ + "inline", + "schedulePublish" + ] + }, + "public.enum_payload_jobs_log_state": { + "name": "enum_payload_jobs_log_state", + "schema": "public", + "values": [ + "failed", + "succeeded" + ] + }, + "public.enum_payload_jobs_task_slug": { + "name": "enum_payload_jobs_task_slug", + "schema": "public", + "values": [ + "inline", + "schedulePublish" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + } +} \ No newline at end of file diff --git a/apps/cms/src/migrations/20250619_160549.ts b/apps/cms/src/migrations/20250619_160549.ts new file mode 100644 index 00000000000..2e1512fd771 --- /dev/null +++ b/apps/cms/src/migrations/20250619_160549.ts @@ -0,0 +1,15 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres' + +export async function up({ db }: MigrateUpArgs): Promise { + await db.execute(sql` + INSERT INTO storage.buckets (id, name, public) VALUES ('cms', 'cms', false) + ON CONFLICT (id) DO NOTHING; + `) +} + +export async function down({ db }: MigrateDownArgs): Promise { + await db.execute(sql` + DELETE FROM storage.objects WHERE bucket_id = 'cms'; + DELETE FROM storage.buckets WHERE id = 'cms'; + `) +} \ No newline at end of file diff --git a/apps/cms/src/migrations/20250808_145722_update_payload_migrations.json b/apps/cms/src/migrations/20250808_145722_update_payload_migrations.json new file mode 100644 index 00000000000..cc014d97c68 --- /dev/null +++ b/apps/cms/src/migrations/20250808_145722_update_payload_migrations.json @@ -0,0 +1,7418 @@ +{ + "id": "a2444573-aed4-499a-8737-fffaf84caa24", + "prevId": "00000000-0000-0000-0000-000000000000", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.authors": { + "name": "authors", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "author": { + "name": "author", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "author_id": { + "name": "author_id", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "position": { + "name": "position", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "author_url": { + "name": "author_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "author_image_url_id": { + "name": "author_image_url_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "username": { + "name": "username", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "authors_author_image_url_idx": { + "name": "authors_author_image_url_idx", + "columns": [ + { + "expression": "author_image_url_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "authors_updated_at_idx": { + "name": "authors_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "authors_created_at_idx": { + "name": "authors_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "authors_author_image_url_id_media_id_fk": { + "name": "authors_author_image_url_id_media_id_fk", + "tableFrom": "authors", + "tableTo": "media", + "columnsFrom": [ + "author_image_url_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.categories_breadcrumbs": { + "name": "categories_breadcrumbs", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "doc_id": { + "name": "doc_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "categories_breadcrumbs_order_idx": { + "name": "categories_breadcrumbs_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "categories_breadcrumbs_parent_id_idx": { + "name": "categories_breadcrumbs_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "categories_breadcrumbs_doc_idx": { + "name": "categories_breadcrumbs_doc_idx", + "columns": [ + { + "expression": "doc_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "categories_breadcrumbs_doc_id_categories_id_fk": { + "name": "categories_breadcrumbs_doc_id_categories_id_fk", + "tableFrom": "categories_breadcrumbs", + "tableTo": "categories", + "columnsFrom": [ + "doc_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "categories_breadcrumbs_parent_id_fk": { + "name": "categories_breadcrumbs_parent_id_fk", + "tableFrom": "categories_breadcrumbs", + "tableTo": "categories", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.categories": { + "name": "categories", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "categories_parent_idx": { + "name": "categories_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "categories_updated_at_idx": { + "name": "categories_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "categories_created_at_idx": { + "name": "categories_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "categories_parent_id_categories_id_fk": { + "name": "categories_parent_id_categories_id_fk", + "tableFrom": "categories", + "tableTo": "categories", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers_stats": { + "name": "customers_stats", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "stat": { + "name": "stat", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "customers_stats_order_idx": { + "name": "customers_stats_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_stats_parent_id_idx": { + "name": "customers_stats_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_stats_parent_id_fk": { + "name": "customers_stats_parent_id_fk", + "tableFrom": "customers_stats", + "tableTo": "customers", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers_misc": { + "name": "customers_misc", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "customers_misc_order_idx": { + "name": "customers_misc_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_misc_parent_id_idx": { + "name": "customers_misc_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_misc_parent_id_fk": { + "name": "customers_misc_parent_id_fk", + "tableFrom": "customers_misc", + "tableTo": "customers", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers_industry": { + "name": "customers_industry", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_customers_industry", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "customers_industry_order_idx": { + "name": "customers_industry_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_industry_parent_idx": { + "name": "customers_industry_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_industry_parent_fk": { + "name": "customers_industry_parent_fk", + "tableFrom": "customers_industry", + "tableTo": "customers", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers_supabase_products": { + "name": "customers_supabase_products", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_customers_supabase_products", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "customers_supabase_products_order_idx": { + "name": "customers_supabase_products_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_supabase_products_parent_idx": { + "name": "customers_supabase_products_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_supabase_products_parent_fk": { + "name": "customers_supabase_products_parent_fk", + "tableFrom": "customers_supabase_products", + "tableTo": "customers", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.customers": { + "name": "customers", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug_lock": { + "name": "slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "about": { + "name": "about", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_url": { + "name": "company_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_size": { + "name": "company_size", + "type": "enum_customers_company_size", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "region": { + "name": "region", + "type": "enum_customers_region", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "meta_title": { + "name": "meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "meta_image_id": { + "name": "meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "meta_description": { + "name": "meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "published_at": { + "name": "published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "logo_id": { + "name": "logo_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "logo_inverse_id": { + "name": "logo_inverse_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "_status": { + "name": "_status", + "type": "enum_customers_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + } + }, + "indexes": { + "customers_slug_idx": { + "name": "customers_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_meta_meta_image_idx": { + "name": "customers_meta_meta_image_idx", + "columns": [ + { + "expression": "meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_logo_idx": { + "name": "customers_logo_idx", + "columns": [ + { + "expression": "logo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_logo_inverse_idx": { + "name": "customers_logo_inverse_idx", + "columns": [ + { + "expression": "logo_inverse_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_updated_at_idx": { + "name": "customers_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers_created_at_idx": { + "name": "customers_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "customers__status_idx": { + "name": "customers__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "customers_meta_image_id_media_id_fk": { + "name": "customers_meta_image_id_media_id_fk", + "tableFrom": "customers", + "tableTo": "media", + "columnsFrom": [ + "meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "customers_logo_id_media_id_fk": { + "name": "customers_logo_id_media_id_fk", + "tableFrom": "customers", + "tableTo": "media", + "columnsFrom": [ + "logo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "customers_logo_inverse_id_media_id_fk": { + "name": "customers_logo_inverse_id_media_id_fk", + "tableFrom": "customers", + "tableTo": "media", + "columnsFrom": [ + "logo_inverse_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v_version_stats": { + "name": "_customers_v_version_stats", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "stat": { + "name": "stat", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "_uuid": { + "name": "_uuid", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_customers_v_version_stats_order_idx": { + "name": "_customers_v_version_stats_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_stats_parent_id_idx": { + "name": "_customers_v_version_stats_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_version_stats_parent_id_fk": { + "name": "_customers_v_version_stats_parent_id_fk", + "tableFrom": "_customers_v_version_stats", + "tableTo": "_customers_v", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v_version_misc": { + "name": "_customers_v_version_misc", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "label": { + "name": "label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "text": { + "name": "text", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "_uuid": { + "name": "_uuid", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_customers_v_version_misc_order_idx": { + "name": "_customers_v_version_misc_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_misc_parent_id_idx": { + "name": "_customers_v_version_misc_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_version_misc_parent_id_fk": { + "name": "_customers_v_version_misc_parent_id_fk", + "tableFrom": "_customers_v_version_misc", + "tableTo": "_customers_v", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v_version_industry": { + "name": "_customers_v_version_industry", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum__customers_v_version_industry", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "_customers_v_version_industry_order_idx": { + "name": "_customers_v_version_industry_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_industry_parent_idx": { + "name": "_customers_v_version_industry_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_version_industry_parent_fk": { + "name": "_customers_v_version_industry_parent_fk", + "tableFrom": "_customers_v_version_industry", + "tableTo": "_customers_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v_version_supabase_products": { + "name": "_customers_v_version_supabase_products", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum__customers_v_version_supabase_products", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "_customers_v_version_supabase_products_order_idx": { + "name": "_customers_v_version_supabase_products_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_supabase_products_parent_idx": { + "name": "_customers_v_version_supabase_products_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_version_supabase_products_parent_fk": { + "name": "_customers_v_version_supabase_products_parent_fk", + "tableFrom": "_customers_v_version_supabase_products", + "tableTo": "_customers_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._customers_v": { + "name": "_customers_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_name": { + "name": "version_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_title": { + "name": "version_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug": { + "name": "version_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug_lock": { + "name": "version_slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "version_content": { + "name": "version_content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "version_description": { + "name": "version_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_about": { + "name": "version_about", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_url": { + "name": "version_company_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_size": { + "name": "version_company_size", + "type": "enum__customers_v_version_company_size", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_region": { + "name": "version_region", + "type": "enum__customers_v_version_region", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_meta_title": { + "name": "version_meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_meta_image_id": { + "name": "version_meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_meta_description": { + "name": "version_meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_published_at": { + "name": "version_published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_logo_id": { + "name": "version_logo_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_logo_inverse_id": { + "name": "version_logo_inverse_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__customers_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "autosave": { + "name": "autosave", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_customers_v_parent_idx": { + "name": "_customers_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_slug_idx": { + "name": "_customers_v_version_version_slug_idx", + "columns": [ + { + "expression": "version_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_meta_version_meta_image_idx": { + "name": "_customers_v_version_meta_version_meta_image_idx", + "columns": [ + { + "expression": "version_meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_logo_idx": { + "name": "_customers_v_version_version_logo_idx", + "columns": [ + { + "expression": "version_logo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_logo_inverse_idx": { + "name": "_customers_v_version_version_logo_inverse_idx", + "columns": [ + { + "expression": "version_logo_inverse_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_updated_at_idx": { + "name": "_customers_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version_created_at_idx": { + "name": "_customers_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_version_version__status_idx": { + "name": "_customers_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_created_at_idx": { + "name": "_customers_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_updated_at_idx": { + "name": "_customers_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_latest_idx": { + "name": "_customers_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_customers_v_autosave_idx": { + "name": "_customers_v_autosave_idx", + "columns": [ + { + "expression": "autosave", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_customers_v_parent_id_customers_id_fk": { + "name": "_customers_v_parent_id_customers_id_fk", + "tableFrom": "_customers_v", + "tableTo": "customers", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_customers_v_version_meta_image_id_media_id_fk": { + "name": "_customers_v_version_meta_image_id_media_id_fk", + "tableFrom": "_customers_v", + "tableTo": "media", + "columnsFrom": [ + "version_meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_customers_v_version_logo_id_media_id_fk": { + "name": "_customers_v_version_logo_id_media_id_fk", + "tableFrom": "_customers_v", + "tableTo": "media", + "columnsFrom": [ + "version_logo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_customers_v_version_logo_inverse_id_media_id_fk": { + "name": "_customers_v_version_logo_inverse_id_media_id_fk", + "tableFrom": "_customers_v", + "tableTo": "media", + "columnsFrom": [ + "version_logo_inverse_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.events_type": { + "name": "events_type", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_events_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "events_type_order_idx": { + "name": "events_type_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_type_parent_idx": { + "name": "events_type_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "events_type_parent_fk": { + "name": "events_type_parent_fk", + "tableFrom": "events_type", + "tableTo": "events", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.events": { + "name": "events", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug_lock": { + "name": "slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "subtitle": { + "name": "subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "thumb_id": { + "name": "thumb_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "image_id": { + "name": "image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "timezone": { + "name": "timezone", + "type": "enum_events_timezone", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "show_end_date": { + "name": "show_end_date", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "end_date": { + "name": "end_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "duration": { + "name": "duration", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "on_demand": { + "name": "on_demand", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "disable_page_build": { + "name": "disable_page_build", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "link_href": { + "name": "link_href", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "link_target": { + "name": "link_target", + "type": "enum_events_link_target", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'_blank'" + }, + "main_cta_href": { + "name": "main_cta_href", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "main_cta_target": { + "name": "main_cta_target", + "type": "enum_events_main_cta_target", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'_blank'" + }, + "main_cta_label": { + "name": "main_cta_label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "main_cta_disabled": { + "name": "main_cta_disabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "main_cta_disabled_label": { + "name": "main_cta_disabled_label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_show_company": { + "name": "company_show_company", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "company_name": { + "name": "company_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_website_url": { + "name": "company_website_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "company_logo_id": { + "name": "company_logo_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "company_logo_light_id": { + "name": "company_logo_light_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "participants_show_participants": { + "name": "participants_show_participants", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "meta_title": { + "name": "meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "meta_image_id": { + "name": "meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "meta_description": { + "name": "meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "published_at": { + "name": "published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "_status": { + "name": "_status", + "type": "enum_events_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + } + }, + "indexes": { + "events_slug_idx": { + "name": "events_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_thumb_idx": { + "name": "events_thumb_idx", + "columns": [ + { + "expression": "thumb_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_image_idx": { + "name": "events_image_idx", + "columns": [ + { + "expression": "image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_company_company_logo_idx": { + "name": "events_company_company_logo_idx", + "columns": [ + { + "expression": "company_logo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_company_company_logo_light_idx": { + "name": "events_company_company_logo_light_idx", + "columns": [ + { + "expression": "company_logo_light_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_meta_meta_image_idx": { + "name": "events_meta_meta_image_idx", + "columns": [ + { + "expression": "meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_updated_at_idx": { + "name": "events_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_created_at_idx": { + "name": "events_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events__status_idx": { + "name": "events__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "events_thumb_id_media_id_fk": { + "name": "events_thumb_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "thumb_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_image_id_media_id_fk": { + "name": "events_image_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_company_logo_id_media_id_fk": { + "name": "events_company_logo_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "company_logo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_company_logo_light_id_media_id_fk": { + "name": "events_company_logo_light_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "company_logo_light_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "events_meta_image_id_media_id_fk": { + "name": "events_meta_image_id_media_id_fk", + "tableFrom": "events", + "tableTo": "media", + "columnsFrom": [ + "meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.events_rels": { + "name": "events_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "events_rels_order_idx": { + "name": "events_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_rels_parent_idx": { + "name": "events_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_rels_path_idx": { + "name": "events_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "events_rels_authors_id_idx": { + "name": "events_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "events_rels_parent_fk": { + "name": "events_rels_parent_fk", + "tableFrom": "events_rels", + "tableTo": "events", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "events_rels_authors_fk": { + "name": "events_rels_authors_fk", + "tableFrom": "events_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._events_v_version_type": { + "name": "_events_v_version_type", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum__events_v_version_type", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "_events_v_version_type_order_idx": { + "name": "_events_v_version_type_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_type_parent_idx": { + "name": "_events_v_version_type_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_events_v_version_type_parent_fk": { + "name": "_events_v_version_type_parent_fk", + "tableFrom": "_events_v_version_type", + "tableTo": "_events_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._events_v": { + "name": "_events_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_title": { + "name": "version_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug": { + "name": "version_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug_lock": { + "name": "version_slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "version_subtitle": { + "name": "version_subtitle", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_content": { + "name": "version_content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "version_thumb_id": { + "name": "version_thumb_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_image_id": { + "name": "version_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_date": { + "name": "version_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_timezone": { + "name": "version_timezone", + "type": "enum__events_v_version_timezone", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_show_end_date": { + "name": "version_show_end_date", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_end_date": { + "name": "version_end_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_duration": { + "name": "version_duration", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_on_demand": { + "name": "version_on_demand", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_disable_page_build": { + "name": "version_disable_page_build", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_link_href": { + "name": "version_link_href", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_link_target": { + "name": "version_link_target", + "type": "enum__events_v_version_link_target", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'_blank'" + }, + "version_main_cta_href": { + "name": "version_main_cta_href", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_main_cta_target": { + "name": "version_main_cta_target", + "type": "enum__events_v_version_main_cta_target", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'_blank'" + }, + "version_main_cta_label": { + "name": "version_main_cta_label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_main_cta_disabled": { + "name": "version_main_cta_disabled", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_main_cta_disabled_label": { + "name": "version_main_cta_disabled_label", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_show_company": { + "name": "version_company_show_company", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_company_name": { + "name": "version_company_name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_website_url": { + "name": "version_company_website_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_company_logo_id": { + "name": "version_company_logo_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_company_logo_light_id": { + "name": "version_company_logo_light_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_participants_show_participants": { + "name": "version_participants_show_participants", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "version_meta_title": { + "name": "version_meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_meta_image_id": { + "name": "version_meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_meta_description": { + "name": "version_meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_published_at": { + "name": "version_published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__events_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "autosave": { + "name": "autosave", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_events_v_parent_idx": { + "name": "_events_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_slug_idx": { + "name": "_events_v_version_version_slug_idx", + "columns": [ + { + "expression": "version_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_thumb_idx": { + "name": "_events_v_version_version_thumb_idx", + "columns": [ + { + "expression": "version_thumb_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_image_idx": { + "name": "_events_v_version_version_image_idx", + "columns": [ + { + "expression": "version_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_company_version_company_logo_idx": { + "name": "_events_v_version_company_version_company_logo_idx", + "columns": [ + { + "expression": "version_company_logo_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_company_version_company_logo_light_idx": { + "name": "_events_v_version_company_version_company_logo_light_idx", + "columns": [ + { + "expression": "version_company_logo_light_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_meta_version_meta_image_idx": { + "name": "_events_v_version_meta_version_meta_image_idx", + "columns": [ + { + "expression": "version_meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_updated_at_idx": { + "name": "_events_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version_created_at_idx": { + "name": "_events_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_version_version__status_idx": { + "name": "_events_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_created_at_idx": { + "name": "_events_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_updated_at_idx": { + "name": "_events_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_latest_idx": { + "name": "_events_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_autosave_idx": { + "name": "_events_v_autosave_idx", + "columns": [ + { + "expression": "autosave", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_events_v_parent_id_events_id_fk": { + "name": "_events_v_parent_id_events_id_fk", + "tableFrom": "_events_v", + "tableTo": "events", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_thumb_id_media_id_fk": { + "name": "_events_v_version_thumb_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_thumb_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_image_id_media_id_fk": { + "name": "_events_v_version_image_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_company_logo_id_media_id_fk": { + "name": "_events_v_version_company_logo_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_company_logo_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_company_logo_light_id_media_id_fk": { + "name": "_events_v_version_company_logo_light_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_company_logo_light_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_events_v_version_meta_image_id_media_id_fk": { + "name": "_events_v_version_meta_image_id_media_id_fk", + "tableFrom": "_events_v", + "tableTo": "media", + "columnsFrom": [ + "version_meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._events_v_rels": { + "name": "_events_v_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_events_v_rels_order_idx": { + "name": "_events_v_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_rels_parent_idx": { + "name": "_events_v_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_rels_path_idx": { + "name": "_events_v_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_events_v_rels_authors_id_idx": { + "name": "_events_v_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_events_v_rels_parent_fk": { + "name": "_events_v_rels_parent_fk", + "tableFrom": "_events_v_rels", + "tableTo": "_events_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_events_v_rels_authors_fk": { + "name": "_events_v_rels_authors_fk", + "tableFrom": "_events_v_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.media": { + "name": "media", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "alt": { + "name": "alt", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "caption": { + "name": "caption", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "prefix": { + "name": "prefix", + "type": "varchar", + "primaryKey": false, + "notNull": false, + "default": "'media'" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "url": { + "name": "url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "thumbnail_u_r_l": { + "name": "thumbnail_u_r_l", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filename": { + "name": "filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "mime_type": { + "name": "mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "filesize": { + "name": "filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "width": { + "name": "width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "height": { + "name": "height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_x": { + "name": "focal_x", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "focal_y": { + "name": "focal_y", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_url": { + "name": "sizes_thumbnail_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_width": { + "name": "sizes_thumbnail_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_height": { + "name": "sizes_thumbnail_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_mime_type": { + "name": "sizes_thumbnail_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_filesize": { + "name": "sizes_thumbnail_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_thumbnail_filename": { + "name": "sizes_thumbnail_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_square_url": { + "name": "sizes_square_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_square_width": { + "name": "sizes_square_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_square_height": { + "name": "sizes_square_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_square_mime_type": { + "name": "sizes_square_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_square_filesize": { + "name": "sizes_square_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_square_filename": { + "name": "sizes_square_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_small_url": { + "name": "sizes_small_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_small_width": { + "name": "sizes_small_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_small_height": { + "name": "sizes_small_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_small_mime_type": { + "name": "sizes_small_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_small_filesize": { + "name": "sizes_small_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_small_filename": { + "name": "sizes_small_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_url": { + "name": "sizes_medium_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_width": { + "name": "sizes_medium_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_height": { + "name": "sizes_medium_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_mime_type": { + "name": "sizes_medium_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_filesize": { + "name": "sizes_medium_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_medium_filename": { + "name": "sizes_medium_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_large_url": { + "name": "sizes_large_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_large_width": { + "name": "sizes_large_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_large_height": { + "name": "sizes_large_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_large_mime_type": { + "name": "sizes_large_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_large_filesize": { + "name": "sizes_large_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_large_filename": { + "name": "sizes_large_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_url": { + "name": "sizes_xlarge_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_width": { + "name": "sizes_xlarge_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_height": { + "name": "sizes_xlarge_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_mime_type": { + "name": "sizes_xlarge_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_filesize": { + "name": "sizes_xlarge_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_xlarge_filename": { + "name": "sizes_xlarge_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_og_url": { + "name": "sizes_og_url", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_og_width": { + "name": "sizes_og_width", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_og_height": { + "name": "sizes_og_height", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_og_mime_type": { + "name": "sizes_og_mime_type", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "sizes_og_filesize": { + "name": "sizes_og_filesize", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "sizes_og_filename": { + "name": "sizes_og_filename", + "type": "varchar", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "media_updated_at_idx": { + "name": "media_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_created_at_idx": { + "name": "media_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_filename_idx": { + "name": "media_filename_idx", + "columns": [ + { + "expression": "filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_thumbnail_sizes_thumbnail_filename_idx": { + "name": "media_sizes_thumbnail_sizes_thumbnail_filename_idx", + "columns": [ + { + "expression": "sizes_thumbnail_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_square_sizes_square_filename_idx": { + "name": "media_sizes_square_sizes_square_filename_idx", + "columns": [ + { + "expression": "sizes_square_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_small_sizes_small_filename_idx": { + "name": "media_sizes_small_sizes_small_filename_idx", + "columns": [ + { + "expression": "sizes_small_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_medium_sizes_medium_filename_idx": { + "name": "media_sizes_medium_sizes_medium_filename_idx", + "columns": [ + { + "expression": "sizes_medium_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_large_sizes_large_filename_idx": { + "name": "media_sizes_large_sizes_large_filename_idx", + "columns": [ + { + "expression": "sizes_large_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_xlarge_sizes_xlarge_filename_idx": { + "name": "media_sizes_xlarge_sizes_xlarge_filename_idx", + "columns": [ + { + "expression": "sizes_xlarge_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "media_sizes_og_sizes_og_filename_idx": { + "name": "media_sizes_og_sizes_og_filename_idx", + "columns": [ + { + "expression": "sizes_og_filename", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.posts": { + "name": "posts", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "title": { + "name": "title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug": { + "name": "slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "slug_lock": { + "name": "slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "content": { + "name": "content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "thumb_id": { + "name": "thumb_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "image_id": { + "name": "image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "launchweek": { + "name": "launchweek", + "type": "enum_posts_launchweek", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "reading_time": { + "name": "reading_time", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "date": { + "name": "date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "toc_depth": { + "name": "toc_depth", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 2 + }, + "description": { + "name": "description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "meta_title": { + "name": "meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "meta_image_id": { + "name": "meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "meta_description": { + "name": "meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "published_at": { + "name": "published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "_status": { + "name": "_status", + "type": "enum_posts_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + } + }, + "indexes": { + "posts_slug_idx": { + "name": "posts_slug_idx", + "columns": [ + { + "expression": "slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_thumb_idx": { + "name": "posts_thumb_idx", + "columns": [ + { + "expression": "thumb_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_image_idx": { + "name": "posts_image_idx", + "columns": [ + { + "expression": "image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_meta_meta_image_idx": { + "name": "posts_meta_meta_image_idx", + "columns": [ + { + "expression": "meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_updated_at_idx": { + "name": "posts_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_created_at_idx": { + "name": "posts_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts__status_idx": { + "name": "posts__status_idx", + "columns": [ + { + "expression": "_status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "posts_thumb_id_media_id_fk": { + "name": "posts_thumb_id_media_id_fk", + "tableFrom": "posts", + "tableTo": "media", + "columnsFrom": [ + "thumb_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "posts_image_id_media_id_fk": { + "name": "posts_image_id_media_id_fk", + "tableFrom": "posts", + "tableTo": "media", + "columnsFrom": [ + "image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "posts_meta_image_id_media_id_fk": { + "name": "posts_meta_image_id_media_id_fk", + "tableFrom": "posts", + "tableTo": "media", + "columnsFrom": [ + "meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.posts_rels": { + "name": "posts_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "categories_id": { + "name": "categories_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tags_id": { + "name": "tags_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "posts_rels_order_idx": { + "name": "posts_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_parent_idx": { + "name": "posts_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_path_idx": { + "name": "posts_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_categories_id_idx": { + "name": "posts_rels_categories_id_idx", + "columns": [ + { + "expression": "categories_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_authors_id_idx": { + "name": "posts_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "posts_rels_tags_id_idx": { + "name": "posts_rels_tags_id_idx", + "columns": [ + { + "expression": "tags_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "posts_rels_parent_fk": { + "name": "posts_rels_parent_fk", + "tableFrom": "posts_rels", + "tableTo": "posts", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "posts_rels_categories_fk": { + "name": "posts_rels_categories_fk", + "tableFrom": "posts_rels", + "tableTo": "categories", + "columnsFrom": [ + "categories_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "posts_rels_authors_fk": { + "name": "posts_rels_authors_fk", + "tableFrom": "posts_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "posts_rels_tags_fk": { + "name": "posts_rels_tags_fk", + "tableFrom": "posts_rels", + "tableTo": "tags", + "columnsFrom": [ + "tags_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._posts_v": { + "name": "_posts_v", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_title": { + "name": "version_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug": { + "name": "version_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_slug_lock": { + "name": "version_slug_lock", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": true + }, + "version_content": { + "name": "version_content", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "version_thumb_id": { + "name": "version_thumb_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_image_id": { + "name": "version_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_launchweek": { + "name": "version_launchweek", + "type": "enum__posts_v_version_launchweek", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "version_reading_time": { + "name": "version_reading_time", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "version_date": { + "name": "version_date", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_toc_depth": { + "name": "version_toc_depth", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 2 + }, + "version_description": { + "name": "version_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_meta_title": { + "name": "version_meta_title", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_meta_image_id": { + "name": "version_meta_image_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "version_meta_description": { + "name": "version_meta_description", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "version_published_at": { + "name": "version_published_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_updated_at": { + "name": "version_updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version_created_at": { + "name": "version_created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "version__status": { + "name": "version__status", + "type": "enum__posts_v_version_status", + "typeSchema": "public", + "primaryKey": false, + "notNull": false, + "default": "'draft'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "latest": { + "name": "latest", + "type": "boolean", + "primaryKey": false, + "notNull": false + }, + "autosave": { + "name": "autosave", + "type": "boolean", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_posts_v_parent_idx": { + "name": "_posts_v_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_slug_idx": { + "name": "_posts_v_version_version_slug_idx", + "columns": [ + { + "expression": "version_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_thumb_idx": { + "name": "_posts_v_version_version_thumb_idx", + "columns": [ + { + "expression": "version_thumb_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_image_idx": { + "name": "_posts_v_version_version_image_idx", + "columns": [ + { + "expression": "version_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_meta_version_meta_image_idx": { + "name": "_posts_v_version_meta_version_meta_image_idx", + "columns": [ + { + "expression": "version_meta_image_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_updated_at_idx": { + "name": "_posts_v_version_version_updated_at_idx", + "columns": [ + { + "expression": "version_updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version_created_at_idx": { + "name": "_posts_v_version_version_created_at_idx", + "columns": [ + { + "expression": "version_created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_version_version__status_idx": { + "name": "_posts_v_version_version__status_idx", + "columns": [ + { + "expression": "version__status", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_created_at_idx": { + "name": "_posts_v_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_updated_at_idx": { + "name": "_posts_v_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_latest_idx": { + "name": "_posts_v_latest_idx", + "columns": [ + { + "expression": "latest", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_autosave_idx": { + "name": "_posts_v_autosave_idx", + "columns": [ + { + "expression": "autosave", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_posts_v_parent_id_posts_id_fk": { + "name": "_posts_v_parent_id_posts_id_fk", + "tableFrom": "_posts_v", + "tableTo": "posts", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_posts_v_version_thumb_id_media_id_fk": { + "name": "_posts_v_version_thumb_id_media_id_fk", + "tableFrom": "_posts_v", + "tableTo": "media", + "columnsFrom": [ + "version_thumb_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_posts_v_version_image_id_media_id_fk": { + "name": "_posts_v_version_image_id_media_id_fk", + "tableFrom": "_posts_v", + "tableTo": "media", + "columnsFrom": [ + "version_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + }, + "_posts_v_version_meta_image_id_media_id_fk": { + "name": "_posts_v_version_meta_image_id_media_id_fk", + "tableFrom": "_posts_v", + "tableTo": "media", + "columnsFrom": [ + "version_meta_image_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "set null", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public._posts_v_rels": { + "name": "_posts_v_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "categories_id": { + "name": "categories_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tags_id": { + "name": "tags_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "_posts_v_rels_order_idx": { + "name": "_posts_v_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_parent_idx": { + "name": "_posts_v_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_path_idx": { + "name": "_posts_v_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_categories_id_idx": { + "name": "_posts_v_rels_categories_id_idx", + "columns": [ + { + "expression": "categories_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_authors_id_idx": { + "name": "_posts_v_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "_posts_v_rels_tags_id_idx": { + "name": "_posts_v_rels_tags_id_idx", + "columns": [ + { + "expression": "tags_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "_posts_v_rels_parent_fk": { + "name": "_posts_v_rels_parent_fk", + "tableFrom": "_posts_v_rels", + "tableTo": "_posts_v", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_posts_v_rels_categories_fk": { + "name": "_posts_v_rels_categories_fk", + "tableFrom": "_posts_v_rels", + "tableTo": "categories", + "columnsFrom": [ + "categories_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_posts_v_rels_authors_fk": { + "name": "_posts_v_rels_authors_fk", + "tableFrom": "_posts_v_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "_posts_v_rels_tags_fk": { + "name": "_posts_v_rels_tags_fk", + "tableFrom": "_posts_v_rels", + "tableTo": "tags", + "columnsFrom": [ + "tags_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.tags": { + "name": "tags", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "tags_updated_at_idx": { + "name": "tags_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "tags_created_at_idx": { + "name": "tags_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users_roles": { + "name": "users_roles", + "schema": "", + "columns": { + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "value": { + "name": "value", + "type": "enum_users_roles", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + } + }, + "indexes": { + "users_roles_order_idx": { + "name": "users_roles_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_roles_parent_idx": { + "name": "users_roles_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "users_roles_parent_fk": { + "name": "users_roles_parent_fk", + "tableFrom": "users_roles", + "tableTo": "users", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users_sessions": { + "name": "users_sessions", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "expires_at": { + "name": "expires_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + } + }, + "indexes": { + "users_sessions_order_idx": { + "name": "users_sessions_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_sessions_parent_id_idx": { + "name": "users_sessions_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "users_sessions_parent_id_fk": { + "name": "users_sessions_parent_id_fk", + "tableFrom": "users_sessions", + "tableTo": "users", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "email": { + "name": "email", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "reset_password_token": { + "name": "reset_password_token", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "reset_password_expiration": { + "name": "reset_password_expiration", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "salt": { + "name": "salt", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "hash": { + "name": "hash", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "login_attempts": { + "name": "login_attempts", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "lock_until": { + "name": "lock_until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "users_updated_at_idx": { + "name": "users_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_created_at_idx": { + "name": "users_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "users_email_idx": { + "name": "users_email_idx", + "columns": [ + { + "expression": "email", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": true, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_jobs_log": { + "name": "payload_jobs_log", + "schema": "", + "columns": { + "_order": { + "name": "_order", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "_parent_id": { + "name": "_parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "id": { + "name": "id", + "type": "varchar", + "primaryKey": true, + "notNull": true + }, + "executed_at": { + "name": "executed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true + }, + "task_slug": { + "name": "task_slug", + "type": "enum_payload_jobs_log_task_slug", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "task_i_d": { + "name": "task_i_d", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "input": { + "name": "input", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "output": { + "name": "output", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "state": { + "name": "state", + "type": "enum_payload_jobs_log_state", + "typeSchema": "public", + "primaryKey": false, + "notNull": true + }, + "error": { + "name": "error", + "type": "jsonb", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_jobs_log_order_idx": { + "name": "payload_jobs_log_order_idx", + "columns": [ + { + "expression": "_order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_log_parent_id_idx": { + "name": "payload_jobs_log_parent_id_idx", + "columns": [ + { + "expression": "_parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_jobs_log_parent_id_fk": { + "name": "payload_jobs_log_parent_id_fk", + "tableFrom": "payload_jobs_log", + "tableTo": "payload_jobs", + "columnsFrom": [ + "_parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_jobs": { + "name": "payload_jobs", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "input": { + "name": "input", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "completed_at": { + "name": "completed_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "total_tried": { + "name": "total_tried", + "type": "numeric", + "primaryKey": false, + "notNull": false, + "default": 0 + }, + "has_error": { + "name": "has_error", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "error": { + "name": "error", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "task_slug": { + "name": "task_slug", + "type": "enum_payload_jobs_task_slug", + "typeSchema": "public", + "primaryKey": false, + "notNull": false + }, + "queue": { + "name": "queue", + "type": "varchar", + "primaryKey": false, + "notNull": false, + "default": "'default'" + }, + "wait_until": { + "name": "wait_until", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": false + }, + "processing": { + "name": "processing", + "type": "boolean", + "primaryKey": false, + "notNull": false, + "default": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_jobs_completed_at_idx": { + "name": "payload_jobs_completed_at_idx", + "columns": [ + { + "expression": "completed_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_total_tried_idx": { + "name": "payload_jobs_total_tried_idx", + "columns": [ + { + "expression": "total_tried", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_has_error_idx": { + "name": "payload_jobs_has_error_idx", + "columns": [ + { + "expression": "has_error", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_task_slug_idx": { + "name": "payload_jobs_task_slug_idx", + "columns": [ + { + "expression": "task_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_queue_idx": { + "name": "payload_jobs_queue_idx", + "columns": [ + { + "expression": "queue", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_wait_until_idx": { + "name": "payload_jobs_wait_until_idx", + "columns": [ + { + "expression": "wait_until", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_processing_idx": { + "name": "payload_jobs_processing_idx", + "columns": [ + { + "expression": "processing", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_updated_at_idx": { + "name": "payload_jobs_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_jobs_created_at_idx": { + "name": "payload_jobs_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_locked_documents": { + "name": "payload_locked_documents", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "global_slug": { + "name": "global_slug", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_locked_documents_global_slug_idx": { + "name": "payload_locked_documents_global_slug_idx", + "columns": [ + { + "expression": "global_slug", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_updated_at_idx": { + "name": "payload_locked_documents_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_created_at_idx": { + "name": "payload_locked_documents_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_locked_documents_rels": { + "name": "payload_locked_documents_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "authors_id": { + "name": "authors_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "categories_id": { + "name": "categories_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "customers_id": { + "name": "customers_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "events_id": { + "name": "events_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "media_id": { + "name": "media_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "posts_id": { + "name": "posts_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "tags_id": { + "name": "tags_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "users_id": { + "name": "users_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "payload_jobs_id": { + "name": "payload_jobs_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_locked_documents_rels_order_idx": { + "name": "payload_locked_documents_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_parent_idx": { + "name": "payload_locked_documents_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_path_idx": { + "name": "payload_locked_documents_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_authors_id_idx": { + "name": "payload_locked_documents_rels_authors_id_idx", + "columns": [ + { + "expression": "authors_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_categories_id_idx": { + "name": "payload_locked_documents_rels_categories_id_idx", + "columns": [ + { + "expression": "categories_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_customers_id_idx": { + "name": "payload_locked_documents_rels_customers_id_idx", + "columns": [ + { + "expression": "customers_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_events_id_idx": { + "name": "payload_locked_documents_rels_events_id_idx", + "columns": [ + { + "expression": "events_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_media_id_idx": { + "name": "payload_locked_documents_rels_media_id_idx", + "columns": [ + { + "expression": "media_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_posts_id_idx": { + "name": "payload_locked_documents_rels_posts_id_idx", + "columns": [ + { + "expression": "posts_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_tags_id_idx": { + "name": "payload_locked_documents_rels_tags_id_idx", + "columns": [ + { + "expression": "tags_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_users_id_idx": { + "name": "payload_locked_documents_rels_users_id_idx", + "columns": [ + { + "expression": "users_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_locked_documents_rels_payload_jobs_id_idx": { + "name": "payload_locked_documents_rels_payload_jobs_id_idx", + "columns": [ + { + "expression": "payload_jobs_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_locked_documents_rels_parent_fk": { + "name": "payload_locked_documents_rels_parent_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "payload_locked_documents", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_authors_fk": { + "name": "payload_locked_documents_rels_authors_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "authors", + "columnsFrom": [ + "authors_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_categories_fk": { + "name": "payload_locked_documents_rels_categories_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "categories", + "columnsFrom": [ + "categories_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_customers_fk": { + "name": "payload_locked_documents_rels_customers_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "customers", + "columnsFrom": [ + "customers_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_events_fk": { + "name": "payload_locked_documents_rels_events_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "events", + "columnsFrom": [ + "events_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_media_fk": { + "name": "payload_locked_documents_rels_media_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "media", + "columnsFrom": [ + "media_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_posts_fk": { + "name": "payload_locked_documents_rels_posts_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "posts", + "columnsFrom": [ + "posts_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_tags_fk": { + "name": "payload_locked_documents_rels_tags_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "tags", + "columnsFrom": [ + "tags_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_users_fk": { + "name": "payload_locked_documents_rels_users_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "users", + "columnsFrom": [ + "users_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_locked_documents_rels_payload_jobs_fk": { + "name": "payload_locked_documents_rels_payload_jobs_fk", + "tableFrom": "payload_locked_documents_rels", + "tableTo": "payload_jobs", + "columnsFrom": [ + "payload_jobs_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_preferences": { + "name": "payload_preferences", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "key": { + "name": "key", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "value": { + "name": "value", + "type": "jsonb", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_preferences_key_idx": { + "name": "payload_preferences_key_idx", + "columns": [ + { + "expression": "key", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_updated_at_idx": { + "name": "payload_preferences_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_created_at_idx": { + "name": "payload_preferences_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_preferences_rels": { + "name": "payload_preferences_rels", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "order": { + "name": "order", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "parent_id": { + "name": "parent_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "path": { + "name": "path", + "type": "varchar", + "primaryKey": false, + "notNull": true + }, + "users_id": { + "name": "users_id", + "type": "integer", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "payload_preferences_rels_order_idx": { + "name": "payload_preferences_rels_order_idx", + "columns": [ + { + "expression": "order", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_parent_idx": { + "name": "payload_preferences_rels_parent_idx", + "columns": [ + { + "expression": "parent_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_path_idx": { + "name": "payload_preferences_rels_path_idx", + "columns": [ + { + "expression": "path", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_preferences_rels_users_id_idx": { + "name": "payload_preferences_rels_users_id_idx", + "columns": [ + { + "expression": "users_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "payload_preferences_rels_parent_fk": { + "name": "payload_preferences_rels_parent_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "payload_preferences", + "columnsFrom": [ + "parent_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + }, + "payload_preferences_rels_users_fk": { + "name": "payload_preferences_rels_users_fk", + "tableFrom": "payload_preferences_rels", + "tableTo": "users", + "columnsFrom": [ + "users_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.payload_migrations": { + "name": "payload_migrations", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar", + "primaryKey": false, + "notNull": false + }, + "batch": { + "name": "batch", + "type": "numeric", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + }, + "created_at": { + "name": "created_at", + "type": "timestamp(3) with time zone", + "primaryKey": false, + "notNull": true, + "default": "now()" + } + }, + "indexes": { + "payload_migrations_updated_at_idx": { + "name": "payload_migrations_updated_at_idx", + "columns": [ + { + "expression": "updated_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "payload_migrations_created_at_idx": { + "name": "payload_migrations_created_at_idx", + "columns": [ + { + "expression": "created_at", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": { + "public.enum_customers_industry": { + "name": "enum_customers_industry", + "schema": "public", + "values": [ + "healthcare", + "fintech", + "ecommerce", + "education", + "gaming", + "media", + "real-estate", + "saas", + "social", + "analytics", + "ai", + "developer-tools" + ] + }, + "public.enum_customers_supabase_products": { + "name": "enum_customers_supabase_products", + "schema": "public", + "values": [ + "database", + "auth", + "storage", + "realtime", + "functions", + "vector" + ] + }, + "public.enum_customers_company_size": { + "name": "enum_customers_company_size", + "schema": "public", + "values": [ + "startup", + "enterprise", + "indie_dev" + ] + }, + "public.enum_customers_region": { + "name": "enum_customers_region", + "schema": "public", + "values": [ + "Asia", + "Europe", + "North America", + "South America", + "Africa", + "Oceania" + ] + }, + "public.enum_customers_status": { + "name": "enum_customers_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__customers_v_version_industry": { + "name": "enum__customers_v_version_industry", + "schema": "public", + "values": [ + "healthcare", + "fintech", + "ecommerce", + "education", + "gaming", + "media", + "real-estate", + "saas", + "social", + "analytics", + "ai", + "developer-tools" + ] + }, + "public.enum__customers_v_version_supabase_products": { + "name": "enum__customers_v_version_supabase_products", + "schema": "public", + "values": [ + "database", + "auth", + "storage", + "realtime", + "functions", + "vector" + ] + }, + "public.enum__customers_v_version_company_size": { + "name": "enum__customers_v_version_company_size", + "schema": "public", + "values": [ + "startup", + "enterprise", + "indie_dev" + ] + }, + "public.enum__customers_v_version_region": { + "name": "enum__customers_v_version_region", + "schema": "public", + "values": [ + "Asia", + "Europe", + "North America", + "South America", + "Africa", + "Oceania" + ] + }, + "public.enum__customers_v_version_status": { + "name": "enum__customers_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_events_type": { + "name": "enum_events_type", + "schema": "public", + "values": [ + "conference", + "hackathon", + "launch-week", + "meetup", + "office-hours", + "talk", + "webinar", + "workshop", + "other" + ] + }, + "public.enum_events_timezone": { + "name": "enum_events_timezone", + "schema": "public", + "values": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "UTC" + ] + }, + "public.enum_events_link_target": { + "name": "enum_events_link_target", + "schema": "public", + "values": [ + "_self", + "_blank" + ] + }, + "public.enum_events_main_cta_target": { + "name": "enum_events_main_cta_target", + "schema": "public", + "values": [ + "_self", + "_blank" + ] + }, + "public.enum_events_status": { + "name": "enum_events_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__events_v_version_type": { + "name": "enum__events_v_version_type", + "schema": "public", + "values": [ + "conference", + "hackathon", + "launch-week", + "meetup", + "office-hours", + "talk", + "webinar", + "workshop", + "other" + ] + }, + "public.enum__events_v_version_timezone": { + "name": "enum__events_v_version_timezone", + "schema": "public", + "values": [ + "Africa/Abidjan", + "Africa/Accra", + "Africa/Addis_Ababa", + "Africa/Algiers", + "Africa/Asmara", + "Africa/Bamako", + "Africa/Bangui", + "Africa/Banjul", + "Africa/Bissau", + "Africa/Blantyre", + "Africa/Brazzaville", + "Africa/Bujumbura", + "Africa/Cairo", + "Africa/Casablanca", + "Africa/Ceuta", + "Africa/Conakry", + "Africa/Dakar", + "Africa/Dar_es_Salaam", + "Africa/Djibouti", + "Africa/Douala", + "Africa/El_Aaiun", + "Africa/Freetown", + "Africa/Gaborone", + "Africa/Harare", + "Africa/Johannesburg", + "Africa/Juba", + "Africa/Kampala", + "Africa/Khartoum", + "Africa/Kigali", + "Africa/Kinshasa", + "Africa/Lagos", + "Africa/Libreville", + "Africa/Lome", + "Africa/Luanda", + "Africa/Lubumbashi", + "Africa/Lusaka", + "Africa/Malabo", + "Africa/Maputo", + "Africa/Maseru", + "Africa/Mbabane", + "Africa/Mogadishu", + "Africa/Monrovia", + "Africa/Nairobi", + "Africa/Ndjamena", + "Africa/Niamey", + "Africa/Nouakchott", + "Africa/Ouagadougou", + "Africa/Porto-Novo", + "Africa/Sao_Tome", + "Africa/Tripoli", + "Africa/Tunis", + "Africa/Windhoek", + "America/Adak", + "America/Anchorage", + "America/Anguilla", + "America/Antigua", + "America/Araguaina", + "America/Argentina/Buenos_Aires", + "America/Argentina/Catamarca", + "America/Argentina/Cordoba", + "America/Argentina/Jujuy", + "America/Argentina/La_Rioja", + "America/Argentina/Mendoza", + "America/Argentina/Rio_Gallegos", + "America/Argentina/Salta", + "America/Argentina/San_Juan", + "America/Argentina/San_Luis", + "America/Argentina/Tucuman", + "America/Argentina/Ushuaia", + "America/Aruba", + "America/Asuncion", + "America/Atikokan", + "America/Bahia", + "America/Bahia_Banderas", + "America/Barbados", + "America/Belem", + "America/Belize", + "America/Blanc-Sablon", + "America/Boa_Vista", + "America/Bogota", + "America/Boise", + "America/Cambridge_Bay", + "America/Campo_Grande", + "America/Cancun", + "America/Caracas", + "America/Cayenne", + "America/Cayman", + "America/Chicago", + "America/Chihuahua", + "America/Costa_Rica", + "America/Creston", + "America/Cuiaba", + "America/Curacao", + "America/Danmarkshavn", + "America/Dawson", + "America/Dawson_Creek", + "America/Denver", + "America/Detroit", + "America/Dominica", + "America/Edmonton", + "America/Eirunepe", + "America/El_Salvador", + "America/Fort_Nelson", + "America/Fortaleza", + "America/Glace_Bay", + "America/Godthab", + "America/Goose_Bay", + "America/Grand_Turk", + "America/Grenada", + "America/Guadeloupe", + "America/Guatemala", + "America/Guayaquil", + "America/Guyana", + "America/Halifax", + "America/Havana", + "America/Hermosillo", + "America/Indiana/Indianapolis", + "America/Indiana/Knox", + "America/Indiana/Marengo", + "America/Indiana/Petersburg", + "America/Indiana/Tell_City", + "America/Indiana/Vevay", + "America/Indiana/Vincennes", + "America/Indiana/Winamac", + "America/Inuvik", + "America/Iqaluit", + "America/Jamaica", + "America/Juneau", + "America/Kentucky/Louisville", + "America/Kentucky/Monticello", + "America/Kralendijk", + "America/La_Paz", + "America/Lima", + "America/Los_Angeles", + "America/Lower_Princes", + "America/Maceio", + "America/Managua", + "America/Manaus", + "America/Marigot", + "America/Martinique", + "America/Matamoros", + "America/Mazatlan", + "America/Menominee", + "America/Merida", + "America/Metlakatla", + "America/Mexico_City", + "America/Miquelon", + "America/Moncton", + "America/Monterrey", + "America/Montevideo", + "America/Montserrat", + "America/Nassau", + "America/New_York", + "America/Nipigon", + "America/Nome", + "America/Noronha", + "America/North_Dakota/Beulah", + "America/North_Dakota/Center", + "America/North_Dakota/New_Salem", + "America/Ojinaga", + "America/Panama", + "America/Pangnirtung", + "America/Paramaribo", + "America/Phoenix", + "America/Port-au-Prince", + "America/Port_of_Spain", + "America/Porto_Velho", + "America/Puerto_Rico", + "America/Punta_Arenas", + "America/Rainy_River", + "America/Rankin_Inlet", + "America/Recife", + "America/Regina", + "America/Resolute", + "America/Rio_Branco", + "America/Santarem", + "America/Santiago", + "America/Santo_Domingo", + "America/Sao_Paulo", + "America/Scoresbysund", + "America/Sitka", + "America/St_Barthelemy", + "America/St_Johns", + "America/St_Kitts", + "America/St_Lucia", + "America/St_Thomas", + "America/St_Vincent", + "America/Swift_Current", + "America/Tegucigalpa", + "America/Thule", + "America/Thunder_Bay", + "America/Tijuana", + "America/Toronto", + "America/Tortola", + "America/Vancouver", + "America/Whitehorse", + "America/Winnipeg", + "America/Yakutat", + "America/Yellowknife", + "Antarctica/Casey", + "Antarctica/Davis", + "Antarctica/DumontDUrville", + "Antarctica/Macquarie", + "Antarctica/Mawson", + "Antarctica/McMurdo", + "Antarctica/Palmer", + "Antarctica/Rothera", + "Antarctica/Syowa", + "Antarctica/Troll", + "Antarctica/Vostok", + "Arctic/Longyearbyen", + "Asia/Aden", + "Asia/Almaty", + "Asia/Amman", + "Asia/Anadyr", + "Asia/Aqtau", + "Asia/Aqtobe", + "Asia/Ashgabat", + "Asia/Atyrau", + "Asia/Baghdad", + "Asia/Bahrain", + "Asia/Baku", + "Asia/Bangkok", + "Asia/Barnaul", + "Asia/Beirut", + "Asia/Bishkek", + "Asia/Brunei", + "Asia/Chita", + "Asia/Choibalsan", + "Asia/Colombo", + "Asia/Damascus", + "Asia/Dhaka", + "Asia/Dili", + "Asia/Dubai", + "Asia/Dushanbe", + "Asia/Famagusta", + "Asia/Gaza", + "Asia/Hebron", + "Asia/Ho_Chi_Minh", + "Asia/Hong_Kong", + "Asia/Hovd", + "Asia/Irkutsk", + "Asia/Istanbul", + "Asia/Jakarta", + "Asia/Jayapura", + "Asia/Jerusalem", + "Asia/Kabul", + "Asia/Kamchatka", + "Asia/Karachi", + "Asia/Kathmandu", + "Asia/Khandyga", + "Asia/Kolkata", + "Asia/Krasnoyarsk", + "Asia/Kuala_Lumpur", + "Asia/Kuching", + "Asia/Kuwait", + "Asia/Macau", + "Asia/Magadan", + "Asia/Makassar", + "Asia/Manila", + "Asia/Muscat", + "Asia/Nicosia", + "Asia/Novokuznetsk", + "Asia/Novosibirsk", + "Asia/Omsk", + "Asia/Oral", + "Asia/Phnom_Penh", + "Asia/Pontianak", + "Asia/Pyongyang", + "Asia/Qatar", + "Asia/Qostanay", + "Asia/Qyzylorda", + "Asia/Riyadh", + "Asia/Sakhalin", + "Asia/Samarkand", + "Asia/Seoul", + "Asia/Shanghai", + "Asia/Singapore", + "Asia/Srednekolymsk", + "Asia/Taipei", + "Asia/Tashkent", + "Asia/Tbilisi", + "Asia/Tehran", + "Asia/Thimphu", + "Asia/Tokyo", + "Asia/Tomsk", + "Asia/Ulaanbaatar", + "Asia/Urumqi", + "Asia/Ust-Nera", + "Asia/Vientiane", + "Asia/Vladivostok", + "Asia/Yakutsk", + "Asia/Yangon", + "Asia/Yekaterinburg", + "Asia/Yerevan", + "Atlantic/Azores", + "Atlantic/Bermuda", + "Atlantic/Canary", + "Atlantic/Cape_Verde", + "Atlantic/Faroe", + "Atlantic/Madeira", + "Atlantic/Reykjavik", + "Atlantic/South_Georgia", + "Atlantic/St_Helena", + "Atlantic/Stanley", + "Australia/Adelaide", + "Australia/Brisbane", + "Australia/Broken_Hill", + "Australia/Currie", + "Australia/Darwin", + "Australia/Eucla", + "Australia/Hobart", + "Australia/Lindeman", + "Australia/Lord_Howe", + "Australia/Melbourne", + "Australia/Perth", + "Australia/Sydney", + "Europe/Amsterdam", + "Europe/Andorra", + "Europe/Astrakhan", + "Europe/Athens", + "Europe/Belgrade", + "Europe/Berlin", + "Europe/Bratislava", + "Europe/Brussels", + "Europe/Bucharest", + "Europe/Budapest", + "Europe/Busingen", + "Europe/Chisinau", + "Europe/Copenhagen", + "Europe/Dublin", + "Europe/Gibraltar", + "Europe/Guernsey", + "Europe/Helsinki", + "Europe/Isle_of_Man", + "Europe/Istanbul", + "Europe/Jersey", + "Europe/Kaliningrad", + "Europe/Kiev", + "Europe/Kirov", + "Europe/Lisbon", + "Europe/Ljubljana", + "Europe/London", + "Europe/Luxembourg", + "Europe/Madrid", + "Europe/Malta", + "Europe/Mariehamn", + "Europe/Minsk", + "Europe/Monaco", + "Europe/Moscow", + "Europe/Oslo", + "Europe/Paris", + "Europe/Podgorica", + "Europe/Prague", + "Europe/Riga", + "Europe/Rome", + "Europe/Samara", + "Europe/San_Marino", + "Europe/Sarajevo", + "Europe/Saratov", + "Europe/Simferopol", + "Europe/Skopje", + "Europe/Sofia", + "Europe/Stockholm", + "Europe/Tallinn", + "Europe/Tirane", + "Europe/Ulyanovsk", + "Europe/Uzhgorod", + "Europe/Vaduz", + "Europe/Vatican", + "Europe/Vienna", + "Europe/Vilnius", + "Europe/Volgograd", + "Europe/Warsaw", + "Europe/Zagreb", + "Europe/Zaporozhye", + "Europe/Zurich", + "Indian/Antananarivo", + "Indian/Chagos", + "Indian/Christmas", + "Indian/Cocos", + "Indian/Comoro", + "Indian/Kerguelen", + "Indian/Mahe", + "Indian/Maldives", + "Indian/Mauritius", + "Indian/Mayotte", + "Indian/Reunion", + "Pacific/Apia", + "Pacific/Auckland", + "Pacific/Bougainville", + "Pacific/Chatham", + "Pacific/Chuuk", + "Pacific/Easter", + "Pacific/Efate", + "Pacific/Enderbury", + "Pacific/Fakaofo", + "Pacific/Fiji", + "Pacific/Funafuti", + "Pacific/Galapagos", + "Pacific/Gambier", + "Pacific/Guadalcanal", + "Pacific/Guam", + "Pacific/Honolulu", + "Pacific/Kiritimati", + "Pacific/Kosrae", + "Pacific/Kwajalein", + "Pacific/Majuro", + "Pacific/Marquesas", + "Pacific/Midway", + "Pacific/Nauru", + "Pacific/Niue", + "Pacific/Norfolk", + "Pacific/Noumea", + "Pacific/Pago_Pago", + "Pacific/Palau", + "Pacific/Pitcairn", + "Pacific/Pohnpei", + "Pacific/Port_Moresby", + "Pacific/Rarotonga", + "Pacific/Saipan", + "Pacific/Tahiti", + "Pacific/Tarawa", + "Pacific/Tongatapu", + "Pacific/Wake", + "Pacific/Wallis", + "UTC" + ] + }, + "public.enum__events_v_version_link_target": { + "name": "enum__events_v_version_link_target", + "schema": "public", + "values": [ + "_self", + "_blank" + ] + }, + "public.enum__events_v_version_main_cta_target": { + "name": "enum__events_v_version_main_cta_target", + "schema": "public", + "values": [ + "_self", + "_blank" + ] + }, + "public.enum__events_v_version_status": { + "name": "enum__events_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_posts_launchweek": { + "name": "enum_posts_launchweek", + "schema": "public", + "values": [ + "6", + "7", + "8", + "x", + "ga", + "12", + "13", + "14", + "15" + ] + }, + "public.enum_posts_status": { + "name": "enum_posts_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum__posts_v_version_launchweek": { + "name": "enum__posts_v_version_launchweek", + "schema": "public", + "values": [ + "6", + "7", + "8", + "x", + "ga", + "12", + "13", + "14", + "15" + ] + }, + "public.enum__posts_v_version_status": { + "name": "enum__posts_v_version_status", + "schema": "public", + "values": [ + "draft", + "published" + ] + }, + "public.enum_users_roles": { + "name": "enum_users_roles", + "schema": "public", + "values": [ + "admin", + "editor" + ] + }, + "public.enum_payload_jobs_log_task_slug": { + "name": "enum_payload_jobs_log_task_slug", + "schema": "public", + "values": [ + "inline", + "schedulePublish" + ] + }, + "public.enum_payload_jobs_log_state": { + "name": "enum_payload_jobs_log_state", + "schema": "public", + "values": [ + "failed", + "succeeded" + ] + }, + "public.enum_payload_jobs_task_slug": { + "name": "enum_payload_jobs_task_slug", + "schema": "public", + "values": [ + "inline", + "schedulePublish" + ] + } + }, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + } +} \ No newline at end of file diff --git a/apps/cms/src/migrations/20250808_145722_update_payload_migrations.ts b/apps/cms/src/migrations/20250808_145722_update_payload_migrations.ts new file mode 100644 index 00000000000..925b8cdb552 --- /dev/null +++ b/apps/cms/src/migrations/20250808_145722_update_payload_migrations.ts @@ -0,0 +1,21 @@ +import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres' + +export async function up({ db }: MigrateUpArgs): Promise { + await db.execute(sql` + CREATE TABLE "users_sessions" ( + "_order" integer NOT NULL, + "_parent_id" integer NOT NULL, + "id" varchar PRIMARY KEY NOT NULL, + "created_at" timestamp(3) with time zone, + "expires_at" timestamp(3) with time zone NOT NULL + ); + + ALTER TABLE "users_sessions" ADD CONSTRAINT "users_sessions_parent_id_fk" FOREIGN KEY ("_parent_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; + CREATE INDEX "users_sessions_order_idx" ON "users_sessions" USING btree ("_order"); + CREATE INDEX "users_sessions_parent_id_idx" ON "users_sessions" USING btree ("_parent_id");`) +} + +export async function down({ db, payload, req }: MigrateDownArgs): Promise { + await db.execute(sql` + DROP TABLE "users_sessions" CASCADE;`) +} diff --git a/apps/cms/src/migrations/index.ts b/apps/cms/src/migrations/index.ts index 9137c23dbd9..142575f5588 100644 --- a/apps/cms/src/migrations/index.ts +++ b/apps/cms/src/migrations/index.ts @@ -1,9 +1,21 @@ -import * as migration_20250529_103319 from './20250529_103319'; +import * as migration_20250619_155345 from './20250619_155345.ts'; +import * as migration_20250619_160549 from './20250619_160549.ts'; +import * as migration_20250808_145722_update_payload_migrations from './20250808_145722_update_payload_migrations.ts'; export const migrations = [ { - up: migration_20250529_103319.up, - down: migration_20250529_103319.down, - name: '20250529_103319' + up: migration_20250619_155345.up, + down: migration_20250619_155345.down, + name: '20250619_155345', + }, + { + up: migration_20250619_160549.up, + down: migration_20250619_160549.down, + name: '20250619_160549', + }, + { + up: migration_20250808_145722_update_payload_migrations.up, + down: migration_20250808_145722_update_payload_migrations.down, + name: '20250808_145722_update_payload_migrations' }, ]; diff --git a/apps/cms/src/payload-types.ts b/apps/cms/src/payload-types.ts index 60b5563ffb4..5b1b3b9600a 100644 --- a/apps/cms/src/payload-types.ts +++ b/apps/cms/src/payload-types.ts @@ -987,6 +987,13 @@ export interface User { hash?: string | null; loginAttempts?: number | null; lockUntil?: string | null; + sessions?: + | { + id: string; + createdAt?: string | null; + expiresAt: string; + }[] + | null; password?: string | null; } /** @@ -1454,6 +1461,13 @@ export interface UsersSelect { hash?: T; loginAttempts?: T; lockUntil?: T; + sessions?: + | T + | { + id?: T; + createdAt?: T; + expiresAt?: T; + }; } /** * This interface was referenced by `Config`'s JSON-Schema diff --git a/apps/cms/src/payload.config.ts b/apps/cms/src/payload.config.ts index 007ad5d8803..6c715330bb1 100644 --- a/apps/cms/src/payload.config.ts +++ b/apps/cms/src/payload.config.ts @@ -1,23 +1,78 @@ -import { postgresAdapter } from '@payloadcms/db-postgres' -import path from 'path' -import { buildConfig } from 'payload' -import { fileURLToPath } from 'url' +import path from 'node:path' +import { fileURLToPath } from 'node:url' import sharp from 'sharp' -import { plugins } from './plugins' -import { defaultLexical } from '@/fields/defaultLexical' -import { getServerSideURL } from './utilities/getURL' +import { postgresAdapter } from '@payloadcms/db-postgres' +import { payloadCloudPlugin } from '@payloadcms/payload-cloud' +import { nestedDocsPlugin } from '@payloadcms/plugin-nested-docs' +import { seoPlugin } from '@payloadcms/plugin-seo' +import { s3Storage } from '@payloadcms/storage-s3' +import { buildConfig, type Plugin } from 'payload' +import { defaultLexical } from './fields/defaultLexical.ts' +import { getServerSideURL } from './utilities/getURL.ts' -import { Authors } from './collections/Authors' -import { Categories } from './collections/Categories' -import { Customers } from './collections/Customers' -import { Events } from './collections/Events' -import { Media } from './collections/Media' -import { Posts } from './collections/Posts' -import { Tags } from './collections/Tags' -import { Users } from './collections/Users' +import type { GenerateTitle, GenerateURL } from '@payloadcms/plugin-seo/types' +import type { Customer, Event, Post } from './payload-types' + +import { Authors } from './collections/Authors.ts' +import { Categories } from './collections/Categories.ts' +import { Customers } from './collections/Customers/index.ts' +import { Events } from './collections/Events/index.ts' +import { Media } from './collections/Media.ts' +import { Posts } from './collections/Posts/index.ts' +import { Tags } from './collections/Tags.ts' +import { Users } from './collections/Users.ts' const filename = fileURLToPath(import.meta.url) const dirname = path.dirname(filename) +const siteName = 'Supabase' + +const generateTitle: GenerateTitle = ({ doc, collectionSlug }: any) => { + switch (collectionSlug) { + case 'customers': + return `${doc.name} | ${siteName} Customer Stories` + case 'events': + return `${doc.title} | ${siteName} Events` + case 'posts': + return doc.title + default: + return `${doc.title} | ${siteName}` + } +} + +const generateURL: GenerateURL = ({ doc }: any) => { + const url = getServerSideURL() + + return doc?.slug ? `${url}/${doc.slug}` : url +} + +const plugins: Plugin[] = [ + nestedDocsPlugin({ + collections: ['categories'], + generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ''), + }), + seoPlugin({ + generateTitle, + generateURL, + }), + payloadCloudPlugin(), + s3Storage({ + collections: { + media: { + prefix: 'media', + }, + }, + bucket: process.env.S3_BUCKET || '', + config: { + forcePathStyle: true, + credentials: { + accessKeyId: process.env.S3_ACCESS_KEY_ID || '', + secretAccessKey: process.env.S3_SECRET_ACCESS_KEY || '', + }, + region: process.env.S3_REGION, + endpoint: process.env.S3_ENDPOINT, + }, + }), +] export default buildConfig({ admin: { @@ -59,7 +114,7 @@ export default buildConfig({ pool: { connectionString: process.env.DATABASE_URI || '', }, - schemaName: 'cms-payload', + // schemaName: 'cms-payload', }), sharp, plugins, diff --git a/apps/cms/src/payload.migrate.config.ts b/apps/cms/src/payload.migrate.config.ts new file mode 100644 index 00000000000..6a37bfc6a8a --- /dev/null +++ b/apps/cms/src/payload.migrate.config.ts @@ -0,0 +1,11 @@ +import { postgresAdapter } from '@payloadcms/db-postgres' +import { buildConfig } from 'payload' + +export default buildConfig({ + secret: process.env.PAYLOAD_SECRET, + db: postgresAdapter({ + pool: { + connectionString: process.env.DATABASE_URI || '', + }, + }), +}) diff --git a/apps/cms/src/plugins/index.ts b/apps/cms/src/plugins/index.ts deleted file mode 100644 index 7d6390c8994..00000000000 --- a/apps/cms/src/plugins/index.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { payloadCloudPlugin } from '@payloadcms/payload-cloud' -// import { formBuilderPlugin } from '@payloadcms/plugin-form-builder' -import { nestedDocsPlugin } from '@payloadcms/plugin-nested-docs' -import { seoPlugin } from '@payloadcms/plugin-seo' -import { s3Storage } from '@payloadcms/storage-s3' -import { Plugin } from 'payload' -import { GenerateTitle, GenerateURL } from '@payloadcms/plugin-seo/types' -// import { FixedToolbarFeature, HeadingFeature, lexicalEditor } from '@payloadcms/richtext-lexical' - -import { Customer, Event, Post } from '@/payload-types' -import { getServerSideURL } from '@/utilities/getURL' - -const siteName = 'Supabase' - -const generateTitle: GenerateTitle = ({ doc, collectionSlug }) => { - switch (collectionSlug) { - case 'customers': - return `${doc.name} | ${siteName} Customer Stories` - case 'events': - return `${doc.title} | ${siteName} Events` - case 'posts': - return doc.title - default: - return `${doc.title} | ${siteName}` - } -} - -const generateURL: GenerateURL = ({ doc }) => { - const url = getServerSideURL() - - return doc?.slug ? `${url}/${doc.slug}` : url -} - -export const plugins: Plugin[] = [ - nestedDocsPlugin({ - collections: ['categories'], - generateURL: (docs) => docs.reduce((url, doc) => `${url}/${doc.slug}`, ''), - }), - seoPlugin({ - generateTitle, - generateURL, - }), - // formBuilderPlugin({ - // fields: { - // payment: false, - // }, - // formOverrides: { - // fields: ({ defaultFields }) => { - // return defaultFields.map((field) => { - // if ('name' in field && field.name === 'confirmationMessage') { - // return { - // ...field, - // editor: lexicalEditor({ - // features: ({ rootFeatures }) => { - // return [ - // ...rootFeatures, - // FixedToolbarFeature(), - // HeadingFeature({ enabledHeadingSizes: ['h1', 'h2', 'h3', 'h4'] }), - // ] - // }, - // }), - // } - // } - // return field - // }) - // }, - // }, - // }), - payloadCloudPlugin(), - s3Storage({ - collections: { - media: { - prefix: 'media', - }, - }, - bucket: process.env.S3_BUCKET || '', - config: { - forcePathStyle: true, - credentials: { - accessKeyId: process.env.S3_ACCESS_KEY_ID || '', - secretAccessKey: process.env.S3_SECRET_ACCESS_KEY || '', - }, - region: process.env.S3_REGION, - endpoint: process.env.S3_ENDPOINT, - }, - }), -] diff --git a/apps/cms/src/providers/HeaderTheme/index.tsx b/apps/cms/src/providers/HeaderTheme/index.tsx index e006c21c2e9..bf88fc5a71a 100644 --- a/apps/cms/src/providers/HeaderTheme/index.tsx +++ b/apps/cms/src/providers/HeaderTheme/index.tsx @@ -27,7 +27,11 @@ export const HeaderThemeProvider = ({ children }: { children: React.ReactNode }) setThemeState(themeToSet) }, []) - return {children} + return ( + + {children} + + ) } export const useHeaderTheme = (): ContextType => use(HeaderThemeContext) diff --git a/apps/cms/src/providers/Theme/index.tsx b/apps/cms/src/providers/Theme/index.tsx index 66e2f58635a..060abbac766 100644 --- a/apps/cms/src/providers/Theme/index.tsx +++ b/apps/cms/src/providers/Theme/index.tsx @@ -51,7 +51,7 @@ export const ThemeProvider = ({ children }: { children: React.ReactNode }) => { setThemeState(themeToSet) }, []) - return {children} + return {children} } export const useTheme = (): ThemeContextType => use(ThemeContext) diff --git a/apps/cms/src/providers/Theme/shared.ts b/apps/cms/src/providers/Theme/shared.ts index a038908183a..4d0b0042c2b 100644 --- a/apps/cms/src/providers/Theme/shared.ts +++ b/apps/cms/src/providers/Theme/shared.ts @@ -1,4 +1,4 @@ -import type { Theme } from './types' +import type { Theme } from './types.ts' export const themeLocalStorageKey = 'payload-theme' diff --git a/apps/cms/src/search/Component.tsx b/apps/cms/src/search/Component.tsx deleted file mode 100644 index 6c26847ff41..00000000000 --- a/apps/cms/src/search/Component.tsx +++ /dev/null @@ -1,41 +0,0 @@ -'use client' -import { Input } from '@/components/ui/input' -import { Label } from '@/components/ui/label' -import React, { useState, useEffect } from 'react' -import { useDebounce } from '@/utilities/useDebounce' -import { useRouter } from 'next/navigation' - -export const Search: React.FC = () => { - const [value, setValue] = useState('') - const router = useRouter() - - const debouncedValue = useDebounce(value) - - useEffect(() => { - router.push(`/search${debouncedValue ? `?q=${debouncedValue}` : ''}`) - }, [debouncedValue, router]) - - return ( -
-
{ - e.preventDefault() - }} - > - - { - setValue(event.target.value) - }} - placeholder="Search" - /> - -
-
- ) -} diff --git a/apps/cms/src/search/beforeSync.ts b/apps/cms/src/search/beforeSync.ts deleted file mode 100644 index aa421593abf..00000000000 --- a/apps/cms/src/search/beforeSync.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { BeforeSync, DocToSync } from '@payloadcms/plugin-search/types' - -export const beforeSyncWithSearch: BeforeSync = async ({ originalDoc, searchDoc }) => { - const { - doc: { relationTo: collection }, - } = searchDoc - - const { slug, id, categories, title, meta } = originalDoc - - const modifiedDoc: DocToSync = { - ...searchDoc, - slug, - meta: { - ...meta, - title: meta?.title || title, - image: meta?.image?.id || meta?.image, - description: meta?.description, - }, - categories: [], - } - - if (categories && Array.isArray(categories) && categories.length > 0) { - // get full categories and keep a flattened copy of their most important properties - try { - const mappedCategories = categories.map((category) => { - const { id, title } = category - - return { - relationTo: 'categories', - id, - title, - } - }) - - modifiedDoc.categories = mappedCategories - } catch (_err) { - console.error( - `Failed. Category not found when syncing collection '${collection}' with id: '${id}' to search.` - ) - } - } - - return modifiedDoc -} diff --git a/apps/cms/src/search/fieldOverrides.ts b/apps/cms/src/search/fieldOverrides.ts deleted file mode 100644 index 6d086cb95f1..00000000000 --- a/apps/cms/src/search/fieldOverrides.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Field } from 'payload' - -export const searchFields: Field[] = [ - { - name: 'slug', - type: 'text', - index: true, - admin: { - readOnly: true, - }, - }, - { - name: 'meta', - label: 'Meta', - type: 'group', - index: true, - admin: { - readOnly: true, - }, - fields: [ - { - type: 'text', - name: 'title', - label: 'Title', - }, - { - type: 'text', - name: 'description', - label: 'Description', - }, - { - name: 'image', - label: 'Image', - type: 'upload', - relationTo: 'media', - }, - ], - }, - { - label: 'Categories', - name: 'categories', - type: 'array', - admin: { - readOnly: true, - }, - fields: [ - { - name: 'relationTo', - type: 'text', - }, - { - name: 'id', - type: 'text', - }, - { - name: 'title', - type: 'text', - }, - ], - }, -] diff --git a/apps/cms/src/utilities/formatAuthors.ts b/apps/cms/src/utilities/formatAuthors.ts deleted file mode 100644 index 89b92a18a2c..00000000000 --- a/apps/cms/src/utilities/formatAuthors.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Post } from '@/payload-types' - -/** - * Formats an array of populatedAuthors from Posts into a prettified string. - * @param authors - The populatedAuthors array from a Post. - * @returns A prettified string of authors. - * @example - * - * [Author1, Author2] becomes 'Author1 and Author2' - * [Author1, Author2, Author3] becomes 'Author1, Author2, and Author3' - * - */ -export const formatAuthors = ( - authors: NonNullable[number]>[] -) => { - // Ensure we don't have any authors without a name - const authorNames = authors.map((author) => author.name).filter(Boolean) - - if (authorNames.length === 0) return '' - if (authorNames.length === 1) return authorNames[0] - if (authorNames.length === 2) return `${authorNames[0]} and ${authorNames[1]}` - - return `${authorNames.slice(0, -1).join(', ')} and ${authorNames[authorNames.length - 1]}` -} diff --git a/apps/cms/src/utilities/generateMeta.ts b/apps/cms/src/utilities/generateMeta.ts index f5b571d82bb..bde0b59da52 100644 --- a/apps/cms/src/utilities/generateMeta.ts +++ b/apps/cms/src/utilities/generateMeta.ts @@ -2,8 +2,8 @@ import type { Metadata } from 'next' import type { Media, Post, Config } from '../payload-types' -import { mergeOpenGraph } from './mergeOpenGraph' -import { getServerSideURL } from './getURL' +import { mergeOpenGraph } from './mergeOpenGraph.ts' +import { getServerSideURL } from './getURL.ts' const getImageURL = (image?: Media | Config['db']['defaultIDType'] | null) => { const serverUrl = getServerSideURL() diff --git a/apps/cms/src/utilities/generatePreviewPath.ts b/apps/cms/src/utilities/generatePreviewPath.ts index 6a2322df007..230edef6508 100644 --- a/apps/cms/src/utilities/generatePreviewPath.ts +++ b/apps/cms/src/utilities/generatePreviewPath.ts @@ -2,7 +2,6 @@ import { PayloadRequest, CollectionSlug } from 'payload' const collectionPrefixMap: Partial> = { posts: '/blog', - pages: '', } type Props = { diff --git a/apps/cms/src/utilities/getDocument.ts b/apps/cms/src/utilities/getDocument.ts index 0dcb5ed4273..31e79ed4ead 100644 --- a/apps/cms/src/utilities/getDocument.ts +++ b/apps/cms/src/utilities/getDocument.ts @@ -2,7 +2,7 @@ import type { Config } from 'src/payload-types' import configPromise from '@payload-config' import { getPayload } from 'payload' -import { unstable_cache } from 'next/cache' +// Do not import next/cache at module scope to keep migrate step Node-compatible type Collection = keyof Config['collections'] @@ -25,7 +25,16 @@ async function getDocument(collection: Collection, slug: string, depth = 0) { /** * Returns a unstable_cache function mapped with the cache tag for the slug */ -export const getCachedDocument = (collection: Collection, slug: string) => - unstable_cache(async () => getDocument(collection, slug), [collection, slug], { - tags: [`${collection}_${slug}`], - }) +export const getCachedDocument = (collection: Collection, slug: string) => { + return async () => { + try { + const { unstable_cache } = await import('next/cache') + const cached = unstable_cache(async () => getDocument(collection, slug), [collection, slug], { + tags: [`${collection}_${slug}`], + }) + return cached() + } catch { + return getDocument(collection, slug) + } + } +} diff --git a/apps/cms/src/utilities/getGlobals.ts b/apps/cms/src/utilities/getGlobals.ts index d37a2aa03c8..39d6830b195 100644 --- a/apps/cms/src/utilities/getGlobals.ts +++ b/apps/cms/src/utilities/getGlobals.ts @@ -2,7 +2,7 @@ import type { Config } from 'src/payload-types' import configPromise from '@payload-config' import { getPayload } from 'payload' -import { unstable_cache } from 'next/cache' +// Do not import next/cache at module scope to keep migrate step Node-compatible type Global = keyof Config['globals'] @@ -20,7 +20,16 @@ async function getGlobal(slug: Global, depth = 0) { /** * Returns a unstable_cache function mapped with the cache tag for the slug */ -export const getCachedGlobal = (slug: Global, depth = 0) => - unstable_cache(async () => getGlobal(slug, depth), [slug], { - tags: [`global_${slug}`], - }) +export const getCachedGlobal = (slug: Global, depth = 0) => { + return async () => { + try { + const { unstable_cache } = await import('next/cache') + const cached = unstable_cache(async () => getGlobal(slug, depth), [slug], { + tags: [`global_${slug}`], + }) + return cached() + } catch { + return getGlobal(slug, depth) + } + } +} diff --git a/apps/cms/src/utilities/getMeUser.ts b/apps/cms/src/utilities/getMeUser.ts index ad9e5c1dfe7..6ce8100c794 100644 --- a/apps/cms/src/utilities/getMeUser.ts +++ b/apps/cms/src/utilities/getMeUser.ts @@ -2,7 +2,7 @@ import { cookies } from 'next/headers' import { redirect } from 'next/navigation' import type { User } from '../payload-types' -import { getClientSideURL } from './getURL' +import { getClientSideURL } from './getURL.ts' export const getMeUser = async (args?: { nullUserRedirect?: string diff --git a/apps/cms/src/utilities/getRedirects.ts b/apps/cms/src/utilities/getRedirects.ts deleted file mode 100644 index 8eac7f2cf5b..00000000000 --- a/apps/cms/src/utilities/getRedirects.ts +++ /dev/null @@ -1,26 +0,0 @@ -import configPromise from '@payload-config' -import { getPayload } from 'payload' -import { unstable_cache } from 'next/cache' - -export async function getRedirects(depth = 1) { - const payload = await getPayload({ config: configPromise }) - - const { docs: redirects } = await payload.find({ - collection: 'redirects', - depth, - limit: 0, - pagination: false, - }) - - return redirects -} - -/** - * Returns a unstable_cache function mapped with the cache tag for 'redirects'. - * - * Cache all redirects together to avoid multiple fetches. - */ -export const getCachedRedirects = () => - unstable_cache(async () => getRedirects(), ['redirects'], { - tags: ['redirects'], - }) diff --git a/apps/cms/src/utilities/getURL.ts b/apps/cms/src/utilities/getURL.ts index c05c13ee789..e7622965ac8 100644 --- a/apps/cms/src/utilities/getURL.ts +++ b/apps/cms/src/utilities/getURL.ts @@ -1,4 +1,4 @@ -import canUseDOM from './canUseDOM' +import canUseDOM from './canUseDOM.ts' export const getServerSideURL = () => { let url = process.env.NEXT_PUBLIC_SERVER_URL @@ -8,7 +8,7 @@ export const getServerSideURL = () => { } if (!url) { - url = 'http://localhost:3000' + url = 'http://localhost:3030' } return url diff --git a/apps/cms/src/utilities/mergeOpenGraph.ts b/apps/cms/src/utilities/mergeOpenGraph.ts index a331a2a15b6..0ec43bb8d1b 100644 --- a/apps/cms/src/utilities/mergeOpenGraph.ts +++ b/apps/cms/src/utilities/mergeOpenGraph.ts @@ -1,5 +1,5 @@ import type { Metadata } from 'next' -import { getServerSideURL } from './getURL' +import { getServerSideURL } from './getURL.ts' const defaultOpenGraph: Metadata['openGraph'] = { type: 'website', diff --git a/apps/cms/supabase/config.toml b/apps/cms/supabase/config.toml index 255373749f1..f12262c6548 100644 --- a/apps/cms/supabase/config.toml +++ b/apps/cms/supabase/config.toml @@ -2,12 +2,12 @@ # https://supabase.com/docs/guides/local-development/cli/config # A string used to distinguish different Supabase projects on the same host. Defaults to the # working directory name when running `supabase init`. -project_id = "cms-payload" +project_id = "cms" [api] enabled = true # Port to use for the API URL. -port = 54321 +port = 34321 # Schemas to expose in your API. Tables, views and stored procedures in this schema will get API # endpoints. `public` and `graphql_public` schemas are included by default. schemas = ["public", "graphql_public"] @@ -23,17 +23,17 @@ enabled = false [db] # Port to use for the local database URL. -port = 54322 +port = 34322 # Port used by db diff command to initialize the shadow database. -shadow_port = 54320 +shadow_port = 34320 # The database major version to use. This has to be the same as your remote database's. Run `SHOW # server_version;` on the remote database to check. -major_version = 15 +major_version = 17 [db.pooler] enabled = false # Port to use for the local connection pooler. -port = 54329 +port = 34329 # Specifies when a server connection can be reused by other clients. # Configure one of the supported pooler modes: `transaction`, `session`. pool_mode = "transaction" @@ -46,6 +46,8 @@ max_client_conn = 100 # secret_key = "env(SECRET_VALUE)" [db.migrations] +# If disabled, migrations will be skipped during a db push or reset. +enabled = true # Specifies an ordered list of schema files that describe your database. # Supports glob patterns relative to supabase directory: "./schemas/*.sql" schema_paths = [] @@ -57,6 +59,16 @@ enabled = true # Supports glob patterns relative to supabase directory: "./seeds/*.sql" sql_paths = ["./seed.sql"] +[db.network_restrictions] +# Enable management of network restrictions. +enabled = false +# List of IPv4 CIDR blocks allowed to connect to the database. +# Defaults to allow all IPv4 connections. Set empty array to block all IPs. +allowed_cidrs = ["0.0.0.0/0"] +# List of IPv6 CIDR blocks allowed to connect to the database. +# Defaults to allow all IPv6 connections. Set empty array to block all IPs. +allowed_cidrs_v6 = ["::/0"] + [realtime] enabled = true # Bind realtime via either IPv4 or IPv6. (default: IPv4) @@ -67,7 +79,7 @@ enabled = true [studio] enabled = true # Port to use for Supabase Studio. -port = 54323 +port = 34323 # External URL of the API server that frontend connects to. api_url = "http://127.0.0.1" # OpenAI API Key to use for Supabase AI in the Supabase Studio. @@ -78,10 +90,10 @@ openai_api_key = "env(OPENAI_API_KEY)" [inbucket] enabled = true # Port to use for the email testing server web interface. -port = 54324 +port = 34324 # Uncomment to expose additional ports for testing user applications that send emails. -# smtp_port = 54325 -# pop3_port = 54326 +# smtp_port = 34325 +# pop3_port = 34326 # admin_email = "admin@email.com" # sender_name = "Admin" @@ -110,6 +122,8 @@ site_url = "http://127.0.0.1:3000" additional_redirect_urls = ["https://127.0.0.1:3000"] # How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week). jwt_expiry = 3600 +# Path to JWT signing key. DO NOT commit your signing keys file to git. +# signing_keys_path = "./signing_keys.json" # If disabled, the refresh token will never expire. enable_refresh_token_rotation = true # Allows refresh tokens to be reused after expiry, up to the specified interval in seconds. @@ -140,6 +154,8 @@ token_refresh = 150 sign_in_sign_ups = 30 # Number of OTP / Magic link verifications that can be made in a 5 minute interval per IP address. token_verifications = 30 +# Number of Web3 logins that can be made in a 5 minute interval per IP address. +web3 = 30 # Configure one of the supported captcha providers: `hcaptcha`, `turnstile`. # [auth.captcha] @@ -200,6 +216,11 @@ max_frequency = "5s" # Force log out if the user has been inactive longer than the specified duration. # inactivity_timeout = "8h" +# This hook runs before a new user is created and allows developers to reject the request based on the incoming user object. +# [auth.hook.before_user_created] +# enabled = true +# uri = "pg-functions://postgres/auth/before-user-created-hook" + # This hook runs before a token is issued and allows you to add additional claims based on the authentication method used. # [auth.hook.custom_access_token] # enabled = true @@ -252,6 +273,11 @@ url = "" # If enabled, the nonce check will be skipped. Required for local sign in with Google auth. skip_nonce_check = false +# Allow Solana wallet holders to sign in to your project via the Sign in with Solana (SIWS, EIP-4361) standard. +# You can configure "web3" rate limit in the [auth.rate_limit] section and set up [auth.captcha] if self-hosting. +[auth.web3.solana] +enabled = false + # Use Firebase Auth as a third-party provider alongside Supabase Auth. [auth.third_party.firebase] enabled = false @@ -276,7 +302,7 @@ enabled = false # domain = "example.clerk.accounts.dev" [edge_runtime] -enabled = true +enabled = false # Configure one of the supported request policies: `oneshot`, `per_worker`. # Use `oneshot` for hot reload, or `per_worker` for load testing. policy = "oneshot" @@ -289,8 +315,8 @@ deno_version = 1 # secret_key = "env(SECRET_VALUE)" [analytics] -enabled = true -port = 54327 +enabled = false +port = 34327 # Configure one of the supported backends: `postgres`, `bigquery`. backend = "postgres" diff --git a/apps/cms/tsconfig.json b/apps/cms/tsconfig.json index 2943d23d22c..5a66dbfae8e 100644 --- a/apps/cms/tsconfig.json +++ b/apps/cms/tsconfig.json @@ -1,10 +1,8 @@ { "compilerOptions": { - /* Strictness */ "strict": true, "noUncheckedIndexedAccess": true, "noImplicitOverride": true, - "baseUrl": ".", "esModuleInterop": true, "target": "ES2022", @@ -18,6 +16,7 @@ "jsx": "preserve", "module": "esnext", "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "resolveJsonModule": true, "sourceMap": true, "isolatedModules": true, diff --git a/apps/cms/vercel.json b/apps/cms/vercel.json new file mode 100644 index 00000000000..fd0cbd73ac1 --- /dev/null +++ b/apps/cms/vercel.json @@ -0,0 +1,5 @@ +{ + "$schema": "https://openapi.vercel.sh/vercel.json", + "buildCommand": "pnpm vercel-build", + "installCommand": "pnpm install" +} diff --git a/package.json b/package.json index 8f9346a77fb..110e5692473 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,6 @@ "@tanstack/directive-functions-plugin>vite": "catalog:", "@tanstack/react-start-plugin>vite": "catalog:", "esbuild": "^0.25.2", - "payload>image-size": "1.2.1", "@redocly/respect-core>form-data": "^4.0.4" }, "neverBuiltDependencies": ["libpg-query"] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b903ee65287..fd0c6fd2157 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,7 +45,6 @@ overrides: '@tanstack/directive-functions-plugin>vite': ^6.2.7 '@tanstack/react-start-plugin>vite': ^6.2.7 esbuild: ^0.25.2 - payload>image-size: 1.2.1 '@redocly/respect-core>form-data': ^4.0.4 importers: @@ -88,36 +87,57 @@ importers: apps/cms: dependencies: + '@payloadcms/admin-bar': + specifier: ^3.50.0 + version: 3.50.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@payloadcms/db-postgres': - specifier: 3.33.0 - version: 3.33.0(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/react@18.3.3)(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react@18.3.1)(supports-color@8.1.1) + specifier: ^3.50.0 + version: 3.50.0(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(supports-color@8.1.1) '@payloadcms/live-preview-react': - specifier: ^3.33.0 - version: 3.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^3.50.0 + version: 3.50.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@payloadcms/next': - specifier: 3.33.0 - version: 3.33.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + specifier: 3.50.0 + version: 3.50.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) '@payloadcms/payload-cloud': - specifier: 3.33.0 - version: 3.33.0(encoding@0.1.13)(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3)) + specifier: 3.50.0 + version: 3.50.0(encoding@0.1.13)(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3)) '@payloadcms/plugin-form-builder': - specifier: 3.33.0 - version: 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + specifier: 3.50.0 + version: 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) '@payloadcms/plugin-nested-docs': - specifier: 3.33.0 - version: 3.33.0(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3)) + specifier: 3.50.0 + version: 3.50.0(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3)) '@payloadcms/plugin-seo': - specifier: 3.33.0 - version: 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + specifier: 3.50.0 + version: 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) '@payloadcms/richtext-lexical': - specifier: 3.33.0 - version: 3.33.0(@faceless-ui/modal@3.0.0-beta.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@faceless-ui/scroll-info@2.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@payloadcms/next@3.33.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3))(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)(yjs@13.6.27) + specifier: 3.50.0 + version: 3.50.0(@faceless-ui/modal@3.0.0-beta.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@faceless-ui/scroll-info@2.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@payloadcms/next@3.50.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3))(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)(yjs@13.6.27) '@payloadcms/storage-s3': - specifier: 3.33.0 - version: 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + specifier: 3.50.0 + version: 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) '@payloadcms/ui': - specifier: 3.33.0 - version: 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + specifier: 3.50.0 + version: 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + '@radix-ui/react-checkbox': + specifier: ^1.3.2 + version: 1.3.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-label': + specifier: ^2.1.7 + version: 2.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-select': + specifier: ^2.0.0 + version: 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': + specifier: ^1.2.3 + version: 1.2.3(@types/react@18.3.3)(react@18.3.1) + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^1.2.1 + version: 1.2.1 common: specifier: workspace:* version: link:../../packages/common @@ -131,14 +151,26 @@ importers: specifier: workspace:* version: link:../../packages/eslint-config-supabase graphql: - specifier: ^16.8.1 + specifier: ^16.11.0 version: 16.11.0 + image-size: + specifier: 2.0.2 + version: 2.0.2 + lucide-react: + specifier: ^0.511.0 + version: 0.511.0(react@18.3.1) next: specifier: 'catalog:' version: 15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) payload: - specifier: 3.33.0 - version: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + specifier: 3.50.0 + version: 3.50.0(graphql@16.11.0)(typescript@5.7.3) + pg: + specifier: ^8.16.3 + version: 8.16.3 + prism-react-renderer: + specifier: ^2.3.1 + version: 2.3.1(react@18.3.1) react: specifier: 'catalog:' version: 18.3.1 @@ -148,6 +180,9 @@ importers: sharp: specifier: 0.32.6 version: 0.32.6 + tailwind-merge: + specifier: ^1.13.2 + version: 1.14.0 devDependencies: '@types/node': specifier: 'catalog:' @@ -158,6 +193,9 @@ importers: '@types/react-dom': specifier: 'catalog:' version: 18.3.0 + tsx: + specifier: ^4.19.3 + version: 4.19.3 typescript: specifier: 5.7.3 version: 5.7.3 @@ -1412,7 +1450,7 @@ importers: version: 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-start': specifier: ^1.114.25 - version: 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) + version: 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) '@types/common-tags': specifier: ^1.8.4 version: 1.8.4 @@ -1798,10 +1836,10 @@ importers: version: 5.5.2 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) + version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) packages/api-types: devDependencies: @@ -1985,7 +2023,7 @@ importers: version: 8.11.11 '@vitest/coverage-v8': specifier: ^3.0.9 - version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5)) + version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5)) npm-run-all: specifier: ^4.1.5 version: 4.1.5 @@ -2000,10 +2038,10 @@ importers: version: 5.5.2 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) + version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) packages/shared-data: {} @@ -2221,7 +2259,7 @@ importers: version: 15.5.7 '@vitest/coverage-v8': specifier: ^3.0.9 - version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5)) + version: 3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5)) common: specifier: workspace:* version: link:../common @@ -2242,10 +2280,10 @@ importers: version: 5.5.2 vite: specifier: 'catalog:' - version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) + version: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) vitest: specifier: ^3.0.5 - version: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) + version: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) packages/ui-patterns: dependencies: @@ -3333,9 +3371,6 @@ packages: '@emotion/cache@11.14.0': resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} - '@emotion/css@11.13.5': - resolution: {integrity: sha512-wQdD0Xhkn3Qy2VNcIzbLP9MR8TafI0MJb7BEAXKp+w4+XqErksWR4OXomuDzPsN4InLdGhVe6EYcn2ZIUCpB8w==} - '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} @@ -3659,12 +3694,6 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/react-dom@2.1.2': - resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - '@floating-ui/react-dom@2.1.3': resolution: {integrity: sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==} peerDependencies: @@ -4506,9 +4535,6 @@ packages: '@next/bundle-analyzer@15.3.1': resolution: {integrity: sha512-NqUZrjVruGbdQaPE3OSEXP+ZuULqumeHVTuU9pOX1V0/9BWY9FOck3jgQGFdBtG41nOYuO8+CoHKDQAVIPQJrw==} - '@next/env@15.3.1': - resolution: {integrity: sha512-cwK27QdzrMblHSn9DZRV+DQscHXRuJv6MydlJRpFSqJWZrTYMLzKDeyueJNN9MGd8NNiUKzDQADAf+dMLXX7YQ==} - '@next/env@15.3.3': resolution: {integrity: sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==} @@ -5188,103 +5214,109 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} - '@payloadcms/db-postgres@3.33.0': - resolution: {integrity: sha512-lJ3gXIrxr0rSFc3AqWpZD/9qkjLj6EWEzZanQsRuaizeOXCk+Z64JM4rmHxmyKu3QFxG/LRhwbyxYDk00ZFNGw==} + '@payloadcms/admin-bar@3.50.0': + resolution: {integrity: sha512-q9DzV5+rIyFsogkk5yndmEIENaCsWSknKelPlvMSvbhmX3SVFpWVCMHpN8zBojMjgBlC1DbasSS7msdlDIyZCw==} peerDependencies: - payload: 3.33.0 + 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 - '@payloadcms/drizzle@3.33.0': - resolution: {integrity: sha512-M+twNVoAzh6cC833gjwkvlVJdFAaasLGCR4uX4ijJ4DV9qkEXuMZcqSj3CD6LIGLKQpnPOccJ4QmeYSQ8V6uKQ==} + '@payloadcms/db-postgres@3.50.0': + resolution: {integrity: sha512-Uvnv1EotdO0eElg3LJgr8nar3yQc4qYh+T0NtaTAz+usbI7gPM4BwX3pAcig3/fHF3WgG7zQbrCuBU+a+ljIZA==} peerDependencies: - payload: 3.33.0 + payload: 3.50.0 - '@payloadcms/email-nodemailer@3.33.0': - resolution: {integrity: sha512-ljHvGmR2plVmBPjOBgI9GN/kWsG0YlxFZAI024Am8obbq+uSmmsKcCDo71TvTLO8SdYvsH8kWtyB/8sRIaCO5Q==} + '@payloadcms/drizzle@3.50.0': + resolution: {integrity: sha512-sRaSWoPogLb7Vo/8w+xAur/pwkNw2PVmiY0nRnCmdZFG82dLMIu1fZXj7C3ZhzaiSYwQuekwtmKFKFopknAtdA==} + peerDependencies: + payload: 3.50.0 + + '@payloadcms/email-nodemailer@3.50.0': + resolution: {integrity: sha512-/cI57DBLyM5/N1rzxWvbpqLKrrx4hAxODaqjSC1Q5okBvmSc7okJzRxSL9yXqziAk+Xd+tzQ+fLzyr23fvT40A==} engines: {node: ^18.20.2 || >=20.9.0} peerDependencies: - payload: 3.33.0 + payload: 3.50.0 - '@payloadcms/graphql@3.33.0': - resolution: {integrity: sha512-e3Hf//A4GVueWbIUDNMybbIDe79gzottj/5mvQiAdImXhKPsFgw4qqIw9k88FxsWX3Xcm0q8R2Lfyyf6WnqquQ==} + '@payloadcms/graphql@3.50.0': + resolution: {integrity: sha512-BrhtTaEOmnK2fbBOMbr1sbOh0hTI6pl9fZ0Y+PzlS9/2SjjDJBe1xv2v6YjhujklTaU0GaKLs6xFHA8u+ppoAQ==} hasBin: true peerDependencies: graphql: ^16.8.1 - payload: 3.33.0 + payload: 3.50.0 - '@payloadcms/live-preview-react@3.43.0': - resolution: {integrity: sha512-w5YH2YbVc7gUZZ0QYxZvHe5XMr9MfbfXgucC0MRCsiTS4hl2Dqj4mlaZdY/9T2ExdiZfeEhEjnnpxrvglDZpdQ==} + '@payloadcms/live-preview-react@3.50.0': + resolution: {integrity: sha512-LzXD0AOtzXsCq6IUW3Hkzza2I4XClXwWBnHr9cS36q7Xh05zIS1yN/cgf6h1ilykSHDkv0JZEjQviFeQT5+5Og==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 - '@payloadcms/live-preview@3.43.0': - resolution: {integrity: sha512-rC4R8bpb6QOhsvx+2GuaEM2xm/33+cPPcL4FHSm6bChvTwGBs3rseaHv1eKa9y4sjYM9BrNbltzpJa0z3pTCdA==} + '@payloadcms/live-preview@3.50.0': + resolution: {integrity: sha512-Twux96/MxleN0zDTr5f1DmarRo5igRN5dxQpcME8N7tP/PiXQTqmaRiMY4ayQ3q32gnZIXvcYi8HknrC+eiiMA==} - '@payloadcms/next@3.33.0': - resolution: {integrity: sha512-gdiMalPLmzUJaRfBU4hWMNbEktXkc7Xqh/40h1FJ5sORl68/mYz8H9I0SqmLNe2jXAEEfptUwTwVPF9LTv2l7A==} + '@payloadcms/next@3.50.0': + resolution: {integrity: sha512-9piyBDLsVW4huCKgas6eorq5PcKM1VoTZ2spWkaLQ9hbWYBspblGVkb3kcMWVGGYSA6Yw4qJlhomAqIY/sVoFA==} engines: {node: ^18.20.2 || >=20.9.0} peerDependencies: graphql: ^16.8.1 next: ^15.2.3 - payload: 3.33.0 + payload: 3.50.0 - '@payloadcms/payload-cloud@3.33.0': - resolution: {integrity: sha512-M6Sw1klt0SnTAX0p0uspGB+3aaGV4pU51xH0pXisw88ODj6lihYaXd4UTWhURSxAm1IzrJoimc8s8ClqNGuxfg==} + '@payloadcms/payload-cloud@3.50.0': + resolution: {integrity: sha512-wH8/kOYA/m5zXVJG5PQdxUNao3fb15aVRQUJbNfF8o6VBAZNXXCm9LJghUjcpyo5NGQai5Kjodycx/y+1PqrjA==} peerDependencies: - payload: 3.33.0 + payload: 3.50.0 - '@payloadcms/plugin-cloud-storage@3.33.0': - resolution: {integrity: sha512-uJ+ivTYvhLSHoPVv2/3l6A9EHBvNIHU3os87hg78eibteb0QXFB1X9k8j+z6oA8g5a01gWwct0f9uTRU0Pmxrw==} + '@payloadcms/plugin-cloud-storage@3.50.0': + resolution: {integrity: sha512-UJjIh8yKsRuAveFV3eegHGuOYwAzYhiVi8bZR9PNWfzD/WFQqwJmlnBM+fpC19ZiWKsPQf4M6g3PxFW2PkkaZw==} peerDependencies: - payload: 3.33.0 + payload: 3.50.0 react: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 react-dom: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 - '@payloadcms/plugin-form-builder@3.33.0': - resolution: {integrity: sha512-9i5tG144VGtO7zfrIzT5AwYZlgiVjvJ8ud7Ok/iuaYSk6H2owf7vcDY0tAAp5sf6pGrv1brRHPej5hD2K2Posg==} + '@payloadcms/plugin-form-builder@3.50.0': + resolution: {integrity: sha512-DUrXIX+XAcrZi4kSm23KRnDWHLiQAcY2z/FUFs+HRQQoalAjH7iErOjH6b1uwZTEnCIPWkMiqvaGoE5Z7we5LQ==} peerDependencies: - payload: 3.33.0 + payload: 3.50.0 react: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 react-dom: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 - '@payloadcms/plugin-nested-docs@3.33.0': - resolution: {integrity: sha512-omuqg0N7TUwTk2GPQDpBITIvTUp7fSLxK8pgo2mjq3pH7p3YzGgnnJVqyLH4z1knuMlOus3vqb+QhMoOIB7jGA==} + '@payloadcms/plugin-nested-docs@3.50.0': + resolution: {integrity: sha512-d0tbolBtUgb5WAhXhEGN5XQSDDakj1lKpXExrXqR1JJM5tACNfFvwk9OugNsukcjPpSeDB1VZa4173kaKOOcQg==} peerDependencies: - payload: 3.33.0 + payload: 3.50.0 - '@payloadcms/plugin-seo@3.33.0': - resolution: {integrity: sha512-pa1MyDNUAKVQaDAvH4gx8j4KA97YxuOPk+uiGgkw28REt53hh2JaVyIbbFmdJUVcCwqlNtX++r7QB0Fv4To/sg==} + '@payloadcms/plugin-seo@3.50.0': + resolution: {integrity: sha512-fwAd7yrC486o4RKYUfU8EyX40F1CEaRWSQsdsQxRdSmGj+vdypsD0QI8Gw0QXUAqzy/yX5CjGxIkgfq9skcs3A==} peerDependencies: - payload: 3.33.0 + payload: 3.50.0 react: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 react-dom: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 - '@payloadcms/richtext-lexical@3.33.0': - resolution: {integrity: sha512-Y4IauXgkTQ0XLE0kGtExatMDUph1PGEsDtXVywjbGSG0Q92TfdGDLiHLa3EUV37B0oBM/LWN9JW0oadg1MDNWg==} + '@payloadcms/richtext-lexical@3.50.0': + resolution: {integrity: sha512-bW3LdTdVvipcaxZL3GxvHky+WEN2x7w+jOkXIHHnYkd+PzgF3aL3mNjHJve9JDdqJF5cHFLq8mFBi9WQfs80FQ==} engines: {node: ^18.20.2 || >=20.9.0} peerDependencies: '@faceless-ui/modal': 3.0.0-beta.2 '@faceless-ui/scroll-info': 2.0.0 - '@payloadcms/next': 3.33.0 - payload: 3.33.0 + '@payloadcms/next': 3.50.0 + payload: 3.50.0 react: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 react-dom: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 - '@payloadcms/storage-s3@3.33.0': - resolution: {integrity: sha512-ssMdC2qEJYBP4+RLoWY1I9IZdu1CIK0RyTUzuaK9wnEsZg7GmXDVEJbTFX28DryEx+RytT8Ra7d8hg44qZbvWg==} + '@payloadcms/storage-s3@3.50.0': + resolution: {integrity: sha512-b37jENtIRG2TWMymthQEGMUeQSTqwqn9T0exnJZuo10D38z4zws72dYO2CLVHSFArtV6DwhpLoWsHQXAJLpX0w==} engines: {node: ^18.20.2 || >=20.9.0} peerDependencies: - payload: 3.33.0 + payload: 3.50.0 - '@payloadcms/translations@3.33.0': - resolution: {integrity: sha512-QU8EFoporBLdyeGWoWogb6gZMEMopvFHmF43yQDa2TrzWxGtEaSY5pNCvJovQN1aPnLPYaK4we/nX/3ifa4G5Q==} + '@payloadcms/translations@3.50.0': + resolution: {integrity: sha512-Po3dnuY+cchLessSB4+r3Al5MF5joWoh7RFuMnOB/mcpBgkoSCP2bV9Th/U3CTc67CmEBArCnRrDtfSdE7eDrA==} - '@payloadcms/ui@3.33.0': - resolution: {integrity: sha512-O+ttsov+C2r82IJUfmCgbKAGG9BNDjX9r+2PevvNywteJpsjvWXFWiV41yAM6YXhEHSVPT+g9X0ByvJBsiZocg==} + '@payloadcms/ui@3.50.0': + resolution: {integrity: sha512-oC9qCu1sPXeUpSCQ63zCOIWrFz9eY5xFXmCyUqEFrUI0xbeHMyVYfYUpIeFQmCR9MwaDiRdEf6CoKoD0Xk1Qog==} engines: {node: ^18.20.2 || >=20.9.0} peerDependencies: next: ^15.2.3 - payload: 3.33.0 + payload: 3.50.0 react: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 react-dom: ^19.0.0 || ^19.0.0-rc-65a56d0e-20241020 @@ -5487,6 +5519,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-checkbox@1.3.2': + resolution: {integrity: sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-collapsible@1.0.3': resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: @@ -5917,6 +5962,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-label@2.1.7': + resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-menu@2.0.6': resolution: {integrity: sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==} peerDependencies: @@ -6643,6 +6701,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-rect@1.0.1': resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: @@ -9303,10 +9370,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - buffer-writer@2.0.0: - resolution: {integrity: sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==} - engines: {node: '>=4'} - buffer@4.9.2: resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==} @@ -9875,6 +9938,10 @@ packages: resolution: {integrity: sha512-onMB0OkDjkXunhdW9htFjEhqrD54+M94i6ackoUkjHKbRnXdyEyKRelp4nJ1kAz32+s27jP1FsebpJCVl0BsvA==} engines: {node: '>=18.0'} + croner@9.1.0: + resolution: {integrity: sha512-p9nwwR4qyT5W996vBZhdvBCnMhicY5ytZkR4D1Xj0wuTDEiMnjwR57Q3RXYY/s0EpX6Ay3vgIcfaR+ewGHsi+g==} + engines: {node: '>=18.0'} + cronstrue@2.50.0: resolution: {integrity: sha512-ULYhWIonJzlScCCQrPUG5uMXzXxSixty4djud9SS37DoNxDdkeRocxzHuAo4ImRBUK+mAuU5X9TSwEDccnnuPg==} hasBin: true @@ -10411,40 +10478,40 @@ packages: resolution: {integrity: sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==} engines: {node: '>=4'} - drizzle-kit@0.28.0: - resolution: {integrity: sha512-KqI+CS2Ga9GYIrXpxpCDUJJrH/AT/k4UY0Pb4oRgQEGkgN1EdCnqp664cXgwPWjDr5RBtTsjZipw8+8C//K63A==} + drizzle-kit@0.31.4: + resolution: {integrity: sha512-tCPWVZWZqWVx2XUsVpJRnH9Mx0ClVOf5YUHerZ5so1OKSlqww4zy1R5ksEdGRcO3tM3zj0PYN6V48TbQCL1RfA==} hasBin: true - drizzle-orm@0.36.1: - resolution: {integrity: sha512-F4hbimnMEhyWzDowQB4xEuVJJWXLHZYD7FYwvo8RImY+N7pStGqsbfmT95jDbec1s4qKmQbiuxEDZY90LRrfIw==} + drizzle-orm@0.44.2: + resolution: {integrity: sha512-zGAqBzWWkVSFjZpwPOrmCrgO++1kZ5H/rZ4qTGeGOe18iXGVJWf3WPfHOVwFIbmi8kHjfJstC6rJomzGx8g/dQ==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' - '@cloudflare/workers-types': '>=3' + '@cloudflare/workers-types': '>=4' '@electric-sql/pglite': '>=0.2.0' '@libsql/client': '>=0.10.0' '@libsql/client-wasm': '>=0.10.0' - '@neondatabase/serverless': '>=0.1' + '@neondatabase/serverless': '>=0.10.0' '@op-engineering/op-sqlite': '>=2' '@opentelemetry/api': ^1.4.1 - '@planetscale/database': '>=1' + '@planetscale/database': '>=1.13' '@prisma/client': '*' '@tidbcloud/serverless': '*' '@types/better-sqlite3': '*' '@types/pg': '*' - '@types/react': '>=18' '@types/sql.js': '*' + '@upstash/redis': '>=1.34.7' '@vercel/postgres': '>=0.8.0' '@xata.io/client': '*' better-sqlite3: '>=7' bun-types: '*' - expo-sqlite: '>=13.2.0' + expo-sqlite: '>=14.0.0' + gel: '>=2' knex: '*' kysely: '*' mysql2: '>=2' pg: '>=8' postgres: '>=3' prisma: '*' - react: '>=18' sql.js: '>=1' sqlite3: '>=5' peerDependenciesMeta: @@ -10474,10 +10541,10 @@ packages: optional: true '@types/pg': optional: true - '@types/react': - optional: true '@types/sql.js': optional: true + '@upstash/redis': + optional: true '@vercel/postgres': optional: true '@xata.io/client': @@ -10488,6 +10555,8 @@ packages: optional: true expo-sqlite: optional: true + gel: + optional: true knex: optional: true kysely: @@ -10500,8 +10569,6 @@ packages: optional: true prisma: optional: true - react: - optional: true sql.js: optional: true sqlite3: @@ -12031,8 +12098,8 @@ packages: resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} engines: {node: '>= 4'} - image-size@1.2.1: - resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} + image-size@2.0.2: + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} engines: {node: '>=16.x'} hasBin: true @@ -12158,6 +12225,10 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} @@ -13029,6 +13100,11 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc + lucide-react@0.511.0: + resolution: {integrity: sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} @@ -13191,9 +13267,6 @@ packages: mdast-util-mdx-jsx@2.1.4: resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} - mdast-util-mdx-jsx@3.1.2: - resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} - mdast-util-mdx-jsx@3.1.3: resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} @@ -13362,9 +13435,6 @@ packages: micromark-extension-mdx-jsx@1.0.5: resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} - micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} - micromark-extension-mdx-jsx@3.0.1: resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} @@ -14328,9 +14398,6 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - packet-reader@1.0.0: - resolution: {integrity: sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==} - pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -14469,8 +14536,8 @@ packages: resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} engines: {node: '>= 14.16'} - payload@3.33.0: - resolution: {integrity: sha512-KXNQf+QFStxNUw4A/poEq8KP0GIR9K5tXzyMN80iwi1+X6V2xEORXs3hm28OQYIuJR4WTHBQzo7VWcQ69oNDcg==} + payload@3.50.0: + resolution: {integrity: sha512-zIDV+NRjp/unb4rPBp7SxOgc1vTKh/ZvNckMEvUgB4OG3XW7tiI/93CCZkht2kNsK9f+KpZqjsOQ2eFPfQ0DaA==} engines: {node: ^18.20.2 || >=20.9.0} hasBin: true peerDependencies: @@ -14492,12 +14559,18 @@ packages: pg-cloudflare@1.1.1: resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + pg-cloudflare@1.2.7: + resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} + pg-connection-string@2.6.2: resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} pg-connection-string@2.7.0: resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} + pg-connection-string@2.9.1: + resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==} + pg-format@1.0.4: resolution: {integrity: sha512-YyKEF78pEA6wwTAqOUaHIN/rWpfzzIuMh9KdAhc3rSLQ/7zkRFcCgYBAEGatDstLyZw4g0s9SNICmaTGnBVeyw==} engines: {node: '>=4.0'} @@ -14514,11 +14587,19 @@ packages: resolution: {integrity: sha512-BM/Thnrw5jm2kKLE5uJkXqqExRUY/toLHda65XgFTBTFYZyopbKjBe29Ii3RbkvlsMoFwD+tHeGaCjjv0gHlyw==} engines: {node: '>=4'} + pg-pool@3.10.1: + resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==} + peerDependencies: + pg: '>=8.0' + pg-pool@3.7.1: resolution: {integrity: sha512-xIOsFoh7Vdhojas6q3596mXFsR8nwBQBXX5JiV7p9buEVAGqYL4yFzclON5P9vFrpu1u7Zwl2oriyDa89n0wbw==} peerDependencies: pg: '>=8.0' + pg-protocol@1.10.3: + resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} + pg-protocol@1.6.0: resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==} @@ -14533,8 +14614,8 @@ packages: resolution: {integrity: sha512-cRL3JpS3lKMGsKaWndugWQoLOCoP+Cic8oseVcbr0qhPzYD5DWXK+RZ9LY9wxRf7RQia4SCwQlXk0q6FCPrVng==} engines: {node: '>=10'} - pg@8.11.3: - resolution: {integrity: sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==} + pg@8.13.1: + resolution: {integrity: sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=3.0.1' @@ -14542,9 +14623,9 @@ packages: pg-native: optional: true - pg@8.13.1: - resolution: {integrity: sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==} - engines: {node: '>= 8.0.0'} + pg@8.16.3: + resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==} + engines: {node: '>= 16.0.0'} peerDependencies: pg-native: '>=3.0.1' peerDependenciesMeta: @@ -14947,9 +15028,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} @@ -15063,13 +15141,6 @@ packages: react-devtools-inline@4.4.0: resolution: {integrity: sha512-ES0GolSrKO8wsKbsEkVeiR/ZAaHQTY4zDh1UW8DImVmm8oaGLl3ijJDvSGe+qDRKPZdPRnDtWWnSvvrgxXdThQ==} - react-diff-viewer-continued@4.0.5: - resolution: {integrity: sha512-L43gIPdhHgu1MYdip4vNqAt5s2JLICKe2/RyGUr2ohAxfhYaH1+QZ6vBO0qgo4xGBhE3jmvbOA/swq4/gdS/0g==} - engines: {node: '>= 16'} - peerDependencies: - react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dnd-html5-backend@16.0.1: resolution: {integrity: sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==} @@ -16667,10 +16738,6 @@ packages: resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} engines: {node: '>=12.0.0'} - tinyglobby@0.2.12: - resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} @@ -16874,6 +16941,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + tsx@4.20.3: + resolution: {integrity: sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ==} + engines: {node: '>=18.0.0'} + hasBin: true + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} @@ -17067,6 +17139,10 @@ packages: resolution: {integrity: sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==} engines: {node: '>=18.17'} + undici@7.10.0: + resolution: {integrity: sha512-u5otvFBOBZvmdjWLVW+5DAc9Nkq8f24g0O9oY7qw2JVIF1VocIFoyz9JFkuVOS2j41AufeO0xnlweJ2RLT8nGw==} + engines: {node: '>=20.18.1'} + unenv@1.10.0: resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} @@ -17741,18 +17817,6 @@ packages: utf-8-validate: optional: true - ws@8.18.1: - resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.18.3: resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} engines: {node: '>=10.0.0'} @@ -19978,16 +20042,6 @@ snapshots: '@emotion/weak-memoize': 0.4.0 stylis: 4.2.0 - '@emotion/css@11.13.5(supports-color@8.1.1)': - dependencies: - '@emotion/babel-plugin': 11.13.5(supports-color@8.1.1) - '@emotion/cache': 11.14.0 - '@emotion/serialize': 1.3.3 - '@emotion/sheet': 1.4.0 - '@emotion/utils': 1.4.2 - transitivePeerDependencies: - - supports-color - '@emotion/hash@0.9.2': {} '@emotion/is-prop-valid@0.8.8': @@ -20264,12 +20318,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/dom': 1.5.3 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@floating-ui/react-dom@2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/dom': 1.5.3 @@ -20278,7 +20326,7 @@ snapshots: '@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@floating-ui/utils': 0.2.9 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -20881,7 +20929,7 @@ snapshots: crypto-js: 4.2.0 fastify: 4.29.1 fastify-metrics: 10.6.0(fastify@4.29.1) - pg: 8.11.3 + pg: 8.16.3 pg-connection-string: 2.6.2 pg-format: 1.0.4 pg-protocol: 1.6.0 @@ -21609,8 +21657,6 @@ snapshots: - bufferutil - utf-8-validate - '@next/env@15.3.1': {} - '@next/env@15.3.3': {} '@next/eslint-plugin-next@15.3.1': @@ -22368,15 +22414,20 @@ snapshots: '@parcel/watcher-win32-ia32': 2.5.1 '@parcel/watcher-win32-x64': 2.5.1 - '@payloadcms/db-postgres@3.33.0(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/react@18.3.3)(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react@18.3.1)(supports-color@8.1.1)': + '@payloadcms/admin-bar@3.50.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@payloadcms/drizzle': 3.33.0(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@types/react@18.3.3)(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(pg@8.11.3)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@payloadcms/db-postgres@3.50.0(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(supports-color@8.1.1)': + dependencies: + '@payloadcms/drizzle': 3.50.0(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(pg@8.16.3) '@types/pg': 8.10.2 console-table-printer: 2.12.1 - drizzle-kit: 0.28.0(supports-color@8.1.1) - drizzle-orm: 0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@types/react@18.3.3)(pg@8.11.3)(react@18.3.1) - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) - pg: 8.11.3 + drizzle-kit: 0.31.4(supports-color@8.1.1) + drizzle-orm: 0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(pg@8.16.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) + pg: 8.16.3 prompts: 2.4.2 to-snake-case: 1.0.0 uuid: 10.0.0 @@ -22393,29 +22444,30 @@ snapshots: - '@prisma/client' - '@tidbcloud/serverless' - '@types/better-sqlite3' - - '@types/react' - '@types/sql.js' + - '@upstash/redis' - '@vercel/postgres' - '@xata.io/client' - better-sqlite3 - bun-types - expo-sqlite + - gel - knex - kysely - mysql2 - pg-native - postgres - prisma - - react - sql.js - sqlite3 - supports-color - '@payloadcms/drizzle@3.33.0(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@types/react@18.3.3)(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(pg@8.11.3)(react@18.3.1)': + '@payloadcms/drizzle@3.50.0(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(pg@8.16.3)': dependencies: console-table-printer: 2.12.1 - drizzle-orm: 0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@types/react@18.3.3)(pg@8.11.3)(react@18.3.1) - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + dequal: 2.0.3 + drizzle-orm: 0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(pg@8.16.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) prompts: 2.4.2 to-snake-case: 1.0.0 uuid: 9.0.0 @@ -22433,53 +22485,53 @@ snapshots: - '@tidbcloud/serverless' - '@types/better-sqlite3' - '@types/pg' - - '@types/react' - '@types/sql.js' + - '@upstash/redis' - '@vercel/postgres' - '@xata.io/client' - better-sqlite3 - bun-types - expo-sqlite + - gel - knex - kysely - mysql2 - pg - postgres - prisma - - react - sql.js - sqlite3 - '@payloadcms/email-nodemailer@3.33.0(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))': + '@payloadcms/email-nodemailer@3.50.0(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))': dependencies: nodemailer: 6.9.16 - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) - '@payloadcms/graphql@3.33.0(graphql@16.11.0)(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(typescript@5.7.3)': + '@payloadcms/graphql@3.50.0(graphql@16.11.0)(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(typescript@5.7.3)': dependencies: graphql: 16.11.0 graphql-scalars: 1.22.2(graphql@16.11.0) - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) pluralize: 8.0.0 ts-essentials: 10.0.3(typescript@5.7.3) tsx: 4.19.2 transitivePeerDependencies: - typescript - '@payloadcms/live-preview-react@3.43.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@payloadcms/live-preview-react@3.50.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@payloadcms/live-preview': 3.43.0 + '@payloadcms/live-preview': 3.50.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@payloadcms/live-preview@3.43.0': {} + '@payloadcms/live-preview@3.50.0': {} - '@payloadcms/next@3.33.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': + '@payloadcms/next@3.50.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': dependencies: '@dnd-kit/core': 6.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@payloadcms/graphql': 3.33.0(graphql@16.11.0)(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(typescript@5.7.3) - '@payloadcms/translations': 3.33.0 - '@payloadcms/ui': 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + '@payloadcms/graphql': 3.50.0(graphql@16.11.0)(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(typescript@5.7.3) + '@payloadcms/translations': 3.50.0 + '@payloadcms/ui': 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) busboy: 1.6.0 dequal: 2.0.3 file-type: 19.3.0 @@ -22489,9 +22541,8 @@ snapshots: http-status: 2.1.0 next: 15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) path-to-regexp: 6.3.0 - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) qs-esm: 7.0.2 - react-diff-viewer-continued: 4.0.5(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1) sass: 1.77.4 uuid: 10.0.0 transitivePeerDependencies: @@ -22502,25 +22553,25 @@ snapshots: - supports-color - typescript - '@payloadcms/payload-cloud@3.33.0(encoding@0.1.13)(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))': + '@payloadcms/payload-cloud@3.50.0(encoding@0.1.13)(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))': dependencies: '@aws-sdk/client-cognito-identity': 3.830.0 '@aws-sdk/client-s3': 3.830.0 '@aws-sdk/credential-providers': 3.830.0 '@aws-sdk/lib-storage': 3.830.0(@aws-sdk/client-s3@3.830.0) - '@payloadcms/email-nodemailer': 3.33.0(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3)) + '@payloadcms/email-nodemailer': 3.50.0(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3)) amazon-cognito-identity-js: 6.3.15(encoding@0.1.13) nodemailer: 6.9.16 - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) transitivePeerDependencies: - aws-crt - encoding - '@payloadcms/plugin-cloud-storage@3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': + '@payloadcms/plugin-cloud-storage@3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': dependencies: - '@payloadcms/ui': 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + '@payloadcms/ui': 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) find-node-modules: 2.1.3 - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) range-parser: 1.2.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -22531,11 +22582,11 @@ snapshots: - supports-color - typescript - '@payloadcms/plugin-form-builder@3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': + '@payloadcms/plugin-form-builder@3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': dependencies: - '@payloadcms/ui': 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + '@payloadcms/ui': 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) escape-html: 1.0.3 - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -22545,15 +22596,15 @@ snapshots: - supports-color - typescript - '@payloadcms/plugin-nested-docs@3.33.0(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))': + '@payloadcms/plugin-nested-docs@3.50.0(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))': dependencies: - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) - '@payloadcms/plugin-seo@3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': + '@payloadcms/plugin-seo@3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': dependencies: - '@payloadcms/translations': 3.33.0 - '@payloadcms/ui': 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + '@payloadcms/translations': 3.50.0 + '@payloadcms/ui': 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -22563,7 +22614,7 @@ snapshots: - supports-color - typescript - '@payloadcms/richtext-lexical@3.33.0(@faceless-ui/modal@3.0.0-beta.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@faceless-ui/scroll-info@2.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@payloadcms/next@3.33.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3))(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)(yjs@13.6.27)': + '@payloadcms/richtext-lexical@3.50.0(@faceless-ui/modal@3.0.0-beta.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@faceless-ui/scroll-info@2.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@payloadcms/next@3.50.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3))(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)(yjs@13.6.27)': dependencies: '@faceless-ui/modal': 3.0.0-beta.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@faceless-ui/scroll-info': 2.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -22577,12 +22628,13 @@ snapshots: '@lexical/selection': 0.28.0 '@lexical/table': 0.28.0 '@lexical/utils': 0.28.0 - '@payloadcms/next': 3.33.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) - '@payloadcms/translations': 3.33.0 - '@payloadcms/ui': 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + '@payloadcms/next': 3.50.0(@types/react@18.3.3)(graphql@16.11.0)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + '@payloadcms/translations': 3.50.0 + '@payloadcms/ui': 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) '@types/uuid': 10.0.0 acorn: 8.12.1 bson-objectid: 2.0.4 + csstype: 3.1.3 dequal: 2.0.3 escape-html: 1.0.3 jsox: 1.2.121 @@ -22590,7 +22642,7 @@ snapshots: mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-mdx-jsx: 3.1.3(supports-color@8.1.1) micromark-extension-mdx-jsx: 3.0.1 - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) qs-esm: 7.0.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -22605,13 +22657,13 @@ snapshots: - typescript - yjs - '@payloadcms/storage-s3@3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': + '@payloadcms/storage-s3@3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': dependencies: '@aws-sdk/client-s3': 3.830.0 '@aws-sdk/lib-storage': 3.830.0(@aws-sdk/client-s3@3.830.0) '@aws-sdk/s3-request-presigner': 3.830.0 - '@payloadcms/plugin-cloud-storage': 3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + '@payloadcms/plugin-cloud-storage': 3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) transitivePeerDependencies: - '@types/react' - aws-crt @@ -22622,27 +22674,28 @@ snapshots: - supports-color - typescript - '@payloadcms/translations@3.33.0': + '@payloadcms/translations@3.50.0': dependencies: date-fns: 4.1.0 - '@payloadcms/ui@3.33.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.33.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': + '@payloadcms/ui@3.50.0(@types/react@18.3.3)(monaco-editor@0.52.2)(next@15.3.3(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4))(payload@3.50.0(graphql@16.11.0)(typescript@5.7.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1)(typescript@5.7.3)': dependencies: '@date-fns/tz': 1.2.0 '@dnd-kit/core': 6.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + '@dnd-kit/utilities': 3.2.2(react@18.3.1) '@faceless-ui/modal': 3.0.0-beta.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@faceless-ui/scroll-info': 2.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@faceless-ui/window-info': 3.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@monaco-editor/react': 4.7.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@payloadcms/translations': 3.33.0 + '@payloadcms/translations': 3.50.0 bson-objectid: 2.0.4 date-fns: 4.1.0 dequal: 2.0.3 md5: 2.3.0 next: 15.3.3(@babel/core@7.26.10(supports-color@8.1.1))(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4) object-to-formdata: 4.5.1 - payload: 3.33.0(graphql@16.11.0)(typescript@5.7.3) + payload: 3.50.0(graphql@16.11.0)(typescript@5.7.3) qs-esm: 7.0.2 react: 18.3.1 react-datepicker: 7.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -22841,6 +22894,22 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-checkbox@1.3.2(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-context': 1.1.2(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-previous': 1.1.1(@types/react@18.3.3)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.1(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-collapsible@1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 @@ -23264,6 +23333,15 @@ snapshots: '@types/react': 18.3.3 '@types/react-dom': 18.3.0 + '@radix-ui/react-label@2.1.7(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@radix-ui/react-menu@2.0.6(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 @@ -23385,7 +23463,7 @@ snapshots: '@radix-ui/react-popper@1.1.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 - '@floating-ui/react-dom': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.3)(react@18.3.1) @@ -23439,7 +23517,7 @@ snapshots: '@radix-ui/react-popper@1.2.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/react-dom': 2.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react-dom': 2.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-arrow': 1.1.4(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@radix-ui/react-compose-refs': 1.1.2(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-context': 1.1.2(@types/react@18.3.3)(react@18.3.1) @@ -23726,7 +23804,7 @@ snapshots: '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.3)(react@18.3.1) '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.0)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - aria-hidden: 1.2.3 + aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-remove-scroll: 2.5.5(@types/react@18.3.3)(react@18.3.1) @@ -24045,6 +24123,12 @@ snapshots: optionalDependencies: '@types/react': 18.3.3 + '@radix-ui/react-use-previous@1.1.1(@types/react@18.3.3)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.3)(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 @@ -25490,7 +25574,7 @@ snapshots: '@supabase/postgres-meta@0.64.6(encoding@0.1.13)(supports-color@8.1.1)': dependencies: '@sinclair/typebox': 0.25.24 - pg: 8.11.3 + pg: 8.16.3 pg-format: 1.0.4 pgsql-parser: 13.5.0(encoding@0.1.13)(supports-color@8.1.1) postgres-array: 3.0.2 @@ -25737,7 +25821,7 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - '@tanstack/react-start-client@1.114.27(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': + '@tanstack/react-start-client@1.114.27(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': dependencies: '@tanstack/react-router': 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/router-core': 1.114.25 @@ -25748,7 +25832,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -25792,7 +25876,7 @@ snapshots: - xml2js - yaml - '@tanstack/react-start-config@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': + '@tanstack/react-start-config@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': dependencies: '@tanstack/react-start-plugin': 1.114.12(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) '@tanstack/router-core': 1.114.25 @@ -25802,11 +25886,11 @@ snapshots: '@tanstack/start-server-functions-handler': 1.114.25 '@vitejs/plugin-react': 4.3.4(supports-color@8.1.1)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5)) import-meta-resolve: 4.1.0 - nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2) + nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2) ofetch: 1.4.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) zod: 3.25.76 transitivePeerDependencies: @@ -25884,11 +25968,11 @@ snapshots: - tsx - yaml - '@tanstack/react-start-router-manifest@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': + '@tanstack/react-start-router-manifest@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': dependencies: '@tanstack/router-core': 1.114.25 tiny-invariant: 1.3.3 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -25947,13 +26031,13 @@ snapshots: tiny-warning: 1.0.3 unctx: 2.4.1 - '@tanstack/react-start@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': + '@tanstack/react-start@1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5)': dependencies: - '@tanstack/react-start-client': 1.114.27(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) - '@tanstack/react-start-config': 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) - '@tanstack/react-start-router-manifest': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + '@tanstack/react-start-client': 1.114.27(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + '@tanstack/react-start-config': 1.114.27(@electric-sql/pglite@0.2.15)(@tanstack/react-router@1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/node@22.13.14)(aws4fetch@1.0.20)(babel-plugin-macros@3.1.0)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5))(webpack@5.94.0(esbuild@0.25.2))(yaml@2.4.5) + '@tanstack/react-start-router-manifest': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) '@tanstack/react-start-server': 1.114.27(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tanstack/start-api-routes': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + '@tanstack/start-api-routes': 1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) '@tanstack/start-server-functions-client': 1.114.25(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) '@tanstack/start-server-functions-handler': 1.114.25 '@tanstack/start-server-functions-server': 1.114.12(@types/node@22.13.14)(babel-plugin-macros@3.1.0)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) @@ -26104,11 +26188,11 @@ snapshots: - tsx - yaml - '@tanstack/start-api-routes@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': + '@tanstack/start-api-routes@1.114.25(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5)': dependencies: '@tanstack/router-core': 1.114.25 '@tanstack/start-server-core': 1.114.25 - vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) + vinxi: 0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -27062,6 +27146,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@vitest/coverage-v8@3.0.9(supports-color@8.1.1)(vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5))': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 1.0.2 + debug: 4.4.0(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6(supports-color@8.1.1) + istanbul-reports: 3.1.7 + magic-string: 0.30.17 + magicast: 0.3.5 + std-env: 3.8.1 + test-exclude: 7.0.1 + tinyrainbow: 2.0.0 + vitest: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) + transitivePeerDependencies: + - supports-color + '@vitest/coverage-v8@3.0.9(supports-color@8.1.1)(vitest@3.0.9)': dependencies: '@ampproject/remapping': 2.3.0 @@ -27105,6 +27207,15 @@ snapshots: msw: 2.7.3(@types/node@22.13.14)(typescript@5.5.2) vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) + '@vitest/mocker@3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5))': + dependencies: + '@vitest/spy': 3.0.9 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + msw: 2.7.3(@types/node@22.13.14)(typescript@5.5.2) + vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) + '@vitest/pretty-format@3.0.4': dependencies: tinyrainbow: 2.0.0 @@ -27813,8 +27924,6 @@ snapshots: buffer-from@1.1.2: {} - buffer-writer@2.0.0: {} - buffer@4.9.2: dependencies: base64-js: 1.5.1 @@ -28454,6 +28563,8 @@ snapshots: croner@9.0.0: {} + croner@9.1.0: {} + cronstrue@2.50.0: {} cross-env@7.0.3: @@ -28693,10 +28804,10 @@ snapshots: dayjs@1.11.13: {} - db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)): + db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)): optionalDependencies: '@electric-sql/pglite': 0.2.15 - drizzle-orm: 0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1) + drizzle-orm: 0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3) debounce-promise@3.1.2: {} @@ -28923,7 +29034,7 @@ snapshots: drange@1.1.1: {} - drizzle-kit@0.28.0(supports-color@8.1.1): + drizzle-kit@0.31.4(supports-color@8.1.1): dependencies: '@drizzle-team/brocli': 0.10.2 '@esbuild-kit/esm-loader': 2.6.5 @@ -28932,23 +29043,19 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(@types/react@18.3.3)(pg@8.11.3)(react@18.3.1): + drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.10.2)(pg@8.16.3): optionalDependencies: '@electric-sql/pglite': 0.2.15 '@opentelemetry/api': 1.9.0 '@types/pg': 8.10.2 - '@types/react': 18.3.3 - pg: 8.11.3 - react: 18.3.1 + pg: 8.16.3 - drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1): + drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3): optionalDependencies: '@electric-sql/pglite': 0.2.15 '@opentelemetry/api': 1.9.0 '@types/pg': 8.15.4 - '@types/react': 18.3.3 - pg: 8.13.1 - react: 18.3.1 + pg: 8.16.3 optional: true dset@3.1.4: {} @@ -30739,7 +30846,7 @@ snapshots: estree-util-is-identifier-name: 3.0.0 hast-util-whitespace: 3.0.0 mdast-util-mdx-expression: 2.0.0(supports-color@8.1.1) - mdast-util-mdx-jsx: 3.1.2(supports-color@8.1.1) + mdast-util-mdx-jsx: 3.1.3(supports-color@8.1.1) mdast-util-mdxjs-esm: 2.0.1(supports-color@8.1.1) property-information: 6.3.0 space-separated-tokens: 2.0.2 @@ -30982,9 +31089,7 @@ snapshots: ignore@7.0.3: {} - image-size@1.2.1: - dependencies: - queue: 6.0.2 + image-size@2.0.2: {} imagescript@1.3.0: {} @@ -31118,6 +31223,8 @@ snapshots: ipaddr.js@1.9.1: {} + ipaddr.js@2.2.0: {} + iron-webcrypto@1.2.1: {} is-absolute@1.0.0: @@ -31655,7 +31762,7 @@ snapshots: lodash: 4.17.21 minimist: 1.2.8 prettier: 3.5.3 - tinyglobby: 0.2.12 + tinyglobby: 0.2.14 json-schema-traverse@0.4.1: {} @@ -31985,6 +32092,10 @@ snapshots: dependencies: react: 18.3.1 + lucide-react@0.511.0(react@18.3.1): + dependencies: + react: 18.3.1 + lunr@2.3.9: {} luxon@3.5.0: {} @@ -32220,7 +32331,7 @@ snapshots: dependencies: '@types/mdast': 4.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) + mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 micromark-util-normalize-identifier: 2.0.0 transitivePeerDependencies: @@ -32234,7 +32345,7 @@ snapshots: mdast-util-gfm-strikethrough@2.0.0(supports-color@8.1.1): dependencies: '@types/mdast': 4.0.1 - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) + mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -32253,7 +32364,7 @@ snapshots: '@types/mdast': 4.0.1 devlop: 1.1.0 markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) + mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -32267,7 +32378,7 @@ snapshots: dependencies: '@types/mdast': 4.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) + mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -32286,7 +32397,7 @@ snapshots: mdast-util-gfm@3.0.0(supports-color@8.1.1): dependencies: - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) + mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-gfm-autolink-literal: 2.0.0 mdast-util-gfm-footnote: 2.0.0(supports-color@8.1.1) mdast-util-gfm-strikethrough: 2.0.0(supports-color@8.1.1) @@ -32302,7 +32413,7 @@ snapshots: '@types/mdast': 4.0.1 devlop: 1.1.0 longest-streak: 3.1.0 - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) + mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 unist-util-remove-position: 5.0.0 transitivePeerDependencies: @@ -32324,7 +32435,7 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) + mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -32346,24 +32457,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-mdx-jsx@3.1.2(supports-color@8.1.1): - dependencies: - '@types/estree-jsx': 1.0.1 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.1 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) - mdast-util-to-markdown: 2.1.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.3 - unist-util-remove-position: 5.0.0 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - mdast-util-mdx-jsx@3.1.3(supports-color@8.1.1): dependencies: '@types/estree-jsx': 1.0.1 @@ -32417,7 +32510,7 @@ snapshots: '@types/hast': 3.0.4 '@types/mdast': 4.0.1 devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0(supports-color@8.1.1) + mdast-util-from-markdown: 2.0.2(supports-color@8.1.1) mdast-util-to-markdown: 2.1.0 transitivePeerDependencies: - supports-color @@ -32753,19 +32846,6 @@ snapshots: uvu: 0.5.6 vfile-message: 3.1.4 - micromark-extension-mdx-jsx@3.0.0: - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.5 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.1 - micromark-util-types: 2.0.0 - vfile-message: 4.0.2 - micromark-extension-mdx-jsx@3.0.1: dependencies: '@types/acorn': 4.0.6 @@ -32828,7 +32908,7 @@ snapshots: acorn: 8.14.1 acorn-jsx: 5.3.2(acorn@8.14.1) micromark-extension-mdx-expression: 3.0.0 - micromark-extension-mdx-jsx: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 micromark-extension-mdx-md: 2.0.0 micromark-extension-mdxjs-esm: 3.0.0 micromark-util-combine-extensions: 2.0.0 @@ -33476,7 +33556,7 @@ snapshots: nice-try@1.0.5: {} - nitropack@2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2): + nitropack@2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2): dependencies: '@cloudflare/kv-asset-handler': 0.4.0 '@netlify/functions': 3.0.4 @@ -33498,7 +33578,7 @@ snapshots: cookie-es: 2.0.0 croner: 9.0.0 crossws: 0.3.4 - db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)) + db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)) defu: 6.1.4 destr: 2.0.3 dot-prop: 9.0.0 @@ -33545,7 +33625,7 @@ snapshots: unenv: 2.0.0-rc.15 unimport: 4.1.2 unplugin-utils: 0.2.4 - unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)) + unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(ioredis@5.6.0(supports-color@8.1.1)) untyped: 2.0.0 unwasm: 0.3.9 youch: 4.1.0-beta.6 @@ -34074,8 +34154,6 @@ snapshots: package-json-from-dist@1.0.1: {} - packet-reader@1.0.0: {} - pako@0.2.9: {} papaparse@5.4.1: {} @@ -34218,24 +34296,25 @@ snapshots: pathval@2.0.0: {} - payload@3.33.0(graphql@16.11.0)(typescript@5.7.3): + payload@3.50.0(graphql@16.11.0)(typescript@5.7.3): dependencies: - '@next/env': 15.3.1 - '@payloadcms/translations': 3.33.0 + '@next/env': 15.3.3 + '@payloadcms/translations': 3.50.0 '@types/busboy': 1.5.4 ajv: 8.17.1 bson-objectid: 2.0.4 busboy: 1.6.0 ci-info: 4.2.0 console-table-printer: 2.12.1 - croner: 9.0.0 + croner: 9.1.0 dataloader: 2.2.3 deepmerge: 4.3.1 file-type: 19.3.0 get-tsconfig: 4.8.1 graphql: 16.11.0 http-status: 2.1.0 - image-size: 1.2.1 + image-size: 2.0.2 + ipaddr.js: 2.2.0 jose: 5.9.6 json-schema-to-typescript: 15.0.3 minimist: 1.2.8 @@ -34247,9 +34326,10 @@ snapshots: sanitize-filename: 1.6.3 scmp: 2.1.0 ts-essentials: 10.0.3(typescript@5.7.3) - tsx: 4.19.2 + tsx: 4.20.3 + undici: 7.10.0 uuid: 10.0.0 - ws: 8.18.1 + ws: 8.18.3 transitivePeerDependencies: - bufferutil - typescript @@ -34270,10 +34350,15 @@ snapshots: pg-cloudflare@1.1.1: optional: true + pg-cloudflare@1.2.7: + optional: true + pg-connection-string@2.6.2: {} pg-connection-string@2.7.0: {} + pg-connection-string@2.9.1: {} + pg-format@1.0.4: {} pg-int8@1.0.1: {} @@ -34282,14 +34367,16 @@ snapshots: pg-numeric@1.0.2: {} - pg-pool@3.7.1(pg@8.11.3): + pg-pool@3.10.1(pg@8.16.3): dependencies: - pg: 8.11.3 + pg: 8.16.3 pg-pool@3.7.1(pg@8.13.1): dependencies: pg: 8.13.1 + pg-protocol@1.10.3: {} + pg-protocol@1.6.0: {} pg-protocol@1.7.1: {} @@ -34312,18 +34399,6 @@ snapshots: postgres-interval: 3.0.0 postgres-range: 1.1.4 - pg@8.11.3: - dependencies: - buffer-writer: 2.0.0 - packet-reader: 1.0.0 - pg-connection-string: 2.7.0 - pg-pool: 3.7.1(pg@8.11.3) - pg-protocol: 1.7.1 - pg-types: 2.2.0 - pgpass: 1.0.5 - optionalDependencies: - pg-cloudflare: 1.1.1 - pg@8.13.1: dependencies: pg-connection-string: 2.7.0 @@ -34334,6 +34409,16 @@ snapshots: optionalDependencies: pg-cloudflare: 1.1.1 + pg@8.16.3: + dependencies: + pg-connection-string: 2.9.1 + pg-pool: 3.10.1(pg@8.16.3) + pg-protocol: 1.10.3 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.2.7 + pgpass@1.0.5: dependencies: split2: 4.2.0 @@ -34750,10 +34835,6 @@ snapshots: queue-microtask@1.2.3: {} - queue@6.0.2: - dependencies: - inherits: 2.0.4 - quick-format-unescaped@4.0.4: {} radix3@1.1.2: {} @@ -34886,19 +34967,6 @@ snapshots: dependencies: es6-symbol: 3.1.4 - react-diff-viewer-continued@4.0.5(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(supports-color@8.1.1): - dependencies: - '@emotion/css': 11.13.5(supports-color@8.1.1) - '@emotion/react': 11.14.0(@types/react@18.3.3)(react@18.3.1)(supports-color@8.1.1) - classnames: 2.5.1 - diff: 5.2.0 - memoize-one: 6.0.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - supports-color - react-dnd-html5-backend@16.0.1: dependencies: dnd-core: 16.0.1 @@ -37052,11 +37120,6 @@ snapshots: fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 - tinyglobby@0.2.12: - dependencies: - fdir: 6.4.6(picomatch@4.0.2) - picomatch: 4.0.2 - tinyglobby@0.2.14: dependencies: fdir: 6.4.6(picomatch@4.0.2) @@ -37263,6 +37326,13 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tsx@4.20.3: + dependencies: + esbuild: 0.25.2 + get-tsconfig: 4.10.0 + optionalDependencies: + fsevents: 2.3.3 + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 @@ -37463,6 +37533,8 @@ snapshots: undici@6.21.2: {} + undici@7.10.0: {} + unenv@1.10.0: dependencies: consola: 3.4.2 @@ -37666,7 +37738,7 @@ snapshots: acorn: 8.14.1 webpack-virtual-modules: 0.6.2 - unstorage@1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)): + unstorage@1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(ioredis@5.6.0(supports-color@8.1.1)): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -37678,7 +37750,7 @@ snapshots: ufo: 1.5.4 optionalDependencies: aws4fetch: 1.0.20 - db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)) + db0: 0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)) ioredis: 5.6.0(supports-color@8.1.1) untun@0.1.3: @@ -37911,7 +37983,7 @@ snapshots: d3-time: 3.1.0 d3-timer: 3.0.1 - vinxi@0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5): + vinxi@0.5.3(@electric-sql/pglite@0.2.15)(@types/node@22.13.14)(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(ioredis@5.6.0(supports-color@8.1.1))(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(typescript@5.5.2)(yaml@2.4.5): dependencies: '@babel/core': 7.26.10(supports-color@8.1.1) '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.10(supports-color@8.1.1)) @@ -37933,7 +38005,7 @@ snapshots: hookable: 5.5.3 http-proxy: 1.18.1 micromatch: 4.0.8 - nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2) + nitropack: 2.11.7(@electric-sql/pglite@0.2.15)(aws4fetch@1.0.20)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3))(encoding@0.1.13)(supports-color@8.1.1)(typescript@5.5.2) node-fetch-native: 1.6.6 path-to-regexp: 6.3.0 pathe: 1.1.2 @@ -37944,7 +38016,7 @@ snapshots: ufo: 1.5.4 unctx: 2.4.1 unenv: 1.10.0 - unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.36.1(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(@types/react@18.3.3)(pg@8.13.1)(react@18.3.1)))(ioredis@5.6.0(supports-color@8.1.1)) + unstorage: 1.15.0(aws4fetch@1.0.20)(db0@0.3.1(@electric-sql/pglite@0.2.15)(drizzle-orm@0.44.2(@electric-sql/pglite@0.2.15)(@opentelemetry/api@1.9.0)(@types/pg@8.15.4)(pg@8.16.3)))(ioredis@5.6.0(supports-color@8.1.1)) vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5) zod: 3.25.76 transitivePeerDependencies: @@ -38032,6 +38104,27 @@ snapshots: - tsx - yaml + vite-node@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5): + dependencies: + cac: 6.7.14 + debug: 4.4.0(supports-color@8.1.1) + es-module-lexer: 1.6.0 + pathe: 2.0.3 + vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vite-tsconfig-paths@4.3.2(supports-color@8.1.1)(typescript@5.5.2)(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5)): dependencies: debug: 4.3.7(supports-color@8.1.1) @@ -38060,6 +38153,23 @@ snapshots: tsx: 4.19.3 yaml: 2.4.5 + vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5): + dependencies: + esbuild: 0.25.2 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.38.0 + tinyglobby: 0.2.14 + optionalDependencies: + '@types/node': 22.13.14 + fsevents: 2.3.3 + jiti: 2.4.2 + sass: 1.77.4 + terser: 5.39.0 + tsx: 4.20.3 + yaml: 2.4.5 + vitest@3.0.9(@types/node@22.13.14)(@vitest/ui@3.0.4)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.4.11(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.19.3)(yaml@2.4.5): dependencies: '@vitest/expect': 3.0.9 @@ -38139,6 +38249,45 @@ snapshots: - tsx - yaml + vitest@3.0.9(@types/node@22.13.14)(jiti@2.4.2)(jsdom@20.0.3(supports-color@8.1.1))(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5): + dependencies: + '@vitest/expect': 3.0.9 + '@vitest/mocker': 3.0.9(msw@2.7.3(@types/node@22.13.14)(typescript@5.5.2))(vite@6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5)) + '@vitest/pretty-format': 3.0.9 + '@vitest/runner': 3.0.9 + '@vitest/snapshot': 3.0.9 + '@vitest/spy': 3.0.9 + '@vitest/utils': 3.0.9 + chai: 5.2.0 + debug: 4.4.0(supports-color@8.1.1) + expect-type: 1.1.0 + magic-string: 0.30.17 + pathe: 2.0.3 + std-env: 3.8.1 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.3.5(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) + vite-node: 3.0.9(@types/node@22.13.14)(jiti@2.4.2)(sass@1.77.4)(supports-color@8.1.1)(terser@5.39.0)(tsx@4.20.3)(yaml@2.4.5) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.13.14 + jsdom: 20.0.3(supports-color@8.1.1) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vscode-languageserver-types@3.17.5: {} w3c-keyname@2.2.8: {} @@ -38418,8 +38567,6 @@ snapshots: ws@7.5.10: {} - ws@8.18.1: {} - ws@8.18.3: {} xml-lexer@0.2.2: From 76e8df5546f4f6b9abbbf11c2e6c26bc6db1f641 Mon Sep 17 00:00:00 2001 From: Ivan Vasilov Date: Mon, 11 Aug 2025 21:54:38 +0200 Subject: [PATCH 03/62] fix: Change the stale time for `get-deployment-commit` from 10 seconds to 10 minutes (#37845) Change the stale time from 10 seconds to 10 minutes. --- apps/studio/hooks/use-check-latest-deploy.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/studio/hooks/use-check-latest-deploy.tsx b/apps/studio/hooks/use-check-latest-deploy.tsx index cad2e77b005..eb09ccaeda3 100644 --- a/apps/studio/hooks/use-check-latest-deploy.tsx +++ b/apps/studio/hooks/use-check-latest-deploy.tsx @@ -42,7 +42,7 @@ export function useCheckLatestDeploy() { const { data: commit } = useDeploymentCommitQuery({ enabled: IS_PLATFORM && showRefreshToast, - staleTime: 10000, // 10 seconds + staleTime: 1000 * 60 * 10, // 10 minutes }) useEffect(() => { From 7ed5edd320ef2cc08ec3aa9d34aee3f03ab1e9bd Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Tue, 12 Aug 2025 10:44:48 +0700 Subject: [PATCH 04/62] Add CTA to unrestricted badge in table editor (#37730) * Add CTA to unrestricted badge in table editor * Update apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx Co-authored-by: Alaister Young --------- Co-authored-by: Alaister Young --- .../TableGridEditor/GridHeaderActions.tsx | 14 ++++-- .../TableEditorLayout/EntityListItem.tsx | 44 +++++++++++++++---- 2 files changed, 45 insertions(+), 13 deletions(-) diff --git a/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx b/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx index f43ac43e38a..fb4b6348f36 100644 --- a/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx +++ b/apps/studio/components/interfaces/TableGridEditor/GridHeaderActions.tsx @@ -26,6 +26,7 @@ import { useIsFeatureEnabled } from 'hooks/misc/useIsFeatureEnabled' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useIsProtectedSchema } from 'hooks/useProtectedSchemas' +import { parseAsBoolean, useQueryState } from 'nuqs' import { useTableEditorTableStateSnapshot } from 'state/table-editor-table' import { Button, @@ -51,6 +52,11 @@ const GridHeaderActions = ({ table }: GridHeaderActionsProps) => { const { data: project } = useSelectedProjectQuery() const { data: org } = useSelectedOrganizationQuery() + const [showWarning, setShowWarning] = useQueryState( + 'showWarning', + parseAsBoolean.withDefault(false) + ) + // need project lints to get security status for views const { data: lints = [] } = useProjectLintsQuery({ projectRef: project?.ref }) @@ -261,7 +267,7 @@ const GridHeaderActions = ({ table }: GridHeaderActionsProps) => { )} ) : ( - + - -
- - + /> +
+ +
+ + )} + {!isSticky && !editingMessageId && ( + +
+ + + +
+
)} diff --git a/apps/studio/components/ui/AIAssistantPanel/AssistantChatForm.tsx b/apps/studio/components/ui/AIAssistantPanel/AssistantChatForm.tsx index 75bca4790a0..f06425388fb 100644 --- a/apps/studio/components/ui/AIAssistantPanel/AssistantChatForm.tsx +++ b/apps/studio/components/ui/AIAssistantPanel/AssistantChatForm.tsx @@ -1,12 +1,12 @@ import { ArrowUp, Loader2, Square } from 'lucide-react' -import React, { ChangeEvent, memo, useRef } from 'react' +import { ChangeEvent, FormEvent, forwardRef, KeyboardEvent, memo, useRef } from 'react' import { useBreakpoint } from 'common' import { ExpandingTextArea } from 'ui' import { cn } from 'ui/src/lib/utils' import { ButtonTooltip } from '../ButtonTooltip' import { type SqlSnippet } from './AIAssistant.types' -import { SnippetRow, getSnippetContent } from './SnippetRow' +import { getSnippetContent, SnippetRow } from './SnippetRow' export interface FormProps { /* The ref for the textarea, optional. Exposed for the CommandsPopover to attach events. */ @@ -43,7 +43,7 @@ export interface FormProps { className?: string } -const AssistantChatFormComponent = React.forwardRef( +const AssistantChatFormComponent = forwardRef( ( { loading = false, @@ -66,7 +66,7 @@ const AssistantChatFormComponent = React.forwardRef( const formRef = useRef(null) const isMobile = useBreakpoint('md') - const handleSubmit = (event?: React.FormEvent) => { + const handleSubmit = (event?: FormEvent) => { if (event) event.preventDefault() if (!value || loading) return @@ -81,7 +81,7 @@ const AssistantChatFormComponent = React.forwardRef( onSubmit(finalMessage) } - const handleKeyDown = (event: React.KeyboardEvent) => { + const handleKeyDown = (event: KeyboardEvent) => { if (event.key === 'Enter' && !event.shiftKey) { event.preventDefault() handleSubmit() diff --git a/apps/studio/components/ui/AIAssistantPanel/Message.tsx b/apps/studio/components/ui/AIAssistantPanel/Message.tsx index 7838c5ceda0..3a295e2d6ce 100644 --- a/apps/studio/components/ui/AIAssistantPanel/Message.tsx +++ b/apps/studio/components/ui/AIAssistantPanel/Message.tsx @@ -1,5 +1,5 @@ import { UIMessage as VercelMessage } from '@ai-sdk/react' -import { Loader2 } from 'lucide-react' +import { Loader2, Pencil } from 'lucide-react' import { createContext, PropsWithChildren, ReactNode, useMemo } from 'react' import ReactMarkdown from 'react-markdown' import { Components } from 'react-markdown/lib/ast-to-react' @@ -8,6 +8,7 @@ import remarkGfm from 'remark-gfm' import { ProfileImage } from 'components/ui/ProfileImage' import { useProfile } from 'lib/profile' import { cn, markdownComponents, WarningIcon } from 'ui' +import { ButtonTooltip } from '../ButtonTooltip' import { EdgeFunctionBlock } from '../EdgeFunctionBlock/EdgeFunctionBlock' import { DisplayBlockRenderer } from './DisplayBlockRenderer' import { @@ -50,6 +51,10 @@ interface MessageProps { resultId?: string results: any[] }) => void + onEdit: (id: string) => void + isAfterEditedMessage: boolean + isBeingEdited: boolean + onCancelEdit: () => void } export const Message = function Message({ @@ -60,6 +65,10 @@ export const Message = function Message({ action = null, variant = 'default', onResults, + onEdit, + isAfterEditedMessage = false, + isBeingEdited = false, + onCancelEdit, }: PropsWithChildren) { const { profile } = useProfile() const allMarkdownComponents: Partial = useMemo( @@ -95,16 +104,18 @@ export const Message = function Message({
{variant === 'warning' && } {action} -
+
{isUser && ( )} -
+
{shouldUsePartsRendering ? ( (() => { const shownLoadingTools = new Set() @@ -126,7 +137,8 @@ export const Message = function Message({ key={`${id}-part-${index}`} className={cn( 'prose prose-sm [&>div]:my-4 prose-h1:text-xl prose-h1:mt-6 prose-h3:no-underline prose-h3:text-base prose-h3:mb-4 prose-strong:font-medium prose-strong:text-foreground break-words [&>p:not(:last-child)]:!mb-2 [&>*>p:first-child]:!mt-0 [&>*>p:last-child]:!mb-0 [&>*>*>p:first-child]:!mt-0 [&>*>*>p:last-child]:!mb-0 [&>ol>li]:!pl-4', - isUser && 'text-foreground [&>p]:font-medium' + isUser && 'text-foreground [&>p]:font-medium', + isBeingEdited && 'animate-pulse' )} remarkPlugins={[remarkGfm]} components={allMarkdownComponents} @@ -145,7 +157,7 @@ export const Message = function Message({ return (
{`Calling display_query...`} @@ -178,7 +190,7 @@ export const Message = function Message({ return (
{`Calling display_edge_function...`} @@ -224,6 +236,28 @@ export const Message = function Message({ ) : ( Assistant is thinking... )} + + {/* Action button - only show for user messages on hover */} +
+ {message.role === 'user' && ( + } + onClick={isBeingEdited || isAfterEditedMessage ? onCancelEdit : () => onEdit(id)} + className="text-foreground-light hover:text-foreground p-1 rounded" + aria-label={ + isBeingEdited || isAfterEditedMessage ? 'Cancel editing' : 'Edit message' + } + tooltip={{ + content: { + side: 'bottom', + text: + isBeingEdited || isAfterEditedMessage ? 'Cancel editing' : 'Edit message', + }, + }} + /> + )} +
diff --git a/apps/studio/state/ai-assistant-state.tsx b/apps/studio/state/ai-assistant-state.tsx index a9034f084d1..4d2836c070c 100644 --- a/apps/studio/state/ai-assistant-state.tsx +++ b/apps/studio/state/ai-assistant-state.tsx @@ -304,6 +304,19 @@ export const createAiAssistantState = (): AiAssistantState => { } }, + deleteMessagesAfter: (id: string, { includeSelf = true } = {}) => { + const chat = state.activeChat + if (!chat) return + + const messageIndex = chat.messages.findIndex((msg) => msg.id === id) + if (messageIndex === -1) return + + // Delete all messages from the target message (optionally including) to the end + const startIndex = includeSelf ? messageIndex : messageIndex + 1 + chat.messages.splice(startIndex) + chat.updatedAt = new Date() + }, + saveMessage: (message: MessageType | MessageType[]) => { const chat = state.activeChat if (!chat) return @@ -420,6 +433,7 @@ export type AiAssistantState = AiAssistantData & { deleteChat: (id: string) => void renameChat: (id: string, name: string) => void clearMessages: () => void + deleteMessagesAfter: (id: string, options?: { includeSelf?: boolean }) => void saveMessage: (message: MessageType | MessageType[]) => void updateMessage: (args: { id: string; resultId?: string; results: any[] }) => void setSqlSnippets: (snippets: SqlSnippet[]) => void From 3c20bb8adeeb108e86300adec7353e5d2dffbc53 Mon Sep 17 00:00:00 2001 From: Prashant Sridharan <914007+CoolAssPuppy@users.noreply.github.com> Date: Tue, 12 Aug 2025 09:54:12 +0100 Subject: [PATCH 12/62] Add two new blog posts (#37752) * New blog posts, still need images * New blog posts, still need og images * Added Firebase form to Firebase migration guides * move blog post to alternatives page * revert linkgs * add og image * add soshi logo --------- Co-authored-by: Francesco Sansalvadore --- .../migrating-to-supabase/firebase-auth.mdx | 2 +- .../firebase-storage.mdx | 2 +- .../migrating-to-supabase/firestore-data.mdx | 2 +- .../_alternatives/supabase-vs-firebase.mdx | 128 +++++++++---- .../2025-08-12-supabase-auth-build-vs-buy.mdx | 175 ++++++++++++++++++ .../supabase-auth-build-vs-buy-og.png | Bin 0 -> 20165 bytes .../logos/publicity/fixed-width/soshi.svg | 4 + .../public/images/logos/publicity/soshi.svg | 4 + apps/www/public/rss.xml | 9 +- 9 files changed, 284 insertions(+), 42 deletions(-) create mode 100644 apps/www/_blog/2025-08-12-supabase-auth-build-vs-buy.mdx create mode 100644 apps/www/public/images/blog/supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png create mode 100644 apps/www/public/images/logos/publicity/fixed-width/soshi.svg create mode 100644 apps/www/public/images/logos/publicity/soshi.svg diff --git a/apps/docs/content/guides/platform/migrating-to-supabase/firebase-auth.mdx b/apps/docs/content/guides/platform/migrating-to-supabase/firebase-auth.mdx index e33c787357e..bc3dd362dfb 100644 --- a/apps/docs/content/guides/platform/migrating-to-supabase/firebase-auth.mdx +++ b/apps/docs/content/guides/platform/migrating-to-supabase/firebase-auth.mdx @@ -88,4 +88,4 @@ For more advanced migrations, including the use of a middleware server component ## Enterprise -[Contact us](https://forms.supabase.com/enterprise) if you need more help migrating your project. +[Contact us](https://forms.supabase.com/firebase-migration) if you need more help migrating your project. diff --git a/apps/docs/content/guides/platform/migrating-to-supabase/firebase-storage.mdx b/apps/docs/content/guides/platform/migrating-to-supabase/firebase-storage.mdx index 3704d6dd6f7..345e3e6daf9 100644 --- a/apps/docs/content/guides/platform/migrating-to-supabase/firebase-storage.mdx +++ b/apps/docs/content/guides/platform/migrating-to-supabase/firebase-storage.mdx @@ -67,4 +67,4 @@ If the bucket doesn't exist, it's created as a `non-public` bucket. You must set ## Enterprise -[Contact us](https://forms.supabase.com/enterprise) if you need more help migrating your project. +[Contact us](https://forms.supabase.com/firebase-migration) if you need more help migrating your project. diff --git a/apps/docs/content/guides/platform/migrating-to-supabase/firestore-data.mdx b/apps/docs/content/guides/platform/migrating-to-supabase/firestore-data.mdx index 063eecdbad5..3121f96901f 100644 --- a/apps/docs/content/guides/platform/migrating-to-supabase/firestore-data.mdx +++ b/apps/docs/content/guides/platform/migrating-to-supabase/firestore-data.mdx @@ -211,4 +211,4 @@ The result is two separate JSON files: ## Enterprise -[Contact us](https://forms.supabase.com/enterprise) if you need more help migrating your project. +[Contact us](https://forms.supabase.com/firebase-migration) if you need more help migrating your project. diff --git a/apps/www/_alternatives/supabase-vs-firebase.mdx b/apps/www/_alternatives/supabase-vs-firebase.mdx index 3bb86c83e1f..17470aa777a 100644 --- a/apps/www/_alternatives/supabase-vs-firebase.mdx +++ b/apps/www/_alternatives/supabase-vs-firebase.mdx @@ -1,69 +1,121 @@ --- title: Supabase vs Firebase description: Supabase is the Postgres development platform with a SQL based Database, Auth, and Cloud Functions -author: ant_wilson +author: prashant tags: - comparison -date: '2022-05-26' +date: '2025-08-20' toc_depth: 3 --- -## What is Firebase? - -Now owned by Google, Firebase is a collection of tools aimed at mobile and web developers. At its core is the Firestore database. - -Firestore allows you to store “documents”. These are collections of key:value pairs where the value can be another sub-document. Document based storage is perfect for unstructured data, since two documents in a collection do not necessarily need to have the same structure. - -Firebase also offers other things that web developers find useful like an auth service for user management, and wrappers for other Google services such as Cloud Functions, and File Storage. +Firebase and Supabase both promise to give teams a full‑featured backend without managing servers. Firebase, owned by Google, combines a NoSQL database with authentication, file storage and serverless functions. Supabase is an open‑source alternative [built on Postgres](/docs/guides/database/overview) that offers similar services—[auth](/docs/guides/auth), [storage](/docs/guides/storage), [real‑time](/docs/guides/realtime), and [functions](/docs/guides/functions), but with the predictability of SQL and the freedom to self‑host. Choosing between them depends on how your application models data, how you plan to scale, and your tolerance for vendor lock‑in. ## What is Supabase? -Supabase is the Postgres development platform. Instead of being built around a document-based datastore, Supabase offers a relational database management system called PostgreSQL. This comes with a few advantages: +Supabase is an open‑source backend platform that runs on **Postgres**. Each project comes with a dedicated Postgres database, an auto‑generated REST and GraphQL API, real‑time subscriptions, and storage, all tied together with **Row‑Level Security (RLS)**. RLS policies are written in SQL and allow you to define granular access rules using the same language you use for your data. Because Supabase’s core services are built on open technologies like Postgres and GoTrue, you can run Supabase locally or host it yourself using Docker or community tools such as Kubernetes or Terraform. -- It’s open source, so there is zero lock in. -- You can query it with SQL, a proven and powerful query language. -- It has a long track record of being used at scale. -- It’s the database of choice for transactional workloads (think apps and websites, or other things that require near-instant responses to queries). -- It comes with decades of [useful postgres extensions and plug-ins](https://supabase.com/docs/guides/database/extensions). +## What is Firebase? -At Supabase we’ve always been huge fans of Firebase - so we started adding a few things on top of PostgreSQL in an attempt to reach feature parity, including: +Firebase is a managed platform owned by Google. It includes Cloud Firestore (a document‑oriented NoSQL database), authentication, Cloud Storage for files and Cloud Functions for backend logic. Firestore stores data as JSON‑like documents grouped in collections. The SDKs automatically cache documents on the device so apps can read, write and listen to data while offline; changes are synchronized when the device reconnects[.](https://firebase.google.com/docs/firestore/manage-data/enable-offline#:~:text=Cloud%20Firestore%20supports%20offline%20data,to%20the%20Cloud%20Firestore%20backend) Firestore supports *collection group queries*, which let you query across collections with the same name. To handle relational data you often denormalize documents or perform multiple queries in code. -- Auto-generated API - [query your data straight from the client](https://supabase.com/docs/guides/api#rest-api-overview). -- Realtime - [changes in your data will be streamed directly to your application](https://supabase.com/docs/reference/dart/subscribe). -- Auth - [a simple to integrate auth system and SQL based rules engine](https://supabase.com/auth). -- Functions - [javascript and typescript functions that deploy out globally](https://supabase.com/edge-functions). -- Storage - [hosting images, videos, and pdfs easily](https://supabase.com/storage). +## Core architecture and database -## How are they similar? +| Feature | Firebase | Supabase | +| ------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| **Database type** | Document database (Cloud Firestore) | Relational database (Postgres) | +| **Data model** | Schemaless JSON; subcollections; no native joins | Structured tables with foreign keys and indexes | +| **Transactions** | Supports transactions and batched writes | Full ACID transactions built into Postgres; you can execute complex joins, subqueries and data transformations in SQL | +| **Offline support** | Firestore caches actively used data on the client so you can read/write while offline; changes sync when connectivity returns | Supabase clients use Postgres directly; offline access requires your own caching strategy and works with Zero, Electric, | +| **API access** | Client SDKs for web, Android, iOS and server environments; REST/gRPC endpoints | Auto‑generated REST API via PostgREST and GraphQL API via pg_graphql | +| **Self‑hosting** | Not supported; services run on Google Cloud | Fully self‑hostable via Docker or on your own cloud | -Both Firebase and Supabase are based on the idea of bringing a superior developer experience to databases. With both platforms you can spin up a new project from directly inside the browser without the need to download any extra tools or software to your machine. Both platforms come with a useful dashboard UI for debugging your data in realtime, which is especially useful for fast iterations when in development. +Firestore’s schemaless design makes it easy to prototype. As data relationships grow more complex, you must handle joins in the client or denormalize your data. Supabase’s Postgres foundation gives you SQL’s expressive power, foreign keys, and indexes from day one. -Both Firebase and Supabase have invested heavily in client side libraries so you can communicate with your database directly from the client. Firebase has their [Firebase Javascript SDK](https://github.com/firebase/firebase-js-sdk) and Supabase has [supabase-js an isomorphic client](https://github.com/supabase/supabase-js/) that can be used both on the client also on the server in a node-js environment. +## Authentication and user management -## How are they different? +| Feature | Firebase | Supabase | +| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| **Login methods** | Email/password, phone, anonymous and OAuth providers; additional SAML and OpenID Connect support requires upgrading to *Firebase Authentication with Identity Platform* | Email/password, OAuth providers (Google, GitHub, Apple, etc.), SMS and custom providers | +| **Enterprise auth** | The Identity Platform upgrade enables multi‑factor auth, SAML and OIDC | SSO, SAML and OIDC are available on Pro and Enterprise plans without changing SDKs | +| **Access control** | Security Rules use a domain‑specific language and differ for Firestore, Storage and Functions | Row‑Level Security (RLS) policies written in SQL control access across the database | +| **Offline auth** | The client SDK persists auth tokens locally and handles session renewal | Session management integrates with Postgres; tokens are validated on the server | +| **Customization** | Custom auth requires writing Cloud Functions or backend services | You can write custom policies and logic in SQL; column‑level security enables field‑level restrictions | -Firebase and Supabase differ in several ways. The main one being that Firebase is a document store, whereas Supabase is based on PostgreSQL - a relational, SQL-based database management system. +Firebase Authentication is easy to set up for email/password and social logins. Enterprise features such as SAML/OIDC and blocking functions require upgrading to the Identity Platform and come with new usage limits[.](https://firebase.google.com/docs/auth#:~:text=iOS%20%20%20135%20Web,192%20Unity) Supabase Auth integrates with Postgres, so you can enforce complex policies using SQL and upgrade to SSO or enterprise auth features without changing products. -There are some other important differences. +## Serverless functions and backend logic -### Open Source +| Feature | Firebase | Supabase | +| -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| **Runtime** | Cloud Functions run on Google’s infrastructure. You write code in JavaScript or TypeScript and deploy through the Firebase CLI; Python support is available in the second‑generation runtime | Edge Functions run on Deno and are globally distributed at the edge for low‑latency execution | +| **Languages** | JavaScript, TypeScript and Python (2nd gen) | TypeScript (via Deno); you can also call third‑party APIs or write SQL from functions | +| **Triggers** | HTTP requests, Firestore, auth events, Storage, pub/sub and scheduled jobs | HTTP requests, scheduled jobs and other triggers; functions can call Postgres directly through the `supabase-js` client | +| **Cold start** | Functions run in a managed environment; cold starts can vary depending on region and load | Edge Functions start quickly because Deno’s runtime is lightweight and runs close to users | -Supabase is open source. Along with the hosted cloud platform, you can also take the Supabase stack and host it inside your own cloud or run it locally on your machine. There is no vendor lock in. +Firebase Cloud Functions integrate tightly with other Firebase products and support a wide range of triggers. Supabase Edge Functions are TypeScript functions that run on Deno at edge locations. They talk directly to your Postgres database, which simplifies tasks like handling webhooks or building custom APIs. -### Pricing +## Storage and file management -[Firebase charges for reads, writes and deletes](https://firebase.google.com/pricing), which can lead to some unpredictability, especially in the early stages of a project when your application is in heavy development. Supabase [charges based on the amount of data stored](https://supabase.com/pricing), with breathing room for unlimited API requests and an unlimited number of Auth users. +| Feature | Firebase | Supabase | +| ----------------------- | --------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| **Underlying platform** | Cloud Storage for Firebase (built on Google Cloud Storage) | S3‑compatible object store integrated with Postgres | +| **Resumable uploads** | The web SDK provides `uploadBytesResumable()`and methods to pause, resume or cancel an upload | Built‑in support for resumable uploads; each upload is recorded in a Postgres table | +| **Access control** | Security Rules use a separate rules language for Storage | Storage metadata is stored in Postgres and protected by the same RLS policies as the rest of your data | +| **Image tools** | No built‑in transformations (you can add Firebase Extensions for resizing) | Built‑in image transformations and CDN delivery | +| **Free tier** | Spark plan includes 5 GB of Cloud Storage in select regions; additional usage is billed by region and operation | Free plan allows files up to 50 MB and 1 GB total storage; Pro/Team plans allow up to 500 GB per file and include CDN | -### Performance +Firebase Storage is reliable and integrates with the auth SDK. Pricing depends on region and includes separate charges for storage, bandwidth and operations. Supabase Storage integrates with Postgres: metadata is stored in a table, so you can apply the same RLS policies you use elsewhere[.](/docs/guides/storage/security/access-control#:~:text=Supabase%20Storage%20is%20designed%20to,RLS) Free plans include 50 MB per file, and Pro plans raise that limit to hundreds of gigabytes. -We created a benchmarking repo where you can compare the performance of both services in different scenarios. Our most recent results show that [Supabase outperforms Firebase by up to 4x](https://github.com/supabase/benchmarks/issues/8) on number of reads per second, and 3.1x on writes per second. +## Open source vs. proprietary -## How do I migrate from Firebase to Supabase? +| Feature | Firebase | Supabase | +| ------------------ | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Core platform** | Proprietary managed services hosted by Google; client SDKs are open source. No self-hosting option. | Fully open source; core components such as Postgres, GoTrue and PostgREST are licensed under permissive licenses, and you can run Supabase yourself | +| **Self‑hosting** | Not available | Supported via CLI and Docker; community tools exist for Kubernetes, Terraform and other platforms | +| **Governance** | Maintained by Google | Community‑driven with a public roadmap and contribution model | +| **Vendor lock‑in** | Tight coupling to Google Cloud products | Portable architecture; you can move between Supabase Cloud and self‑hosted deployments without rewriting your app | -Since Firebase is document based, migrating into a relational database requires you to map your data structure across into a SQL schema. Luckily we’ve built a [handy conversion tool to do it for you](https://supabase.com/docs/guides/migrations/firestore-data). +Firebase provides a polished, fully managed experience. Supabase embraces open source: you can inspect the code, contribute to improvements and, if needed, host your own Supabase instance. -We also have guides and tools for [migrating Firebase Auth to Supabase Auth](https://supabase.com/docs/guides/migrations/firebase-auth) for [migrating Firebase Storage files to Supabase Storage](https://supabase.com/docs/guides/migrations/firebase-storage). +## Pricing and cost comparison -These are by far the most complete Firebase to Postgres migration tools available anywhere on the web. +| Feature | Firebase | Supabase | +| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Free tier** | Spark plan includes a limited free quota—for example, Firestore allows 50,000 document reads and 20,000 writes per day, Storage includes 5 GB in select regions and Cloud Functions are limited | Supabase’s free plan includes unlimited API requests, 50,000 monthly active users, 500 MB database storage, 1 GB file storage and 5 GB bandwidth | +| **Billing model** | Pay‑as‑you‑go; you pay per document read, write, delete and per function invocation[.](https://firebase.google.com/docs/firestore/pricing#:~:text=Document%20reads%2050%2C000%20per%20day,transfer%2010%20GiB%20per%20month) Pricing varies by region and can be hard to predict | Transparent tiered pricing: pay for database storage, file storage, and compute. There are no charges for API requests, and you can track usage from the dashboard | +| **Self‑hosting** | Not supported | Available—self‑hosting lets you control costs and comply with regulatory requirements | -You can [try Supabase for free](https://supabase.com/dashboard). If you require Enterprise level support with your project or migration, please get in touch using our [Enterprise contact form](https://forms.supabase.com/enterprise). +Firebase’s usage‑based pricing can surprise teams as their apps grow because every document read, write or listener contributes to cost[.](https://firebase.google.com/docs/firestore/pricing#:~:text=Document%20reads%2050%2C000%20per%20day,transfer%2010%20GiB%20per%20month) Supabase offers predictable tiers and does not bill per request, which can simplify budgeting[.](/pricing#:~:text=Get%20started%20with%3A) + +## Ecosystem, extensibility and community + +| Feature | Firebase | Supabase | +| ------------------------ | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| **Platform integration** | Deep integration with Google Cloud services such as BigQuery, Cloud Functions and Firebase ML | Built on Postgres; you can leverage Postgres extensions, listen to database events and integrate with third‑party services | +| **Extensions** | Firebase Extensions provide pre‑built functionality (e.g., image resizing, Stripe sync) | Postgres extensions (50+ preconfigured) add features like full‑text search, vector similarity and custom data types | +| **SDKs** | Official SDKs for web, Android, iOS, Unity, C++ and more | Official JavaScript client and community clients for Go, Rust, Dart and other languages | +| **Community** | Support via GitHub issues, Stack Overflow and Firebase Summit | Active open‑source community with GitHub discussions, the SupaSquad advocacy program and third‑party integrations | +| **Self‑hosting tools** | None | Community‑maintained packages for Terraform, Kubernetes and BYO cloud | + +Firebase benefits from Google’s ecosystem and has mature SDKs for many platforms. Supabase leverages the Postgres ecosystem and open‑source contributions; you can extend it with Postgres extensions or third‑party packages. + +## Scalability and performance + +Firestore scales automatically and handles real‑time synchronization for simple use cases. Queries are shallow and cannot traverse relationships; collection group queries allow searching across collections with the same name[.](https://firebase.blog/posts/2019/06/understanding-collection-group-queries/#:~:text=In%20the%20past%2C%20you%20could,are%20in%20a%20single%20subcollection) Firestore caches data on the client so offline access is good. Deep querying often requires multiple reads or denormalized data, which can increase costs[.](https://firebase.google.com/docs/firestore/pricing#:~:text=Document%20reads%2050%2C000%20per%20day,transfer%2010%20GiB%20per%20month) + +Supabase inherits Postgres’s mature scaling features. You can perform joins, subqueries and full‑text search in a single SQL statement. Transactions guarantee consistency, and indexes keep queries fast. Real‑time updates are delivered via Postgres logical replication, and connection pooling and read replicas can be added as your load grows. Because Supabase is built on a relational database, data remains strongly consistent, and performance tuning is well understood in the Postgres ecosystem. + +## Migrating from Firebase to Supabase + +Many teams start with Firebase for fast prototyping and switch to Supabase when their data model becomes relational or costs become unpredictable. A typical migration involves two phases: + +1. **Run both services side by side.** Export your Firestore collections and import them into Supabase—initially as JSON or JSONB columns—while your app continues to read from Firebase. Then incrementally swap Firebase SDK calls for Supabase queries. +2. **Normalize your data.** Refactor JSON into proper Postgres tables, add foreign keys and indexes and write RLS policies. This is when you begin to enjoy SQL’s power and simplified code. + +Supabase provides [open‑source migration tools](/docs/guides/platform/migrating-to-supabase). There is a utility for [migrating Firebase Authentication to Supabase Auth](/docs/guides/platform/migrating-to-supabase/firebase-auth) by exporting users and re‑creating them in Postgres, another for [copying Firestore collections to Postgres tables](/docs/guides/platform/migrating-to-supabase/firestore-data), and a tool for [migrating files from Cloud Storage to Supabase Storage](/docs/guides/platform/migrating-to-supabase/firebase-storage). These tools are maintained on GitHub and have been used by startups to migrate tens of thousands of users with minimal downtime. + +## Conclusion + +Firebase offers an excellent developer experience for prototypes and simple applications. It excels at real‑time synchronization and has a generous free tier. Supabase provides a similar developer experience with a relational core. By building on Postgres and open‑source components, Supabase gives you SQL queries, ACID transactions, RLS and the option to self‑host. For teams that anticipate complex data relationships, need fine‑grained access control, or want predictable costs and open‑source flexibility, Supabase is a compelling alternative. + +Need help migrating from Firebase to Supabase? [Contact](https://forms.supabase.com/firebase-migration) our Firebase Migration Team. diff --git a/apps/www/_blog/2025-08-12-supabase-auth-build-vs-buy.mdx b/apps/www/_blog/2025-08-12-supabase-auth-build-vs-buy.mdx new file mode 100644 index 00000000000..bcc842f0e83 --- /dev/null +++ b/apps/www/_blog/2025-08-12-supabase-auth-build-vs-buy.mdx @@ -0,0 +1,175 @@ +--- +title: 'Supabase Auth: Build vs. Buy' +description: 'The reasons why (and why not) to use Supabase Auth instead of building your own.' +categories: + - auth +tags: + - auth +date: '2025-08-12:10:00' +toc_depth: 2 +author: prashant +image: supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png +thumb: supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png +--- + +Authentication appears in nearly every application but is rarely the core value proposition. Yet development teams often spend weeks or months building, testing, and maintaining auth systems. Let's explore the real costs of building authentication from scratch versus using a solution like Supabase Auth. + +## How Supabase Auth works under the hood + +Before diving into the cost analysis, it's important to understand what Supabase Auth is: + +1. **Postgres-native authentication**: Supabase Auth stores users directly in your Postgres database in the `auth.users` table, not in a separate service +2. **JWT-based**: Authorization give you total control over security +3. **Row Level Security integration**: Seamlessly connects authentication with Postgres's RLS policies +4. **Hybrid token architecture**: Supabase Auth issues stateless JWTs for access control, while maintaining refresh tokens and session data in your Postgres database for secure, persistent login + +## The hidden costs of building your own auth + +When teams decide to build authentication, they're often thinking about the initial implementation only. But auth requires ongoing maintenance that can drain resources from your core product development. You need to consider: + +- The time investment required to build auth from scratch +- The ongoing maintenance required to keep auth functioning properly +- The security risks associated with running auth systems yourself +- The considerable time and skills involved in adding new authentication protocols + +Even if you were to begin your auth investments using open-source projects, it’s typical for these open-source projects to be abandoned. This requires significant investments in upkeep and maintenance on your part. + +### Time investment + +Building basic authentication functionality typically requires: + +- **2-4 weeks** for a senior developer to implement email/password login, session management, and password reset functionality +- **1-2 weeks** for implementing each additional auth provider (Google, GitHub, etc.) +- **1-2 weeks** for security reviews and penetration testing +- **1-3 weeks** for implementing MFA and other security features +- **8+ weeks** for implementing SAML (which, itself, requires significant maintenance investment) + +This assumes you already have expertise in security best practices, JWT handling, and session management. + +### Ongoing maintenance + +Authentication isn't a "build once and forget" component: + +- Security vulnerabilities require immediate attention +- Auth providers regularly update their APIs and requirements +- Password storage standards evolve +- Compliance requirements change over time +- User management features grow more complex as you scale +- New features, such as supporting one-time access codes, become more important + +Borrowing engineering time to maintain auth systems is a sub-optimal use of resources. + +### Security risks + +Authentication is security-critical infrastructure where mistakes can be catastrophic: + +- Token management vulnerabilities, such as session tokens +- Password storage failures, such as weak hashing +- Session handling issues +- CSRF/XSS vulnerabilities + +These issues often aren't apparent until a breach occurs, with potentially devastating consequences. For most businesses, the time spent hardening and re-hardening auth systems, to say nothing of the time required and reputational hit caused by having to fix compromised auth systems, is simply not worth it when weighed against other priorities. + +## The Supabase Auth approach + +Supabase takes a different approach by providing authentication that's: + +1. **Integrated with your database**: Supabase Auth is deeply integrated with your Postgres instance via the `auth` schema. It stores user data in the `auth.users` table, manages tokens with Postgres functions and triggers, and integrates seamlessly with Row Level Security (RLS) for fine-grained access control, all without requiring you to manage auth logic in your own code. +2. **Open source**: No vendor lock-in, with the ability to self-host if needed. +3. **Developer-focused**: Simple APIs with client libraries for major frameworks. +4. **Secure**: Supabase maintains security best practices for token issuance, password hashing (using `bcrypt`), and provider updates so you don’t have to monitor every standards update. However, developers are still responsible for securely handling user data and managing secure client environments. +5. **Extensible**: Edge Functions enable custom auth logic to implement post-signup profile creation, role assignment based on domains, and third-party webhooks for things like sending Discord invites or syncing with your CRM. + +### Time to market + +Using Supabase Auth typically means: + +- **30 minutes to 2 hours**: Basic implementation time for email/password auth +- **15-30 minutes**: Adding each additional provider (Google, GitHub, etc.) +- **1-2 days**: Implementing row-level security policies +- Security updates handled by Supabase + +This represents a 90-95% reduction in time-to-production compared to building from scratch. + +### Cost comparison + +Beyond the direct engineering time, there's the opportunity cost of resources diverted from your core product: + +| Activity | Build (hours) | Supabase Auth (hours) | +| ------------------------- | ------------------ | --------------------- | +| Initial implementation | 160-320 | 4-16 | +| Adding social providers | 40-80 per provider | 0.5-1 per provider | +| Security updates (yearly) | 40-120 | 0 | +| User management features | 80-160 | 0-8 | +| Total first year (est.) | 320-680 | 4-24 | + +At an average engineering cost of $150/hour, that's $47,400-$98,700 saved in the first year alone. For most companies, the 320-680 hours invested in building their own auth system could be channeled towards, at minimum, one category-defining feature. + +### Flexibility + +Supabase Auth supports: + +- Email/password authentication +- Magic link (passwordless) login +- Phone auth via Twilio integration +- OAuth providers (Google, GitHub, Azure, Apple, etc.) +- Custom claims and user metadata +- JWT and session-based auth +- Row-level security integration +- Passkey support (coming soon) + +All without writing the underlying authentication code yourself. + +## Choosing between Supabase Auth and Auth0 + +Many teams evaluate Supabase Auth against Auth0, another popular authentication service. Here's how they compare: + +| Feature | Supabase Auth | Auth0 | +| ------------------------ | ---------------------------------------------- | ----------------------------------------- | +| **Architecture** | Postgres-native, self-hostable | Cloud-only SaaS, proprietary | +| **Pricing Model** | Based on compute and storage | Per monthly active user (MAU) | +| **Database Integration** | Direct Postgres RLS | Separate system from your database | +| **Enterprise Features** | Self-hosting for compliance | Built-in SAML, LDAP, compliance tools | +| **Developer Experience** | Code-first, flexible APIs, Supabase UI Library | Dashboard-driven, extensive UI components | +| Open Source | Fully open source | Closed source | +| **Customization** | Full source code access | Rules, Actions, and Hooks | + +**Choose Supabase Auth when:** + +- You're already using Postgres and want direct database integration +- You need cost predictability at scale (no per-user pricing) +- You value open source and potential self-hosting +- You prefer a code-first, API-driven approach + +**Choose Auth0 when:** + +- You need enterprise features like SAML and LDAP out of the box +- You have complex multi-tenant B2B requirements +- You need extensive compliance certifications immediately + +Both are excellent choices, but Supabase Auth typically offers significant cost advantages at scale while providing deeper database integration. + +## When should you build your own auth? + +Despite the advantages of Supabase Auth, there are legitimate reasons to build your own: + +1. **Specialized compliance requirements**: If you have unique regulatory needs that off-the-shelf solutions don't address +2. **Deep integration with legacy systems**: When you need authentication tightly coupled with existing proprietary systems +3. **Extremely unique authentication flows**: For highly specialized authentication requirements not supported by existing providers + +## Making the decision + +When considering whether to build or buy authentication, ask yourself: + +1. Is authentication a core differentiator for our product? +2. Do we have security expertise on our team? +3. Are we prepared to maintain this critical infrastructure indefinitely? +4. Could the engineering time be better spent on our core value proposition? + +For most applications, authentication is essential infrastructure but not a competitive advantage. Using Supabase Auth lets you focus on what makes your application unique while leveraging battle-tested security. + +## Getting started + +- [Read the documentation](/docs/guides/auth). Implementing Supabase Auth takes just a few lines of code. +- Try our [quickstart guide](/docs/guides/getting-started/quickstarts/nextjs). Supabase offers framework-specific packages that handle auth state, protected routes, and server-side rendering. +- [Contact us](/contact/sales) if you want a more detailed analysis of Supabase Auth for your business, including pricing estimates and comparisons. diff --git a/apps/www/public/images/blog/supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png b/apps/www/public/images/blog/supabase-auth-build-vs-buy/supabase-auth-build-vs-buy-og.png new file mode 100644 index 0000000000000000000000000000000000000000..21ff7ad72bd3c385199427f1704b9075596b374e GIT binary patch literal 20165 zcmeHv`9D-`_LJfF|^`{VZyc)a+*%(?G#pXqN1W$EY`65zL=O8H#avQAD@hj3_m|V z4-XG7FE0lN2NxF?Cnx8jLx&8y?@LQdv$L}wK73e8N=i^rP*_-4L_|bLNJvppQCwVH zR#sMCUS3H_NkT$GPEJlzQc~7bM95rkqm=Kb-h|py1RZ$oV203LXM}*Ic>?KxZ}kkdL0R}k6h$ZuPQ$El6l~)@g_>a z`OM+_j+T~|TDbwLcN~tTc}XSM>(<;-^0JV_pOCt1tDbaKk_5=7x%&J2t0!JnS64rJ z^eFD0lb4s5`itw*jz*HcX7W+is*l_c2VFEYG_Bisdd}0+Q$kq|r>x{= zwe=hoE{p$Jn;U!fu<ug@nInK*I$?T2Fg4>e_Q7%GXH$uGZ&J<-E)~(-ihv-U9707t@)(t@BgG}A>u1X z&n)ouHbW4!vc1zP%)Q0a8p@$J1& zS>KJl22FOje$30&MqOcMkyaX$liM4U(wf_oXtUisIXQWb*wbJ}c)F8hkhoQSP~7ZY zQF6XdsJWw|_bo?{=e!WK~Ov$eC{j&zr~;>TeMD2Ql1 zd?$x3II7ZAC4tzoAht4)T8K?$kSB#bd^AM&&{O!5rgw3c4n-2`u_9LNBT^Nho}PtR zSo0(K&~}o}NJzqqhPLfzHsd*275eX^IUJqOd;jgtA)fI9iif*!-9`XA7aUC8IW_5I3zw}O!_g;5U9 z6V5%Ba8;QJJBYR1oht$MWHGh+n~!#~&r_s6qE`d*5$_((qVf^ao=f>+a2!ZHD@EpH zAn4OXpa-e+Mnwu5uPBRVw(@79*L18%Bc69)Da2DW*P2MhWfs)JWIK0*4;13|yH};3 z&eZhV*t`@*bo7k@b1s4vP*8;bcmiN{!R2s7Xyt1h7hjCZqH+fYp5gdSu z51CbN9e8W{;`7e%>7mTH@t{>6J1fGt9V})*#P0|3BA+Su!V*2NNQdgS8CI@iBH#VZmIThcDlZK(9&IAf7Br%X*(c`p%btF)d}ZFJ=?3v ze9zi#E`KAN9NEB&eIASDPQ5P5k*TBdccP}agO5&Szw@ypL05OAp+A!{Ou(V;8lOiR zwvqRA*hd<|+fLqs4|bU4yi$|4wri{D_pxp;LQMPM2kYhAa$>oX(3iu^MDlGo@zc4I zwpJ>hudq1ChoZ65KZGS9CP~zs3d3dD@-I_OHL!&xH(?*5o=%Y#W-(QNZ3@)ipe!d> ztfLBX2!eTNenzIfx-X`;r5v>%3laNa3s zar}D!^Bgx@S9-<4pWK9lL@YPK>*6yb;K8HTfTDg+`DZ)i!1Y&K_3qrbKn!Iq!98P> z-amRS+9<*@(qInTo?ek^#!cWQqWf}#v%;j3@Uu|=a~xGGe1-bMDw0^SY*+%jSuN*J zoEa&E)GrU!o{>`84^oNL!930MB29-tl1&daXyaEJWx@ntLJBdIBZ?&!`uABWLucr8&y2|HSohXKIUj4Fek2yLWv4%bzV=dxcn9EO z{eD)4a>zrDc8A{uR!IFdP)epiU7o+JfY0IFKtW{hb;3r8H4CoHSRG+K0p!8L0-j}m zppTbR#OL5cnPmz3Id;#7)hla78a6pv@(fxwgLnv6QJqsf0la~Q70zAxECX%FP)5Pe z#j*JNU(#V(^!W|h^`?~zsM;Fy<3_SD9nN#*b5eC4{*{Ao%C?UM&3>CY)t_){prU&6 z-r`mAlpQPQ)Hf-;!SVcr9GvQftzep0YQ_DV^=^~r?Z)tr9nSdOb-3q}{!TY+;JUjY zDAYM_Ur|!`<1zTI>ZgueNTdn>+Rty^(qdK82R$m)k${MfEiRD;aUYv&BCf_Jz?wXz z=Fh;9`tK4afFqzWFP|I5$)_;5b!+2s|D5%4X8~kB@?9i%Mxy}E<)RfK0Tw>$&6Rqa zVV&nMWEVNs*xH@9d*;+Vd*N**se)8hr+e8Q|A?vx^+QTTR|%ynE&0iKu!4FSCpqo& zayx5oE?qDFIh%6^@;Sq`Gj~eo%Xas#u@c&~KU&jovQa9BrvEX4#4eu-3gY<*FZgjg z=GCyn)y^ovS!(@8SX^0l+|JH7)CU_6sAdQMY~MM%E)glA|MD#5$PYy_RR(HjKk$z$ z#baq6Rj{p!jkQ3^;=#oyUaI{s6RLui`)k=F%1hyX$2D(}cb|C2ttO2E$rlHK6km|s zdJ5GdRuc8$lUUgHCRRx0wOfN?hD%SV`^TEFKTpFeu3~ zXm2NCyRP4j;{>r1O1aa%qocV>b{bCO+y@hm44s?l6{VGv2XjQ~Yx{cWF-%S%H7>W) z=(@HN_o&enShRTdN_#sAuSk)Jz~GocA#&~L>7yx8LKY&;l-T0_q1QfklhD+U2Xm)} zcQT1s!|<6oTIKy8(2t#0ukDR(mQJRU3NH}ozs0~j38*sT!euen@mLR^5PUDb^RgFb z@%NdErmwkHn2WA!EEIF==`$65rJj)fhr+E{3s)?X4#_{2g8m?48(ECUFJ3?CE}Ws1 zPA}y7ayBu1JUXd~S|fVA{~5Y?*FTpctU!G~Ax904jvc{`o}Hr!Q8cXkf!4zNr2(K! z`&9L}7&vjE$ta}yIA`^7zwnz+3}-)wxanzS3#%r*Fz+!Gm&G||`M$1;R8jFQwy?1H zmF2#(rlkG+agcZ0McH>7O4^GZ9RnRt9TYpQBVS)zTbtJmf96hgGu!F>o})U_N$qTD zaqwufDSNa5auJ_nW8BO*^!-vh97jczb~VKWpqKznQIc}y&NYP4e8Fr%*-WRz)CGZr z7MIXSYe0oRVJ)IGQ$NB+>`aI^#BsS>|YAx^(K0d-bWOe`O_%!|1;)X`Oqmpk9 zA-&84vZ)M`$~Ia1S2b5UT23a6R%NUUOW@z98iW+FJ`O&@-C0z)HYAP|&NNi||Z|NZkWguu#&U zzBnU;6s{?r|JLbp-H^#z#yYRea|_bT?MN@_PxIj{%jvk${&LO9!YOg)-PgkJK}Q;2 zbu_A_vQX3rVp>G%J|v!vvQ2(`Q-PN-NqL&0Z>KWb^QXkb=(Q-S3lve1|9baqxRgw{0TR z%HxC<^AA9aW7@d|yh!=<$@v@GD|cipU9E13JU}Kpm6JG zii|wl-^PDgYb|VqXbQrI$kH+MSM$DDTksO*dfRzt173vH9~$)Xoi`=400Jl979xda z(#8M_hN1$6xqUvK$H@cYb^Cs12bVQDt7UNt5B=J_c@!j*k>?7`E6ab?Tn%*~M@vF_ zSC)QDLc$n|Eac{9>V!)FW?8|Rk8RLHsv1E7;xz_ZoD>yF##RRQg9{Hl5%0Oz!;hZ8 zpC4%;ad4po3L#yb0%XP#VoOw*&YTQVu?i~ha4w(gcB8g>hpVwgxT;?8XwPW*Dqo$} zn-qA_A-xA9j5;;;JKkL_gOJw~Es`K@W({7KOrW_oA0$C`&B>&7e9PVmf z-pX^SYExj1dK!%<&y0AsI`%YQW_9eCZOOkc4WJB=Q*A zrI@i`AKOrKT*`@^iPK4s{S2k5`7QA3oyf)0fHnpvK)881JE!JwgDHu;F*Uh)t&7=; zpEJgHS!s*rbRKAPisU~w-kdv6&cepFmZ{$P_G8J$qlDXd7q4Bs>Kne?k{UTKqmNFc zo-;aJBx>LGt?rjww`>NB*F3aHbv8Jz?)#(dSL`LAdGplkB>OS+zATsy!HT42N=53N zc_@FmUhLXIjUR0mGq>S+(JYH~3~r=k=@=K`604pLy6PU+(5OhO682UKF9x?4tYF0{ z|7Go|tkv?;IZXe!fv-Tz+pjkL26Wbr#Naw3yj}iLWfKaSBJ_B!=oA-$1M%b~X!eY% z+yBVK;9k`n8hz=kCYb0Js?|Xx`GiF?;Z^*57UX zC)|;Ed)NeBFHQw=k)3pPolS|j?C*VGCG)0S&0NT)o>%S?QR9hOwzx-Ay-jNk>&za_ zH%cjSunPltwv%-pj}yk+NpNv8e2eT)4lcI`?vbcLGqr;AA27V`GNq z4>%;u25OuD%t12lnWgf{mOXUuRkbaTs6^LqiJ|J|;hPbM4wn7_j$etJTX-SUom|eJ z=3jeOV@a)6`KBy%oy(Bnr2;V>Q`3*f_n;E_&|%PuBWeqHXocJUy6;l^a6)%2FUiKE z?^ok;V#Jxv?=|$E7YfPqtYDXV{iQTE+!0zHewdq}%dpXajCbGHoh6}i^yf72&Mt^W zw$4zL*$CQ36q$grtHmqSxokUu15Kxa7OswO1Yz9ZCO;@60Tsf9RcoFY`cGzHjSGjR zT@~GZ(4{>%r)(i^LP&-x5x*D26UhZH1|4R~^rZE4%he|zaKcP6SG5`oT;HL%qp`>{ z#H-{IfQs#%{@eCAAm&|@HYf}I)^x(){s2ixVcy}L_Krw0hW>4P_TFG;OPM0nvyJE! zvC`i&12IiY<|%* zsK`P7kY3awUc!Z}6Mzhc!bh+<{+`LcP59A#q8c}Uz0#BURdu^fehe;bZ2h+*kp%zJ z{W|U+5?OZxM%dL%LH3ktY%tf$M^@YfRz#6Vtvkkxp(_c{egblD9@}?P5S?ip)KduG zuNS;F)7V7{r125P?`R;VCxKS^w2ey^Q9{g(*sgfrPT^Vjf*6*#;@Pw zzo)(=+2UH3D9`O?1tzhu;SGC8HolSNU;Ff zV^_8s7Po**0mRhzK>Elm&gX+^N56PqNzA}UjyTmfVc?(=6ibzaJ_DGJ6F`yHCDDHt zekP_v+7S}**Ei=UL&{1S(Ym738}b}?*2h^H$-gQeCrH2XSY}Ptnn)HS8$)-|SSN{QSrx-)HMj@?CaXU`<=!v_ zSggg6=R{YtGw42giDLB$m+{1&@ThYwM5rlc&=_zx)H;S>Ka=D zcrrx#<7TFs0PUPTAcqA-HzM_>lv1C-V!L(e|aJqpwb_sBQ1E<=@b5^GHodxU< ze-KOx0JF%u4~CK&RK#?`SqAy0mmjvD#7=A(Pk3}Oz%;F^8Ia2NwNwNelUL%{>*ZgLT-;MPL8HJq20QKA#M^tH*_552;O zNM&L~jPygqKqunT9f&2RCbrR7v+XV8 zwRvG@e4>`0HpUMo?NSj=Kr%Nii;qU>UuyEB+&DcFWw*7YRhyNp;qYVf6rj(D6iH)9 zSRy==4>tfB1BIGK^n@%n`gMEY3L_L~5CiYQGh}#}(9LvZtiYPOfMgYaexf2?!Aj== zsV9LzFv*UHdL08VV28d?Vi>g^9TPLk!9tPB^|Q;qtgXBW)1QZ@m)wQtYcEPbhlqGy zTD387E`M1TvK-MnvaD7z*TqIR7k8p2F1htuv!vW=A>z>}wi^aol@Zf3(;GariF?J_ zdZA?-p-I7xz$o8JiB9$kHMwn(W=lqTMJGzK%T<}($ zx%di>p%-2U(4av(t^$oZlCXS(+%(~cp6Cb8@b}*tTNp1v0mf+5rxLMZ9=0BM7(mfG?WyS zYP0se{?`$!K2EPyJryM{w_PHGe|73lA|8ick&C4XGO}ho(m%!&RpNO7)wB^3ewerq zY(c|~(r>&mFjhZv+*bAdg~M$B(+hwO3|EB;ns=24ebB@{^uBYBB&t06%@r;}svaZh z5QX4|`)jPAhXfSPgiLXzZk1|*_4n3MZ4UvhR`*KNsyJE6x#pcy-h)Z^QjWav)TX zq2w{f839j1t&PUteaFT?i zQNUryN5tPj=h7H_4ELjArvpTd(~O0_gk?8Sk8yt=KQh&skt{xZVB-xvVrgb*!!n$Y z;GbZ|7{_4-lzh(kEDf=TEG-2$5oSc@X2vT0F5ZO?a}msdlr0vzLsbbE&D3%0>(YM9 zhVWW(5T$)l>Op`OVu?&Cq2d#ZSfo;EWU3T&I0i%6i|ELMfdYd`S}`$SFOZg6>Gp6t zCzIWN@SFr1^xAzZu7E}I)graE5rG0E>~PvJIe4h*&Bz^CiL^Uf0xVKQXZ3ZAtWsup zw9d-dO3e9vpaw~!?=eik4ssLZN*emJOT_d-elI!qBIy!nN{-^tIY(ke87j-=pA;W+ zSs#X;puUwI%$hw1qf^W+}+p!S0v@M2@(a(otKYRn;*uLc>;*yhx07QPFiJ!v>2B zSR{U-(lgaBQ}Mf>SNpmPYzH3DTHQ?w6`(mW;*zl?x@X6!3soyos+((c)<4)U)1%_L-jT>S^vl2aGSL zXR~`}ouakk1laZOcjLo|w54Eg-MvGovg3Vh~Cg5Jl z=Y2Hs7Y*w}s?m!JITU8-IY)7Xi;EeQuiSJ}1`$&|lVldvKyo zksf1|%Rp$G{v3ILiwz9D&F}^CP@4rwMqrQ)#2$d0ejI=d*RJa{C|Y2SIvtQ%ISp85 z7NT*&eHYa6FyQvs5X*VhYLVzCtBT^zTk1m2*aIs!Z!L{KHrxa|_R!mS3s_!Yyv`ts zu>d1iUc%B=GD#ICP5Qh9g1@CAaBeS7xq9cKYwNX3P3tR3dsD5sy~uFX66LikH$fGQ zL^T*)|2crpH@F`hAEN}shTFa^+e=F>+>dJS@T>{2^P6)64OMm9AIFXffub0UmnC9b z@HHEQ(-r?fB4Y>3_Yu^ax6T-vou3)sL(!8Sq+;kOJm}>(h@qc20ic6>z0l3K><|JP zq3*Y3b9hCl@}VvgKi}Ezn!0;UI5#arPK1S0MuacwZe3>UO-ZOA~>4j(Ss zZFDCkA?p$?F2eEs^a9NW#Z<1;{m_Vqh;yjV{eW&_MSy@ZF;D`vD2!L+1#U`CFDMUS`;9WE|{1k`q)SmE0=v>I4`%k{vD;c8E`bvF05 zMaB1Q6=^eOz>$)}O`Ab;?p>rZ#O5`9CtMMFYu(3lY60Ky>O*q-!*Cy=XQP#~^2q!? zhG}N8d2QVZmx7+&B6kXIMfu#qXLHjgj;&6gxewQ!0C+H76Uch|NuWs#m}CL-z7J~_ zH2K^RB91d74^IFnsxy%z%0dAw&$76-FG@lmtfxCL`m?vNSlZ^!_JZLK`rG?G`Fr>G zrk$+W3xK%ctfjv@3o+1ocd%9l3w^d-2w3Amz9+&41(IcnA8+`Lyo8x{7Aa0!Q`S2! z(VO(f{+za$XyIQMfc7JbJf{HWeMo;PJnZ{}BGA(ph z{vfP)Ls+T<6SFtft7+)OKVP5$&nJSc_T<}e?e}aBID&14>0h}!%+ladJ!s^Q{m^=5 ztaycY(l2{|E%Y9{3$O*8Rxvn(xA7{{iz?OPWw60EWH=%T)iNXf6|kd^=3ndPWo)!~ zZFcI>Q?qwAB-y;oxo8f1!RgHgB7G=XZ6ZdmpsD_A)cX~gx?JR212OU>P}{h$U?RX8 zJ)n)sSz|t~NfTYA{{*@l6>)ad==$x{8Ox}F8x}?l8uR?D|GUx)K-+3Kb5&vVhOZI0 zhL&?ODfoCA$YkGXwcef5=qhA@qWJ~KX+X3C z)3KM9v$I6oeHND*vj`HrejA=b(g(3%5nxhXf2Z~~93%ymp|r=PUB?w8K?SD)KWpd}fZ^9(1 zm(b{jPa`|Af(^`i+;9rz%IIie^oG~>V7q9M|B*l%97Vh0^21Q%g@=pJl}?k+EFN}GLPR~;HQPDT&!szW@+E8r(GH7FcPKd@rNPfI`a z0+z*4P&OMwpMOiLaIt6(a<4{h!2yHI0Am;viSiM8Gh;>nujG%QlD7w@?WAX)GbCTc zMzN>GqgSF?>R1dvnm>3dy!q!VQIz#O{s#jDpb(Q;1*&u%{XW3(X)obcW+lejbaB< zp~yG^h%?)L_3=0PSwGLh7+np=-vgNCp`YrA^6Y5TM}(C!Q{vR2fbz*sXM!CPq5qVkcpJ;>hB|Gd-@@3`5?LB!sZLfTINK8Uaw z1gE27sQemr3n@HU8j-Y={|&dYmtYUHWaV%Z*okP#_iun%4tlSSH3TeXUG_IZD=Pgl@B#081WL0&%KpBugzXI9QCpeT0z`*L3$7< z)26KlYWz61nWJBaUPk+Rg{s8auvR?>FHj3+ziY&CAnniN;O7#M1-i$V0ID{-u4=XT z3)oYRbg$fC(|P}}mcXXB>-A6vz<7}h?N~r5wNc4`1YVnUBn(F41v{RIdA)ET;vMBr zqb)G0M>75*Y3Q8>@u)Su*|@WDo0X!o<;>>oel#%_zVig-Pxd0VlF$UYDgGACVyrXF zijcAheJNG5`6Vk|8<}DPg~}IAw9P?wPD{p$Hsq_t3*pKz!YZ{=Q-s2X=Bczl(A-_= zO6u~9mvC&HESg$3JifCr%IftyFfb@aT)Yx3xnR7$$U-a(>Jo>pM+uBHlz%f@@HOf! zB3#!OQu|%ruJ3ie0(96HLt!J5(W;^Vtp^oRNk`FxmCOEyS3!0rrwtr^z^C#C9&yTDR9{MX20}hqkl+CkI>!7f&}}ItY8C zwzh|A*?(x)MXk&XsAl^8*`o}V6F`|!MlA!!Mf+}n@lsn|q>pSbZ{4pFtoK4{jzau| zbaMvgJO!G6L&740f-WFBd$>}o;D>1~M6xk2gYhsxDL)RBP}qwE@YAlG7h*I+6=J+T zOF@e|k_g&!(SVpr@nZ?uW{jB%k@VNB^dpSUjbbEhP!WQ3_q2^4_<8k=VP1d^nde0sa;|V%>_E`s0E1W^Sg|)SsEA{Yn>_g_W zkE10}esm#w(V8Qg?F~slK5Ue`Qj99ubu`zd2_vQ=<)6!P7;yd}d`Dgi+C!{31@xKA za}lt_3Q-VicUT%aj-eO>Xot-Kq`w$eL_G}3vzr5bD1J6R3D{u?n$4n&>PHb`s*C31 ze6-V8!f-K$Vg#(EyYH4?*>ICK7#u6o{~V4tcjY4N-(?GJcR$L8+Z{G`Kazp2I{-bA z?>3$i$s^t4Qkk(-St#WcTC3qAwBEePOMsJg88n>^NyCDOhoVdXA?t;wKZc!vlhnwl zirFj2kE1%2?cR~i%^)f4P$~_(AAEC!!iuX4RAf{?2^hMKF_4Si;zV_yJ)pH=5F5is zJ4&RoGkV`Z321z&VJuQ&P)QR@+Xv<)7Vihyxf#?eS|*4KrEblkwEvqSd!Py(hz3fB zzX#)th!w0v*F+0llEw#8h5awxVP?epO(`tToUfEH5Mfg;0ijJ8S03HWD}-gy%9_Ja z$;8I}mD_5f zy2?uAL1rYu3~xn7PPJYcuYD{{%i>Yf){J zSrA+}%a=ON%b@VN7}s|x5hkF{b5BOR6(JEO3QLcx6jW{j%FLZcTT~QDf&GeT1t!oS zYg+d!b5rNH@q8q#tuB`M>6f0MGs>{$GiE}~4V_8MFzTkk*VC!jX3_ErZ3m) zAdR$_-(y%mck0s1=bvq`sY3LK>KAuiWuSr#HoA~8bdzZ&v{F%yi{QUiV8(!EsYh4? zJ}E23qn_lei#E#BnQO8~q77tjkcVchIZ4A_y*E;=y5T23;YkPYF4x8vm4aG*7H>AE zs*u1zrd}&f(EN#xj^Kx!aYVS4h>b{Q^q!DQWW2Ei?Z0$%#W|jQ`E#-Cag)$9Mby|- z<1%^kz0|v7_7W&43PEc**n}K3ZL~Tof(RdstNJ@$m0$COA~R}C^OCglG{XU4Dd?K< zN;(`r`JBWUu^%MYYVaXCXm?i{8(m@S&bT=qkc%V*Uc&PCvM{SU{y>B^N#xU|)gehR znry=LW|EMZ4S#lrcWH4XOFA6e`>vt$ExA)TQYe$#4N(+E?RPS|5GjkT=uH#fIP~C2 zk)${Zx)1xlg5%}gK!$Iml!+6bJS2cw;u~D_Fr7mjIZW=vbhu2C)-&pVTz9!_W3vtq zRLoj1>dA#7tN2D#{bgFit{EyNN8EKSIPwg(SZAZZP=pH3MA0)RE5;{5f0MMoigdno zr`%&K)92kM(@}|?b_$06J`QN}NM!N4geCN)kyAUj?Xa}NSXwD(DZi$RxWPdtMhDyY zWyY<&ME>}G*OgtN2Q#bphX?uWTGe+xysOaqC5wygBYi>jSwRKqC2gYYGgeAN3+ zqzt3+&~s)|>;tWXs8Niezm!XM9IybI=X#uPp>FAri@tgK{I@i%wj4tW2FKFx`jZlX zvPJDDfd?5E9^GR>SJ1Qy9T2C8VTIo~1pK|AGspAa?M_2Pu?5ZLc z0WIWX@4&V*=TVyB5-*{@)9szUqC8p#woW58cyiO+pTHJqETw(&ygu?Q9+oBj>#C_i z(p076kNf`keE71~nt9><*UJyhZkq9r>#;EbXq%>7ihHP)*n~{t0K|V>%+iO1eC8$4q|JdhrL9^mK1NUpj6n z8+Z7jDUodHZ%Lw}5d;;ePjFOMA{o=6hevw>t|%wJzC~Uxb8p(?g+{UTx%umK?rbL~ zLnUQ03$D{f3ObA8O0=j`zi`77GDDquYt?vGLb9K;f9Z#A7c<~?iN$VX$Db@X4T2)H zxVipwIm_{|5!JhyZR5?CXH7(GvJ@jmqJ>NI8v!<(J7xf>^uD(y!C*gb+EoluOwwr7 zZx|nI$zPR)&JIpdSs20E*6&5Sz9R2sRyrmrur#FqWkn_=2c?Ah_^&R$Osr6fAhS_6 zqaaerB9?)R(8)W+4~YCZ%wOAecz?{mm`!cCu4M$?JJB0$qOu0upqug!YIi2N&3&sI zSmFv(dIp>mKAEhtqUkp5sx?c5aCx5qaLpzbYmAsD4;bBNLj1|{rbv?Im>it*8k@H|pwfB1aIY8q|R`=|Z z$0#-6vgj)}t#fSq(7MlUM!!+P%s7kbQNpmvGj;Wl>(S_PT?j#C{#A2tt>a|WO>TC@7VN9ZCu4J=O+@R+*9JR1}u^H^|4X`!@-foq(q{JE5-$g!YLYSE>FM^zvRG{r$%$I!mtS$zS* zAka){`4-iAxTYrCGUmuhszSrl4k75Kr@Ysjw4sdBrkkbJ?{8uk@Ul?dKP_W*lE&-%u3uqya#Wh>uIQzF za#@2vJskCQxm{9-wkxCl1Wl!uJYKwk``7#Y)v{FcgGX#QRZ|z}5obUCyjqaw7ynPs zpnvW64ni{hiSP>RuV4Bv>kwQw(Wt34PlV+L7C_@GJXrUvo!ChkNV7M0bv%h9keddC`U{ z|3b^AFAON9_Le7P%yT`IE;BlRf9{E>PuSo&Ui*W0zA7==4<%N$LvOpCZ%vR&bL4_Q`Jy{ zqvgEhrejHF9N+9=!#|()$_#Z?x9O$A2cwGhZ7Vl7H)W&q3YM6>Jt)}O;PZ=He;59J z=RyzRH`ZAxJeCs_%H%25k$G)6@B7f)wD`fnweGI2F0sdYVT(U6{#M%@8Cnb{kZ0dm zh3c}n?+xO;KY!KzxS5vOJ%jYhEyPhGqSKAnXYOU#=N;aJh!0K8Q0M#t!g}tdDN9uj zPj-OmH57dEMJ2VWTd`7HAf?+L0?=};?JV!3iqvx2i<08024RDN%Rn33>7)u%8(mM~ z(Pq!JmoceqbO7t)`b?22X&U*a2%_EoCZq2Sv!5KcIv4p`r=~EuOt{PT$|Ew-an@zK z`9WIo=dKB9D84j4cA%^D+Tu>84vQ_spH_y+;UCg%ew-P|0EFXcGcz^yiIg4nB;m9T zE{|G{`?=*^e_t&0-n!kZwf6JC?b0dc!R4+>Ra~e)RfdvYJk?B5x{Pa3P6=U5z-X+X z8Yp&?@FG`@$rXs*{Vg{(qF-qr+ZK`Po%>$oOLOT;q+``9!cWDVC=FC!@Oq{_3{;85 z;P8YqL*;4eR?3;FC%xq?U*%_dtF!)sEJbD<%J1=gz3f@fP#mz3(q_2f5V zXAK{9=W*UHnyOLEPw288OEvf(j7n=`1rG#&^thP1_3IV1l$E!1%iIe(h+NN zxqg}3PSGX(LnY6{!xyUSCWkKW)YbNIcU}F-MQDg(LEFHgeAt43p%kFI=9w4$_{-BX zKD1f7U!NT?XEbn+^4jvL0PfDktfCRL!>$Q!X*_{4T%?X8&ylGMgz=pvi|UV6n!=Q# zzS#`FFHS%abEUEMIrjdIX7BSxm#wD}#j4k6_Z1{_jK5FkZ{kgQ^=d$IyJ^YQPrhee z&pEvDE*7^8f36qIJ2hJpcA=_U)9ySFdD~5TdJ03HSeD4X6=qSW5U+Zb{drnZwY%~& zGz~It2rw{f^8_`>RN0~^J?om51@i|r?psA+Y`7r3jE!8;`ug4%PyP&xbwLV^kDQZ6 z)Q`(3@f*e!5XbdCr&=NH_rM#2PD8fN#^ zyP)*DnLH-B?-kHn-Wd}1RPg9(FJz+_*-#gkIqUmVVhvvUet8blLbUeLU(X5GcVzl+6?=pzwr(nUXHro^|m;c4?#Yq0%j9nW$KXa7~Pl>D&?$qMki{y$lMv_Y4O4?yBjrc|G zrS*@xH?hRRi^<2qcc0M0bER=WZlZsgDR9KK;%eY?$-taB;b>Q7mFeU_629(js!i3_ zdb!&lE{Lc7oHm&79fQHu6oeZAugYqOfofgCB}j_-trUws=Cjd~N~$>7JpDHz z^ri51FURMM_i8-fuoxdZi6iE{ApAO1J6VcSMNNTyR_c-XA~Em# zpDYQi6uZ+R3SOcc(8kJ4A*|^ocRSE<;Uz3A)APl52$C^73AB8hsDY*MAKQllHLYnX znH4f#qM5L!kNE8+!&yPOB=X9Gjc12P2ZB|#F=|}&srJ(=tHCkvk2!KH7XgmW zGA%oq;O18>xK-uw8m;5viO!29Yn1bvrUVm-F zc>DnEue>A6=ePOWiO_#@>!W)X2pXWn&C;2EFBB)v6}1GYH#A% z@X8UO3PU4=k@)FJu?_V>z(%F3|Fu%ZkB(pVKvx{Dw6CDQh|&+&U$G2klo9e_m%#2{ zKWax8))l-2x&q|$DXJAX&}W=$#fQ><|DerF&+F%Nc4_A{*u^?kMBpaJ2OA6PJ>d<* z=$6&z>ZsXKRrP~EygG^QSUekUo7~Hlnp`%RIj%iaxZzrblJAG&&{H&A3>~PlD}f(u zcXyVTa5Le%+u*vQS8&&SPM_GCfF4?i(Q0tFGrozpGx$`aa*)yN5(KtXogL09*L*@^tZ$cfvbd4FENMq5r;5Upzq)E>$z3iEl8$l&WA!&51TK70FE+B9_azxy_k4==x7 z4fWC7`Eb~QO2V({Gx#CY&y`JH$u44lRAI8M_3QSTs@2d)Jp<*7)_72(s@535GYFjn zD(QhtA3JUA{!Fc^ + + + diff --git a/apps/www/public/images/logos/publicity/soshi.svg b/apps/www/public/images/logos/publicity/soshi.svg new file mode 100644 index 00000000000..274049317cc --- /dev/null +++ b/apps/www/public/images/logos/publicity/soshi.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/www/public/rss.xml b/apps/www/public/rss.xml index 8ec0f09ffee..e9c5ad184c3 100644 --- a/apps/www/public/rss.xml +++ b/apps/www/public/rss.xml @@ -5,9 +5,16 @@ https://supabase.com Latest news from Supabase en - Fri, 18 Jul 2025 00:00:00 -0700 + Tue, 12 Aug 2025 00:00:00 -0700 + https://supabase.com/blog/supabase-auth-build-vs-buy + Supabase Auth: Build vs. Buy + https://supabase.com/blog/supabase-auth-build-vs-buy + The reasons why (and why not) to use Supabase Auth instead of building your own. + Tue, 12 Aug 2025 00:00:00 -0700 + + https://supabase.com/blog/launch-week-15-top-10 Top 10 Launches of Launch Week 15 https://supabase.com/blog/launch-week-15-top-10 From 7abbcebd9c2a106f96279cbeeda1ec51febc599d Mon Sep 17 00:00:00 2001 From: Rendy Febry Date: Tue, 12 Aug 2025 16:03:30 +0700 Subject: [PATCH 13/62] Fix LinkedIn Developer URL (#37855) --- apps/docs/content/guides/auth/social-login/auth-linkedin.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/content/guides/auth/social-login/auth-linkedin.mdx b/apps/docs/content/guides/auth/social-login/auth-linkedin.mdx index c01d491f023..251b54e22ba 100644 --- a/apps/docs/content/guides/auth/social-login/auth-linkedin.mdx +++ b/apps/docs/content/guides/auth/social-login/auth-linkedin.mdx @@ -188,4 +188,4 @@ Do reach out to support if you have any concerns around this change. - [Supabase - Get started for free](https://supabase.com) - [Supabase JS Client](https://github.com/supabase/supabase-js) -- [LinkedIn Developer Dashboard](https://api.LinkedIn.com/apps) +- [LinkedIn Developer Dashboard](https://www.linkedin.com/developers/apps) From 7e367daf734aa0f118bff94b6e78a7daa10b68f5 Mon Sep 17 00:00:00 2001 From: Stojan Dimitrovski Date: Tue, 12 Aug 2025 11:40:45 +0200 Subject: [PATCH 14/62] feat: use temporary api keys for storage explorer (#37696) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: use temporary api keys for storage explorer * Remove service key from storage explorer store + some minor UI nits * Address TS * Another TS * Update * Use temp API keys in realtime inspector (#37740) * Use temp API keys in realtime inspector * Fix * fix: typo from github web ui… * fix: opps * fix: missing import --------- Co-authored-by: Joshen Lim Co-authored-by: Cemal Kılıç Co-authored-by: Cemal Kilic --- .../Replication/ReplicationPipelineStatus.tsx | 4 + .../Inspector/RealtimeTokensPopover/index.tsx | 35 ++--- .../StorageExplorer/StorageExplorer.tsx | 2 +- .../data/api-keys/temp-api-keys-query.ts | 25 +++ .../[ref]/storage/buckets/[bucketId].tsx | 2 +- apps/studio/state/storage-explorer.tsx | 146 +++++++++--------- 6 files changed, 114 insertions(+), 100 deletions(-) create mode 100644 apps/studio/data/api-keys/temp-api-keys-query.ts diff --git a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.tsx b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.tsx index 888bb679102..6205fdfb4b9 100644 --- a/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.tsx +++ b/apps/studio/components/interfaces/Database/Replication/ReplicationPipelineStatus.tsx @@ -1,3 +1,7 @@ +// @ts-nocheck [Joshen] Temporarily silencing the TS checks here but please eventually remove +// it's cause the API types are conflicting a bit - API types have probably been updated for the UI here +// but the UI hasn't been updated yet to fit the new API types + import { Activity, ChevronLeft, ExternalLink, Search, X } from 'lucide-react' import Link from 'next/link' import { useEffect, useState } from 'react' diff --git a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeTokensPopover/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeTokensPopover/index.tsx index ef75536f4f4..ca059755665 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/RealtimeTokensPopover/index.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/RealtimeTokensPopover/index.tsx @@ -3,8 +3,8 @@ import { toast } from 'sonner' import { useParams } from 'common' import { RoleImpersonationPopover } from 'components/interfaces/RoleImpersonationSelector' -import { InlineLink } from 'components/ui/InlineLink' import { getKeys, useAPIKeysQuery } from 'data/api-keys/api-keys-query' +import { getTemporaryAPIKey } from 'data/api-keys/temp-api-keys-query' import { useProjectPostgrestConfigQuery } from 'data/config/project-postgrest-config-query' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' @@ -27,12 +27,13 @@ export const RealtimeTokensPopover = ({ config, onChangeConfig }: RealtimeTokens projectRef: config.projectRef, reveal: true, }) - const { anonKey, serviceKey, publishableKey } = getKeys(apiKeys) + const { anonKey, publishableKey } = getKeys(apiKeys) const { data: postgrestConfig } = useProjectPostgrestConfigQuery( { projectRef: config.projectRef }, { enabled: IS_PLATFORM } ) + const jwtSecret = postgrestConfig?.jwt_secret const { mutate: sendEvent } = useSendEventMutation() @@ -62,12 +63,17 @@ export const RealtimeTokensPopover = ({ config, onChangeConfig }: RealtimeTokens snap.role !== undefined && snap.role.type === 'postgrest' ) { - token = anonKey?.api_key + token = publishableKey?.api_key ?? anonKey?.api_key await getRoleImpersonationJWT(config.projectRef, jwtSecret, snap.role) .then((b) => (bearer = b)) .catch((err) => toast.error(`Failed to get JWT for role: ${err.message}`)) } else { - token = serviceKey?.api_key ?? publishableKey?.api_key + try { + const data = await getTemporaryAPIKey({ projectRef: config.projectRef }) + token = data.api_key + } catch (error) { + token = publishableKey?.api_key + } } if (token) { onChangeConfig({ ...config, token, bearer }) @@ -76,24 +82,7 @@ export const RealtimeTokensPopover = ({ config, onChangeConfig }: RealtimeTokens triggerUpdateTokenBearer() // eslint-disable-next-line react-hooks/exhaustive-deps - }, [snap.role, anonKey, serviceKey]) + }, [snap.role, anonKey]) - return ( - - Role impersonation for the Realtime Inspector is currently unavailable temporarily due - to the new API keys. Please re-enable{' '} - legacy JWT keys if - you'd like to use role impersonation with the Realtime Inspector. - - ) : undefined - } - align="start" - variant="connected-on-both" - /> - ) + return } diff --git a/apps/studio/components/interfaces/Storage/StorageExplorer/StorageExplorer.tsx b/apps/studio/components/interfaces/Storage/StorageExplorer/StorageExplorer.tsx index 160e8118e4f..8871cbff00d 100644 --- a/apps/studio/components/interfaces/Storage/StorageExplorer/StorageExplorer.tsx +++ b/apps/studio/components/interfaces/Storage/StorageExplorer/StorageExplorer.tsx @@ -167,7 +167,7 @@ const StorageExplorer = ({ bucket }: StorageExplorerProps) => { return (
{selectedItems.length === 0 ? ( { if (!project || !projectRef) return null return ( -
+
{isError && } {isSuccess ? ( diff --git a/apps/studio/state/storage-explorer.tsx b/apps/studio/state/storage-explorer.tsx index 4e9db42662d..37356f4555a 100644 --- a/apps/studio/state/storage-explorer.tsx +++ b/apps/studio/state/storage-explorer.tsx @@ -36,7 +36,7 @@ import { } from 'components/interfaces/Storage/StorageExplorer/StorageExplorer.utils' import { convertFromBytes } from 'components/interfaces/Storage/StorageSettings/StorageSettings.utils' import { InlineLink } from 'components/ui/InlineLink' -import { getKeys, useAPIKeysQuery } from 'data/api-keys/api-keys-query' +import { getTemporaryAPIKey } from 'data/api-keys/temp-api-keys-query' import { configKeys } from 'data/config/keys' import { useProjectSettingsV2Query } from 'data/config/project-settings-v2-query' import { ProjectStorageConfigResponse } from 'data/config/project-storage-config-query' @@ -80,13 +80,11 @@ if (typeof window !== 'undefined') { function createStorageExplorerState({ projectRef, resumableUploadUrl, - serviceKey, supabaseClient, }: { projectRef: string resumableUploadUrl: string - serviceKey: string - supabaseClient?: SupabaseClient + supabaseClient?: () => Promise> }) { const localStorageKey = LOCAL_STORAGE_KEYS.STORAGE_PREFERENCE(projectRef) const { view, sortBy, sortByOrder, sortBucket } = @@ -97,7 +95,6 @@ function createStorageExplorerState({ projectRef, supabaseClient, resumableUploadUrl, - serviceKey, uploadProgresses: [] as UploadProgress[], // abortController, @@ -333,7 +330,7 @@ function createStorageExplorerState({ const formattedPathToEmptyPlaceholderFile = pathToFolder.length > 0 ? `${pathToFolder}/${emptyPlaceholderFile}` : emptyPlaceholderFile - await state.supabaseClient.storage + await (await state.supabaseClient()).storage .from(state.selectedBucket.name) .upload( formattedPathToEmptyPlaceholderFile, @@ -583,7 +580,7 @@ function createStorageExplorerState({ if (data.length === 0) { const prefixToPlaceholder = `${parentFolderPrefix}/${EMPTY_FOLDER_PLACEHOLDER_FILE_NAME}` - await state.supabaseClient?.storage + await (await state.supabaseClient!())?.storage .from(state.selectedBucket.name) .upload(prefixToPlaceholder, new File([], EMPTY_FOLDER_PLACEHOLDER_FILE_NAME)) } @@ -978,20 +975,6 @@ function createStorageExplorerState({ columnIndex: number isDrop?: boolean }) => { - if (!state.serviceKey) { - toast( -

- Uploading files to Storage through the dashboard is currently unavailable with the new - API keys. Please re-enable{' '} - - legacy JWT keys - {' '} - if you'd like to upload files to Storage through the dashboard. -

- ) - return - } - const queryClient = getQueryClient() const storageConfiguration = queryClient .getQueryCache() @@ -1188,9 +1171,7 @@ function createStorageExplorerState({ endpoint: state.resumableUploadUrl, retryDelays: [0, 200, 500, 1500, 3000, 5000], headers: { - authorization: `Bearer ${state.serviceKey}`, 'x-source': 'supabase-dashboard', - ...(state.serviceKey.includes('secret') ? { apikey: state.serviceKey } : {}), }, uploadDataDuringCreation: uploadDataDuringCreation, removeFingerprintOnSuccess: true, @@ -1200,6 +1181,14 @@ function createStorageExplorerState({ ...fileOptions, }, chunkSize, + onBeforeRequest: async (req) => { + try { + const data = await getTemporaryAPIKey({ projectRef: state.projectRef }) + req.setHeader('apikey', data.api_key) + } catch (error) { + throw error + } + }, onShouldRetry(error) { const status = error.originalResponse ? error.originalResponse.getStatus() : 0 const doNotRetryStatuses = [400, 403, 404, 409, 413, 415, 429] @@ -1210,22 +1199,30 @@ function createStorageExplorerState({ numberOfFilesUploadedFail += 1 if (error instanceof tus.DetailedError) { const status = error.originalResponse?.getStatus() - if (status === 415) { - // Unsupported mime type - toast.error( - capitalize( - error?.originalResponse?.getBody() || - `Failed to upload ${file.name}: ${metadata.mimetype} is not allowed` - ), - { - description: `Allowed MIME types: ${state.selectedBucket.allowed_mime_types?.join(', ')}`, - } - ) - } else if (status === 413) { - // Payload too large - toast.error( - `Failed to upload ${file.name}: File size exceeds the bucket upload limit.` - ) + + switch (status) { + case 415: + // Unsupported mime type + toast.error( + capitalize( + error?.originalResponse?.getBody() || + `Failed to upload ${file.name}: ${metadata.mimetype} is not allowed` + ), + { + description: `Allowed MIME types: ${state.selectedBucket.allowed_mime_types?.join(', ')}`, + } + ) + break + case 413: + // Payload too large + toast.error( + `Failed to upload ${file.name}: File size exceeds the bucket upload limit.` + ) + break + case 409: + // Resource already exists + toast.error(`Failed to upload ${file.name}: File name already exists.`) + break } } else { toast.error(`Failed to upload ${file.name}: ${error.message}`) @@ -1312,10 +1309,16 @@ function createStorageExplorerState({ ) { toast.dismiss(toastId) } else if (numberOfFilesUploadedFail === numberOfFilesToUpload) { - toast.error( - `Failed to upload ${numberOfFilesToUpload} file${numberOfFilesToUpload > 1 ? 's' : ''}!`, - { id: toastId, closeButton: true, duration: SONNER_DEFAULT_DURATION } - ) + if (numberOfFilesToUpload === 1) { + // [Joshen] We'd already be showing a toast when the upload files, so this is to prevent a + // duplicate error toast if its only one file that's getting uploaded + toast.dismiss(toastId) + } else { + toast.error( + `Failed to upload ${numberOfFilesToUpload} file${numberOfFilesToUpload > 1 ? 's' : ''}!`, + { id: toastId, closeButton: true, duration: SONNER_DEFAULT_DURATION } + ) + } } else if (numberOfFilesUploadedSuccess === numberOfFilesToUpload) { toast.success( `Successfully uploaded ${numberOfFilesToUpload} file${ @@ -1740,7 +1743,7 @@ function createStorageExplorerState({ ) } />, - { id: toastId, closeButton: false, position: 'top-right' } + { id: toastId, closeButton: false, position: 'top-right', duration: Infinity } ) }, @@ -1783,7 +1786,6 @@ type StorageExplorerState = ReturnType const DEFAULT_STATE_CONFIG = { projectRef: '', resumableUploadUrl: '', - serviceKey: '', supabaseClient: undefined, } @@ -1798,10 +1800,8 @@ export const StorageExplorerStateContextProvider = ({ children }: PropsWithChild const [state, setState] = useState(() => createStorageExplorerState(DEFAULT_STATE_CONFIG)) const stateRef = useLatest(state) - const { data: apiKeys } = useAPIKeysQuery({ projectRef: project?.ref, reveal: true }) const { data: settings } = useProjectSettingsV2Query({ projectRef: project?.ref }) - const { serviceKey } = getKeys(apiKeys) const protocol = settings?.app_config?.protocol ?? 'https' const endpoint = settings?.app_config?.endpoint const resumableUploadUrl = `${IS_PLATFORM ? 'https' : protocol}://${endpoint}/storage/v1/upload/resumable` @@ -1813,43 +1813,39 @@ export const StorageExplorerStateContextProvider = ({ children }: PropsWithChild // Although I'd be keen to re-investigate this to see if we can remove this useEffect(() => { const hasDataReady = !!project?.ref - const serviceApiKey = serviceKey?.api_key ?? 'unknown' if (!isPaused && hasDataReady) { - const clientEndpoint = `${IS_PLATFORM ? 'https' : protocol}://${endpoint}` - const supabaseClient = createClient(clientEndpoint, serviceApiKey, { - auth: { - persistSession: false, - autoRefreshToken: false, - detectSessionInUrl: false, - storage: { - getItem: (key) => { - return null - }, - setItem: (key, value) => {}, - removeItem: (key) => {}, - }, - }, - }) - setState( createStorageExplorerState({ projectRef: project?.ref ?? '', - supabaseClient, + supabaseClient: async () => { + try { + const data = await getTemporaryAPIKey({ projectRef: project.ref }) + const clientEndpoint = `${IS_PLATFORM ? 'https' : protocol}://${endpoint}` + + return createClient(clientEndpoint, data.api_key, { + auth: { + persistSession: false, + autoRefreshToken: false, + detectSessionInUrl: false, + storage: { + getItem: (key) => { + return null + }, + setItem: (key, value) => {}, + removeItem: (key) => {}, + }, + }, + }) + } catch (error) { + throw error + } + }, resumableUploadUrl, - serviceKey: serviceApiKey, }) ) } - }, [ - project?.ref, - stateRef, - serviceKey?.api_key, - isPaused, - resumableUploadUrl, - protocol, - endpoint, - ]) + }, [project?.ref, stateRef, isPaused, resumableUploadUrl, protocol, endpoint]) return ( From 7b941a0fd7f38690557385640d8aecd27678272e Mon Sep 17 00:00:00 2001 From: Saxon Fletcher Date: Tue, 12 Aug 2025 20:18:24 +1000 Subject: [PATCH 15/62] Attempt to fix completion (#37787) * attempt to fix completion * use experimental output --- .../interfaces/SQLEditor/SQLEditor.tsx | 108 ++++++++++-------- apps/studio/components/ui/AIEditor/index.tsx | 79 ++++++++----- apps/studio/pages/api/ai/code/complete.ts | 12 +- 3 files changed, 123 insertions(+), 76 deletions(-) diff --git a/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx b/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx index 9f3f8e0c174..12383978073 100644 --- a/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx +++ b/apps/studio/components/interfaces/SQLEditor/SQLEditor.tsx @@ -1,4 +1,3 @@ -import { useCompletion } from '@ai-sdk/react' import type { Monaco } from '@monaco-editor/react' import { useQueryClient } from '@tanstack/react-query' import { ChevronUp, Loader2 } from 'lucide-react' @@ -453,22 +452,70 @@ export const SQLEditor = () => { closeDiff() }, [closeDiff, resetPrompt, sendEvent]) - const { - complete, - completion, - isLoading: isCompletionLoading, - } = useCompletion({ - api: `${BASE_PATH}/api/ai/code/complete`, - body: { - projectRef: project?.ref, - connectionString: project?.connectionString, - language: 'sql', - orgSlug: org?.slug, + const [isCompletionLoading, setIsCompletionLoading] = useState(false) + + const complete = useCallback( + async ( + prompt: string, + options?: { + headers?: Record + body?: { completionMetadata?: any } + } + ) => { + try { + setIsCompletionLoading(true) + + const response = await fetch(`${BASE_PATH}/api/ai/code/complete`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + ...(options?.headers ?? {}), + }, + body: JSON.stringify({ + projectRef: project?.ref, + connectionString: project?.connectionString, + language: 'sql', + orgSlug: org?.slug, + ...(options?.body ?? {}), + }), + }) + + if (!response.ok) { + const errorText = await response.text() + throw new Error(errorText || 'Failed to generate completion') + } + + // API returns a JSON-encoded string + const text: string = await response.json() + + const meta = options?.body?.completionMetadata ?? {} + const beforeSelection: string = meta.textBeforeCursor ?? '' + const afterSelection: string = meta.textAfterCursor ?? '' + const selection: string = meta.selection ?? '' + + const original = beforeSelection + selection + afterSelection + const modified = beforeSelection + text + afterSelection + + const formattedModified = formatSql(modified) + setSourceSqlDiff({ original, modified: formattedModified }) + setSelectedDiffType(DiffType.Modification) + setPromptState((prev) => ({ ...prev, isLoading: false })) + setIsCompletionLoading(false) + } catch (error: any) { + toast.error(`Failed to generate SQL: ${error?.message ?? 'Unknown error'}`) + setIsCompletionLoading(false) + throw error + } }, - onError: (error) => { - toast.error(`Failed to generate SQL: ${error.message}`) - }, - }) + [ + org?.slug, + project?.connectionString, + project?.ref, + setPromptState, + setSelectedDiffType, + setSourceSqlDiff, + ] + ) const handlePrompt = async ( prompt: string, @@ -593,35 +640,6 @@ export const SQLEditor = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [snapV2.diffContent]) - useEffect(() => { - if (!completion) { - return - } - - const original = - promptState.beforeSelection + promptState.selection + promptState.afterSelection - const modified = promptState.beforeSelection + completion + promptState.afterSelection - - if (isCompletionLoading) { - // Attempt to format the modified SQL in case the LLM left out indentation, etc - let formattedModified = formatSql(modified) - - setSourceSqlDiff({ - original, - modified: formattedModified, - }) - setSelectedDiffType(DiffType.Modification) - setPromptState((prev) => ({ ...prev, isLoading: false })) - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [ - completion, - promptState.beforeSelection, - promptState.selection, - promptState.afterSelection, - isCompletionLoading, - ]) - // We want to check if the diff editor is mounted and if it is, we want to show the widget // We also want to cleanup the widget when the diff editor is closed useEffect(() => { diff --git a/apps/studio/components/ui/AIEditor/index.tsx b/apps/studio/components/ui/AIEditor/index.tsx index eb34c04b180..b27d47061e2 100644 --- a/apps/studio/components/ui/AIEditor/index.tsx +++ b/apps/studio/components/ui/AIEditor/index.tsx @@ -1,5 +1,4 @@ import Editor, { DiffEditor, Monaco, OnMount } from '@monaco-editor/react' -import { useCompletion } from '@ai-sdk/react' import { AnimatePresence, motion } from 'framer-motion' import { Command } from 'lucide-react' import { editor as monacoEditor } from 'monaco-editor' @@ -71,26 +70,64 @@ const AIEditor = ({ }) const [promptInput, setPromptInput] = useState(initialPrompt || '') - const { - complete, - completion, - isLoading: isCompletionLoading, - setCompletion, - } = useCompletion({ - api: aiEndpoint || '', - body: aiMetadata, - onError: (error) => { - toast.error(`Failed to generate: ${error.message}`) + const [isCompletionLoading, setIsCompletionLoading] = useState(false) + + const complete = useCallback( + async ( + prompt: string, + options?: { + headers?: Record + body?: { completionMetadata?: any } + } + ) => { + try { + if (!aiEndpoint) throw new Error('AI endpoint is not configured') + setIsCompletionLoading(true) + + const response = await fetch(aiEndpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + ...(options?.headers ?? {}), + }, + body: JSON.stringify({ + ...(aiMetadata ?? {}), + ...(options?.body ?? {}), + }), + }) + + if (!response.ok) { + const errorText = await response.text() + throw new Error(errorText || 'Failed to generate completion') + } + + const text: string = await response.json() + + const meta = options?.body?.completionMetadata ?? {} + const beforeSelection: string = meta.textBeforeCursor ?? '' + const afterSelection: string = meta.textAfterCursor ?? '' + const selection: string = meta.selection ?? '' + + const original = beforeSelection + selection + afterSelection + const modified = beforeSelection + text + afterSelection + + setDiffValue({ original, modified }) + setIsDiffMode(true) + } catch (error: any) { + toast.error(`Failed to generate: ${error?.message ?? 'Unknown error'}`) + } finally { + setIsCompletionLoading(false) + } }, - }) + [aiEndpoint, aiMetadata] + ) const handleReset = useCallback(() => { - setCompletion('') setIsDiffMode(false) setPromptState((prev) => ({ ...prev, isOpen: false })) setPromptInput('') editorRef.current?.focus() - }, [setCompletion]) + }, []) const handleAcceptDiff = useCallback(() => { if (diffValue.modified) { @@ -269,20 +306,6 @@ const AIEditor = ({ } }, [isDiffMode]) - useEffect(() => { - if (!completion) { - setIsDiffMode(false) - return - } - - const original = - promptState.beforeSelection + promptState.selection + promptState.afterSelection - const modified = promptState.beforeSelection + completion + promptState.afterSelection - - setDiffValue({ original, modified }) - setIsDiffMode(true) - }, [completion, promptState.beforeSelection, promptState.selection, promptState.afterSelection]) - useEffect(() => { const handleKeyboard = (event: KeyboardEvent) => { if (event.key === 'Escape') { diff --git a/apps/studio/pages/api/ai/code/complete.ts b/apps/studio/pages/api/ai/code/complete.ts index 157989ffdf5..13957ee1511 100644 --- a/apps/studio/pages/api/ai/code/complete.ts +++ b/apps/studio/pages/api/ai/code/complete.ts @@ -1,5 +1,5 @@ import pgMeta from '@supabase/pg-meta' -import { ModelMessage, stepCountIs, streamText } from 'ai' +import { ModelMessage, stepCountIs, generateText, Output } from 'ai' import { IS_PLATFORM } from 'common' import { source } from 'common-tags' import { executeSql } from 'data/sql/execute-sql-query' @@ -18,6 +18,7 @@ import { getTools } from 'lib/ai/tools' import apiWrapper from 'lib/api/apiWrapper' import { queryPgMetaSelfHosted } from 'lib/self-hosted' import { NextApiRequest, NextApiResponse } from 'next' +import { z } from 'zod/v4' export const maxDuration = 60 @@ -148,14 +149,19 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { accessToken, }) - const result = streamText({ + const { experimental_output } = await generateText({ model, stopWhen: stepCountIs(5), + experimental_output: Output.object({ + schema: z.object({ + code: z.string().describe('The modified code'), + }), + }), messages: coreMessages, tools, }) - return result.pipeUIMessageStreamToResponse(res) + return res.status(200).json(experimental_output?.code) } catch (error) { console.error('Completion error:', error) return res.status(500).json({ From e320368dc7bd3026f5b4e14762b3c8d6f4b61b19 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Tue, 12 Aug 2025 17:34:53 +0700 Subject: [PATCH 16/62] Part 2 of swapping useCheckPermissions with useAsyncCheckProjectPermissions (#37860) * Part 2 of swapping useCheckPermissions with useAsyncCheckProjectPermissions * Fix TS * Address feedback * Fix --- .../BranchManagement/CreateBranchModal.tsx | 7 +- .../interfaces/BranchManagement/Overview.tsx | 17 ++- .../components/interfaces/Connect/Connect.tsx | 7 +- .../Database/Backups/BackupItem.tsx | 11 +- .../Database/Backups/BackupsEmpty.tsx | 4 +- .../Database/Backups/BackupsList.tsx | 6 +- .../Database/Backups/BackupsStorageAlert.tsx | 7 +- .../Database/Backups/PITR/PITRNotice.tsx | 4 +- .../Database/Backups/PITR/PITRSelection.tsx | 4 +- .../Database/Backups/PITR/PITRStatus.tsx | 6 +- .../RestoreToNewProject/BackupsList.tsx | 2 +- .../Database/Extensions/ExtensionCard.tsx | 4 +- .../Database/Extensions/Extensions.tsx | 9 +- .../Functions/FunctionsList/FunctionList.tsx | 4 +- .../Functions/FunctionsList/FunctionsList.tsx | 11 +- .../Database/Hooks/HooksList/HookList.tsx | 25 ++-- .../Database/Hooks/HooksList/HooksList.tsx | 27 +++-- .../Hooks/HooksList/HooksListEmpty.tsx | 4 +- .../Database/Hooks/HooksList/SchemaTable.tsx | 11 +- .../Publications/PublicationsList.tsx | 17 +-- .../Publications/PublicationsTableItem.tsx | 8 +- .../Publications/PublicationsTables.tsx | 35 +++--- .../Database/Roles/CreateRolePanel.tsx | 4 +- .../Database/Roles/DeleteRoleModal.tsx | 4 +- .../interfaces/Database/Roles/RoleRow.tsx | 4 +- .../Database/Roles/RoleRowSkeleton.tsx | 4 +- .../interfaces/Database/Roles/RolesList.tsx | 15 ++- .../interfaces/Database/Tables/ColumnList.tsx | 16 +-- .../interfaces/Database/Tables/TableList.tsx | 111 +++++++++--------- .../Triggers/TriggersList/TriggerList.tsx | 7 +- .../Triggers/TriggersList/TriggersList.tsx | 9 +- .../components/interfaces/Database/index.ts | 6 - .../Integrations/Webhooks/ListTab.tsx | 15 ++- .../interfaces/Realtime/Inspector/Header.tsx | 16 ++- .../Realtime/Inspector/MessagesTable.tsx | 15 ++- .../interfaces/Realtime/Inspector/index.tsx | 2 +- apps/studio/components/ui/SchemaSelector.tsx | 7 +- .../database-triggers-query.ts | 2 +- .../pages/project/[ref]/branches/index.tsx | 19 ++- .../project/[ref]/branches/merge-requests.tsx | 9 +- .../project/[ref]/database/backups/pitr.tsx | 6 +- .../backups/restore-to-new-project.tsx | 9 +- .../[ref]/database/backups/scheduled.tsx | 6 +- .../project/[ref]/database/extensions.tsx | 9 +- .../project/[ref]/database/functions.tsx | 8 +- .../project/[ref]/database/publications.tsx | 12 +- .../project/[ref]/database/tables/[id].tsx | 2 +- .../project/[ref]/database/tables/index.tsx | 4 +- .../pages/project/[ref]/database/triggers.tsx | 8 +- .../[ref]/functions/[functionSlug]/code.tsx | 8 +- .../project/[ref]/realtime/inspector.tsx | 11 +- .../pages/project/[ref]/reports/database.tsx | 30 ++--- .../pages/project/[ref]/reports/index.tsx | 16 ++- .../[ref]/settings/jwt/signing-keys.tsx | 9 +- .../project/[ref]/settings/log-drains.tsx | 24 ++-- 55 files changed, 352 insertions(+), 305 deletions(-) diff --git a/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx b/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx index f814b5f291f..2a774632f18 100644 --- a/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx +++ b/apps/studio/components/interfaces/BranchManagement/CreateBranchModal.tsx @@ -24,7 +24,7 @@ import { useGitHubConnectionsQuery } from 'data/integrations/github-connections- import { projectKeys } from 'data/projects/keys' import { useProjectAddonsQuery } from 'data/subscriptions/project-addons-query' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useFlag } from 'hooks/ui/useFlag' @@ -114,7 +114,10 @@ export const CreateBranchModal = () => { }, }) - const canCreateBranch = useCheckPermissions(PermissionAction.CREATE, 'preview_branches') + const { can: canCreateBranch } = useAsyncCheckProjectPermissions( + PermissionAction.CREATE, + 'preview_branches' + ) const githubConnection = connections?.find((connection) => connection.project.ref === projectRef) diff --git a/apps/studio/components/interfaces/BranchManagement/Overview.tsx b/apps/studio/components/interfaces/BranchManagement/Overview.tsx index eebf5b79631..88257f88afd 100644 --- a/apps/studio/components/interfaces/BranchManagement/Overview.tsx +++ b/apps/studio/components/interfaces/BranchManagement/Overview.tsx @@ -23,7 +23,7 @@ import { useBranchResetMutation } from 'data/branches/branch-reset-mutation' import { useBranchUpdateMutation } from 'data/branches/branch-update-mutation' import type { Branch } from 'data/branches/branches-query' import { branchKeys } from 'data/branches/keys' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { Button, DropdownMenu, @@ -169,8 +169,14 @@ const PreviewBranchActions = ({ const queryClient = useQueryClient() const projectRef = branch.parent_project_ref ?? branch.project_ref - const canDeleteBranches = useCheckPermissions(PermissionAction.DELETE, 'preview_branches') - const canUpdateBranches = useCheckPermissions(PermissionAction.UPDATE, 'preview_branches') + const { can: canDeleteBranches } = useAsyncCheckProjectPermissions( + PermissionAction.DELETE, + 'preview_branches' + ) + const { can: canUpdateBranches } = useAsyncCheckProjectPermissions( + PermissionAction.UPDATE, + 'preview_branches' + ) const { data } = useBranchQuery({ projectRef, id: branch.id }) const isBranchActiveHealthy = data?.status === 'ACTIVE_HEALTHY' @@ -381,7 +387,10 @@ const PreviewBranchActions = ({ // Actions for main (production) branch const MainBranchActions = ({ branch, repo }: { branch: Branch; repo: string }) => { const { ref: projectRef } = useParams() - const canUpdateBranches = useCheckPermissions(PermissionAction.UPDATE, 'preview_branches') + const { can: canUpdateBranches } = useAsyncCheckProjectPermissions( + PermissionAction.UPDATE, + 'preview_branches' + ) const [showEditBranchModal, setShowEditBranchModal] = useState(false) return ( diff --git a/apps/studio/components/interfaces/Connect/Connect.tsx b/apps/studio/components/interfaces/Connect/Connect.tsx index 03482aeee43..6d3065c670a 100644 --- a/apps/studio/components/interfaces/Connect/Connect.tsx +++ b/apps/studio/components/interfaces/Connect/Connect.tsx @@ -9,7 +9,7 @@ import { ButtonTooltip } from 'components/ui/ButtonTooltip' import Panel from 'components/ui/Panel' import { getKeys, useAPIKeysQuery } from 'data/api-keys/api-keys-query' import { useProjectSettingsV2Query } from 'data/config/project-settings-v2-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { PROJECT_STATUS } from 'lib/constants' import { @@ -55,7 +55,10 @@ export const Connect = () => { ) const { data: settings } = useProjectSettingsV2Query({ projectRef }, { enabled: showConnect }) - const canReadAPIKeys = useCheckPermissions(PermissionAction.READ, 'service_api_keys') + const { can: canReadAPIKeys } = useAsyncCheckProjectPermissions( + PermissionAction.READ, + 'service_api_keys' + ) const handleParentChange = (value: string) => { setSelectedParent(value) diff --git a/apps/studio/components/interfaces/Database/Backups/BackupItem.tsx b/apps/studio/components/interfaces/Database/Backups/BackupItem.tsx index 7b9de9b0863..dbe0a9ca5e4 100644 --- a/apps/studio/components/interfaces/Database/Backups/BackupItem.tsx +++ b/apps/studio/components/interfaces/Database/Backups/BackupItem.tsx @@ -6,7 +6,7 @@ import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { InlineLink } from 'components/ui/InlineLink' import { useBackupDownloadMutation } from 'data/database/backup-download-mutation' import type { DatabaseBackup } from 'data/database/backups-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { Badge, Tooltip, TooltipContent, TooltipTrigger } from 'ui' import { TimestampInfo } from 'ui-patterns' @@ -17,9 +17,9 @@ interface BackupItemProps { onSelectBackup: () => void } -const BackupItem = ({ index, isHealthy, backup, onSelectBackup }: BackupItemProps) => { +export const BackupItem = ({ index, isHealthy, backup, onSelectBackup }: BackupItemProps) => { const { ref: projectRef } = useParams() - const canTriggerScheduledBackups = useCheckPermissions( + const { can: canTriggerScheduledBackups } = useAsyncCheckProjectPermissions( PermissionAction.INFRA_EXECUTE, 'queue_job.restore.prepare' ) @@ -38,8 +38,7 @@ const BackupItem = ({ index, isHealthy, backup, onSelectBackup }: BackupItemProp }) const generateSideButtons = (backup: DatabaseBackup) => { - // [Joshen] API typing is incorrect here, status is getting typed as Record - if ((backup as any).status === 'COMPLETED') + if (backup.status === 'COMPLETED') return (
) } - -export default BackupItem diff --git a/apps/studio/components/interfaces/Database/Backups/BackupsEmpty.tsx b/apps/studio/components/interfaces/Database/Backups/BackupsEmpty.tsx index d0d83a822ea..fd00454dadf 100644 --- a/apps/studio/components/interfaces/Database/Backups/BackupsEmpty.tsx +++ b/apps/studio/components/interfaces/Database/Backups/BackupsEmpty.tsx @@ -1,6 +1,6 @@ import { Info } from 'lucide-react' -const BackupsEmpty = () => { +export const BackupsEmpty = () => { return (
@@ -10,5 +10,3 @@ const BackupsEmpty = () => {
) } - -export default BackupsEmpty diff --git a/apps/studio/components/interfaces/Database/Backups/BackupsList.tsx b/apps/studio/components/interfaces/Database/Backups/BackupsList.tsx index 484bfe785ec..7e131ff9992 100644 --- a/apps/studio/components/interfaces/Database/Backups/BackupsList.tsx +++ b/apps/studio/components/interfaces/Database/Backups/BackupsList.tsx @@ -14,9 +14,9 @@ import { setProjectStatus } from 'data/projects/projects-query' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { PROJECT_STATUS } from 'lib/constants' import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' -import BackupItem from './BackupItem' -import BackupsEmpty from './BackupsEmpty' -import BackupsStorageAlert from './BackupsStorageAlert' +import { BackupItem } from './BackupItem' +import { BackupsEmpty } from './BackupsEmpty' +import { BackupsStorageAlert } from './BackupsStorageAlert' const BackupsList = () => { const router = useRouter() diff --git a/apps/studio/components/interfaces/Database/Backups/BackupsStorageAlert.tsx b/apps/studio/components/interfaces/Database/Backups/BackupsStorageAlert.tsx index e1544e14393..52e0c0184e3 100644 --- a/apps/studio/components/interfaces/Database/Backups/BackupsStorageAlert.tsx +++ b/apps/studio/components/interfaces/Database/Backups/BackupsStorageAlert.tsx @@ -1,7 +1,6 @@ -import { AlertDescription_Shadcn_, Alert_Shadcn_ } from 'ui' -import { WarningIcon } from 'ui' +import { AlertDescription_Shadcn_, Alert_Shadcn_, WarningIcon } from 'ui' -const BackupsStorageAlert = () => { +export const BackupsStorageAlert = () => { return ( @@ -13,5 +12,3 @@ const BackupsStorageAlert = () => { ) } - -export default BackupsStorageAlert diff --git a/apps/studio/components/interfaces/Database/Backups/PITR/PITRNotice.tsx b/apps/studio/components/interfaces/Database/Backups/PITR/PITRNotice.tsx index 7e6f70b3f3f..33a4d11e0b8 100644 --- a/apps/studio/components/interfaces/Database/Backups/PITR/PITRNotice.tsx +++ b/apps/studio/components/interfaces/Database/Backups/PITR/PITRNotice.tsx @@ -6,7 +6,7 @@ import { useParams } from 'common' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { FormPanel } from 'components/ui/Forms/FormPanel' import { useProjectAddonsQuery } from 'data/subscriptions/project-addons-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { getPITRRetentionDuration } from './PITR.utils' const PITRNotice = ({}) => { @@ -14,7 +14,7 @@ const PITRNotice = ({}) => { const { data: addonsResponse } = useProjectAddonsQuery({ projectRef }) const retentionPeriod = getPITRRetentionDuration(addonsResponse?.selected_addons ?? []) - const canUpdateSubscription = useCheckPermissions( + const { can: canUpdateSubscription } = useAsyncCheckProjectPermissions( PermissionAction.BILLING_WRITE, 'stripe.subscriptions' ) diff --git a/apps/studio/components/interfaces/Database/Backups/PITR/PITRSelection.tsx b/apps/studio/components/interfaces/Database/Backups/PITR/PITRSelection.tsx index 86a651a0da5..fa2819c877f 100644 --- a/apps/studio/components/interfaces/Database/Backups/PITR/PITRSelection.tsx +++ b/apps/studio/components/interfaces/Database/Backups/PITR/PITRSelection.tsx @@ -18,8 +18,8 @@ import { Modal, WarningIcon, } from 'ui' -import BackupsEmpty from '../BackupsEmpty' -import BackupsStorageAlert from '../BackupsStorageAlert' +import { BackupsEmpty } from '../BackupsEmpty' +import { BackupsStorageAlert } from '../BackupsStorageAlert' import type { Timezone } from './PITR.types' import { getClientTimezone } from './PITR.utils' import PITRStatus from './PITRStatus' diff --git a/apps/studio/components/interfaces/Database/Backups/PITR/PITRStatus.tsx b/apps/studio/components/interfaces/Database/Backups/PITR/PITRStatus.tsx index 128a84e006e..0f774102693 100644 --- a/apps/studio/components/interfaces/Database/Backups/PITR/PITRStatus.tsx +++ b/apps/studio/components/interfaces/Database/Backups/PITR/PITRStatus.tsx @@ -3,13 +3,13 @@ import { useParams } from 'common' import dayjs from 'dayjs' import { AlertCircle } from 'lucide-react' +import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { FormPanel } from 'components/ui/Forms/FormPanel' import { useBackupsQuery } from 'data/database/backups-query' import { useReadReplicasQuery } from 'data/read-replicas/replicas-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import type { Timezone } from './PITR.types' import { TimezoneSelection } from './TimezoneSelection' -import { ButtonTooltip } from 'components/ui/ButtonTooltip' interface PITRStatusProps { selectedTimezone: Timezone @@ -41,7 +41,7 @@ const PITRStatus = ({ .tz(selectedTimezone?.utc[0]) .format('DD MMM YYYY, HH:mm:ss') - const canTriggerPhysicalBackup = useCheckPermissions( + const { can: canTriggerPhysicalBackup } = useAsyncCheckProjectPermissions( PermissionAction.INFRA_EXECUTE, 'queue_job.walg.prepare_restore' ) diff --git a/apps/studio/components/interfaces/Database/Backups/RestoreToNewProject/BackupsList.tsx b/apps/studio/components/interfaces/Database/Backups/RestoreToNewProject/BackupsList.tsx index e25d3fad340..c7868594841 100644 --- a/apps/studio/components/interfaces/Database/Backups/RestoreToNewProject/BackupsList.tsx +++ b/apps/studio/components/interfaces/Database/Backups/RestoreToNewProject/BackupsList.tsx @@ -4,7 +4,7 @@ import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { Badge, Button } from 'ui' import { TimestampInfo } from 'ui-patterns' -import BackupsEmpty from '../BackupsEmpty' +import { BackupsEmpty } from '../BackupsEmpty' interface BackupsListProps { onSelectRestore: (id: number) => void diff --git a/apps/studio/components/interfaces/Database/Extensions/ExtensionCard.tsx b/apps/studio/components/interfaces/Database/Extensions/ExtensionCard.tsx index 68d280a0268..9e1e2c38af0 100644 --- a/apps/studio/components/interfaces/Database/Extensions/ExtensionCard.tsx +++ b/apps/studio/components/interfaces/Database/Extensions/ExtensionCard.tsx @@ -7,7 +7,7 @@ import { toast } from 'sonner' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { useDatabaseExtensionDisableMutation } from 'data/database-extensions/database-extension-disable-mutation' import { DatabaseExtension } from 'data/database-extensions/database-extensions-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useIsOrioleDb, useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { extensions } from 'shared-data' import { Button, cn, Switch, Tooltip, TooltipContent, TooltipTrigger } from 'ui' @@ -28,7 +28,7 @@ const ExtensionCard = ({ extension }: ExtensionCardProps) => { const [isDisableModalOpen, setIsDisableModalOpen] = useState(false) const [showConfirmEnableModal, setShowConfirmEnableModal] = useState(false) - const canUpdateExtensions = useCheckPermissions( + const { can: canUpdateExtensions } = useAsyncCheckProjectPermissions( PermissionAction.TENANT_SQL_ADMIN_WRITE, 'extensions' ) diff --git a/apps/studio/components/interfaces/Database/Extensions/Extensions.tsx b/apps/studio/components/interfaces/Database/Extensions/Extensions.tsx index 73ca129d0c5..b9e629dcda1 100644 --- a/apps/studio/components/interfaces/Database/Extensions/Extensions.tsx +++ b/apps/studio/components/interfaces/Database/Extensions/Extensions.tsx @@ -9,7 +9,7 @@ import InformationBox from 'components/ui/InformationBox' import NoSearchResults from 'components/ui/NoSearchResults' import ShimmeringLoader from 'components/ui/ShimmeringLoader' import { useDatabaseExtensionsQuery } from 'data/database-extensions/database-extensions-query' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { Input } from 'ui' import ExtensionCard from './ExtensionCard' @@ -42,11 +42,8 @@ const Extensions = () => { (ext) => !isNull(ext.installed_version) ) - const canUpdateExtensions = useCheckPermissions( - PermissionAction.TENANT_SQL_ADMIN_WRITE, - 'extensions' - ) - const isPermissionsLoaded = usePermissionsLoaded() + const { can: canUpdateExtensions, isSuccess: isPermissionsLoaded } = + useAsyncCheckProjectPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'extensions') useEffect(() => { if (filter !== undefined) setFilterString(filter as string) diff --git a/apps/studio/components/interfaces/Database/Functions/FunctionsList/FunctionList.tsx b/apps/studio/components/interfaces/Database/Functions/FunctionsList/FunctionList.tsx index 9e42241f27c..4d72806bd16 100644 --- a/apps/studio/components/interfaces/Database/Functions/FunctionsList/FunctionList.tsx +++ b/apps/studio/components/interfaces/Database/Functions/FunctionsList/FunctionList.tsx @@ -6,7 +6,7 @@ import { useRouter } from 'next/router' import Table from 'components/to-be-cleaned/Table' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { useDatabaseFunctionsQuery } from 'data/database-functions/database-functions-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useAiAssistantStateSnapshot } from 'state/ai-assistant-state' import { @@ -50,7 +50,7 @@ const FunctionList = ({ (func) => func.name.toLocaleLowerCase() ) const projectRef = selectedProject?.ref - const canUpdateFunctions = useCheckPermissions( + const { can: canUpdateFunctions } = useAsyncCheckProjectPermissions( PermissionAction.TENANT_SQL_ADMIN_WRITE, 'functions' ) diff --git a/apps/studio/components/interfaces/Database/Functions/FunctionsList/FunctionsList.tsx b/apps/studio/components/interfaces/Database/Functions/FunctionsList/FunctionsList.tsx index 0af82c75f81..9f478304989 100644 --- a/apps/studio/components/interfaces/Database/Functions/FunctionsList/FunctionsList.tsx +++ b/apps/studio/components/interfaces/Database/Functions/FunctionsList/FunctionsList.tsx @@ -13,7 +13,7 @@ import SchemaSelector from 'components/ui/SchemaSelector' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useDatabaseFunctionsQuery } from 'data/database-functions/database-functions-query' import { useSchemasQuery } from 'data/database/schemas-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useQuerySchemaState } from 'hooks/misc/useSchemaQueryState' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useIsProtectedSchema } from 'hooks/useProtectedSchemas' @@ -51,18 +51,19 @@ const FunctionsList = ({ router.push(url) } - const canCreateFunctions = useCheckPermissions( + const { can: canCreateFunctions } = useAsyncCheckProjectPermissions( PermissionAction.TENANT_SQL_ADMIN_WRITE, 'functions' ) - const { data: schemas } = useSchemasQuery({ + const { isSchemaLocked } = useIsProtectedSchema({ schema: selectedSchema }) + + // [Joshen] This is to preload the data for the Schema Selector + useSchemasQuery({ projectRef: project?.ref, connectionString: project?.connectionString, }) - const { isSchemaLocked } = useIsProtectedSchema({ schema: selectedSchema }) - const { data: functions, error, diff --git a/apps/studio/components/interfaces/Database/Hooks/HooksList/HookList.tsx b/apps/studio/components/interfaces/Database/Hooks/HooksList/HookList.tsx index 4f37d899979..c259acb39d0 100644 --- a/apps/studio/components/interfaces/Database/Hooks/HooksList/HookList.tsx +++ b/apps/studio/components/interfaces/Database/Hooks/HooksList/HookList.tsx @@ -1,3 +1,4 @@ +import { PostgresTrigger } from '@supabase/postgres-meta' import { PermissionAction } from '@supabase/shared-types/out/constants' import { includes, noop } from 'lodash' import { Edit3, MoreVertical, Trash } from 'lucide-react' @@ -7,7 +8,7 @@ import { useParams } from 'common' import Table from 'components/to-be-cleaned/Table' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { useDatabaseHooksQuery } from 'data/database-triggers/database-triggers-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { BASE_PATH } from 'lib/constants' import { @@ -23,11 +24,16 @@ import { export interface HookListProps { schema: string filterString: string - editHook: (hook: any) => void - deleteHook: (hook: any) => void + editHook: (hook: PostgresTrigger) => void + deleteHook: (hook: PostgresTrigger) => void } -const HookList = ({ schema, filterString, editHook = noop, deleteHook = noop }: HookListProps) => { +export const HookList = ({ + schema, + filterString, + editHook = noop, + deleteHook = noop, +}: HookListProps) => { const { ref } = useParams() const { data: project } = useSelectedProjectQuery() const { data: hooks } = useDatabaseHooksQuery({ @@ -39,16 +45,19 @@ const HookList = ({ schema, filterString, editHook = noop, deleteHook = noop }: const restUrlTld = restUrl ? new URL(restUrl).hostname.split('.').pop() : 'co' const filteredHooks = (hooks ?? []).filter( - (x: any) => + (x) => includes(x.name.toLowerCase(), filterString.toLowerCase()) && x.schema === schema && x.function_args.length >= 2 ) - const canUpdateWebhook = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'triggers') + const { can: canUpdateWebhook } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'triggers' + ) return ( <> - {filteredHooks.map((x: any) => { + {filteredHooks.map((x) => { const isEdgeFunction = (url: string) => url.includes(`https://${ref}.functions.supabase.${restUrlTld}/`) || url.includes(`https://${ref}.supabase.${restUrlTld}/functions/`) @@ -134,5 +143,3 @@ const HookList = ({ schema, filterString, editHook = noop, deleteHook = noop }: ) } - -export default HookList diff --git a/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx b/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx index e255efb78d0..7340883f745 100644 --- a/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx +++ b/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksList.tsx @@ -1,3 +1,4 @@ +import { PostgresTrigger } from '@supabase/postgres-meta' import { PermissionAction } from '@supabase/shared-types/out/constants' import { includes, map as lodashMap, uniqBy } from 'lodash' import { Search } from 'lucide-react' @@ -9,20 +10,27 @@ import { DocsButton } from 'components/ui/DocsButton' import NoSearchResults from 'components/ui/NoSearchResults' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useDatabaseHooksQuery } from 'data/database-triggers/database-triggers-query' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { + useAsyncCheckProjectPermissions, + usePermissionsLoaded, +} from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { noop } from 'lib/void' import { Input } from 'ui' -import HooksListEmpty from './HooksListEmpty' -import SchemaTable from './SchemaTable' +import { HooksListEmpty } from './HooksListEmpty' +import { SchemaTable } from './SchemaTable' export interface HooksListProps { createHook: () => void - editHook: (hook: any) => void - deleteHook: (hook: any) => void + editHook: (hook: PostgresTrigger) => void + deleteHook: (hook: PostgresTrigger) => void } -const HooksList = ({ createHook = noop, editHook = noop, deleteHook = noop }: HooksListProps) => { +export const HooksList = ({ + createHook = noop, + editHook = noop, + deleteHook = noop, +}: HooksListProps) => { const { data: project } = useSelectedProjectQuery() const { data: hooks, @@ -41,7 +49,10 @@ const HooksList = ({ createHook = noop, editHook = noop, deleteHook = noop }: Ho ) const filteredHookSchemas = lodashMap(uniqBy(filteredHooks, 'schema'), 'schema') - const canCreateWebhooks = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'triggers') + const { can: canCreateWebhooks } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'triggers' + ) const isPermissionsLoaded = usePermissionsLoaded() return ( @@ -108,5 +119,3 @@ const HooksList = ({ createHook = noop, editHook = noop, deleteHook = noop }: Ho
) } - -export default HooksList diff --git a/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksListEmpty.tsx b/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksListEmpty.tsx index 2d466c0708b..0aa73a04c31 100644 --- a/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksListEmpty.tsx +++ b/apps/studio/components/interfaces/Database/Hooks/HooksList/HooksListEmpty.tsx @@ -1,6 +1,6 @@ import Table from 'components/to-be-cleaned/Table' -const HooksListEmpty = () => { +export const HooksListEmpty = () => { return ( { /> ) } - -export default HooksListEmpty diff --git a/apps/studio/components/interfaces/Database/Hooks/HooksList/SchemaTable.tsx b/apps/studio/components/interfaces/Database/Hooks/HooksList/SchemaTable.tsx index 52e0f48afdc..0ebbc7dcd76 100644 --- a/apps/studio/components/interfaces/Database/Hooks/HooksList/SchemaTable.tsx +++ b/apps/studio/components/interfaces/Database/Hooks/HooksList/SchemaTable.tsx @@ -1,16 +1,17 @@ +import { PostgresTrigger } from '@supabase/postgres-meta' import { noop } from 'lodash' import Table from 'components/to-be-cleaned/Table' -import HookList from './HookList' +import { HookList } from './HookList' interface SchemaTableProps { schema: string filterString: string - editHook: (hook: any) => void - deleteHook: (hook: any) => void + editHook: (hook: PostgresTrigger) => void + deleteHook: (hook: PostgresTrigger) => void } -const SchemaTable = ({ +export const SchemaTable = ({ schema, filterString, editHook = noop, @@ -55,5 +56,3 @@ const SchemaTable = ({ ) } - -export default SchemaTable diff --git a/apps/studio/components/interfaces/Database/Publications/PublicationsList.tsx b/apps/studio/components/interfaces/Database/Publications/PublicationsList.tsx index cd47055410a..f24078292b2 100644 --- a/apps/studio/components/interfaces/Database/Publications/PublicationsList.tsx +++ b/apps/studio/components/interfaces/Database/Publications/PublicationsList.tsx @@ -1,18 +1,18 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' import { noop } from 'lodash' +import { AlertCircle, Search } from 'lucide-react' import { useState } from 'react' import { toast } from 'sonner' import { Button, Input, Toggle } from 'ui' -import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' import Table from 'components/to-be-cleaned/Table' import InformationBox from 'components/ui/InformationBox' import NoSearchResults from 'components/ui/NoSearchResults' import { useDatabasePublicationsQuery } from 'data/database-publications/database-publications-query' import { useDatabasePublicationUpdateMutation } from 'data/database-publications/database-publications-update-mutation' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' -import { AlertCircle, Search } from 'lucide-react' +import ConfirmationModal from 'ui-patterns/Dialogs/ConfirmationModal' import PublicationSkeleton from './PublicationSkeleton' interface PublicationEvent { @@ -24,7 +24,7 @@ interface PublicationsListProps { onSelectPublication: (id: number) => void } -const PublicationsList = ({ onSelectPublication = noop }: PublicationsListProps) => { +export const PublicationsList = ({ onSelectPublication = noop }: PublicationsListProps) => { const { data: project } = useSelectedProjectQuery() const [filterString, setFilterString] = useState('') @@ -39,11 +39,8 @@ const PublicationsList = ({ onSelectPublication = noop }: PublicationsListProps) }, }) - const canUpdatePublications = useCheckPermissions( - PermissionAction.TENANT_SQL_ADMIN_WRITE, - 'publications' - ) - const isPermissionsLoaded = usePermissionsLoaded() + const { can: canUpdatePublications, isSuccess: isPermissionsLoaded } = + useAsyncCheckProjectPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'publications') const publicationEvents: PublicationEvent[] = [ { event: 'Insert', key: 'publish_insert' }, @@ -183,5 +180,3 @@ const PublicationsList = ({ onSelectPublication = noop }: PublicationsListProps) ) } - -export default PublicationsList diff --git a/apps/studio/components/interfaces/Database/Publications/PublicationsTableItem.tsx b/apps/studio/components/interfaces/Database/Publications/PublicationsTableItem.tsx index 0628aefae27..0ae7b75c7f9 100644 --- a/apps/studio/components/interfaces/Database/Publications/PublicationsTableItem.tsx +++ b/apps/studio/components/interfaces/Database/Publications/PublicationsTableItem.tsx @@ -1,13 +1,13 @@ import type { PostgresPublication, PostgresTable } from '@supabase/postgres-meta' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useState } from 'react' -import { Badge, Toggle } from 'ui' +import { toast } from 'sonner' import Table from 'components/to-be-cleaned/Table' import { useDatabasePublicationUpdateMutation } from 'data/database-publications/database-publications-update-mutation' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' -import { toast } from 'sonner' +import { Badge, Toggle } from 'ui' interface PublicationsTableItemProps { table: PostgresTable @@ -22,7 +22,7 @@ const PublicationsTableItem = ({ table, selectedPublication }: PublicationsTable selectedPublication.tables?.find((x: any) => x.id == table.id) != undefined ) - const canUpdatePublications = useCheckPermissions( + const { can: canUpdatePublications } = useAsyncCheckProjectPermissions( PermissionAction.TENANT_SQL_ADMIN_WRITE, 'publications' ) diff --git a/apps/studio/components/interfaces/Database/Publications/PublicationsTables.tsx b/apps/studio/components/interfaces/Database/Publications/PublicationsTables.tsx index 01b65876670..ec191ac0ce7 100644 --- a/apps/studio/components/interfaces/Database/Publications/PublicationsTables.tsx +++ b/apps/studio/components/interfaces/Database/Publications/PublicationsTables.tsx @@ -1,18 +1,18 @@ import type { PostgresPublication } from '@supabase/postgres-meta' import { PermissionAction } from '@supabase/shared-types/out/constants' +import { ChevronLeft, Search } from 'lucide-react' import { useMemo, useState } from 'react' import NoSearchResults from 'components/to-be-cleaned/NoSearchResults' import Table from 'components/to-be-cleaned/Table' import AlertError from 'components/ui/AlertError' -import InformationBox from 'components/ui/InformationBox' import { Loading } from 'components/ui/Loading' import { useTablesQuery } from 'data/tables/tables-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useProtectedSchemas } from 'hooks/useProtectedSchemas' -import { AlertCircle, ChevronLeft, Search } from 'lucide-react' import { Button, Input } from 'ui' +import { Admonition } from 'ui-patterns' import PublicationsTableItem from './PublicationsTableItem' interface PublicationsTablesProps { @@ -20,14 +20,15 @@ interface PublicationsTablesProps { onSelectBack: () => void } -const PublicationsTables = ({ selectedPublication, onSelectBack }: PublicationsTablesProps) => { +export const PublicationsTables = ({ + selectedPublication, + onSelectBack, +}: PublicationsTablesProps) => { const { data: project } = useSelectedProjectQuery() const [filterString, setFilterString] = useState('') - const canUpdatePublications = useCheckPermissions( - PermissionAction.TENANT_SQL_ADMIN_WRITE, - 'publications' - ) + const { can: canUpdatePublications, isLoading: isLoadingPermissions } = + useAsyncCheckProjectPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'publications') const { data: protectedSchemas } = useProtectedSchemas() @@ -71,17 +72,17 @@ const PublicationsTables = ({ selectedPublication, onSelectBack }: PublicationsT /> - {!canUpdatePublications && ( -
- } - title="You need additional permissions to update database replications" - /> -
+ {!isLoadingPermissions && !canUpdatePublications && ( + )} - {isLoading && ( + + {(isLoading || isLoadingPermissions) && (
@@ -131,5 +132,3 @@ const PublicationsTables = ({ selectedPublication, onSelectBack }: PublicationsT ) } - -export default PublicationsTables diff --git a/apps/studio/components/interfaces/Database/Roles/CreateRolePanel.tsx b/apps/studio/components/interfaces/Database/Roles/CreateRolePanel.tsx index 0d604816196..7381c5968cf 100644 --- a/apps/studio/components/interfaces/Database/Roles/CreateRolePanel.tsx +++ b/apps/studio/components/interfaces/Database/Roles/CreateRolePanel.tsx @@ -44,7 +44,7 @@ const initialValues = { canBypassRls: false, } -const CreateRolePanel = ({ visible, onClose }: CreateRolePanelProps) => { +export const CreateRolePanel = ({ visible, onClose }: CreateRolePanelProps) => { const formId = 'create-new-role' const { data: project } = useSelectedProjectQuery() @@ -187,5 +187,3 @@ const CreateRolePanel = ({ visible, onClose }: CreateRolePanelProps) => { ) } - -export default CreateRolePanel diff --git a/apps/studio/components/interfaces/Database/Roles/DeleteRoleModal.tsx b/apps/studio/components/interfaces/Database/Roles/DeleteRoleModal.tsx index 9ae12e45753..91f868bc7b8 100644 --- a/apps/studio/components/interfaces/Database/Roles/DeleteRoleModal.tsx +++ b/apps/studio/components/interfaces/Database/Roles/DeleteRoleModal.tsx @@ -11,7 +11,7 @@ interface DeleteRoleModalProps { onClose: () => void } -const DeleteRoleModal = ({ role, visible, onClose }: DeleteRoleModalProps) => { +export const DeleteRoleModal = ({ role, visible, onClose }: DeleteRoleModalProps) => { const { data: project } = useSelectedProjectQuery() const { mutate: deleteDatabaseRole, isLoading: isDeleting } = useDatabaseRoleDeleteMutation({ @@ -50,5 +50,3 @@ const DeleteRoleModal = ({ role, visible, onClose }: DeleteRoleModalProps) => { ) } - -export default DeleteRoleModal diff --git a/apps/studio/components/interfaces/Database/Roles/RoleRow.tsx b/apps/studio/components/interfaces/Database/Roles/RoleRow.tsx index 5f109a3597a..876ffea6e01 100644 --- a/apps/studio/components/interfaces/Database/Roles/RoleRow.tsx +++ b/apps/studio/components/interfaces/Database/Roles/RoleRow.tsx @@ -27,7 +27,7 @@ interface RoleRowProps { onSelectDelete: (role: PgRole) => void } -const RoleRow = ({ role, disabled = false, onSelectDelete }: RoleRowProps) => { +export const RoleRow = ({ role, disabled = false, onSelectDelete }: RoleRowProps) => { const { data: project } = useSelectedProjectQuery() const [isExpanded, setIsExpanded] = useState(false) @@ -219,5 +219,3 @@ const RoleRow = ({ role, disabled = false, onSelectDelete }: RoleRowProps) => { ) } - -export default RoleRow diff --git a/apps/studio/components/interfaces/Database/Roles/RoleRowSkeleton.tsx b/apps/studio/components/interfaces/Database/Roles/RoleRowSkeleton.tsx index b0ef4317008..1b127aae5d6 100644 --- a/apps/studio/components/interfaces/Database/Roles/RoleRowSkeleton.tsx +++ b/apps/studio/components/interfaces/Database/Roles/RoleRowSkeleton.tsx @@ -6,7 +6,7 @@ export interface RoleRowSkeletonProps { index?: number } -const RoleRowSkeleton = ({ index }: RoleRowSkeletonProps) => { +export const RoleRowSkeleton = ({ index }: RoleRowSkeletonProps) => { return (
{
) } - -export default RoleRowSkeleton diff --git a/apps/studio/components/interfaces/Database/Roles/RolesList.tsx b/apps/studio/components/interfaces/Database/Roles/RolesList.tsx index 47568a0768e..1385c807f34 100644 --- a/apps/studio/components/interfaces/Database/Roles/RolesList.tsx +++ b/apps/studio/components/interfaces/Database/Roles/RolesList.tsx @@ -8,13 +8,13 @@ import NoSearchResults from 'components/ui/NoSearchResults' import SparkBar from 'components/ui/SparkBar' import { useDatabaseRolesQuery } from 'data/database-roles/database-roles-query' import { useMaxConnectionsQuery } from 'data/database/max-connections-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { Badge, Button, Input, Tooltip, TooltipContent, TooltipTrigger } from 'ui' -import CreateRolePanel from './CreateRolePanel' -import DeleteRoleModal from './DeleteRoleModal' -import RoleRow from './RoleRow' -import RoleRowSkeleton from './RoleRowSkeleton' +import { CreateRolePanel } from './CreateRolePanel' +import { DeleteRoleModal } from './DeleteRoleModal' +import { RoleRow } from './RoleRow' +import { RoleRowSkeleton } from './RoleRowSkeleton' import { SUPABASE_ROLES } from './Roles.constants' type SUPABASE_ROLE = (typeof SUPABASE_ROLES)[number] @@ -27,7 +27,10 @@ const RolesList = () => { const [isCreatingRole, setIsCreatingRole] = useState(false) const [selectedRoleToDelete, setSelectedRoleToDelete] = useState() - const canUpdateRoles = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'roles') + const { can: canUpdateRoles } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'roles' + ) const { data: maxConnData } = useMaxConnectionsQuery({ projectRef: project?.ref, diff --git a/apps/studio/components/interfaces/Database/Tables/ColumnList.tsx b/apps/studio/components/interfaces/Database/Tables/ColumnList.tsx index ba4eedf9839..83aaf0cacef 100644 --- a/apps/studio/components/interfaces/Database/Tables/ColumnList.tsx +++ b/apps/studio/components/interfaces/Database/Tables/ColumnList.tsx @@ -4,6 +4,7 @@ import { Check, ChevronLeft, Edit, MoreVertical, Plus, Search, Trash, X } from ' import Link from 'next/link' import { useState } from 'react' +import { PostgresColumn } from '@supabase/postgres-meta' import { useParams } from 'common' import NoSearchResults from 'components/to-be-cleaned/NoSearchResults' import Table from 'components/to-be-cleaned/Table' @@ -12,7 +13,7 @@ import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useTableEditorQuery } from 'data/table-editor/table-editor-query' import { isTableLike } from 'data/table-editor/table-editor-types' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useIsProtectedSchema } from 'hooks/useProtectedSchemas' import { @@ -30,11 +31,11 @@ import { ProtectedSchemaWarning } from '../ProtectedSchemaWarning' interface ColumnListProps { onAddColumn: () => void - onEditColumn: (column: any) => void - onDeleteColumn: (column: any) => void + onEditColumn: (column: PostgresColumn) => void + onDeleteColumn: (column: PostgresColumn) => void } -const ColumnList = ({ +export const ColumnList = ({ onAddColumn = noop, onEditColumn = noop, onDeleteColumn = noop, @@ -64,7 +65,10 @@ const ColumnList = ({ : selectedTable?.columns?.filter((column) => column.name.includes(filterString))) ?? [] const { isSchemaLocked } = useIsProtectedSchema({ schema: selectedTable?.schema ?? '' }) - const canUpdateColumns = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'columns') + const { can: canUpdateColumns } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'columns' + ) return (
@@ -213,5 +217,3 @@ const ColumnList = ({
) } - -export default ColumnList diff --git a/apps/studio/components/interfaces/Database/Tables/TableList.tsx b/apps/studio/components/interfaces/Database/Tables/TableList.tsx index c3eea9f3055..68e4ead2a14 100644 --- a/apps/studio/components/interfaces/Database/Tables/TableList.tsx +++ b/apps/studio/components/interfaces/Database/Tables/TableList.tsx @@ -23,6 +23,7 @@ import { useParams } from 'common' import Table from 'components/to-be-cleaned/Table' import AlertError from 'components/ui/AlertError' import { ButtonTooltip } from 'components/ui/ButtonTooltip' +import { DropdownMenuItemTooltip } from 'components/ui/DropdownMenuItemTooltip' import SchemaSelector from 'components/ui/SchemaSelector' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useDatabasePublicationsQuery } from 'data/database-publications/database-publications-query' @@ -32,7 +33,7 @@ import { useMaterializedViewsQuery } from 'data/materialized-views/materialized- import { usePrefetchEditorTablePage } from 'data/prefetchers/project.$ref.editor.$id' import { useTablesQuery } from 'data/tables/tables-query' import { useViewsQuery } from 'data/views/views-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useQuerySchemaState } from 'hooks/misc/useSchemaQueryState' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useIsProtectedSchema } from 'hooks/useProtectedSchemas' @@ -64,7 +65,7 @@ interface TableListProps { onDuplicateTable: (table: PostgresTable) => void } -const TableList = ({ +export const TableList = ({ onDuplicateTable, onAddTable = noop, onEditTable = noop, @@ -80,7 +81,11 @@ const TableList = ({ const [filterString, setFilterString] = useState('') const [visibleTypes, setVisibleTypes] = useState(Object.values(ENTITY_TYPE)) - const canUpdateTables = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'tables') + + const { can: canUpdateTables } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'tables' + ) const { data: tables, @@ -484,62 +489,58 @@ const TableList = ({ {x.type === ENTITY_TYPE.TABLE && ( <> - - - { - if (canUpdateTables) onEditTable(x) - }} - > - -

Edit table

-
-
- {!canUpdateTables && ( - - You need additional permissions to edit this table - - )} -
- { + if (canUpdateTables) onEditTable(x) + }} + tooltip={{ + content: { + side: 'left', + text: 'You need additional permissions to edit this table', + }, + }} + > + +

Edit table

+ + { - e.stopPropagation() - if (canUpdateTables) { - onDuplicateTable(x) - } + className="gap-x-2" + disabled={!canUpdateTables} + onClick={() => { + if (canUpdateTables) onDuplicateTable(x) + }} + tooltip={{ + content: { + side: 'left', + text: 'You need additional permissions to duplicate tables', + }, }} > Duplicate Table -
- - - { - if (canUpdateTables && !isSchemaLocked) { - onDeleteTable({ - ...x, - schema: selectedSchema, - }) - } - }} - > - -

Delete table

-
-
- {!canUpdateTables && ( - - You need additional permissions to delete tables - - )} -
+ + + { + if (canUpdateTables && !isSchemaLocked) { + onDeleteTable({ ...x, schema: selectedSchema }) + } + }} + tooltip={{ + content: { + side: 'left', + text: 'You need additional permissions to delete tables', + }, + }} + > + +

Delete table

+
)} @@ -557,5 +558,3 @@ const TableList = ({ ) } - -export default TableList diff --git a/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx b/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx index 809b5d65bcc..cc3f4b5283f 100644 --- a/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx +++ b/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx @@ -5,7 +5,7 @@ import { Check, Edit, Edit2, MoreVertical, Trash, X } from 'lucide-react' import Table from 'components/to-be-cleaned/Table' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { useDatabaseTriggersQuery } from 'data/database-triggers/database-triggers-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useAiAssistantStateSnapshot } from 'state/ai-assistant-state' import { @@ -51,7 +51,10 @@ const TriggerList = ({ filteredTriggers.filter((x) => x.schema == schema), (trigger) => trigger.name.toLocaleLowerCase() ) - const canUpdateTriggers = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'triggers') + const { can: canUpdateTriggers } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'triggers' + ) if (_triggers.length === 0 && filterString.length === 0) { return ( diff --git a/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggersList.tsx b/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggersList.tsx index 6cb57562621..2978d9d3074 100644 --- a/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggersList.tsx +++ b/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggersList.tsx @@ -13,7 +13,7 @@ import SchemaSelector from 'components/ui/SchemaSelector' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useDatabaseTriggersQuery } from 'data/database-triggers/database-triggers-query' import { useTablesQuery } from 'data/tables/tables-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useQuerySchemaState } from 'hooks/misc/useSchemaQueryState' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useIsProtectedSchema, useProtectedSchemas } from 'hooks/useProtectedSchemas' @@ -41,7 +41,7 @@ const TriggersList = ({ const { data: protectedSchemas } = useProtectedSchemas() const { isSchemaLocked } = useIsProtectedSchema({ schema: selectedSchema }) - const { data = [], isSuccess } = useTablesQuery({ + const { data = [] } = useTablesQuery({ projectRef: project?.ref, connectionString: project?.connectionString, }) @@ -58,7 +58,10 @@ const TriggersList = ({ connectionString: project?.connectionString, }) - const canCreateTriggers = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'triggers') + const { can: canCreateTriggers } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'triggers' + ) if (isLoading) { return diff --git a/apps/studio/components/interfaces/Database/index.ts b/apps/studio/components/interfaces/Database/index.ts index 0667d17b0dc..0269df17345 100644 --- a/apps/studio/components/interfaces/Database/index.ts +++ b/apps/studio/components/interfaces/Database/index.ts @@ -1,13 +1,7 @@ -export { default as ColumnList } from './Tables/ColumnList' -export { default as TableList } from './Tables/TableList' - export { default as RolesList } from './Roles/RolesList' export { default as Extensions } from './Extensions/Extensions' -export { default as PublicationsList } from './Publications/PublicationsList' -export { default as PublicationsTables } from './Publications/PublicationsTables' - export { default as BackupsList } from './Backups/BackupsList' export { default as CreateFunction } from './Functions/CreateFunction' diff --git a/apps/studio/components/interfaces/Integrations/Webhooks/ListTab.tsx b/apps/studio/components/interfaces/Integrations/Webhooks/ListTab.tsx index 9212fe94801..2e87e67a209 100644 --- a/apps/studio/components/interfaces/Integrations/Webhooks/ListTab.tsx +++ b/apps/studio/components/interfaces/Integrations/Webhooks/ListTab.tsx @@ -1,31 +1,34 @@ +import { PostgresTrigger } from '@supabase/postgres-meta' import { PermissionAction } from '@supabase/shared-types/out/constants' import { useState } from 'react' import DeleteHookModal from 'components/interfaces/Database/Hooks/DeleteHookModal' import { EditHookPanel } from 'components/interfaces/Database/Hooks/EditHookPanel' -import HooksList from 'components/interfaces/Database/Hooks/HooksList/HooksList' +import { HooksList } from 'components/interfaces/Database/Hooks/HooksList/HooksList' import NoPermission from 'components/ui/NoPermission' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' export const WebhooksListTab = () => { const [selectedHook, setSelectedHook] = useState() const [showCreateHookForm, setShowCreateHookForm] = useState(false) const [showDeleteHookForm, setShowDeleteHookForm] = useState(false) - const canReadWebhooks = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'triggers') - const isPermissionsLoaded = usePermissionsLoaded() + const { can: canReadWebhooks, isSuccess: isPermissionsLoaded } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_READ, + 'triggers' + ) const createHook = () => { setSelectedHook(undefined) setShowCreateHookForm(true) } - const editHook = (hook: any) => { + const editHook = (hook: PostgresTrigger) => { setSelectedHook(hook) setShowCreateHookForm(true) } - const deleteHook = (hook: any) => { + const deleteHook = (hook: PostgresTrigger) => { setSelectedHook(hook) setShowDeleteHookForm(true) } diff --git a/apps/studio/components/interfaces/Realtime/Inspector/Header.tsx b/apps/studio/components/interfaces/Realtime/Inspector/Header.tsx index d1bdff3faf3..867438923c1 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/Header.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/Header.tsx @@ -1,9 +1,11 @@ +import { PermissionAction } from '@supabase/shared-types/out/constants' import { PlayCircle, StopCircle } from 'lucide-react' import { Dispatch, SetStateAction } from 'react' import { useParams } from 'common' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { ChooseChannelPopover } from './ChooseChannelPopover' import { RealtimeFilterPopover } from './RealtimeFilterPopover' @@ -20,6 +22,11 @@ export const Header = ({ config, onChangeConfig }: HeaderProps) => { const { ref } = useParams() const { data: org } = useSelectedOrganizationQuery() + const { can: canReadAPIKeys } = useAsyncCheckProjectPermissions( + PermissionAction.READ, + 'service_api_keys' + ) + return (
@@ -29,7 +36,7 @@ export const Header = ({ config, onChangeConfig }: HeaderProps) => { size="tiny" type={config.enabled ? 'warning' : 'primary'} className="rounded-l-none border-l-0" - disabled={config.channelName.length === 0} + disabled={!canReadAPIKeys || config.channelName.length === 0} icon={config.enabled ? : } onClick={() => { onChangeConfig({ ...config, enabled: !config.enabled }) @@ -47,8 +54,11 @@ export const Header = ({ config, onChangeConfig }: HeaderProps) => { tooltip={{ content: { side: 'bottom', - text: - config.channelName.length === 0 ? 'You need to join a channel first' : undefined, + text: !canReadAPIKeys + ? 'You need additional permissions to use the realtime inspector' + : config.channelName.length === 0 + ? 'You need to join a channel first' + : undefined, }, }} > diff --git a/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx b/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx index 95fd72a350a..8f5a24e2d41 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx @@ -1,3 +1,4 @@ +import { PermissionAction } from '@supabase/shared-types/out/constants' import { isEqual } from 'lodash' import { ExternalLink, Loader2, Megaphone } from 'lucide-react' import Link from 'next/link' @@ -6,10 +7,13 @@ import DataGrid, { Row } from 'react-data-grid' import { useParams } from 'common' import { DocsButton } from 'components/ui/DocsButton' +import NoPermission from 'components/ui/NoPermission' import ShimmerLine from 'components/ui/ShimmerLine' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { Button, IconBroadcast, IconDatabaseChanges, IconPresence, cn } from 'ui' +import { GenericSkeletonLoader } from 'ui-patterns' import MessageSelection from './MessageSelection' import type { LogData } from './Messages.types' import NoChannelEmptyState from './NoChannelEmptyState' @@ -30,9 +34,18 @@ const NoResultAlert = ({ }) => { const { ref } = useParams() + const { can: canReadAPIKeys, isLoading: isLoadingPermissions } = useAsyncCheckProjectPermissions( + PermissionAction.READ, + 'service_api_keys' + ) + return (
- {!hasChannelSet ? ( + {isLoadingPermissions ? ( + + ) : !canReadAPIKeys ? ( + + ) : !hasChannelSet ? ( ) : ( <> diff --git a/apps/studio/components/interfaces/Realtime/Inspector/index.tsx b/apps/studio/components/interfaces/Realtime/Inspector/index.tsx index f742ea955e3..28b616b7735 100644 --- a/apps/studio/components/interfaces/Realtime/Inspector/index.tsx +++ b/apps/studio/components/interfaces/Realtime/Inspector/index.tsx @@ -14,8 +14,8 @@ import { RealtimeConfig, useRealtimeMessages } from './useRealtimeMessages' export const RealtimeInspector = () => { const { ref } = useParams() const { data: org } = useSelectedOrganizationQuery() - const [sendMessageShown, setSendMessageShown] = useState(false) + const [sendMessageShown, setSendMessageShown] = useState(false) const [realtimeConfig, setRealtimeConfig] = useState({ enabled: false, projectRef: ref!, diff --git a/apps/studio/components/ui/SchemaSelector.tsx b/apps/studio/components/ui/SchemaSelector.tsx index d11e97581f0..72bd031de5b 100644 --- a/apps/studio/components/ui/SchemaSelector.tsx +++ b/apps/studio/components/ui/SchemaSelector.tsx @@ -3,7 +3,7 @@ import { Check, ChevronsUpDown, Plus } from 'lucide-react' import { useState } from 'react' import { useSchemasQuery } from 'data/database/schemas-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { AlertDescription_Shadcn_, @@ -50,7 +50,10 @@ const SchemaSelector = ({ portal = true, }: SchemaSelectorProps) => { const [open, setOpen] = useState(false) - const canCreateSchemas = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'schemas') + const { can: canCreateSchemas } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_WRITE, + 'schemas' + ) const { data: project } = useSelectedProjectQuery() const { diff --git a/apps/studio/data/database-triggers/database-triggers-query.ts b/apps/studio/data/database-triggers/database-triggers-query.ts index faa78e23fc2..5b80cc9fc3e 100644 --- a/apps/studio/data/database-triggers/database-triggers-query.ts +++ b/apps/studio/data/database-triggers/database-triggers-query.ts @@ -1,8 +1,8 @@ +import { DEFAULT_PLATFORM_APPLICATION_NAME } from '@supabase/pg-meta/src/constants' import { useQuery, UseQueryOptions } from '@tanstack/react-query' import { get, handleError } from 'data/fetchers' import type { ResponseError } from 'types' import { databaseTriggerKeys } from './keys' -import { DEFAULT_PLATFORM_APPLICATION_NAME } from '@supabase/pg-meta/src/constants' export type DatabaseTriggersVariables = { projectRef?: string diff --git a/apps/studio/pages/project/[ref]/branches/index.tsx b/apps/studio/pages/project/[ref]/branches/index.tsx index befbcd49271..006d7b5ff28 100644 --- a/apps/studio/pages/project/[ref]/branches/index.tsx +++ b/apps/studio/pages/project/[ref]/branches/index.tsx @@ -19,7 +19,7 @@ import { useBranchDeleteMutation } from 'data/branches/branch-delete-mutation' import { Branch, useBranchesQuery } from 'data/branches/branches-query' import { useGitHubConnectionsQuery } from 'data/integrations/github-connections-query' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useAppStateSnapshot } from 'state/app-state' @@ -42,7 +42,10 @@ const BranchesPage: NextPageWithLayout = () => { const projectRef = project !== undefined ? (isBranch ? project.parent_project_ref : ref) : undefined - const canReadBranches = useCheckPermissions(PermissionAction.READ, 'preview_branches') + const { can: canReadBranches, isSuccess: isPermissionsLoaded } = useAsyncCheckProjectPermissions( + PermissionAction.READ, + 'preview_branches' + ) const { data: connections, @@ -121,7 +124,7 @@ const BranchesPage: NextPageWithLayout = () => {
- {!canReadBranches ? ( + {isPermissionsLoaded && !canReadBranches ? ( ) : ( <> @@ -183,9 +186,13 @@ const BranchesPage: NextPageWithLayout = () => { BranchesPage.getLayout = (page) => { const BranchesPageWrapper = () => { const snap = useAppStateSnapshot() - const canCreateBranches = useCheckPermissions(PermissionAction.CREATE, 'preview_branches', { - resource: { is_default: false }, - }) + const { can: canCreateBranches } = useAsyncCheckProjectPermissions( + PermissionAction.CREATE, + 'preview_branches', + { + resource: { is_default: false }, + } + ) const primaryActions = ( { const projectRef = project !== undefined ? (isBranch ? project.parent_project_ref : ref) : undefined - const canReadBranches = useCheckPermissions(PermissionAction.READ, 'preview_branches') + const { can: canReadBranches, isSuccess: isPermissionsLoaded } = useAsyncCheckProjectPermissions( + PermissionAction.READ, + 'preview_branches' + ) const { data: connections, @@ -163,7 +166,7 @@ const MergeRequestsPage: NextPageWithLayout = () => {
- {!canReadBranches ? ( + {isPermissionsLoaded && !canReadBranches ? ( ) : ( <> diff --git a/apps/studio/pages/project/[ref]/database/backups/pitr.tsx b/apps/studio/pages/project/[ref]/database/backups/pitr.tsx index b66eb6904d1..ae534f92f13 100644 --- a/apps/studio/pages/project/[ref]/database/backups/pitr.tsx +++ b/apps/studio/pages/project/[ref]/database/backups/pitr.tsx @@ -14,7 +14,7 @@ import NoPermission from 'components/ui/NoPermission' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import UpgradeToPro from 'components/ui/UpgradeToPro' import { useBackupsQuery } from 'data/database/backups-query' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useIsOrioleDbInAws, useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { PROJECT_STATUS } from 'lib/constants' @@ -57,8 +57,8 @@ const PITR = () => { const isEnabled = backups?.pitr_enabled const isActiveHealthy = project?.status === PROJECT_STATUS.ACTIVE_HEALTHY - const isPermissionsLoaded = usePermissionsLoaded() - const canReadPhysicalBackups = useCheckPermissions(PermissionAction.READ, 'physical_backups') + const { can: canReadPhysicalBackups, isSuccess: isPermissionsLoaded } = + useAsyncCheckProjectPermissions(PermissionAction.READ, 'physical_backups') if (isPermissionsLoaded && !canReadPhysicalBackups) { return diff --git a/apps/studio/pages/project/[ref]/database/backups/restore-to-new-project.tsx b/apps/studio/pages/project/[ref]/database/backups/restore-to-new-project.tsx index 1e186f17cdd..31a58c8bccb 100644 --- a/apps/studio/pages/project/[ref]/database/backups/restore-to-new-project.tsx +++ b/apps/studio/pages/project/[ref]/database/backups/restore-to-new-project.tsx @@ -23,7 +23,7 @@ import UpgradeToPro from 'components/ui/UpgradeToPro' import { useDiskAttributesQuery } from 'data/config/disk-attributes-query' import { useCloneBackupsQuery } from 'data/projects/clone-query' import { useCloneStatusQuery } from 'data/projects/clone-status-query' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useIsAwsK8sCloudProvider, @@ -80,12 +80,11 @@ const RestoreToNewProject = () => { isError, } = useCloneBackupsQuery({ projectRef: project?.ref }, { enabled: !isFreePlan }) - const plan = organization?.plan?.id const isActiveHealthy = project?.status === PROJECT_STATUS.ACTIVE_HEALTHY - const isPermissionsLoaded = usePermissionsLoaded() - const canReadPhysicalBackups = useCheckPermissions(PermissionAction.READ, 'physical_backups') - const canTriggerPhysicalBackups = useCheckPermissions( + const { can: canReadPhysicalBackups, isSuccess: isPermissionsLoaded } = + useAsyncCheckProjectPermissions(PermissionAction.READ, 'physical_backups') + const { can: canTriggerPhysicalBackups } = useAsyncCheckProjectPermissions( PermissionAction.INFRA_EXECUTE, 'queue_job.restore.prepare' ) diff --git a/apps/studio/pages/project/[ref]/database/backups/scheduled.tsx b/apps/studio/pages/project/[ref]/database/backups/scheduled.tsx index e9f40c21891..52b0838add5 100644 --- a/apps/studio/pages/project/[ref]/database/backups/scheduled.tsx +++ b/apps/studio/pages/project/[ref]/database/backups/scheduled.tsx @@ -14,7 +14,7 @@ import InformationBox from 'components/ui/InformationBox' import NoPermission from 'components/ui/NoPermission' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' import { useBackupsQuery } from 'data/database/backups-query' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useIsOrioleDbInAws } from 'hooks/misc/useSelectedProject' import type { NextPageWithLayout } from 'types' import { Admonition } from 'ui-patterns' @@ -26,9 +26,9 @@ const DatabaseScheduledBackups: NextPageWithLayout = () => { const isOrioleDbInAws = useIsOrioleDbInAws() const isPitrEnabled = backups?.pitr_enabled - const isPermissionsLoaded = usePermissionsLoaded() - const canReadScheduledBackups = useCheckPermissions(PermissionAction.READ, 'back_ups') + const { can: canReadScheduledBackups, isSuccess: isPermissionsLoaded } = + useAsyncCheckProjectPermissions(PermissionAction.READ, 'back_ups') return ( diff --git a/apps/studio/pages/project/[ref]/database/extensions.tsx b/apps/studio/pages/project/[ref]/database/extensions.tsx index d1c7a3565f4..fd663c2a53f 100644 --- a/apps/studio/pages/project/[ref]/database/extensions.tsx +++ b/apps/studio/pages/project/[ref]/database/extensions.tsx @@ -6,15 +6,12 @@ import DefaultLayout from 'components/layouts/DefaultLayout' import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { FormHeader } from 'components/ui/Forms/FormHeader' import NoPermission from 'components/ui/NoPermission' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import type { NextPageWithLayout } from 'types' const DatabaseExtensions: NextPageWithLayout = () => { - const canReadExtensions = useCheckPermissions( - PermissionAction.TENANT_SQL_ADMIN_READ, - 'extensions' - ) - const isPermissionsLoaded = usePermissionsLoaded() + const { can: canReadExtensions, isSuccess: isPermissionsLoaded } = + useAsyncCheckProjectPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'extensions') if (isPermissionsLoaded && !canReadExtensions) { return diff --git a/apps/studio/pages/project/[ref]/database/functions.tsx b/apps/studio/pages/project/[ref]/database/functions.tsx index c4653c0b56b..fc74e83002a 100644 --- a/apps/studio/pages/project/[ref]/database/functions.tsx +++ b/apps/studio/pages/project/[ref]/database/functions.tsx @@ -11,7 +11,7 @@ import { EditorPanel } from 'components/ui/EditorPanel/EditorPanel' import { FormHeader } from 'components/ui/Forms/FormHeader' import NoPermission from 'components/ui/NoPermission' import { DatabaseFunction } from 'data/database-functions/database-functions-query' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import type { NextPageWithLayout } from 'types' const DatabaseFunctionsPage: NextPageWithLayout = () => { @@ -26,8 +26,10 @@ const DatabaseFunctionsPage: NextPageWithLayout = () => { DatabaseFunction | undefined >() - const canReadFunctions = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'functions') - const isPermissionsLoaded = usePermissionsLoaded() + const { can: canReadFunctions, isSuccess: isPermissionsLoaded } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_READ, + 'functions' + ) const createFunction = () => { if (isInlineEditorEnabled) { diff --git a/apps/studio/pages/project/[ref]/database/publications.tsx b/apps/studio/pages/project/[ref]/database/publications.tsx index 06b0c5bbffd..fb3d57b3060 100644 --- a/apps/studio/pages/project/[ref]/database/publications.tsx +++ b/apps/studio/pages/project/[ref]/database/publications.tsx @@ -1,14 +1,15 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' import { useState } from 'react' -import { PublicationsList, PublicationsTables } from 'components/interfaces/Database' +import { PublicationsList } from 'components/interfaces/Database/Publications/PublicationsList' +import { PublicationsTables } from 'components/interfaces/Database/Publications/PublicationsTables' import DatabaseLayout from 'components/layouts/DatabaseLayout/DatabaseLayout' import DefaultLayout from 'components/layouts/DefaultLayout' import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { FormHeader } from 'components/ui/Forms/FormHeader' import NoPermission from 'components/ui/NoPermission' import { useDatabasePublicationsQuery } from 'data/database-publications/database-publications-query' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import type { NextPageWithLayout } from 'types' @@ -25,11 +26,8 @@ const DatabasePublications: NextPageWithLayout = () => { }) const publications = data ?? [] - const canViewPublications = useCheckPermissions( - PermissionAction.TENANT_SQL_ADMIN_READ, - 'publications' - ) - const isPermissionsLoaded = usePermissionsLoaded() + const { can: canViewPublications, isSuccess: isPermissionsLoaded } = + useAsyncCheckProjectPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'publications') const [selectedPublicationId, setSelectedPublicationId] = useState() const selectedPublication = publications.find((pub) => pub.id === selectedPublicationId) diff --git a/apps/studio/pages/project/[ref]/database/tables/[id].tsx b/apps/studio/pages/project/[ref]/database/tables/[id].tsx index 3a0cf30b1c2..4aece9c79a7 100644 --- a/apps/studio/pages/project/[ref]/database/tables/[id].tsx +++ b/apps/studio/pages/project/[ref]/database/tables/[id].tsx @@ -1,7 +1,7 @@ import { ChevronRight } from 'lucide-react' import { useParams } from 'common' -import { ColumnList } from 'components/interfaces/Database' +import { ColumnList } from 'components/interfaces/Database/Tables/ColumnList' import { SidePanelEditor } from 'components/interfaces/TableGridEditor' import DeleteConfirmationDialogs from 'components/interfaces/TableGridEditor/DeleteConfirmationDialogs' import DatabaseLayout from 'components/layouts/DatabaseLayout/DatabaseLayout' diff --git a/apps/studio/pages/project/[ref]/database/tables/index.tsx b/apps/studio/pages/project/[ref]/database/tables/index.tsx index 1b7075d19dc..9cd2e2d261d 100644 --- a/apps/studio/pages/project/[ref]/database/tables/index.tsx +++ b/apps/studio/pages/project/[ref]/database/tables/index.tsx @@ -1,8 +1,8 @@ -import { useState } from 'react' import { PostgresTable } from '@supabase/postgres-meta' +import { useState } from 'react' import { useParams } from 'common' -import { TableList } from 'components/interfaces/Database' +import { TableList } from 'components/interfaces/Database/Tables/TableList' import { SidePanelEditor } from 'components/interfaces/TableGridEditor' import DeleteConfirmationDialogs from 'components/interfaces/TableGridEditor/DeleteConfirmationDialogs' import DatabaseLayout from 'components/layouts/DatabaseLayout/DatabaseLayout' diff --git a/apps/studio/pages/project/[ref]/database/triggers.tsx b/apps/studio/pages/project/[ref]/database/triggers.tsx index 587f409b39d..4f90286f184 100644 --- a/apps/studio/pages/project/[ref]/database/triggers.tsx +++ b/apps/studio/pages/project/[ref]/database/triggers.tsx @@ -13,7 +13,7 @@ import { ScaffoldContainer, ScaffoldSection } from 'components/layouts/Scaffold' import { EditorPanel } from 'components/ui/EditorPanel/EditorPanel' import { FormHeader } from 'components/ui/Forms/FormHeader' import NoPermission from 'components/ui/NoPermission' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import type { NextPageWithLayout } from 'types' const TriggersPage: NextPageWithLayout = () => { @@ -27,8 +27,10 @@ const TriggersPage: NextPageWithLayout = () => { const [editorPanelOpen, setEditorPanelOpen] = useState(false) const [selectedTriggerForEditor, setSelectedTriggerForEditor] = useState() - const canReadTriggers = useCheckPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'triggers') - const isPermissionsLoaded = usePermissionsLoaded() + const { can: canReadTriggers, isSuccess: isPermissionsLoaded } = useAsyncCheckProjectPermissions( + PermissionAction.TENANT_SQL_ADMIN_READ, + 'triggers' + ) const createTrigger = () => { if (isInlineEditorEnabled) { diff --git a/apps/studio/pages/project/[ref]/functions/[functionSlug]/code.tsx b/apps/studio/pages/project/[ref]/functions/[functionSlug]/code.tsx index b444c84d4a3..be79cc42624 100644 --- a/apps/studio/pages/project/[ref]/functions/[functionSlug]/code.tsx +++ b/apps/studio/pages/project/[ref]/functions/[functionSlug]/code.tsx @@ -14,8 +14,7 @@ import { useEdgeFunctionBodyQuery } from 'data/edge-functions/edge-function-body import { useEdgeFunctionQuery } from 'data/edge-functions/edge-function-query' import { useEdgeFunctionDeployMutation } from 'data/edge-functions/edge-functions-deploy-mutation' import { useSendEventMutation } from 'data/telemetry/send-event-mutation' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' -import { useOrgAiOptInLevel } from 'hooks/misc/useOrgOptedIntoAi' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { BASE_PATH } from 'lib/constants' @@ -29,7 +28,10 @@ const CodePage = () => { const { mutate: sendEvent } = useSendEventMutation() const [showDeployWarning, setShowDeployWarning] = useState(false) - const canDeployFunction = useCheckPermissions(PermissionAction.FUNCTIONS_WRITE, '*') + const { can: canDeployFunction } = useAsyncCheckProjectPermissions( + PermissionAction.FUNCTIONS_WRITE, + '*' + ) const { data: selectedFunction } = useEdgeFunctionQuery({ projectRef: ref, slug: functionSlug }) const { diff --git a/apps/studio/pages/project/[ref]/realtime/inspector.tsx b/apps/studio/pages/project/[ref]/realtime/inspector.tsx index 12c7968597f..5f8b7314cff 100644 --- a/apps/studio/pages/project/[ref]/realtime/inspector.tsx +++ b/apps/studio/pages/project/[ref]/realtime/inspector.tsx @@ -1,19 +1,10 @@ -import { PermissionAction } from '@supabase/shared-types/out/constants' import type { NextPageWithLayout } from 'types' import { RealtimeInspector } from 'components/interfaces/Realtime/Inspector' -import RealtimeLayout from 'components/layouts/RealtimeLayout/RealtimeLayout' import DefaultLayout from 'components/layouts/DefaultLayout' -import NoPermission from 'components/ui/NoPermission' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import RealtimeLayout from 'components/layouts/RealtimeLayout/RealtimeLayout' export const InspectorPage: NextPageWithLayout = () => { - const canReadAPIKeys = useCheckPermissions(PermissionAction.READ, 'service_api_keys') - - if (!canReadAPIKeys) { - return - } - return } diff --git a/apps/studio/pages/project/[ref]/reports/database.tsx b/apps/studio/pages/project/[ref]/reports/database.tsx index a598bb3712b..dab6b263b61 100644 --- a/apps/studio/pages/project/[ref]/reports/database.tsx +++ b/apps/studio/pages/project/[ref]/reports/database.tsx @@ -1,16 +1,16 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' import { useQueryClient } from '@tanstack/react-query' -import { useParams } from 'common' import dayjs from 'dayjs' import { ArrowRight, ExternalLink, RefreshCw } from 'lucide-react' import Link from 'next/link' import { useEffect, useState } from 'react' import { toast } from 'sonner' -import { AlertDescription_Shadcn_, Alert_Shadcn_, Button } from 'ui' +import { useParams } from 'common' import ReportChart from 'components/interfaces/Reports/ReportChart' import ReportHeader from 'components/interfaces/Reports/ReportHeader' import ReportPadding from 'components/interfaces/Reports/ReportPadding' +import { REPORT_DATERANGE_HELPER_LABELS } from 'components/interfaces/Reports/Reports.constants' import ReportStickyNav from 'components/interfaces/Reports/ReportStickyNav' import ReportWidget from 'components/interfaces/Reports/ReportWidget' import DiskSizeConfigurationModal from 'components/interfaces/Settings/Database/DiskSizeConfigurationModal' @@ -21,26 +21,24 @@ import ReportsLayout from 'components/layouts/ReportsLayout/ReportsLayout' import Table from 'components/to-be-cleaned/Table' import { ButtonTooltip } from 'components/ui/ButtonTooltip' import ChartHandler from 'components/ui/Charts/ChartHandler' +import type { MultiAttribute } from 'components/ui/Charts/ComposedChart.utils' import ComposedChartHandler from 'components/ui/Charts/ComposedChartHandler' import GrafanaPromoBanner from 'components/ui/GrafanaPromoBanner' import Panel from 'components/ui/Panel' -import { useDatabaseSelectorStateSnapshot } from 'state/database-selector' - -import { REPORT_DATERANGE_HELPER_LABELS } from 'components/interfaces/Reports/Reports.constants' import { analyticsKeys } from 'data/analytics/keys' import { useProjectDiskResizeMutation } from 'data/config/project-disk-resize-mutation' import { useDatabaseSizeQuery } from 'data/database/database-size-query' import { getReportAttributes, getReportAttributesV2 } from 'data/reports/database-charts' import { useDatabaseReport } from 'data/reports/database-report-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useReportDateRange } from 'hooks/misc/useReportDateRange' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' +import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { useFlag } from 'hooks/ui/useFlag' import { formatBytes } from 'lib/helpers' - -import type { MultiAttribute } from 'components/ui/Charts/ComposedChart.utils' -import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' +import { useDatabaseSelectorStateSnapshot } from 'state/database-selector' import type { NextPageWithLayout } from 'types' +import { AlertDescription_Shadcn_, Alert_Shadcn_, Button } from 'ui' const DatabaseReport: NextPageWithLayout = () => { return ( @@ -99,11 +97,15 @@ const DatabaseUsage = () => { const databaseSizeBytes = databaseSizeData ?? 0 const currentDiskSize = project?.volumeSizeGb ?? 0 - const canUpdateDiskSizeConfig = useCheckPermissions(PermissionAction.UPDATE, 'projects', { - resource: { - project_id: project?.id, - }, - }) + const { can: canUpdateDiskSizeConfig } = useAsyncCheckProjectPermissions( + PermissionAction.UPDATE, + 'projects', + { + resource: { + project_id: project?.id, + }, + } + ) const REPORT_ATTRIBUTES = getReportAttributes(org!, project!) const REPORT_ATTRIBUTES_V2 = getReportAttributesV2(org!, project!) diff --git a/apps/studio/pages/project/[ref]/reports/index.tsx b/apps/studio/pages/project/[ref]/reports/index.tsx index c063658e31f..ff2cc6e12e6 100644 --- a/apps/studio/pages/project/[ref]/reports/index.tsx +++ b/apps/studio/pages/project/[ref]/reports/index.tsx @@ -4,14 +4,14 @@ import { useState } from 'react' import { useParams } from 'common' import { CreateReportModal } from 'components/interfaces/Reports/CreateReportModal' +import DefaultLayout from 'components/layouts/DefaultLayout' import ReportsLayout from 'components/layouts/ReportsLayout/ReportsLayout' import ProductEmptyState from 'components/to-be-cleaned/ProductEmptyState' import { Loading } from 'components/ui/Loading' import { useContentQuery } from 'data/content/content-query' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useProfile } from 'lib/profile' import type { NextPageWithLayout } from 'types' -import DefaultLayout from 'components/layouts/DefaultLayout' export const UserReportPage: NextPageWithLayout = () => { const router = useRouter() @@ -36,10 +36,14 @@ export const UserReportPage: NextPageWithLayout = () => { } ) - const canCreateReport = useCheckPermissions(PermissionAction.CREATE, 'user_content', { - resource: { type: 'report', owner_id: profile?.id }, - subject: { id: profile?.id }, - }) + const { can: canCreateReport } = useAsyncCheckProjectPermissions( + PermissionAction.CREATE, + 'user_content', + { + resource: { type: 'report', owner_id: profile?.id }, + subject: { id: profile?.id }, + } + ) return (
diff --git a/apps/studio/pages/project/[ref]/settings/jwt/signing-keys.tsx b/apps/studio/pages/project/[ref]/settings/jwt/signing-keys.tsx index 406f8d9ae01..72f40dd8e68 100644 --- a/apps/studio/pages/project/[ref]/settings/jwt/signing-keys.tsx +++ b/apps/studio/pages/project/[ref]/settings/jwt/signing-keys.tsx @@ -1,16 +1,19 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' + import JWTSecretKeysTable from 'components/interfaces/JwtSecrets/jwt-secret-keys-table' import DefaultLayout from 'components/layouts/DefaultLayout' import JWTKeysLayout from 'components/layouts/JWTKeys/JWTKeysLayout' import SettingsLayout from 'components/layouts/ProjectSettingsLayout/SettingsLayout' import NoPermission from 'components/ui/NoPermission' import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader' -import { useCheckPermissions, usePermissionsLoaded } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import type { NextPageWithLayout } from 'types' const JWTSigningKeysPage: NextPageWithLayout = () => { - const isPermissionsLoaded = usePermissionsLoaded() - const canReadAPIKeys = useCheckPermissions(PermissionAction.READ, 'auth_signing_keys') + const { can: canReadAPIKeys, isSuccess: isPermissionsLoaded } = useAsyncCheckProjectPermissions( + PermissionAction.READ, + 'auth_signing_keys' + ) return ( <> diff --git a/apps/studio/pages/project/[ref]/settings/log-drains.tsx b/apps/studio/pages/project/[ref]/settings/log-drains.tsx index e84dcaea91f..cdd982e072b 100644 --- a/apps/studio/pages/project/[ref]/settings/log-drains.tsx +++ b/apps/studio/pages/project/[ref]/settings/log-drains.tsx @@ -6,6 +6,7 @@ import { useParams } from 'common' import { LogDrainDestinationSheetForm } from 'components/interfaces/LogDrains/LogDrainDestinationSheetForm' import { LogDrains } from 'components/interfaces/LogDrains/LogDrains' import { LogDrainType } from 'components/interfaces/LogDrains/LogDrains.constants' +import DefaultLayout from 'components/layouts/DefaultLayout' import SettingsLayout from 'components/layouts/ProjectSettingsLayout/SettingsLayout' import { ScaffoldContainer, @@ -17,14 +18,15 @@ import { DocsButton } from 'components/ui/DocsButton' import { useCreateLogDrainMutation } from 'data/log-drains/create-log-drain-mutation' import { LogDrainData, useLogDrainsQuery } from 'data/log-drains/log-drains-query' import { useUpdateLogDrainMutation } from 'data/log-drains/update-log-drain-mutation' -import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' +import { useAsyncCheckProjectPermissions } from 'hooks/misc/useCheckPermissions' import { useCurrentOrgPlan } from 'hooks/misc/useCurrentOrgPlan' import type { NextPageWithLayout } from 'types' import { Alert_Shadcn_, Button } from 'ui' -import DefaultLayout from 'components/layouts/DefaultLayout' +import { GenericSkeletonLoader } from 'ui-patterns' const LogDrainsSettings: NextPageWithLayout = () => { - const canManageLogDrains = useCheckPermissions(PermissionAction.ANALYTICS_ADMIN_WRITE, 'logflare') + const { can: canManageLogDrains, isLoading: isLoadingPermissions } = + useAsyncCheckProjectPermissions(PermissionAction.ANALYTICS_ADMIN_WRITE, 'logflare') const [open, setOpen] = useState(false) const { ref } = useParams() as { ref: string } @@ -35,12 +37,7 @@ const LogDrainsSettings: NextPageWithLayout = () => { const logDrainsEnabled = !planLoading && (plan?.id === 'team' || plan?.id === 'enterprise') - const { data: logDrains } = useLogDrainsQuery( - { ref }, - { - enabled: logDrainsEnabled, - } - ) + const { data: logDrains } = useLogDrainsQuery({ ref }, { enabled: logDrainsEnabled }) const { mutate: createLogDrain, isLoading: createLoading } = useCreateLogDrainMutation({ onSuccess: () => { @@ -144,12 +141,15 @@ const LogDrainsSettings: NextPageWithLayout = () => { } }} /> - {canManageLogDrains ? ( - - ) : ( + + {isLoadingPermissions ? ( + + ) : !canManageLogDrains ? ( You do not have permission to manage log drains + ) : ( + )} From c32c74e34c825e30ae3f32b3043416bdd4731219 Mon Sep 17 00:00:00 2001 From: Han Qiao Date: Tue, 12 Aug 2025 21:18:24 +0800 Subject: [PATCH 17/62] fix: diff all schemas on branch merge (#37754) * fix: diff all schemas on branch merge * chore: remove branching limitation on schema and extensions * chore: remove limitation from blog post * chore: remove limitation from docs --- apps/docs/content/guides/deployment/branching/dashboard.mdx | 2 -- .../interfaces/App/FeaturePreview/Branching2Preview.tsx | 4 ---- apps/studio/data/branches/branch-merge-mutation.ts | 2 +- apps/www/_blog/2025-07-16-branching-2-0.mdx | 2 -- 4 files changed, 1 insertion(+), 9 deletions(-) diff --git a/apps/docs/content/guides/deployment/branching/dashboard.mdx b/apps/docs/content/guides/deployment/branching/dashboard.mdx index 2d938165736..a7577014d5a 100644 --- a/apps/docs/content/guides/deployment/branching/dashboard.mdx +++ b/apps/docs/content/guides/deployment/branching/dashboard.mdx @@ -58,8 +58,6 @@ When reviewing a merge request you may see a notice at the top of the page askin There are a few limitations you should be aware of before deciding to use branching without git. - Custom roles created through the dashboard are not captured on branch creation -- Only public schema changes are supported right now -- Extensions are not included in the diff process - Branches can only be merged to main; merging between preview branches is not supported - If your branch is out of date, you can pull in latest changes from main, but keep in mind that all functions will be overwritten - Deleting functions must be done manually on main branch diff --git a/apps/studio/components/interfaces/App/FeaturePreview/Branching2Preview.tsx b/apps/studio/components/interfaces/App/FeaturePreview/Branching2Preview.tsx index 6aba6698b34..9bf5f6d30c1 100644 --- a/apps/studio/components/interfaces/App/FeaturePreview/Branching2Preview.tsx +++ b/apps/studio/components/interfaces/App/FeaturePreview/Branching2Preview.tsx @@ -25,10 +25,6 @@ export const Branching2Preview = () => {

Limitations:

  • Custom roles created through the dashboard are not captured on branch creation.
  • -
  • - Only public schema changes are supported right now. -
  • -
  • Extensions are not included in the diff process
  • Branches can only be merged to main; merging between preview branches is not supported. diff --git a/apps/studio/data/branches/branch-merge-mutation.ts b/apps/studio/data/branches/branch-merge-mutation.ts index bceacc38223..4d2fe1effc1 100644 --- a/apps/studio/data/branches/branch-merge-mutation.ts +++ b/apps/studio/data/branches/branch-merge-mutation.ts @@ -21,7 +21,7 @@ export async function mergeBranch({ migration_version, }: BranchMergeVariables) { // Step 1: Get the diff output from the branch - const diffContent = await getBranchDiff({ branchId: id, includedSchemas: 'public' }) + const diffContent = await getBranchDiff({ branchId: id }) let migrationCreated = false diff --git a/apps/www/_blog/2025-07-16-branching-2-0.mdx b/apps/www/_blog/2025-07-16-branching-2-0.mdx index 3d1342e0d0d..a8e88087eb6 100644 --- a/apps/www/_blog/2025-07-16-branching-2-0.mdx +++ b/apps/www/_blog/2025-07-16-branching-2-0.mdx @@ -108,8 +108,6 @@ When ready, click the merge button and watch your changes be deployed to product There are a few limitations you should be aware of before deciding to use branching without git. - Custom roles created through the dashboard are not captured on branch creation. -- Only public schema changes are supported right now. -- Extensions are not included in the diff process - Branches can only be merged to main; merging between preview branches is not supported. - If your branch is out of date, you can pull in latest changes from main, but keep in mind that all functions will be overwritten. - Deleting functions must be done manually on main branch. From 4b2705f0ba7c23a1acd08079508db60e09f77a42 Mon Sep 17 00:00:00 2001 From: Oleg Polin <140200108+olegpolin@users.noreply.github.com> Date: Tue, 12 Aug 2025 10:38:06 -0400 Subject: [PATCH 18/62] fix(docs): update SvelteKit tutorial to use Svelte 5 syntax (#31229) * docs: Update SvelteKit auth tutorial project creation syntax (#31114) * docs: Update link to SvelteKit docs (#31114) * Update +layout.svelte to Svelte 5 syntax (#31114) * Update +page.svelte to use Svelte 5 syntax (#31114) * Update account +page.svelte to use Svelte 5 syntax (#31114) * Update account Avatar.svelte to use Svelte 5 syntax (#31114) * Update SvelteKit example to Svelte 5 syntax (#31114) * docs: Update npm dependencies (#31114) * Start review * Finish review * Update code for SvelteKit 5 * Convert to codesamples --------- Co-authored-by: Chris Chinchilla Co-authored-by: Chris Chinchilla --- .../tutorials/with-sveltekit.mdx | 703 +------ .../package-lock.json | 1714 ++++++++--------- .../sveltekit-user-management/package.json | 14 +- .../src/routes/+layout.svelte | 8 +- .../src/routes/+page.svelte | 9 +- .../src/routes/account/+page.svelte | 15 +- .../src/routes/account/Avatar.svelte | 29 +- .../src/routes/auth/error/+page.svelte | 1 + package.json | 17 +- 9 files changed, 917 insertions(+), 1593 deletions(-) create mode 100644 examples/user-management/sveltekit-user-management/src/routes/auth/error/+page.svelte diff --git a/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx b/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx index 1b114f50a60..43def489bf8 100644 --- a/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx +++ b/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx @@ -17,14 +17,14 @@ If you get stuck while working through this guide, refer to the [full example on ## Building the app -Let's start building the Svelte app from scratch. +Start building the Svelte app from scratch. ### Initialize a Svelte app -We can use the [SvelteKit Skeleton Project](https://kit.svelte.dev/docs) to initialize an app called `supabase-sveltekit` (for this tutorial we will be using TypeScript): +Use the [SvelteKit Skeleton Project](https://svelte.dev/docs/kit) to initialize an app called `supabase-sveltekit` (for this tutorial, select "SvelteKit minimal" and use TypeScript): ```bash -npm create svelte@latest supabase-sveltekit +npx sv create supabase-sveltekit cd supabase-sveltekit npm install ``` @@ -35,8 +35,8 @@ Then install the Supabase client library: [supabase-js](https://github.com/supab npm install @supabase/supabase-js ``` -And finally we want to save the environment variables in a `.env`. -All we need are the `SUPABASE_URL` and the `SUPABASE_KEY` key that you copied [earlier](#get-the-api-keys). +And finally, save the environment variables in a `.env` file. +All you need are the `PUBLIC_SUPABASE_URL` and the `PUBLIC_SUPABASE_ANON_KEY` key that you copied [earlier](#get-the-api-keys). <$CodeTabs> @@ -47,108 +47,46 @@ PUBLIC_SUPABASE_ANON_KEY="YOUR_SUPABASE_KEY" -Optionally, add `src/styles.css` with the [CSS from the example](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/sveltekit-user-management/src/styles.css). +### App styling (optional) + +An optional step is to update the CSS file `src/styles.css` to make the app look nice. +You can find the full contents of this file [in the example repository](https://raw.githubusercontent.com/supabase/supabase/master/examples/user-management/sveltekit-user-management/src/styles.css). ### Creating a Supabase client for SSR -The `ssr` package configures Supabase to use Cookies, which is required for server-side languages and frameworks. +The `ssr` package configures Supabase to use Cookies, which are required for server-side languages and frameworks. -Install the Supabase packages: +Install the SSR package: ```bash -npm install @supabase/ssr @supabase/supabase-js +npm install @supabase/ssr ``` -Creating a Supabase client with the `ssr` package automatically configures it to use Cookies. This means your user's session is available throughout the entire SvelteKit stack - page, layout, server, hooks. +Creating a Supabase client with the `ssr` package automatically configures it to use Cookies. This means the user's session is available throughout the entire SvelteKit stack - page, layout, server, and hooks. -Add the code below to your `src/hooks.server.ts` to initialize the client on the server: +Add the code below to a `src/hooks.server.ts` file to initialize the client on the server: <$CodeTabs> -```ts name=src/hooks.server.ts -// src/hooks.server.ts -import { PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY } from '$env/static/public' -import { createServerClient } from '@supabase/ssr' -import type { Handle } from '@sveltejs/kit' - -export const handle: Handle = async ({ event, resolve }) => { - event.locals.supabase = createServerClient(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY, { - cookies: { - getAll: () => event.cookies.getAll(), - /** - * SvelteKit's cookies API requires `path` to be explicitly set in - * the cookie options. Setting `path` to `/` replicates previous/ - * standard behavior. - */ - setAll: (cookiesToSet) => { - cookiesToSet.forEach(({ name, value, options }) => { - event.cookies.set(name, value, { ...options, path: '/' }) - }) - }, - }, - }) - - /** - * Unlike `supabase.auth.getSession()`, which returns the session _without_ - * validating the JWT, this function also calls `getUser()` to validate the - * JWT before returning the session. - */ - event.locals.safeGetSession = async () => { - const { - data: { session }, - } = await event.locals.supabase.auth.getSession() - if (!session) { - return { session: null, user: null } - } - - const { - data: { user }, - error, - } = await event.locals.supabase.auth.getUser() - if (error) { - // JWT validation has failed - return { session: null, user: null } - } - - return { session, user } - } - - return resolve(event, { - filterSerializedResponseHeaders(name) { - return name === 'content-range' || name === 'x-supabase-api-version' - }, - }) -} -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/hooks.server.ts" +lines={[[1, -1]]} +meta="name=src/hooks.server.ts" +/> <$Partial path="get_session_warning.mdx" /> - -If you are using TypeScript the compiler might complain about `event.locals.supabase` and `event.locals.safeGetSession`, this can be fixed by updating your `src/app.d.ts` with the content below: +{/* TODO: Change when adding JS autoconversion */} +As this tutorial uses TypeScript the compiler complains about `event.locals.supabase` and `event.locals.safeGetSession`, you can fix this by updating the `src/app.d.ts` with the content below: <$CodeTabs> -```ts name=src/app.d.ts -// src/app.d.ts - -import { SupabaseClient, Session } from '@supabase/supabase-js' - -declare global { - namespace App { - interface Locals { - supabase: SupabaseClient - safeGetSession(): Promise<{ session: Session | null; user: User | null }> - } - interface PageData { - session: Session | null - user: User | null - } - // interface Error {} - // interface Platform {} - } -} -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/app.d.ts" +lines={[[1, -1]]} +meta="name=src/app.d.ts" +/> @@ -156,26 +94,17 @@ Create a new `src/routes/+layout.server.ts` file to handle the session on the se <$CodeTabs> -```ts name=src/routes/+layout.server.ts -// src/routes/+layout.server.ts -import type { LayoutServerLoad } from './$types' - -export const load: LayoutServerLoad = async ({ locals: { safeGetSession }, cookies }) => { - const { session, user } = await safeGetSession() - - return { - session, - user, - cookies: cookies.getAll(), - } -} -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/+layout.server.ts" +lines={[[1, -1]]} +meta="name=src/routes/+layout.server.ts" +/> -Start your dev server (`npm run dev`) in order to generate the `./$types` files we are referencing in our project. +Start the dev server (`npm run dev`) to generate the `./$types` files we are referencing in our project. @@ -183,202 +112,49 @@ Create a new `src/routes/+layout.ts` file to handle the session and the `supabas <$CodeTabs> -```ts name=src/routes/+layout.ts -// src/routes/+layout.ts -import { createBrowserClient, createServerClient, isBrowser } from '@supabase/ssr' -import { PUBLIC_SUPABASE_ANON_KEY, PUBLIC_SUPABASE_URL } from '$env/static/public' -import type { LayoutLoad } from './$types' - -export const load: LayoutLoad = async ({ fetch, data, depends }) => { - depends('supabase:auth') - - const supabase = isBrowser() - ? createBrowserClient(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY, { - global: { - fetch, - }, - }) - : createServerClient(PUBLIC_SUPABASE_URL, PUBLIC_SUPABASE_ANON_KEY, { - global: { - fetch, - }, - cookies: { - getAll() { - return data.cookies - }, - }, - }) - - /** - * It's fine to use `getSession` here, because on the client, `getSession` is - * safe, and on the server, it reads `session` from the `LayoutData`, which - * safely checked the session using `safeGetSession`. - */ - const { - data: { session }, - } = await supabase.auth.getSession() - - return { supabase, session } -} -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/+layout.ts" +lines={[[1, -1]]} +meta="name=src/routes/+layout.ts" +/> -Update your `src/routes/+layout.svelte`: +Create `src/routes/+layout.svelte`: <$CodeTabs> -```svelte name=src/routes/+layout.svelte - - - - - User Management - - -
    - -
    -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/+layout.svelte" +lines={[[1, -1]]} +meta="name=src/routes/+layout.svelte" +/> ## Set up a login page -Create a magic link login/signup page for your application: +Create a magic link login/signup page for your application by updating the `routes/+page.svelte` file: <$CodeTabs> -```svelte name=src/routes/+page.svelte - - - - - User Management - - -
    -
    -

    Supabase + SvelteKit

    -

    Sign in via magic link with your email below

    - {#if form?.message !== undefined} -
    - {form?.message} -
    - {/if} -
    - - -
    - {#if form?.errors?.email} - - {form?.errors?.email} - - {/if} -
    - -
    -
    - -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/+page.svelte" +lines={[[1, -1]]} +meta="name=src/routes/+page.svelte" +/> -Create a `src/routes/+page.server.ts` file that will handle our magic link form when submitted. +Create a `src/routes/+page.server.ts` file that handles the magic link form when submitted. <$CodeTabs> -```ts name=src/routes/+page.server.ts -// src/routes/+page.server.ts -import { fail, redirect } from '@sveltejs/kit' -import type { Actions, PageServerLoad } from './$types' - -export const load: PageServerLoad = async ({ url, locals: { safeGetSession } }) => { - const { session } = await safeGetSession() - - // if the user is already logged in return them to the account page - if (session) { - redirect(303, '/account') - } - - return { url: url.origin } -} - -export const actions: Actions = { - default: async (event) => { - const { - url, - request, - locals: { supabase }, - } = event - const formData = await request.formData() - const email = formData.get('email') as string - const validEmail = /^[\w-\.+]+@([\w-]+\.)+[\w-]{2,8}$/.test(email) - - if (!validEmail) { - return fail(400, { errors: { email: 'Please enter a valid email address' }, email }) - } - - const { error } = await supabase.auth.signInWithOtp({ email }) - - if (error) { - return fail(400, { - success: false, - email, - message: `There was an issue, Please contact support.`, - }) - } - - return { - success: true, - message: 'Please check your email for a magic link to log into the website.', - } - }, -} -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/+page.server.ts" +lines={[[1, -1]]} +meta="name=src/routes/+page.server.ts" +/> @@ -388,239 +164,77 @@ Change the email template to support a server-side authentication flow. Before we proceed, let's change the email template to support sending a token hash: -- Go to the [Auth templates](/dashboard/project/_/auth/templates) page in your dashboard. -- Select `Confirm signup` template. +- Go to the [**Auth** > **Emails**](/dashboard/project/_/auth/templates) page in the project dashboard. +- Select the **Confirm signup** template. - Change `{{ .ConfirmationURL }}` to `{{ .SiteURL }}/auth/confirm?token_hash={{ .TokenHash }}&type=email`. -- Repeat the previous step for `Magic link` template. +- Repeat the previous step for **Magic link** template. -Did you know? You could also customize emails sent out to new users, including the email's looks, content, and query parameters. Check out the [settings of your project](/dashboard/project/_/auth/templates). +**Did you know?** You can also customize emails sent out to new users, including the email's looks, content, and query parameters. Check out the [settings of your project](/dashboard/project/_/auth/templates). ### Confirmation endpoint -As we are working in a server-side rendering (SSR) environment, it is necessary to create a server endpoint responsible for exchanging the `token_hash` for a session. +As this is a server-side rendering (SSR) environment, you need to create a server endpoint responsible for exchanging the `token_hash` for a session. -In the following code snippet, we perform the following steps: +The following code snippet performs the following steps: -- Retrieve the `token_hash` sent back from the Supabase Auth server using the `token_hash` query parameter. -- Exchange this `token_hash` for a session, which we store in storage (in this case, cookies). -- Finally, the user is redirected to the `account` page or the `error` page. +- Retrieves the `token_hash` sent back from the Supabase Auth server using the `token_hash` query parameter. +- Exchanges this `token_hash` for a session, which you store in storage (in this case, cookies). +- Finally, redirect the user to the `account` page or the `error` page. <$CodeTabs> -```ts name=src/routes/auth/confirm/+server.ts -// src/routes/auth/confirm/+server.ts -import type { EmailOtpType } from '@supabase/supabase-js' -import { redirect } from '@sveltejs/kit' - -import type { RequestHandler } from './$types' - -export const GET: RequestHandler = async ({ url, locals: { supabase } }) => { - const token_hash = url.searchParams.get('token_hash') - const type = url.searchParams.get('type') as EmailOtpType | null - const next = url.searchParams.get('next') ?? '/account' - - /** - * Clean up the redirect URL by deleting the Auth flow parameters. - * - * `next` is preserved for now, because it's needed in the error case. - */ - const redirectTo = new URL(url) - redirectTo.pathname = next - redirectTo.searchParams.delete('token_hash') - redirectTo.searchParams.delete('type') - - if (token_hash && type) { - const { error } = await supabase.auth.verifyOtp({ type, token_hash }) - if (!error) { - redirectTo.searchParams.delete('next') - redirect(303, redirectTo) - } - } - - redirectTo.pathname = '/auth/error' - redirect(303, redirectTo) -} -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/auth/confirm/+server.ts" +lines={[[1, -1]]} +meta="name=src/routes/auth/confirm/+server.ts" +/> ### Authentication error page -If there is an error with confirming the token you will be redirect to this error page. +If there is an error with confirming the token, redirect the user to an error page. <$CodeTabs> - -```svelte name=src/routes/auth/error/+page.svelte -

    Login error

    -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/auth/error/+page.svelte" +lines={[[1, -1]]} +meta="name=src/routes/auth/error/+page.svelte" +/> ### Account page -After a user is signed in, they need to be able to edit their profile details and manage their account. +After a user signs in, they need to be able to edit their profile details page. Create a new `src/routes/account/+page.svelte` file with the content below. <$CodeTabs> -```svelte name=src/routes/account/+page.svelte - - - -
    -
    -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - - -
    - -
    - -
    - - -
    -
    - -
    - -
    -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/account/+page.svelte" +lines={[[1, 3],[6,12],[15,38],[47,-1]]} +meta="name=src/routes/account/+page.svelte" +/> -Now create the associated `src/routes/account/+page.server.ts` file that will handle loading our data from the server through the `load` function -and handle all our form actions through the `actions` object. +Now, create the associated `src/routes/account/+page.server.ts` file that handles loading data from the server through the `load` function +and handle all form actions through the `actions` object. -```ts name=src/routes/account/+page.server.ts -import { fail, redirect } from '@sveltejs/kit' -import type { Actions, PageServerLoad } from './$types' - -export const load: PageServerLoad = async ({ locals: { supabase, safeGetSession } }) => { - const { session } = await safeGetSession() - - if (!session) { - redirect(303, '/') - } - - const { data: profile } = await supabase - .from('profiles') - .select(`username, full_name, website, avatar_url`) - .eq('id', session.user.id) - .single() - - return { session, profile } -} - -export const actions: Actions = { - update: async ({ request, locals: { supabase, safeGetSession } }) => { - const formData = await request.formData() - const fullName = formData.get('fullName') as string - const username = formData.get('username') as string - const website = formData.get('website') as string - const avatarUrl = formData.get('avatarUrl') as string - - const { session } = await safeGetSession() - - const { error } = await supabase.from('profiles').upsert({ - id: session?.user.id, - full_name: fullName, - username, - website, - avatar_url: avatarUrl, - updated_at: new Date(), - }) - - if (error) { - return fail(500, { - fullName, - username, - website, - avatarUrl, - }) - } - - return { - fullName, - username, - website, - avatarUrl, - } - }, - signout: async ({ locals: { supabase, safeGetSession } }) => { - const { session } = await safeGetSession() - if (session) { - await supabase.auth.signOut() - redirect(303, '/') - } - }, -} -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/+page.server.ts" +lines={[[1, -1]]} +meta="name=src/routes/+page.server.ts" +/> ### Launch! -Now that we have all the pages in place, run this in a terminal window: +With all the pages in place, run this command in a terminal: ```bash npm run dev @@ -636,144 +250,29 @@ Every Supabase project is configured with [Storage](/docs/guides/storage) for ma ### Create an upload widget -Let's create an avatar for the user so that they can upload a profile photo. We can start by creating a new component called `Avatar.svelte` in the `src/routes/account` directory: +Create an avatar for the user so that they can upload a profile photo. Start by creating a new component called `Avatar.svelte` in the `src/routes/account` directory: <$CodeTabs> -```svelte name=src/routes/account/Avatar.svelte - - - -
    - {#if avatarUrl} - {avatarUrl - {:else} -
    - {/if} - - -
    - - -
    -
    -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/account/Avatar.svelte" +lines={[[1, -1]]} +meta="name=src/routes/account/Avatar.svelte" +/> ### Add the new widget -And then we can add the widget to the Account page: +Add the widget to the Account page: <$CodeTabs> -```svelte name=src/routes/account/+page.svelte - - - -
    -
    - - { - profileForm.requestSubmit(); - }} - /> - - - -
    -``` +<$CodeSample +path="/user-management/sveltekit-user-management/src/routes/account/+page.svelte" +lines={[[1, 1], [4,4], [31,31],[39,46],[82,82]]} +meta="name=src/routes/account/+page.svelte" +/> diff --git a/examples/user-management/sveltekit-user-management/package-lock.json b/examples/user-management/sveltekit-user-management/package-lock.json index 344b536aacd..62cbfc51c76 100644 --- a/examples/user-management/sveltekit-user-management/package-lock.json +++ b/examples/user-management/sveltekit-user-management/package-lock.json @@ -10,18 +10,18 @@ "dependencies": { "@supabase/auth-ui-shared": "^0.1.8", "@supabase/auth-ui-svelte": "^0.2.9", - "@supabase/ssr": "^0.4.0", + "@supabase/ssr": "^0.6.1", "@supabase/supabase-js": "^2.44.2" }, "devDependencies": { - "@sveltejs/adapter-auto": "^3.2.2", - "@sveltejs/kit": "^2.5.18", - "@sveltejs/vite-plugin-svelte": "^3.1.1", - "svelte": "^4.2.18", - "svelte-check": "^3.8.4", + "@sveltejs/adapter-auto": "^6.0.1", + "@sveltejs/kit": "^2.5.27", + "@sveltejs/vite-plugin-svelte": "^6.1.0", + "svelte": "^5.14.4", + "svelte-check": "^4.1.1", "tslib": "^2.6.3", "typescript": "^5.5.3", - "vite": "^5.3.3" + "vite": "^7.0.5" } }, "node_modules/@ampproject/remapping": { @@ -29,6 +29,7 @@ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -38,385 +39,456 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz", + "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz", + "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz", + "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz", + "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz", + "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz", + "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz", + "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz", + "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz", + "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz", + "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz", + "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz", + "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz", + "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz", + "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz", + "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz", + "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz", + "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz", + "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", "cpu": [ - "x64" + "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz", + "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz", + "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz", + "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz", + "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz", + "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz", + "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz", + "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz", + "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", + "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { @@ -424,230 +496,311 @@ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "dev": true, + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "version": "0.3.29", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", + "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", "dev": true, + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@polka/url": { - "version": "1.0.0-next.25", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", - "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", - "dev": true + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.2.tgz", - "integrity": "sha512-ahxSgCkAEk+P/AVO0vYr7DxOD3CwAQrT0Go9BJyGQ9Ef0QxVOfjDZMiF4Y2s3mLyPrjonchIMH/tbWHucJMykQ==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz", + "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.2.tgz", - "integrity": "sha512-lAarIdxZWbFSHFSDao9+I/F5jDaKyCqAPMq5HqnfpBw8dKDiCaaqM0lq5h1pQTLeIqueeay4PieGR5jGZMWprw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz", + "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.2.tgz", - "integrity": "sha512-SWsr8zEUk82KSqquIMgZEg2GE5mCSfr9sE/thDROkX6pb3QQWPp8Vw8zOq2GyxZ2t0XoSIUlvHDkrf5Gmf7x3Q==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz", + "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.2.tgz", - "integrity": "sha512-o/HAIrQq0jIxJAhgtIvV5FWviYK4WB0WwV91SLUnsliw1lSAoLsmgEEgRWzDguAFeUEUUoIWXiJrPqU7vGiVkA==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz", + "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz", + "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz", + "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.2.tgz", - "integrity": "sha512-nwlJ65UY9eGq91cBi6VyDfArUJSKOYt5dJQBq8xyLhvS23qO+4Nr/RreibFHjP6t+5ap2ohZrUJcHv5zk5ju/g==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz", + "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz", + "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.2.tgz", - "integrity": "sha512-Pg5TxxO2IVlMj79+c/9G0LREC9SY3HM+pfAwX7zj5/cAuwrbfj2Wv9JbMHIdPCfQpYsI4g9mE+2Bw/3aeSs2rQ==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz", + "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.2.tgz", - "integrity": "sha512-cAOTjGNm84gc6tS02D1EXtG7tDRsVSDTBVXOLbj31DkwfZwgTPYZ6aafSU7rD/4R2a34JOwlF9fQayuTSkoclA==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz", + "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz", + "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.2.tgz", - "integrity": "sha512-4RyT6v1kXb7C0fn6zV33rvaX05P0zHoNzaXI/5oFHklfKm602j+N4mn2YvoezQViRLPnxP8M1NaY4s/5kXO5cw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz", + "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.2.tgz", - "integrity": "sha512-KNUH6jC/vRGAKSorySTyc/yRYlCwN/5pnMjXylfBniwtJx5O7X17KG/0efj8XM3TZU7raYRXJFFReOzNmL1n1w==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz", + "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz", + "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.2.tgz", - "integrity": "sha512-xPV4y73IBEXToNPa3h5lbgXOi/v0NcvKxU0xejiFw6DtIYQqOTMhZ2DN18/HrrP0PmiL3rGtRG9gz1QE8vFKXQ==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz", + "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.2.tgz", - "integrity": "sha512-QBhtr07iFGmF9egrPOWyO5wciwgtzKkYPNLVCFZTmr4TWmY0oY2Dm/bmhHjKRwZoGiaKdNcKhFtUMBKvlchH+Q==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz", + "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==", "cpu": [ "x64" ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.2.tgz", - "integrity": "sha512-8zfsQRQGH23O6qazZSFY5jP5gt4cFvRuKTpuBsC1ZnSWxV8ZKQpPqOZIUtdfMOugCcBvFGRa1pDC/tkf19EgBw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz", + "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.2.tgz", - "integrity": "sha512-H4s8UjgkPnlChl6JF5empNvFHp77Jx+Wfy2EtmYPe9G22XV+PMuCinZVHurNe8ggtwoaohxARJZbaH/3xjB/FA==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz", + "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.2.tgz", - "integrity": "sha512-djqpAjm/i8erWYF0K6UY4kRO3X5+T4TypIqw60Q8MTqSBaQNpNXDhxdjpZ3ikgb+wn99svA7jxcXpiyg9MUsdw==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz", + "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.2.tgz", - "integrity": "sha512-teAqzLT0yTYZa8ZP7zhFKEx4cotS8Tkk5XiqNMJhD4CpaWB1BHARE4Qy+RzwnXvSAYv+Q3jAqCVBS+PS+Yee8Q==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz", + "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -656,12 +809,14 @@ "node_modules/@stitches/core": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@stitches/core/-/core-1.2.8.tgz", - "integrity": "sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==" + "integrity": "sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==", + "license": "MIT" }, "node_modules/@supabase/auth-js": { - "version": "2.64.2", - "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.64.2.tgz", - "integrity": "sha512-s+lkHEdGiczDrzXJ1YWt2y3bxRi+qIUnXcgkpLSrId7yjBeaXBFygNjTaoZLG02KNcYwbuZ9qkEIqmj2hF7svw==", + "version": "2.71.1", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.71.1.tgz", + "integrity": "sha512-mMIQHBRc+SKpZFRB2qtupuzulaUhFYupNyxqDj5Jp/LyPvcWvjaJzZzObv6URtL/O6lPxkanASnotGtNpS3H2Q==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } @@ -670,6 +825,7 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/@supabase/auth-ui-shared/-/auth-ui-shared-0.1.8.tgz", "integrity": "sha512-ouQ0DjKcEFg+0gZigFIEgu01V3e6riGZPzgVD0MJsCBNsMsiDT74+GgCEIElMUpTGkwSja3xLwdFRFgMNFKcjg==", + "license": "MIT", "peerDependencies": { "@supabase/supabase-js": "^2.21.0" } @@ -691,14 +847,16 @@ "version": "3.59.2", "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.59.2.tgz", "integrity": "sha512-vzSyuGr3eEoAtT/A6bmajosJZIUWySzY2CzB3w2pgPvnkUjGqlDnsNnA0PMO+mMAhuyMul6C2uuZzY6ELSkzyA==", + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@supabase/functions-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.1.tgz", - "integrity": "sha512-8sZ2ibwHlf+WkHDUZJUXqqmPvWQ3UHN0W30behOJngVh/qHHekhJLCFbh0AjkE9/FqqXtf9eoVvmYgfCLk5tNA==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.5.tgz", + "integrity": "sha512-v5GSqb9zbosquTo6gBwIiq7W9eQ7rE5QazsK/ezNiQXdCbY+bH8D9qEaBIkhVvX4ZRW5rP03gEfw5yw9tiq4EQ==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } @@ -707,6 +865,7 @@ "version": "2.6.15", "resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz", "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", + "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" }, @@ -715,90 +874,101 @@ } }, "node_modules/@supabase/postgrest-js": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.15.7.tgz", - "integrity": "sha512-TJztay5lcnnKuXjIO/X/aaajOsP8qNeW0k3MqIFoOtRolj5MEAIy8rixNakRk3o23eVCdsuP3iMLYPvOOruH6Q==", + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.19.4.tgz", + "integrity": "sha512-O4soKqKtZIW3olqmbXXbKugUtByD2jPa8kL2m2c1oozAO11uCcGrRhkZL0kVxjBLrXHE0mdSkFsMj7jDSfyNpw==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/realtime-js": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.10.2.tgz", - "integrity": "sha512-qyCQaNg90HmJstsvr2aJNxK2zgoKh9ZZA8oqb7UT2LCh3mj9zpa3Iwu167AuyNxsxrUE8eEJ2yH6wLCij4EApA==", + "version": "2.11.15", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.11.15.tgz", + "integrity": "sha512-HQKRnwAqdVqJW/P9TjKVK+/ETpW4yQ8tyDPPtRMKOH4Uh3vQD74vmj353CYs8+YwVBKubeUOOEpI9CT8mT4obw==", + "license": "MIT", "dependencies": { - "@supabase/node-fetch": "^2.6.14", - "@types/phoenix": "^1.5.4", - "@types/ws": "^8.5.10", - "ws": "^8.14.2" + "@supabase/node-fetch": "^2.6.13", + "@types/phoenix": "^1.6.6", + "@types/ws": "^8.18.1", + "isows": "^1.0.7", + "ws": "^8.18.2" } }, "node_modules/@supabase/ssr": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@supabase/ssr/-/ssr-0.4.0.tgz", - "integrity": "sha512-6WS3NUvHDhCPAFN2kJ79AQDO8+M9fJ7y2fYpxgZqIuJEpnnGsHDNnB5Xnv8CiaJIuRU+0pKboy62RVZBMfZ0Lg==", + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@supabase/ssr/-/ssr-0.6.1.tgz", + "integrity": "sha512-QtQgEMvaDzr77Mk3vZ3jWg2/y+D8tExYF7vcJT+wQ8ysuvOeGGjYbZlvj5bHYsj/SpC0bihcisnwPrM4Gp5G4g==", + "license": "MIT", "dependencies": { - "cookie": "^0.6.0" - }, - "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.9.5" + "cookie": "^1.0.1" }, "peerDependencies": { "@supabase/supabase-js": "^2.43.4" } }, "node_modules/@supabase/storage-js": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.6.0.tgz", - "integrity": "sha512-REAxr7myf+3utMkI2oOmZ6sdplMZZ71/2NEIEMBZHL9Fkmm3/JnaOZVSRqvG4LStYj2v5WhCruCzuMn6oD/Drw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.7.1.tgz", + "integrity": "sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==", + "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/supabase-js": { - "version": "2.44.2", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.44.2.tgz", - "integrity": "sha512-fouCwL1OxqftOwLNgdDUPlNnFuCnt30nS4kLcnTpe6NYKn1PmjxRRBFmKscgHs6FjWyU+32ZG4uBJ29+/BWiDw==", + "version": "2.52.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.52.0.tgz", + "integrity": "sha512-jbs3CV1f2+ge7sgBeEduboT9v/uGjF22v0yWi/5/XFn5tbM8MfWRccsMtsDwAwu24XK8H6wt2LJDiNnZLtx/bg==", + "license": "MIT", "dependencies": { - "@supabase/auth-js": "2.64.2", - "@supabase/functions-js": "2.4.1", + "@supabase/auth-js": "2.71.1", + "@supabase/functions-js": "2.4.5", "@supabase/node-fetch": "2.6.15", - "@supabase/postgrest-js": "1.15.7", - "@supabase/realtime-js": "2.10.2", - "@supabase/storage-js": "2.6.0" + "@supabase/postgrest-js": "1.19.4", + "@supabase/realtime-js": "2.11.15", + "@supabase/storage-js": "2.7.1" + } + }, + "node_modules/@sveltejs/acorn-typescript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.5.tgz", + "integrity": "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8.9.0" } }, "node_modules/@sveltejs/adapter-auto": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-3.2.2.tgz", - "integrity": "sha512-Mso5xPCA8zgcKrv+QioVlqMZkyUQ5MjDJiEPuG/Z7cV/5tmwV7LmcVWk5tZ+H0NCOV1x12AsoSpt/CwFwuVXMA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-6.0.1.tgz", + "integrity": "sha512-mcWud3pYGPWM2Pphdj8G9Qiq24nZ8L4LB7coCUckUEy5Y7wOWGJ/enaZ4AtJTcSm5dNK1rIkBRoqt+ae4zlxcQ==", "dev": true, - "dependencies": { - "import-meta-resolve": "^4.1.0" - }, + "license": "MIT", "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "node_modules/@sveltejs/kit": { - "version": "2.5.18", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.18.tgz", - "integrity": "sha512-+g06hvpVAnH7b4CDjhnTDgFWBKBiQJpuSmQeGYOuzbO3SC3tdYjRNlDCrafvDtKbGiT2uxY5Dn9qdEUGVZdWOQ==", + "version": "2.25.1", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.25.1.tgz", + "integrity": "sha512-8H+fxDEp7Xq6tLFdrGdS5fLu6ONDQQ9DgyjboXpChubuFdfH9QoFX09ypssBpyNkJNZFt9eW3yLmXIc9CesPCA==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "dependencies": { + "@sveltejs/acorn-typescript": "^1.0.5", "@types/cookie": "^0.6.0", + "acorn": "^8.14.1", "cookie": "^0.6.0", - "devalue": "^5.0.0", - "esm-env": "^1.0.0", - "import-meta-resolve": "^4.1.0", + "devalue": "^5.1.0", + "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", - "sirv": "^2.0.4", - "tiny-glob": "^0.2.9" + "sirv": "^3.0.0" }, "bin": { "svelte-kit": "svelte-kit.js" @@ -807,94 +977,105 @@ "node": ">=18.13" }, "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^3.0.0", + "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", "svelte": "^4.0.0 || ^5.0.0-next.0", - "vite": "^5.0.3" + "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" + } + }, + "node_modules/@sveltejs/kit/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-3.1.1.tgz", - "integrity": "sha512-rimpFEAboBBHIlzISibg94iP09k/KYdHgVhJlcsTfn7KMBhc70jFX/GRWkRdFCc2fdnk+4+Bdfej23cMDnJS6A==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-6.1.0.tgz", + "integrity": "sha512-+U6lz1wvGEG/BvQyL4z/flyNdQ9xDNv5vrh+vWBWTHaebqT0c9RNggpZTo/XSPoHsSCWBlYaTlRX8pZ9GATXCw==", "dev": true, + "license": "MIT", "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^2.1.0", - "debug": "^4.3.4", + "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0-next.1", + "debug": "^4.4.1", "deepmerge": "^4.3.1", "kleur": "^4.1.5", - "magic-string": "^0.30.10", - "svelte-hmr": "^0.16.0", - "vitefu": "^0.2.5" + "magic-string": "^0.30.17", + "vitefu": "^1.1.1" }, "engines": { - "node": "^18.0.0 || >=20" + "node": "^20.19 || ^22.12 || >=24" }, "peerDependencies": { - "svelte": "^4.0.0 || ^5.0.0-next.0", - "vite": "^5.0.0" + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" } }, "node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-2.1.0.tgz", - "integrity": "sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-5.0.0.tgz", + "integrity": "sha512-iwQ8Z4ET6ZFSt/gC+tVfcsSBHwsqc6RumSaiLUkAurW3BCpJam65cmHw0oOlDMTO0u+PZi9hilBRYN+LZNHTUQ==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "^4.3.4" + "debug": "^4.4.1" }, "engines": { - "node": "^18.0.0 || >=20" + "node": "^20.19 || ^22.12 || >=24" }, "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^3.0.0", - "svelte": "^4.0.0 || ^5.0.0-next.0", - "vite": "^5.0.0" + "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", + "svelte": "^5.0.0", + "vite": "^6.3.0 || ^7.0.0" } }, "node_modules/@types/cookie": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "version": "24.0.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.15.tgz", + "integrity": "sha512-oaeTSbCef7U/z7rDeJA138xpG3NuKc64/rZ2qmUFkFJmnMsAPaluIifqyWd8hSSMxyP9oie3dLAqYPblag9KgA==", + "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~7.8.0" } }, "node_modules/@types/phoenix": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.5.tgz", - "integrity": "sha512-xegpDuR+z0UqG9fwHqNoy3rI7JDlvaPh2TY47Fl80oq6g+hXT+c/LEuE43X48clZ6lOfANl5WrPur9fYO1RJ/w==" - }, - "node_modules/@types/pug": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz", - "integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==", - "dev": true + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.6.tgz", + "integrity": "sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==", + "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -902,157 +1083,69 @@ "node": ">=0.4.0" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, "node_modules/axobject-query": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", - "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true, - "engines": { - "node": "*" + "node": ">= 0.4" } }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" } }, - "node_modules/code-red": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", - "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15", - "@types/estree": "^1.0.1", - "acorn": "^8.10.0", - "estree-walker": "^3.0.3", - "periscopic": "^3.1.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", "engines": { - "node": ">= 0.6" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + "node": ">=18" } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1068,117 +1161,99 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/devalue": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.0.0.tgz", - "integrity": "sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==", - "dev": true - }, - "node_modules/es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", - "dev": true + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "dev": true, + "license": "MIT" }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz", + "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.25.8", + "@esbuild/android-arm": "0.25.8", + "@esbuild/android-arm64": "0.25.8", + "@esbuild/android-x64": "0.25.8", + "@esbuild/darwin-arm64": "0.25.8", + "@esbuild/darwin-x64": "0.25.8", + "@esbuild/freebsd-arm64": "0.25.8", + "@esbuild/freebsd-x64": "0.25.8", + "@esbuild/linux-arm": "0.25.8", + "@esbuild/linux-arm64": "0.25.8", + "@esbuild/linux-ia32": "0.25.8", + "@esbuild/linux-loong64": "0.25.8", + "@esbuild/linux-mips64el": "0.25.8", + "@esbuild/linux-ppc64": "0.25.8", + "@esbuild/linux-riscv64": "0.25.8", + "@esbuild/linux-s390x": "0.25.8", + "@esbuild/linux-x64": "0.25.8", + "@esbuild/netbsd-arm64": "0.25.8", + "@esbuild/netbsd-x64": "0.25.8", + "@esbuild/openbsd-arm64": "0.25.8", + "@esbuild/openbsd-x64": "0.25.8", + "@esbuild/openharmony-arm64": "0.25.8", + "@esbuild/sunos-x64": "0.25.8", + "@esbuild/win32-arm64": "0.25.8", + "@esbuild/win32-ia32": "0.25.8", + "@esbuild/win32-x64": "0.25.8" } }, "node_modules/esm-env": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz", - "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==", - "dev": true - }, - "node_modules/estree-walker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", + "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", "dev": true, + "license": "MIT" + }, + "node_modules/esrap": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.0.tgz", + "integrity": "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==", + "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "^1.0.0" + "@jridgewell/sourcemap-codec": "^1.4.15" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/fdir": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", + "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" }, - "engines": { - "node": ">=8" + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1187,131 +1262,29 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globalyzer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz", - "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==", - "dev": true - }, - "node_modules/globrex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", - "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", - "dev": true - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "*" + "@types/estree": "^1.0.6" + } + }, + "node_modules/isows": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz", + "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" } }, "node_modules/kleur": { @@ -1319,6 +1292,7 @@ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1327,63 +1301,17 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true - }, - "node_modules/min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/mri": { @@ -1391,29 +1319,32 @@ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/mrmime": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", - "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -1421,6 +1352,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -1428,66 +1360,30 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dev": true, - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } - }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", "dev": true, "funding": [ { @@ -1503,46 +1399,38 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, + "license": "MIT", "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" + "node": ">= 14.18.0" }, - "bin": { - "rimraf": "bin.js" + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/rollup": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.2.tgz", - "integrity": "sha512-WkeoTWvuBoFjFAhsEOHKRoZ3r9GfTyhh7Vff1zwebEFLEFjT1lG3784xEgKiTa7E+e70vsC81roVL2MP4tgEEQ==", + "version": "4.45.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.45.1.tgz", + "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -1552,21 +1440,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.14.2", - "@rollup/rollup-android-arm64": "4.14.2", - "@rollup/rollup-darwin-arm64": "4.14.2", - "@rollup/rollup-darwin-x64": "4.14.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.2", - "@rollup/rollup-linux-arm64-gnu": "4.14.2", - "@rollup/rollup-linux-arm64-musl": "4.14.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.2", - "@rollup/rollup-linux-riscv64-gnu": "4.14.2", - "@rollup/rollup-linux-s390x-gnu": "4.14.2", - "@rollup/rollup-linux-x64-gnu": "4.14.2", - "@rollup/rollup-linux-x64-musl": "4.14.2", - "@rollup/rollup-win32-arm64-msvc": "4.14.2", - "@rollup/rollup-win32-ia32-msvc": "4.14.2", - "@rollup/rollup-win32-x64-msvc": "4.14.2", + "@rollup/rollup-android-arm-eabi": "4.45.1", + "@rollup/rollup-android-arm64": "4.45.1", + "@rollup/rollup-darwin-arm64": "4.45.1", + "@rollup/rollup-darwin-x64": "4.45.1", + "@rollup/rollup-freebsd-arm64": "4.45.1", + "@rollup/rollup-freebsd-x64": "4.45.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", + "@rollup/rollup-linux-arm-musleabihf": "4.45.1", + "@rollup/rollup-linux-arm64-gnu": "4.45.1", + "@rollup/rollup-linux-arm64-musl": "4.45.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-musl": "4.45.1", + "@rollup/rollup-linux-s390x-gnu": "4.45.1", + "@rollup/rollup-linux-x64-gnu": "4.45.1", + "@rollup/rollup-linux-x64-musl": "4.45.1", + "@rollup/rollup-win32-arm64-msvc": "4.45.1", + "@rollup/rollup-win32-ia32-msvc": "4.45.1", + "@rollup/rollup-win32-x64-msvc": "4.45.1", "fsevents": "~2.3.2" } }, @@ -1575,6 +1468,7 @@ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dev": true, + "license": "MIT", "dependencies": { "mri": "^1.1.0" }, @@ -1582,214 +1476,103 @@ "node": ">=6" } }, - "node_modules/sander": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", - "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==", - "dev": true, - "dependencies": { - "es6-promise": "^3.1.2", - "graceful-fs": "^4.1.3", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.2" - } - }, "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "dev": true, + "license": "MIT" }, "node_modules/sirv": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", - "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.1.tgz", + "integrity": "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==", "dev": true, + "license": "MIT", "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/sorcery": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz", - "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==", - "dev": true, - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.14", - "buffer-crc32": "^0.2.5", - "minimist": "^1.2.0", - "sander": "^0.5.0" - }, - "bin": { - "sorcery": "bin/sorcery" + "node": ">=18" } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, - "node_modules/strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "dev": true, - "dependencies": { - "min-indent": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/svelte": { - "version": "4.2.18", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz", - "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==", + "version": "5.36.12", + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.36.12.tgz", + "integrity": "sha512-c3mWT+b0yBLl3gPGSHiy4pdSQCsPNTjLC0tVoOhrGJ6PPfCzD/RQpAmAfJtQZ304CAae2ph+L3C4aqds3R3seQ==", "dev": true, + "license": "MIT", "dependencies": { - "@ampproject/remapping": "^2.2.1", - "@jridgewell/sourcemap-codec": "^1.4.15", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/estree": "^1.0.1", - "acorn": "^8.9.0", - "aria-query": "^5.3.0", - "axobject-query": "^4.0.0", - "code-red": "^1.0.3", - "css-tree": "^2.3.1", - "estree-walker": "^3.0.3", - "is-reference": "^3.0.1", + "@ampproject/remapping": "^2.3.0", + "@jridgewell/sourcemap-codec": "^1.5.0", + "@sveltejs/acorn-typescript": "^1.0.5", + "@types/estree": "^1.0.5", + "acorn": "^8.12.1", + "aria-query": "^5.3.1", + "axobject-query": "^4.1.0", + "clsx": "^2.1.1", + "esm-env": "^1.2.1", + "esrap": "^2.1.0", + "is-reference": "^3.0.3", "locate-character": "^3.0.0", - "magic-string": "^0.30.4", - "periscopic": "^3.1.0" + "magic-string": "^0.30.11", + "zimmerframe": "^1.1.2" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/svelte-check": { - "version": "3.8.4", - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.8.4.tgz", - "integrity": "sha512-61aHMkdinWyH8BkkTX9jPLYxYzaAAz/FK/VQqdr2FiCQQ/q04WCwDlpGbHff1GdrMYTmW8chlTFvRWL9k0A8vg==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.0.tgz", + "integrity": "sha512-Iz8dFXzBNAM7XlEIsUjUGQhbEE+Pvv9odb9+0+ITTgFWZBGeJRRYqHUUglwe2EkLD5LIsQaAc4IUJyvtKuOO5w==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "chokidar": "^3.4.1", + "@jridgewell/trace-mapping": "^0.3.25", + "chokidar": "^4.0.1", + "fdir": "^6.2.0", "picocolors": "^1.0.0", - "sade": "^1.7.4", - "svelte-preprocess": "^5.1.3", - "typescript": "^5.0.3" + "sade": "^1.7.4" }, "bin": { "svelte-check": "bin/svelte-check" }, - "peerDependencies": { - "svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0" - } - }, - "node_modules/svelte-hmr": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.16.0.tgz", - "integrity": "sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==", - "dev": true, "engines": { - "node": "^12.20 || ^14.13.1 || >= 16" + "node": ">= 18.0.0" }, "peerDependencies": { - "svelte": "^3.19.0 || ^4.0.0" + "svelte": "^4.0.0 || ^5.0.0-next.0", + "typescript": ">=5.0.0" } }, - "node_modules/svelte-preprocess": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.3.tgz", - "integrity": "sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==", + "node_modules/tinyglobby": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", + "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", "dev": true, - "hasInstallScript": true, + "license": "MIT", "dependencies": { - "@types/pug": "^2.0.6", - "detect-indent": "^6.1.0", - "magic-string": "^0.30.5", - "sorcery": "^0.11.0", - "strip-indent": "^3.0.0" + "fdir": "^6.4.4", + "picomatch": "^4.0.2" }, "engines": { - "node": ">= 16.0.0", - "pnpm": "^8.0.0" + "node": ">=12.0.0" }, - "peerDependencies": { - "@babel/core": "^7.10.2", - "coffeescript": "^2.5.1", - "less": "^3.11.3 || ^4.0.0", - "postcss": "^7 || ^8", - "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", - "pug": "^3.0.0", - "sass": "^1.26.8", - "stylus": "^0.55.0", - "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0", - "svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0", - "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "coffeescript": { - "optional": true - }, - "less": { - "optional": true - }, - "postcss": { - "optional": true - }, - "postcss-load-config": { - "optional": true - }, - "pug": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "typescript": { - "optional": true - } - } - }, - "node_modules/tiny-glob": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz", - "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==", - "dev": true, - "dependencies": { - "globalyzer": "0.1.0", - "globrex": "^0.1.2" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, "node_modules/totalist": { @@ -1797,6 +1580,7 @@ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1804,19 +1588,22 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, "node_modules/tslib": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", - "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", - "dev": true + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" }, "node_modules/typescript": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", - "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -1826,25 +1613,30 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "license": "MIT" }, "node_modules/vite": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.3.tgz", - "integrity": "sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.5.tgz", + "integrity": "sha512-1mncVwJxy2C9ThLwz0+2GKZyEXuC3MyWtAAlNftlZZXZDP3AJt5FmwcMit/IGGaNZ8ZOB2BNO/HFUB+CpN0NQw==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.39", - "rollup": "^4.13.0" + "esbuild": "^0.25.0", + "fdir": "^6.4.6", + "picomatch": "^4.0.2", + "postcss": "^8.5.6", + "rollup": "^4.40.0", + "tinyglobby": "^0.2.14" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -1853,18 +1645,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -1874,6 +1673,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -1882,16 +1684,28 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, "node_modules/vitefu": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz", - "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.1.tgz", + "integrity": "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==", "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*", + "tests/projects/workspace/packages/*" + ], "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "peerDependenciesMeta": { "vite": { @@ -1902,27 +1716,24 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -1938,6 +1749,13 @@ "optional": true } } + }, + "node_modules/zimmerframe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.2.tgz", + "integrity": "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==", + "dev": true, + "license": "MIT" } } } diff --git a/examples/user-management/sveltekit-user-management/package.json b/examples/user-management/sveltekit-user-management/package.json index 79107528d45..54c0d1bfcb4 100644 --- a/examples/user-management/sveltekit-user-management/package.json +++ b/examples/user-management/sveltekit-user-management/package.json @@ -10,20 +10,20 @@ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" }, "devDependencies": { - "@sveltejs/adapter-auto": "^3.2.2", - "@sveltejs/kit": "^2.5.18", - "@sveltejs/vite-plugin-svelte": "^3.1.1", - "svelte": "^4.2.18", - "svelte-check": "^3.8.4", + "@sveltejs/adapter-auto": "^6.0.1", + "@sveltejs/kit": "^2.5.27", + "@sveltejs/vite-plugin-svelte": "^6.1.0", + "svelte": "^5.14.4", + "svelte-check": "^4.1.1", "tslib": "^2.6.3", "typescript": "^5.5.3", - "vite": "^5.3.3" + "vite": "^7.0.5" }, "type": "module", "dependencies": { "@supabase/auth-ui-shared": "^0.1.8", "@supabase/auth-ui-svelte": "^0.2.9", - "@supabase/ssr": "^0.4.0", + "@supabase/ssr": "^0.6.1", "@supabase/supabase-js": "^2.44.2" } } diff --git a/examples/user-management/sveltekit-user-management/src/routes/+layout.svelte b/examples/user-management/sveltekit-user-management/src/routes/+layout.svelte index 2a6939f7ccf..50611f57fd0 100644 --- a/examples/user-management/sveltekit-user-management/src/routes/+layout.svelte +++ b/examples/user-management/sveltekit-user-management/src/routes/+layout.svelte @@ -4,10 +4,8 @@ import { invalidate } from '$app/navigation' import { onMount } from 'svelte' - export let data - - let { supabase, session } = data - $: ({ supabase, session } = data) + let { data, children } = $props() + let { supabase, session } = $derived(data) onMount(() => { const { data } = supabase.auth.onAuthStateChange((event, _session) => { @@ -25,5 +23,5 @@
    - + {@render children()}
    \ No newline at end of file diff --git a/examples/user-management/sveltekit-user-management/src/routes/+page.svelte b/examples/user-management/sveltekit-user-management/src/routes/+page.svelte index 84f43c0e764..0d1d986a08d 100644 --- a/examples/user-management/sveltekit-user-management/src/routes/+page.svelte +++ b/examples/user-management/sveltekit-user-management/src/routes/+page.svelte @@ -3,9 +3,12 @@ import { enhance } from '$app/forms' import type { ActionData, SubmitFunction } from './$types.js' - export let form: ActionData; - - let loading = false + interface Props { + form: ActionData + } + let { form }: Props = $props() + + let loading = $state(false) const handleSubmit: SubmitFunction = () => { loading = true diff --git a/examples/user-management/sveltekit-user-management/src/routes/account/+page.svelte b/examples/user-management/sveltekit-user-management/src/routes/account/+page.svelte index 7ba596dc504..dde5b750462 100644 --- a/examples/user-management/sveltekit-user-management/src/routes/account/+page.svelte +++ b/examples/user-management/sveltekit-user-management/src/routes/account/+page.svelte @@ -1,21 +1,16 @@ -
    @@ -73,7 +76,7 @@ style="height: {size}em; width: {size}em;" /> {:else} -
    +
    {/if} @@ -87,7 +90,7 @@ id="single" accept="image/*" bind:files - on:change={uploadAvatar} + onchange={uploadAvatar} disabled={uploading} />
    diff --git a/examples/user-management/sveltekit-user-management/src/routes/auth/error/+page.svelte b/examples/user-management/sveltekit-user-management/src/routes/auth/error/+page.svelte new file mode 100644 index 00000000000..0176f4c72e6 --- /dev/null +++ b/examples/user-management/sveltekit-user-management/src/routes/auth/error/+page.svelte @@ -0,0 +1 @@ +

    Login error

    \ No newline at end of file diff --git a/package.json b/package.json index 110e5692473..e7e3e31feaf 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "test:ui-patterns": "turbo run test --filter=ui-patterns", "test:studio": "turbo run test --filter=studio", "test:studio:watch": "turbo run test --filter=studio -- watch", - "e2e": "pnpm --prefix e2e/studio run e2e", "e2e:dev-hosted": "pnpm --prefix e2e/studio run e2e:dev-hosted", "e2e:dev-selfhosted": "pnpm --prefix e2e/studio run e2e:dev-selfhosted", @@ -39,7 +38,6 @@ "e2e:ci": "pnpm --prefix e2e/studio run e2e:ci", "e2e:supabase:start": "pnpm --prefix e2e/studio run supabase:start", "e2e:supabase:stop": "pnpm --prefix e2e/studio run supabase:stop", - "perf:kong": "ab -t 5 -c 20 -T application/json http://localhost:8000/", "perf:meta": "ab -t 5 -c 20 -T application/json http://localhost:5555/tables", "setup:cli": "supabase start -x studio && supabase status --output json > keys.json && node scripts/generateLocalEnv.js", @@ -72,12 +70,21 @@ "esbuild": "^0.25.2", "@redocly/respect-core>form-data": "^4.0.4" }, - "neverBuiltDependencies": ["libpg-query"] + "neverBuiltDependencies": [ + "libpg-query" + ] }, "engines": { "pnpm": ">=9", "node": ">=22" }, - "keywords": ["postgres", "firebase", "storage", "functions", "database", "auth"], + "keywords": [ + "postgres", + "firebase", + "storage", + "functions", + "database", + "auth" + ], "packageManager": "pnpm@9.15.5" -} +} \ No newline at end of file From 6424ae4c31cb516301ab3e87e1069bb34df9c9f3 Mon Sep 17 00:00:00 2001 From: Jordi Enric <37541088+jordienr@users.noreply.github.com> Date: Tue, 12 Aug 2025 17:18:13 +0200 Subject: [PATCH 19/62] move sentry client config to instrumentation-client.ts (#37871) * add instrumentation-client * add env to turbojson so it dont yell at me --- .../{sentry.client.config.ts => instrumentation-client.ts} | 0 turbo.json | 1 + 2 files changed, 1 insertion(+) rename apps/studio/{sentry.client.config.ts => instrumentation-client.ts} (100%) diff --git a/apps/studio/sentry.client.config.ts b/apps/studio/instrumentation-client.ts similarity index 100% rename from apps/studio/sentry.client.config.ts rename to apps/studio/instrumentation-client.ts diff --git a/turbo.json b/turbo.json index c1a8a6dc53f..6d010af23b4 100644 --- a/turbo.json +++ b/turbo.json @@ -90,6 +90,7 @@ "SENTRY_ORG", "SENTRY_PROJECT", "SENTRY_AUTH_TOKEN", + "NEXT_PUBLIC_SENTRY_DSN", "AWS_BEDROCK_PROFILE", "AWS_BEDROCK_ROLE_ARN", "AWS_ACCESS_KEY_ID", From a25716393596886f8fddfae4036e7f95414fdbdb Mon Sep 17 00:00:00 2001 From: Tyler Date: Tue, 12 Aug 2025 10:18:52 -0500 Subject: [PATCH 20/62] blog: Swap the videos on the lw15 blog posts with the deep dive videos (#37873) --- apps/www/_blog/2025-07-14-jwt-signing-keys.mdx | 2 +- apps/www/_blog/2025-07-15-analytics-buckets.mdx | 2 +- apps/www/_blog/2025-07-16-branching-2-0.mdx | 2 +- .../2025-07-18-persistent-storage-for-faster-edge-functions.mdx | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx b/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx index 168a61242e0..7fd4efac42e 100644 --- a/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx +++ b/apps/www/_blog/2025-07-14-jwt-signing-keys.mdx @@ -22,7 +22,7 @@ Today we're announcing some long awaited changes in Supabase: