diff --git a/package.json b/package.json
index bff7d758..d8ca9cfd 100644
--- a/package.json
+++ b/package.json
@@ -66,13 +66,13 @@
"@dicebear/core": "^9.2.3",
"@fontsource/inter": "^5.2.8",
"@hello-pangea/dnd": "^17.0.0",
- "@prisma/adapter-pg": "^6.18.0",
- "@prisma/client": "^6.18.0",
+ "@prisma/adapter-pg": "^7.0.0",
+ "@prisma/client": "^7.0.0",
"@prisma/extension-read-replicas": "^0.4.1",
"@react-spring/web": "^10.0.3",
"@svgr/cli": "^8.1.0",
"@tanstack/react-query": "^5.90.5",
- "@umami/react-zen": "^0.208.0",
+ "@umami/react-zen": "^0.210.0",
"@umami/redis-client": "^0.29.0",
"bcryptjs": "^3.0.2",
"chalk": "^5.6.2",
@@ -107,7 +107,7 @@
"npm-run-all": "^4.1.5",
"papaparse": "^5.5.3",
"pg": "^8.16.3",
- "prisma": "^6.18.0",
+ "prisma": "^7.0.0",
"pure-rand": "^7.0.1",
"react": "^19.2.0",
"react-dom": "^19.2.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index bb72c418..92a8bd32 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -27,14 +27,14 @@ importers:
specifier: ^17.0.0
version: 17.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@prisma/adapter-pg':
- specifier: ^6.18.0
- version: 6.18.0
+ specifier: ^7.0.0
+ version: 7.0.0
'@prisma/client':
- specifier: ^6.18.0
- version: 6.18.0(prisma@6.18.0(typescript@5.9.3))(typescript@5.9.3)
+ specifier: ^7.0.0
+ version: 7.0.0(prisma@7.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3)
'@prisma/extension-read-replicas':
specifier: ^0.4.1
- version: 0.4.1(@prisma/client@6.18.0(prisma@6.18.0(typescript@5.9.3))(typescript@5.9.3))
+ version: 0.4.1(@prisma/client@7.0.0(prisma@7.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3))
'@react-spring/web':
specifier: ^10.0.3
version: 10.0.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
@@ -45,8 +45,8 @@ importers:
specifier: ^5.90.5
version: 5.90.5(react@19.2.0)
'@umami/react-zen':
- specifier: ^0.208.0
- version: 0.208.0(@babel/core@7.28.3)(@types/react@19.2.2)(babel-plugin-react-compiler@19.1.0-rc.2)(immer@10.2.0)(use-sync-external-store@1.6.0(react@19.2.0))
+ specifier: ^0.210.0
+ version: 0.210.0(@babel/core@7.28.3)(@types/react@19.2.2)(babel-plugin-react-compiler@19.1.0-rc.2)(immer@10.2.0)(use-sync-external-store@1.6.0(react@19.2.0))
'@umami/redis-client':
specifier: ^0.29.0
version: 0.29.0
@@ -150,8 +150,8 @@ importers:
specifier: ^8.16.3
version: 8.16.3
prisma:
- specifier: ^6.18.0
- version: 6.18.0(typescript@5.9.3)
+ specifier: ^7.0.0
+ version: 7.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
pure-rand:
specifier: ^7.0.1
version: 7.0.1
@@ -567,6 +567,18 @@ packages:
cpu: [x64]
os: [win32]
+ '@chevrotain/cst-dts-gen@10.5.0':
+ resolution: {integrity: sha512-lhmC/FyqQ2o7pGK4Om+hzuDrm9rhFYIJ/AXoQBeongmn870Xeb0L6oGEiuR8nohFNL5sMaQEJWCxr1oIVIVXrw==}
+
+ '@chevrotain/gast@10.5.0':
+ resolution: {integrity: sha512-pXdMJ9XeDAbgOWKuD1Fldz4ieCs6+nLNmyVhe2gZVqoO7v8HXuHYs5OV2EzUtbuai37TlOAQHrTDvxMnvMJz3A==}
+
+ '@chevrotain/types@10.5.0':
+ resolution: {integrity: sha512-f1MAia0x/pAVPWH/T73BJVyO2XU5tI4/iE7cnxb7tqdNTNhQI3Uq3XkqcoteTmD4t1aM0LbHCJOhgIDn07kl2A==}
+
+ '@chevrotain/utils@10.5.0':
+ resolution: {integrity: sha512-hBzuU5+JjB2cqNZyszkDHZgOSrUUT8V3dhgRl8Q9Gp6dAj/H5+KILGjbhDpc3Iy9qmqlm/akuOI2ut9VUtzJxQ==}
+
'@clickhouse/client-common@1.12.1':
resolution: {integrity: sha512-ccw1N6hB4+MyaAHIaWBwGZ6O2GgMlO99FlMj0B0UEGfjxM9v5dYVYql6FpP19rMwrVAroYs/IgX2vyZEBvzQLg==}
@@ -895,6 +907,20 @@ packages:
peerDependencies:
'@dicebear/core': ^9.0.0
+ '@electric-sql/pglite-socket@0.0.6':
+ resolution: {integrity: sha512-6RjmgzphIHIBA4NrMGJsjNWK4pu+bCWJlEWlwcxFTVY3WT86dFpKwbZaGWZV6C5Rd7sCk1Z0CI76QEfukLAUXw==}
+ hasBin: true
+ peerDependencies:
+ '@electric-sql/pglite': 0.3.2
+
+ '@electric-sql/pglite-tools@0.2.7':
+ resolution: {integrity: sha512-9dAccClqxx4cZB+Ar9B+FZ5WgxDc/Xvl9DPrTWv+dYTf0YNubLzi4wHHRGRGhrJv15XwnyKcGOZAP1VXSneSUg==}
+ peerDependencies:
+ '@electric-sql/pglite': 0.3.2
+
+ '@electric-sql/pglite@0.3.2':
+ resolution: {integrity: sha512-zfWWa+V2ViDCY/cmUfRqeWY1yLto+EpxjXnZzenB1TyxsTiXaTWeZFIZw6mac52BsuQm0RjCnisjBtdBaXOI6w==}
+
'@emnapi/runtime@1.5.0':
resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
@@ -1060,12 +1086,6 @@ packages:
cpu: [x64]
os: [win32]
- '@eslint-community/eslint-utils@4.7.0':
- resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
-
'@eslint-community/eslint-utils@4.9.0':
resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1076,6 +1096,10 @@ packages:
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
'@eslint/eslintrc@2.1.4':
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1160,6 +1184,12 @@ packages:
react: ^18.0.0
react-dom: ^18.0.0
+ '@hono/node-server@1.14.2':
+ resolution: {integrity: sha512-GHjpOeHYbr9d1vkID2sNUYkl5IxumyhDrUJB7wBp7jvqYwPFt+oNKsAPBRcdSbV7kIrXhouLE199ks1QcK4r7A==}
+ engines: {node: '>=18.14.1'}
+ peerDependencies:
+ hono: ^4
+
'@humanwhocodes/config-array@0.13.0':
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: '>=10.10.0'}
@@ -1576,6 +1606,10 @@ packages:
'@kurkle/color@0.3.4':
resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==}
+ '@mrleebo/prisma-ast@0.12.1':
+ resolution: {integrity: sha512-JwqeCQ1U3fvccttHZq7Tk0m/TMC6WcFAQZdukypW3AzlJYKYTGNVd1ANU2GuhKnv4UQuOFj3oAl0LLG/gxFN1w==}
+ engines: {node: '>=16'}
+
'@netlify/plugin-nextjs@5.14.4':
resolution: {integrity: sha512-HnMHG0tksVoS2E6ImcX9o/EcVH1dckb8ZL1FyghKRsEPYCo+20hQ6zncd5EEOW7K22UN+n1EprCROWUmsbhYMg==}
engines: {node: '>=18.0.0'}
@@ -1698,46 +1732,68 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
- '@prisma/adapter-pg@6.18.0':
- resolution: {integrity: sha512-eBtBOL1z2Sh0Rc2hwa4dmwoNeFs5T69tsA62AkhBvnzNfTcr/YfLeJae/wjNmvRttYDPmdiuhqZCRPNY1+8fOA==}
+ '@prisma/adapter-pg@7.0.0':
+ resolution: {integrity: sha512-cis1Ib+TVbtSi2VU5Zm1fSmAcA8jg7KwUTbJ6LcWIm1eww380utXM8G23F3UCEPOJO4HiKt6adP/Q1hukjAkgw==}
- '@prisma/client@6.18.0':
- resolution: {integrity: sha512-jnL2I9gDnPnw4A+4h5SuNn8Gc+1mL1Z79U/3I9eE2gbxJG1oSA+62ByPW4xkeDgwE0fqMzzpAZ7IHxYnLZ4iQA==}
- engines: {node: '>=18.18'}
+ '@prisma/client-runtime-utils@7.0.0':
+ resolution: {integrity: sha512-PAiFgMBPrLSaakBwUpML5NevipuKSL3rtNr8pZ8CZ3OBXo0BFcdeGcBIKw/CxJP6H4GNa4+l5bzJPrk8Iq6tDw==}
+
+ '@prisma/client@7.0.0':
+ resolution: {integrity: sha512-FM1NtJezl0zH3CybLxcbJwShJt7xFGSRg+1tGhy3sCB8goUDnxnBR+RC/P35EAW8gjkzx7kgz7bvb0MerY2VSw==}
+ engines: {node: ^20.19 || ^22.12 || ^24.0}
peerDependencies:
prisma: '*'
- typescript: '>=5.1.0'
+ typescript: '>=5.4.0'
peerDependenciesMeta:
prisma:
optional: true
typescript:
optional: true
- '@prisma/config@6.18.0':
- resolution: {integrity: sha512-rgFzspCpwsE+q3OF/xkp0fI2SJ3PfNe9LLMmuSVbAZ4nN66WfBiKqJKo/hLz3ysxiPQZf8h1SMf2ilqPMeWATQ==}
+ '@prisma/config@7.0.0':
+ resolution: {integrity: sha512-TDASB57hyGUwHB0IPCSkoJcXFrJOKA1+R/1o4np4PbS+E0F5MiY5aAyUttO0mSuNQaX7t8VH/GkDemffF1mQzg==}
- '@prisma/debug@6.18.0':
- resolution: {integrity: sha512-PMVPMmxPj0ps1VY75DIrT430MoOyQx9hmm174k6cmLZpcI95rAPXOQ+pp8ANQkJtNyLVDxnxVJ0QLbrm/ViBcg==}
+ '@prisma/debug@6.8.2':
+ resolution: {integrity: sha512-4muBSSUwJJ9BYth5N8tqts8JtiLT8QI/RSAzEogwEfpbYGFo9mYsInsVo8dqXdPO2+Rm5OG5q0qWDDE3nyUbVg==}
- '@prisma/driver-adapter-utils@6.18.0':
- resolution: {integrity: sha512-9wgSriEKs4j1ePxlv1/RNfJV9Gu5rzG37Neshg+DfrCcUY3amroERvTjyR04w5J1THdGdOTgGL9VdJcVaKRMmQ==}
+ '@prisma/debug@7.0.0':
+ resolution: {integrity: sha512-SdS3qzfMASHtWimywtkiRcJtrHzacbmMVhElko3DYUZSB0TTLqRYWpddRBJdeGgSLmy1FD55p7uGzIJ+MtfhMg==}
- '@prisma/engines-version@6.18.0-8.34b5a692b7bd79939a9a2c3ef97d816e749cda2f':
- resolution: {integrity: sha512-T7Af4QsJQnSgWN1zBbX+Cha5t4qjHRxoeoWpK4JugJzG/ipmmDMY5S+O0N1ET6sCBNVkf6lz+Y+ZNO9+wFU8pQ==}
+ '@prisma/dev@0.13.0':
+ resolution: {integrity: sha512-QMmF6zFeUF78yv1HYbHvod83AQnl7u6NtKyDhTRZOJup3h1icWs8R7RUVxBJZvM2tBXNAMpLQYYM/8kPlOPegA==}
- '@prisma/engines@6.18.0':
- resolution: {integrity: sha512-i5RzjGF/ex6AFgqEe2o1IW8iIxJGYVQJVRau13kHPYEL1Ck8Zvwuzamqed/1iIljs5C7L+Opiz5TzSsUebkriA==}
+ '@prisma/driver-adapter-utils@7.0.0':
+ resolution: {integrity: sha512-ZEvzFaIapnfNKFPgZu/Zy4g6jfO5C0ZmMp+IjO9hNKNDwVKrDlBKw7F3Y9oRK0U0kfb9lKWP4Dz7DgtKs4TTbA==}
+
+ '@prisma/engines-version@6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513':
+ resolution: {integrity: sha512-7bzyN8Gp9GbDFbTDzVUH9nFcgRWvsWmjrGgBJvIC/zEoAuv/lx62gZXgAKfjn/HoPkxz/dS+TtsnduFx8WA+cw==}
+
+ '@prisma/engines@7.0.0':
+ resolution: {integrity: sha512-ojCL3OFLMCz33UbU9XwH32jwaeM+dWb8cysTuY8eK6ZlMKXJdy6ogrdG3MGB3meKLGdQBmOpUUGJ7eLIaxbrcg==}
'@prisma/extension-read-replicas@0.4.1':
resolution: {integrity: sha512-mCMDloqUKUwx2o5uedTs1FHX3Nxdt1GdRMoeyp1JggjiwOALmIYWhxfIN08M2BZ0w8SKwvJqicJZMjkQYkkijw==}
peerDependencies:
'@prisma/client': ^6.5.0
- '@prisma/fetch-engine@6.18.0':
- resolution: {integrity: sha512-TdaBvTtBwP3IoqVYoGIYpD4mWlk0pJpjTJjir/xLeNWlwog7Sl3bD2J0jJ8+5+q/6RBg+acb9drsv5W6lqae7A==}
+ '@prisma/fetch-engine@7.0.0':
+ resolution: {integrity: sha512-qcyWTeWDjVDaDQSrVIymZU1xCYlvmwCzjA395lIuFjUESOH3YQCb8i/hpd4vopfq3fUR4v6+MjjtIGvnmErQgw==}
- '@prisma/get-platform@6.18.0':
- resolution: {integrity: sha512-uXNJCJGhxTCXo2B25Ta91Rk1/Nmlqg9p7G9GKh8TPhxvAyXCvMNQoogj4JLEUy+3ku8g59cpyQIKFhqY2xO2bg==}
+ '@prisma/get-platform@6.8.2':
+ resolution: {integrity: sha512-vXSxyUgX3vm1Q70QwzwkjeYfRryIvKno1SXbIqwSptKwqKzskINnDUcx85oX+ys6ooN2ATGSD0xN2UTfg6Zcow==}
+
+ '@prisma/get-platform@7.0.0':
+ resolution: {integrity: sha512-zyhzrAa+y/GfyCzTnuk0D9lfkvDzo7IbsNyuhTqhPu/AN0txm0x26HAR4tJLismla/fHf5fBzYwSivYSzkpakg==}
+
+ '@prisma/query-plan-executor@6.18.0':
+ resolution: {integrity: sha512-jZ8cfzFgL0jReE1R10gT8JLHtQxjWYLiQ//wHmVYZ2rVkFHoh0DT8IXsxcKcFlfKN7ak7k6j0XMNn2xVNyr5cA==}
+
+ '@prisma/studio-core-licensed@0.8.0':
+ resolution: {integrity: sha512-SXCcgFvo/SC6/11kEOaQghJgCWNEWZUvPYKn/gpvMB9HLSG/5M8If7dWZtEQHhchvl8bh9A89Hw6mEKpsXFimA==}
+ peerDependencies:
+ '@types/react': ^18.0.0 || ^19.0.0
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
'@react-aria/autocomplete@3.0.0-rc.3':
resolution: {integrity: sha512-vemf7h3hvIDk3MxiiPryysfYgJDg8R72X46dRIeg0+cXKYxjPYou64/DTucSV2z5J6RC5JalINu0jIDaLhEILw==}
@@ -2896,8 +2952,8 @@ packages:
resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@umami/react-zen@0.208.0':
- resolution: {integrity: sha512-r04tOJzwMSQj/De27csFZw70EDWq4avEo3bgUnJYc+Hpeunmy/avWRifgFCzdMwqumcf6xPOeEnfHoUdhMsHQQ==}
+ '@umami/react-zen@0.210.0':
+ resolution: {integrity: sha512-nQ8EfrSleuXMPBVabr6rDoH2VS0ca41A3V2OCQbG4HqgLJ5+Mj8gHT/aLqUz5EKNBAmMy0/XxPNAgsHwwoxrCQ==}
'@umami/redis-client@0.29.0':
resolution: {integrity: sha512-Jaqh++jskqDB7ny75pfC02OvKp1JTS4asGDsFrRL3qy8sxL3PAl9+/mybCJe4/6vWrXDJKqpgkSfUDJq2bFjyw==}
@@ -3077,6 +3133,10 @@ packages:
aws-sign2@0.7.0:
resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
+ aws-ssl-profiles@1.1.2:
+ resolution: {integrity: sha512-NZKeq9AfyQvEeNlN0zSYAaWrmBffJh3IELMZfRpJVWgrpEbtEpnjvzqBPf+mxoI287JohRDoa+/nsfqqiZmF6g==}
+ engines: {node: '>= 6.0.0'}
+
aws4@1.13.2:
resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==}
@@ -3270,6 +3330,9 @@ packages:
resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==}
engines: {node: '>= 0.8.0'}
+ chevrotain@10.5.0:
+ resolution: {integrity: sha512-Pkv5rBY3+CsHOYfV5g/Vs5JY9WTHHDEKOlohI2XeygaZhUeqhAlldZ8Hz9cRmxu709bvS08YzxHdTPHhffc13A==}
+
chokidar@4.0.3:
resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
engines: {node: '>= 14.16.0'}
@@ -3718,6 +3781,10 @@ packages:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
+ denque@2.1.0:
+ resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==}
+ engines: {node: '>=0.10'}
+
destr@2.0.5:
resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
@@ -3983,8 +4050,8 @@ packages:
resolution: {integrity: sha512-OKe7cdic4qbfWd/CcgwJvvCrNX2KWfuMZee9AfJHL1gTYmvqjBjZG1a2NwfhspBzxzlXwsN75WWpKTYfsJpBxg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- exsolve@1.0.7:
- resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
+ exsolve@1.0.8:
+ resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
@@ -4147,6 +4214,9 @@ packages:
functions-have-names@1.2.3:
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+ generate-function@2.3.1:
+ resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==}
+
generic-names@4.0.0:
resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==}
@@ -4174,6 +4244,9 @@ packages:
resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
engines: {node: '>=8.0.0'}
+ get-port-please@3.1.2:
+ resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==}
+
get-proto@1.0.1:
resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
engines: {node: '>= 0.4'}
@@ -4267,6 +4340,9 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ grammex@3.1.11:
+ resolution: {integrity: sha512-HNwLkgRg9SqTAd1N3Uh/MnKwTBTzwBxTOPbXQ8pb0tpwydjk90k4zRE8JUn9fMUiRwKtXFZ1TWFmms3dZHN+Fg==}
+
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
@@ -4317,6 +4393,10 @@ packages:
hoist-non-react-statics@3.3.2:
resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+ hono@4.7.10:
+ resolution: {integrity: sha512-QkACju9MiN59CKSY5JsGZCYmPZkA6sIW6OFCUp7qDjZu6S6KHtJHhAc9Uy9mV9F8PJ1/HQ3ybZF2yjCa/73fvQ==}
+ engines: {node: '>=16.9.0'}
+
hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
@@ -4335,6 +4415,9 @@ packages:
resolution: {integrity: sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==}
engines: {node: '>=0.10'}
+ http-status-codes@2.3.0:
+ resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==}
+
human-signals@1.1.1:
resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
engines: {node: '>=8.12.0'}
@@ -4348,6 +4431,10 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ iconv-lite@0.7.0:
+ resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==}
+ engines: {node: '>=0.10.0'}
+
icss-replace-symbols@1.1.0:
resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==}
@@ -4577,6 +4664,9 @@ packages:
resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
engines: {node: '>=0.10.0'}
+ is-property@1.0.2:
+ resolution: {integrity: sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==}
+
is-reference@1.2.1:
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
@@ -4845,6 +4935,10 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
+ hasBin: true
+
jsbn@0.1.1:
resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
@@ -5062,6 +5156,9 @@ packages:
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
engines: {node: '>=18'}
+ long@5.3.2:
+ resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==}
+
loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
@@ -5083,6 +5180,14 @@ packages:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
+ lru-cache@7.18.3:
+ resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
+ engines: {node: '>=12'}
+
+ lru.min@1.1.3:
+ resolution: {integrity: sha512-Lkk/vx6ak3rYkRR0Nhu4lFUT2VDnQSxBe8Hbl7f36358p6ow8Bnvr8lrLt98H8J1aGxfhbX4Fs5tYg2+FTwr5Q==}
+ engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'}
+
lucide-react@0.511.0:
resolution: {integrity: sha512-VK5a2ydJ7xm8GvBeKLS9mu1pVK6ucef9780JVUjw6bAjJL/QXnd4Y0p7SPeOUMC27YhzNCZvm5d/QX0Tp3rc0w==}
peerDependencies:
@@ -5249,9 +5354,17 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ mysql2@3.15.3:
+ resolution: {integrity: sha512-FBrGau0IXmuqg4haEZRBfHNWB5mUARw6hNwPDXXGg0XzVJ50mr/9hb267lvpVMnhZ1FON3qNd4Xfcez1rbFwSg==}
+ engines: {node: '>= 8.0'}
+
mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+ named-placeholders@1.1.3:
+ resolution: {integrity: sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==}
+ engines: {node: '>=12.0.0'}
+
nano-spawn@2.0.0:
resolution: {integrity: sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==}
engines: {node: '>=20.17'}
@@ -6055,6 +6168,10 @@ packages:
resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
engines: {node: '>=0.10.0'}
+ postgres@3.4.7:
+ resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==}
+ engines: {node: '>=12'}
+
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -6076,13 +6193,16 @@ packages:
resolution: {integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- prisma@6.18.0:
- resolution: {integrity: sha512-bXWy3vTk8mnRmT+SLyZBQoC2vtV9Z8u7OHvEu+aULYxwiop/CPiFZ+F56KsNRNf35jw+8wcu8pmLsjxpBxAO9g==}
- engines: {node: '>=18.18'}
+ prisma@7.0.0:
+ resolution: {integrity: sha512-VZObZ1pQV/OScarYg68RYUx61GpFLH2mJGf9fUX4XxQxTst/6ZK7nkY86CSZ3zBW6U9lKRTsBrZWVz20X5G/KQ==}
+ engines: {node: ^20.19 || ^22.12 || ^24.0}
hasBin: true
peerDependencies:
- typescript: '>=5.1.0'
+ better-sqlite3: '>=9.0.0'
+ typescript: '>=5.4.0'
peerDependenciesMeta:
+ better-sqlite3:
+ optional: true
typescript:
optional: true
@@ -6104,6 +6224,9 @@ packages:
prop-types@15.8.1:
resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ proper-lockfile@4.1.2:
+ resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
+
proxy-from-env@1.0.0:
resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==}
@@ -6288,10 +6411,16 @@ packages:
resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==}
engines: {node: '>= 0.4'}
+ regexp-to-ast@0.5.0:
+ resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==}
+
regexp.prototype.flags@1.5.4:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
+ remeda@2.21.3:
+ resolution: {integrity: sha512-XXrZdLA10oEOQhLLzEJEiFFSKi21REGAkHdImIb4rt/XXy8ORGXh5HCcpUOsElfPNDb+X6TA/+wkh+p2KffYmg==}
+
request-ip@3.3.0:
resolution: {integrity: sha512-cA6Xh6e0fDBBBwH77SLJaJPBmD3nWVAcF9/XAcsrIHdjhFzFiB5aNQFytdjCGPezU3ROwrR11IddKAM08vohxA==}
@@ -6335,6 +6464,10 @@ packages:
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
engines: {node: '>=18'}
+ retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
+
reusify@1.1.0:
resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -6439,6 +6572,9 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ seq-queue@0.0.5:
+ resolution: {integrity: sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==}
+
serialize-error@12.0.0:
resolution: {integrity: sha512-ZYkZLAvKTKQXWuh5XpBw7CdbSzagarX39WyZ2H07CDLC5/KfsRGlIXV8d4+tfqX1M7916mRqR1QfNHSij+c9Pw==}
engines: {node: '>=18'}
@@ -6586,6 +6722,10 @@ packages:
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ sqlstring@2.3.3:
+ resolution: {integrity: sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==}
+ engines: {node: '>= 0.6'}
+
sshpk@1.18.0:
resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==}
engines: {node: '>=0.10.0'}
@@ -6599,6 +6739,9 @@ packages:
resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
engines: {node: '>=10'}
+ std-env@3.9.0:
+ resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
+
stop-iteration-iterator@1.1.0:
resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==}
engines: {node: '>= 0.4'}
@@ -6822,8 +6965,9 @@ packages:
tinyexec@0.3.2:
resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==}
- tinyexec@1.0.1:
- resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
+ tinyexec@1.0.2:
+ resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
+ engines: {node: '>=18'}
tinyglobby@0.2.14:
resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==}
@@ -7093,6 +7237,14 @@ packages:
resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
engines: {node: '>=10.12.0'}
+ valibot@1.1.0:
+ resolution: {integrity: sha512-Nk8lX30Qhu+9txPYTwM0cFlWLdPFsFr6LblzqIySfbZph9+BFsAHsNvHOymEviUepeIW6KFHzpX8TKhbptBXXw==}
+ peerDependencies:
+ typescript: '>=5'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@@ -7241,6 +7393,9 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
+ zeptomatch@2.0.2:
+ resolution: {integrity: sha512-H33jtSKf8Ijtb5BW6wua3G5DhnFjbFML36eFu+VdOoVY4HD9e7ggjqdM6639B+L87rjnR6Y+XeRzBXZdy52B/g==}
+
zod@4.1.12:
resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==}
@@ -7495,6 +7650,21 @@ snapshots:
'@biomejs/cli-win32-x64@2.3.6':
optional: true
+ '@chevrotain/cst-dts-gen@10.5.0':
+ dependencies:
+ '@chevrotain/gast': 10.5.0
+ '@chevrotain/types': 10.5.0
+ lodash: 4.17.21
+
+ '@chevrotain/gast@10.5.0':
+ dependencies:
+ '@chevrotain/types': 10.5.0
+ lodash: 4.17.21
+
+ '@chevrotain/types@10.5.0': {}
+
+ '@chevrotain/utils@10.5.0': {}
+
'@clickhouse/client-common@1.12.1': {}
'@clickhouse/client@1.12.1':
@@ -7789,6 +7959,16 @@ snapshots:
dependencies:
'@dicebear/core': 9.2.4
+ '@electric-sql/pglite-socket@0.0.6(@electric-sql/pglite@0.3.2)':
+ dependencies:
+ '@electric-sql/pglite': 0.3.2
+
+ '@electric-sql/pglite-tools@0.2.7(@electric-sql/pglite@0.3.2)':
+ dependencies:
+ '@electric-sql/pglite': 0.3.2
+
+ '@electric-sql/pglite@0.3.2': {}
+
'@emnapi/runtime@1.5.0':
dependencies:
tslib: 2.8.1
@@ -7879,11 +8059,6 @@ snapshots:
'@esbuild/win32-x64@0.25.11':
optional: true
- '@eslint-community/eslint-utils@4.7.0(eslint@8.57.1)':
- dependencies:
- eslint: 8.57.1
- eslint-visitor-keys: 3.4.3
-
'@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)':
dependencies:
eslint: 8.57.1
@@ -7891,6 +8066,8 @@ snapshots:
'@eslint-community/regexpp@4.12.1': {}
+ '@eslint-community/regexpp@4.12.2': {}
+
'@eslint/eslintrc@2.1.4':
dependencies:
ajv: 6.12.6
@@ -7899,7 +8076,7 @@ snapshots:
globals: 13.24.0
ignore: 5.3.2
import-fresh: 3.3.1
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
@@ -8033,6 +8210,10 @@ snapshots:
transitivePeerDependencies:
- '@types/react'
+ '@hono/node-server@1.14.2(hono@4.7.10)':
+ dependencies:
+ hono: 4.7.10
+
'@humanwhocodes/config-array@0.13.0':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
@@ -8485,6 +8666,11 @@ snapshots:
'@kurkle/color@0.3.4': {}
+ '@mrleebo/prisma-ast@0.12.1':
+ dependencies:
+ chevrotain: 10.5.0
+ lilconfig: 2.1.0
+
'@netlify/plugin-nextjs@5.14.4': {}
'@next/env@15.5.3': {}
@@ -8554,20 +8740,24 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
- '@prisma/adapter-pg@6.18.0':
+ '@prisma/adapter-pg@7.0.0':
dependencies:
- '@prisma/driver-adapter-utils': 6.18.0
+ '@prisma/driver-adapter-utils': 7.0.0
pg: 8.16.3
postgres-array: 3.0.4
transitivePeerDependencies:
- pg-native
- '@prisma/client@6.18.0(prisma@6.18.0(typescript@5.9.3))(typescript@5.9.3)':
+ '@prisma/client-runtime-utils@7.0.0': {}
+
+ '@prisma/client@7.0.0(prisma@7.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3)':
+ dependencies:
+ '@prisma/client-runtime-utils': 7.0.0
optionalDependencies:
- prisma: 6.18.0(typescript@5.9.3)
+ prisma: 7.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
typescript: 5.9.3
- '@prisma/config@6.18.0':
+ '@prisma/config@7.0.0':
dependencies:
c12: 3.1.0
deepmerge-ts: 7.1.5
@@ -8576,34 +8766,70 @@ snapshots:
transitivePeerDependencies:
- magicast
- '@prisma/debug@6.18.0': {}
+ '@prisma/debug@6.8.2': {}
- '@prisma/driver-adapter-utils@6.18.0':
+ '@prisma/debug@7.0.0': {}
+
+ '@prisma/dev@0.13.0(typescript@5.9.3)':
dependencies:
- '@prisma/debug': 6.18.0
+ '@electric-sql/pglite': 0.3.2
+ '@electric-sql/pglite-socket': 0.0.6(@electric-sql/pglite@0.3.2)
+ '@electric-sql/pglite-tools': 0.2.7(@electric-sql/pglite@0.3.2)
+ '@hono/node-server': 1.14.2(hono@4.7.10)
+ '@mrleebo/prisma-ast': 0.12.1
+ '@prisma/get-platform': 6.8.2
+ '@prisma/query-plan-executor': 6.18.0
+ foreground-child: 3.3.1
+ get-port-please: 3.1.2
+ hono: 4.7.10
+ http-status-codes: 2.3.0
+ pathe: 2.0.3
+ proper-lockfile: 4.1.2
+ remeda: 2.21.3
+ std-env: 3.9.0
+ valibot: 1.1.0(typescript@5.9.3)
+ zeptomatch: 2.0.2
+ transitivePeerDependencies:
+ - typescript
- '@prisma/engines-version@6.18.0-8.34b5a692b7bd79939a9a2c3ef97d816e749cda2f': {}
-
- '@prisma/engines@6.18.0':
+ '@prisma/driver-adapter-utils@7.0.0':
dependencies:
- '@prisma/debug': 6.18.0
- '@prisma/engines-version': 6.18.0-8.34b5a692b7bd79939a9a2c3ef97d816e749cda2f
- '@prisma/fetch-engine': 6.18.0
- '@prisma/get-platform': 6.18.0
+ '@prisma/debug': 7.0.0
- '@prisma/extension-read-replicas@0.4.1(@prisma/client@6.18.0(prisma@6.18.0(typescript@5.9.3))(typescript@5.9.3))':
- dependencies:
- '@prisma/client': 6.18.0(prisma@6.18.0(typescript@5.9.3))(typescript@5.9.3)
+ '@prisma/engines-version@6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513': {}
- '@prisma/fetch-engine@6.18.0':
+ '@prisma/engines@7.0.0':
dependencies:
- '@prisma/debug': 6.18.0
- '@prisma/engines-version': 6.18.0-8.34b5a692b7bd79939a9a2c3ef97d816e749cda2f
- '@prisma/get-platform': 6.18.0
+ '@prisma/debug': 7.0.0
+ '@prisma/engines-version': 6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513
+ '@prisma/fetch-engine': 7.0.0
+ '@prisma/get-platform': 7.0.0
- '@prisma/get-platform@6.18.0':
+ '@prisma/extension-read-replicas@0.4.1(@prisma/client@7.0.0(prisma@7.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3))':
dependencies:
- '@prisma/debug': 6.18.0
+ '@prisma/client': 7.0.0(prisma@7.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3))(typescript@5.9.3)
+
+ '@prisma/fetch-engine@7.0.0':
+ dependencies:
+ '@prisma/debug': 7.0.0
+ '@prisma/engines-version': 6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513
+ '@prisma/get-platform': 7.0.0
+
+ '@prisma/get-platform@6.8.2':
+ dependencies:
+ '@prisma/debug': 6.8.2
+
+ '@prisma/get-platform@7.0.0':
+ dependencies:
+ '@prisma/debug': 7.0.0
+
+ '@prisma/query-plan-executor@6.18.0': {}
+
+ '@prisma/studio-core-licensed@0.8.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ dependencies:
+ '@types/react': 19.2.2
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
'@react-aria/autocomplete@3.0.0-rc.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
@@ -10219,7 +10445,7 @@ snapshots:
'@typescript-eslint/types': 8.46.2
eslint-visitor-keys: 4.2.1
- '@umami/react-zen@0.208.0(@babel/core@7.28.3)(@types/react@19.2.2)(babel-plugin-react-compiler@19.1.0-rc.2)(immer@10.2.0)(use-sync-external-store@1.6.0(react@19.2.0))':
+ '@umami/react-zen@0.210.0(@babel/core@7.28.3)(@types/react@19.2.2)(babel-plugin-react-compiler@19.1.0-rc.2)(immer@10.2.0)(use-sync-external-store@1.6.0(react@19.2.0))':
dependencies:
'@fontsource/jetbrains-mono': 5.2.8
'@internationalized/date': 3.10.0
@@ -10440,6 +10666,8 @@ snapshots:
aws-sign2@0.7.0: {}
+ aws-ssl-profiles@1.1.2: {}
+
aws4@1.13.2: {}
babel-jest@29.7.0(@babel/core@7.28.3):
@@ -10585,7 +10813,7 @@ snapshots:
confbox: 0.2.2
defu: 6.1.4
dotenv: 16.6.1
- exsolve: 1.0.7
+ exsolve: 1.0.8
giget: 2.0.0
jiti: 2.6.1
ohash: 2.0.11
@@ -10675,6 +10903,15 @@ snapshots:
check-more-types@2.24.0: {}
+ chevrotain@10.5.0:
+ dependencies:
+ '@chevrotain/cst-dts-gen': 10.5.0
+ '@chevrotain/gast': 10.5.0
+ '@chevrotain/types': 10.5.0
+ '@chevrotain/utils': 10.5.0
+ lodash: 4.17.21
+ regexp-to-ast: 0.5.0
+
chokidar@4.0.3:
dependencies:
readdirp: 4.1.2
@@ -11173,6 +11410,8 @@ snapshots:
delayed-stream@1.0.0: {}
+ denque@2.1.0: {}
+
destr@2.0.5: {}
detect-browser@5.3.0: {}
@@ -11427,8 +11666,8 @@ snapshots:
eslint@8.57.1:
dependencies:
- '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.1)
- '@eslint-community/regexpp': 4.12.1
+ '@eslint-community/eslint-utils': 4.9.0(eslint@8.57.1)
+ '@eslint-community/regexpp': 4.12.2
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.57.1
'@humanwhocodes/config-array': 0.13.0
@@ -11456,7 +11695,7 @@ snapshots:
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
@@ -11545,7 +11784,7 @@ snapshots:
jest-mock: 30.0.5
jest-util: 30.0.5
- exsolve@1.0.7: {}
+ exsolve@1.0.8: {}
extend@3.0.2: {}
@@ -11739,6 +11978,10 @@ snapshots:
functions-have-names@1.2.3: {}
+ generate-function@2.3.1:
+ dependencies:
+ is-property: 1.0.2
+
generic-names@4.0.0:
dependencies:
loader-utils: 3.3.1
@@ -11766,6 +12009,8 @@ snapshots:
get-package-type@0.1.0: {}
+ get-port-please@3.1.2: {}
+
get-proto@1.0.1:
dependencies:
dunder-proto: 1.0.1
@@ -11901,6 +12146,8 @@ snapshots:
graceful-fs@4.2.11: {}
+ grammex@3.1.11: {}
+
graphemer@1.4.0: {}
handlebars@4.7.8:
@@ -11944,6 +12191,8 @@ snapshots:
dependencies:
react-is: 16.13.1
+ hono@4.7.10: {}
+
hosted-git-info@2.8.9: {}
hosted-git-info@4.1.0:
@@ -11960,12 +12209,18 @@ snapshots:
jsprim: 2.0.2
sshpk: 1.18.0
+ http-status-codes@2.3.0: {}
+
human-signals@1.1.1: {}
human-signals@2.1.0: {}
husky@9.1.7: {}
+ iconv-lite@0.7.0:
+ dependencies:
+ safer-buffer: 2.1.2
+
icss-replace-symbols@1.1.0: {}
icss-utils@5.1.0(postcss@8.5.6):
@@ -12157,6 +12412,8 @@ snapshots:
is-plain-object@5.0.0: {}
+ is-property@1.0.2: {}
+
is-reference@1.2.1:
dependencies:
'@types/estree': 1.0.8
@@ -12632,6 +12889,10 @@ snapshots:
dependencies:
argparse: 2.0.1
+ js-yaml@4.1.1:
+ dependencies:
+ argparse: 2.0.1
+
jsbn@0.1.1: {}
jsesc@3.1.0: {}
@@ -12856,6 +13117,8 @@ snapshots:
strip-ansi: 7.1.2
wrap-ansi: 9.0.2
+ long@5.3.2: {}
+
loose-envify@1.4.0:
dependencies:
js-tokens: 4.0.0
@@ -12879,6 +13142,10 @@ snapshots:
dependencies:
yallist: 4.0.0
+ lru-cache@7.18.3: {}
+
+ lru.min@1.1.3: {}
+
lucide-react@0.511.0(react@19.2.0):
dependencies:
react: 19.2.0
@@ -13040,12 +13307,28 @@ snapshots:
ms@2.1.3: {}
+ mysql2@3.15.3:
+ dependencies:
+ aws-ssl-profiles: 1.1.2
+ denque: 2.1.0
+ generate-function: 2.3.1
+ iconv-lite: 0.7.0
+ long: 5.3.2
+ lru.min: 1.1.3
+ named-placeholders: 1.1.3
+ seq-queue: 0.0.5
+ sqlstring: 2.3.3
+
mz@2.7.0:
dependencies:
any-promise: 1.3.0
object-assign: 4.1.1
thenify-all: 1.6.0
+ named-placeholders@1.1.3:
+ dependencies:
+ lru-cache: 7.18.3
+
nano-spawn@2.0.0: {}
nanoid@3.3.11: {}
@@ -13169,7 +13452,7 @@ snapshots:
consola: 3.4.2
pathe: 2.0.3
pkg-types: 2.3.0
- tinyexec: 1.0.1
+ tinyexec: 1.0.2
object-assign@4.1.1: {}
@@ -13371,7 +13654,7 @@ snapshots:
pkg-types@2.3.0:
dependencies:
confbox: 0.2.2
- exsolve: 1.0.7
+ exsolve: 1.0.8
pathe: 2.0.3
possible-typed-array-names@1.1.0: {}
@@ -13817,6 +14100,8 @@ snapshots:
dependencies:
xtend: 4.0.2
+ postgres@3.4.7: {}
+
prelude-ls@1.2.1: {}
prettier@2.8.8: {}
@@ -13835,14 +14120,21 @@ snapshots:
ansi-styles: 5.2.0
react-is: 18.3.1
- prisma@6.18.0(typescript@5.9.3):
+ prisma@7.0.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3):
dependencies:
- '@prisma/config': 6.18.0
- '@prisma/engines': 6.18.0
+ '@prisma/config': 7.0.0
+ '@prisma/dev': 0.13.0(typescript@5.9.3)
+ '@prisma/engines': 7.0.0
+ '@prisma/studio-core-licensed': 0.8.0(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ mysql2: 3.15.3
+ postgres: 3.4.7
optionalDependencies:
typescript: 5.9.3
transitivePeerDependencies:
+ - '@types/react'
- magicast
+ - react
+ - react-dom
process-nextick-args@2.0.1: {}
@@ -13861,6 +14153,12 @@ snapshots:
object-assign: 4.1.1
react-is: 16.13.1
+ proper-lockfile@4.1.2:
+ dependencies:
+ graceful-fs: 4.2.11
+ retry: 0.12.0
+ signal-exit: 3.0.7
+
proxy-from-env@1.0.0: {}
pump@3.0.3:
@@ -14161,6 +14459,8 @@ snapshots:
get-proto: 1.0.1
which-builtin-type: 1.2.1
+ regexp-to-ast@0.5.0: {}
+
regexp.prototype.flags@1.5.4:
dependencies:
call-bind: 1.0.8
@@ -14170,6 +14470,10 @@ snapshots:
gopd: 1.2.0
set-function-name: 2.0.2
+ remeda@2.21.3:
+ dependencies:
+ type-fest: 4.41.0
+
request-ip@3.3.0: {}
request-progress@3.0.0:
@@ -14206,6 +14510,8 @@ snapshots:
onetime: 7.0.0
signal-exit: 4.1.0
+ retry@0.12.0: {}
+
reusify@1.1.0: {}
rfdc@1.4.1: {}
@@ -14343,6 +14649,8 @@ snapshots:
semver@7.7.3: {}
+ seq-queue@0.0.5: {}
+
serialize-error@12.0.0:
dependencies:
type-fest: 4.41.0
@@ -14558,6 +14866,8 @@ snapshots:
sprintf-js@1.0.3: {}
+ sqlstring@2.3.3: {}
+
sshpk@1.18.0:
dependencies:
asn1: 0.2.6
@@ -14576,6 +14886,8 @@ snapshots:
dependencies:
escape-string-regexp: 2.0.0
+ std-env@3.9.0: {}
+
stop-iteration-iterator@1.1.0:
dependencies:
es-errors: 1.3.0
@@ -14866,7 +15178,7 @@ snapshots:
tinyexec@0.3.2: {}
- tinyexec@1.0.1: {}
+ tinyexec@1.0.2: {}
tinyglobby@0.2.14:
dependencies:
@@ -15113,6 +15425,10 @@ snapshots:
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
+ valibot@1.1.0(typescript@5.9.3):
+ optionalDependencies:
+ typescript: 5.9.3
+
validate-npm-package-license@3.0.4:
dependencies:
spdx-correct: 3.2.0
@@ -15295,6 +15611,10 @@ snapshots:
yocto-queue@0.1.0: {}
+ zeptomatch@2.0.2:
+ dependencies:
+ grammex: 3.1.11
+
zod@4.1.12: {}
zustand@5.0.8(@types/react@19.2.2)(immer@10.2.0)(react@19.2.0)(use-sync-external-store@1.6.0(react@19.2.0)):
diff --git a/prisma.config.ts b/prisma.config.ts
new file mode 100644
index 00000000..8ce899ad
--- /dev/null
+++ b/prisma.config.ts
@@ -0,0 +1,8 @@
+import 'dotenv/config';
+import { defineConfig, env } from 'prisma/config';
+
+export default defineConfig({
+ datasource: {
+ url: env('DATABASE_URL'),
+ },
+});
diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index aeb11648..66932e33 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -6,7 +6,6 @@ generator client {
datasource db {
provider = "postgresql"
- url = env("DATABASE_URL")
relationMode = "prisma"
}
diff --git a/public/site.webmanifest b/public/site.webmanifest
index b20abb7c..fa99de77 100644
--- a/public/site.webmanifest
+++ b/public/site.webmanifest
@@ -1,19 +1,19 @@
{
- "name": "",
- "short_name": "",
- "icons": [
- {
- "src": "/android-chrome-192x192.png",
- "sizes": "192x192",
- "type": "image/png"
- },
- {
- "src": "/android-chrome-512x512.png",
- "sizes": "512x512",
- "type": "image/png"
- }
- ],
- "theme_color": "#ffffff",
- "background_color": "#ffffff",
- "display": "standalone"
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "/android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "/android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
}
diff --git a/scripts/build-geo.js b/scripts/build-geo.js
index f0aedeba..74902511 100644
--- a/scripts/build-geo.js
+++ b/scripts/build-geo.js
@@ -50,21 +50,23 @@ const downloadDirect = (url, originalUrl) =>
https.get(url, res => {
// Follow redirects
if (res.statusCode === 301 || res.statusCode === 302) {
- downloadDirect(res.headers.location, originalUrl || url).then(resolve).catch(reject);
+ downloadDirect(res.headers.location, originalUrl || url)
+ .then(resolve)
+ .catch(reject);
return;
}
-
+
const filename = path.join(dest, path.basename(originalUrl || url));
const fileStream = fs.createWriteStream(filename);
-
+
res.pipe(fileStream);
-
+
fileStream.on('finish', () => {
fileStream.close();
console.log('Saved geo database:', filename);
resolve();
});
-
+
fileStream.on('error', e => {
reject(e);
});
@@ -78,27 +80,29 @@ if (isDirectMmdb) {
process.exit(1);
});
} else {
- downloadCompressed(url).then(
- res =>
- new Promise((resolve, reject) => {
- res.on('entry', entry => {
- if (entry.path.endsWith('.mmdb')) {
- const filename = path.join(dest, path.basename(entry.path));
- entry.pipe(fs.createWriteStream(filename));
+ downloadCompressed(url)
+ .then(
+ res =>
+ new Promise((resolve, reject) => {
+ res.on('entry', entry => {
+ if (entry.path.endsWith('.mmdb')) {
+ const filename = path.join(dest, path.basename(entry.path));
+ entry.pipe(fs.createWriteStream(filename));
- console.log('Saved geo database:', filename);
- }
- });
+ console.log('Saved geo database:', filename);
+ }
+ });
- res.on('error', e => {
- reject(e);
- });
- res.on('finish', () => {
- resolve();
- });
- }),
- ).catch(e => {
- console.error('Failed to download geo database:', e);
- process.exit(1);
- });
+ res.on('error', e => {
+ reject(e);
+ });
+ res.on('finish', () => {
+ resolve();
+ });
+ }),
+ )
+ .catch(e => {
+ console.error('Failed to download geo database:', e);
+ process.exit(1);
+ });
}
diff --git a/src/app/(main)/App.tsx b/src/app/(main)/App.tsx
index 33f0e1f3..eada680a 100644
--- a/src/app/(main)/App.tsx
+++ b/src/app/(main)/App.tsx
@@ -1,13 +1,13 @@
'use client';
-import { Grid, Loading, Column, Row } from '@umami/react-zen';
+import { Column, Grid, Loading, Row } from '@umami/react-zen';
import Script from 'next/script';
-import { UpdateNotice } from './UpdateNotice';
-import { SideNav } from '@/app/(main)/SideNav';
-import { useLoginQuery, useConfig, useNavigation } from '@/components/hooks';
-import { MobileNav } from '@/app/(main)/MobileNav';
import { useEffect } from 'react';
-import { removeItem, setItem } from '@/lib/storage';
+import { MobileNav } from '@/app/(main)/MobileNav';
+import { SideNav } from '@/app/(main)/SideNav';
+import { useConfig, useLoginQuery, useNavigation } from '@/components/hooks';
import { LAST_TEAM_CONFIG } from '@/lib/constants';
+import { removeItem, setItem } from '@/lib/storage';
+import { UpdateNotice } from './UpdateNotice';
export function App({ children }) {
const { user, isLoading, error } = useLoginQuery();
@@ -27,7 +27,9 @@ export function App({ children }) {
}
if (error) {
- window.location.href = `${process.env.basePath || ''}/login`;
+ window.location.href = config.cloudMode
+ ? `${process.env.cloudUrl}/login`
+ : `${process.env.basePath || ''}/login`;
return null;
}
diff --git a/src/app/(main)/websites/[websiteId]/(reports)/journeys/Journey.module.css b/src/app/(main)/websites/[websiteId]/(reports)/journeys/Journey.module.css
index df293bc1..63643f13 100644
--- a/src/app/(main)/websites/[websiteId]/(reports)/journeys/Journey.module.css
+++ b/src/app/(main)/websites/[websiteId]/(reports)/journeys/Journey.module.css
@@ -208,7 +208,7 @@
.start:before,
.end:before {
- content: '';
+ content: "";
position: absolute;
border-radius: 100%;
border: 3px solid var(--journey-line-color);
diff --git a/src/components/metrics/MetricLabel.tsx b/src/components/metrics/MetricLabel.tsx
index c2f1ea06..c755516c 100644
--- a/src/components/metrics/MetricLabel.tsx
+++ b/src/components/metrics/MetricLabel.tsx
@@ -137,11 +137,6 @@ export function MetricLabel({ type, data }: MetricLabelProps) {
return formatValue(label, 'language');
default:
- return (
-
- );
+ return ;
}
}
diff --git a/src/lib/__tests__/charts.test.ts b/src/lib/__tests__/charts.test.ts
index 601ee63d..e81be161 100644
--- a/src/lib/__tests__/charts.test.ts
+++ b/src/lib/__tests__/charts.test.ts
@@ -14,23 +14,21 @@ describe('renderNumberLabels', () => {
expect(renderNumberLabels(input)).toBe(expected);
});
- test.each([['12500', '12.5k']])(
- "formats numbers ≥ 10K as 'X.Xk' (%s → %s)",
- (input, expected) => {
- expect(renderNumberLabels(input)).toBe(expected);
- },
- );
+ test.each([
+ ['12500', '12.5k'],
+ ])("formats numbers ≥ 10K as 'X.Xk' (%s → %s)", (input, expected) => {
+ expect(renderNumberLabels(input)).toBe(expected);
+ });
test.each([['1500', '1.50k']])("formats numbers ≥ 1K as 'X.XXk' (%s → %s)", (input, expected) => {
expect(renderNumberLabels(input)).toBe(expected);
});
- test.each([['999', '999']])(
- 'calls formatNumber for values < 1000 (%s → %s)',
- (input, expected) => {
- expect(renderNumberLabels(input)).toBe(expected);
- },
- );
+ test.each([
+ ['999', '999'],
+ ])('calls formatNumber for values < 1000 (%s → %s)', (input, expected) => {
+ expect(renderNumberLabels(input)).toBe(expected);
+ });
test.each([
['0', '0'],
diff --git a/src/lib/prisma.ts b/src/lib/prisma.ts
index 2242069c..94970584 100644
--- a/src/lib/prisma.ts
+++ b/src/lib/prisma.ts
@@ -1,10 +1,10 @@
-import debug from 'debug';
import { PrismaPg } from '@prisma/adapter-pg';
import { readReplicas } from '@prisma/extension-read-replicas';
+import debug from 'debug';
import { PrismaClient } from '@/generated/prisma/client';
-import { SESSION_COLUMNS, OPERATORS, DEFAULT_PAGE_SIZE, FILTER_COLUMNS } from './constants';
-import { QueryOptions, QueryFilters, Operator } from './types';
+import { DEFAULT_PAGE_SIZE, FILTER_COLUMNS, OPERATORS, SESSION_COLUMNS } from './constants';
import { filtersObjectToArray } from './params';
+import type { Operator, QueryFilters, QueryOptions } from './types';
const log = debug('umami:prisma');
diff --git a/src/queries/prisma/pixel.ts b/src/queries/prisma/pixel.ts
index 36efe01d..4c9e132d 100644
--- a/src/queries/prisma/pixel.ts
+++ b/src/queries/prisma/pixel.ts
@@ -1,6 +1,6 @@
-import { Prisma } from '@/generated/prisma/client';
+import type { Prisma } from '@/generated/prisma/client';
import prisma from '@/lib/prisma';
-import { QueryFilters } from '@/lib/types';
+import type { QueryFilters } from '@/lib/types';
export async function findPixel(criteria: Prisma.PixelFindUniqueArgs) {
return prisma.client.pixel.findUnique(criteria);
diff --git a/src/styles/global.css b/src/styles/global.css
index d63ebf38..e9fca9fd 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -8,7 +8,7 @@ body {
min-height: 100vh;
}
-html[style*='padding-right'] {
+html[style*="padding-right"] {
padding-right: 0 !important;
}