diff --git a/convex.json b/convex.json deleted file mode 100644 index 89700aab..00000000 --- a/convex.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "functions": "src/convex/" -} diff --git a/package.json b/package.json index 94804cf2..ac69a7fb 100644 --- a/package.json +++ b/package.json @@ -52,8 +52,6 @@ "@tanstack/match-sorter-utils": "^8.19.4", "@tsparticles/slim": "^3.9.1", "@tsparticles/svelte": "^3.1.1", - "convex": "^1.27.3", - "convex-svelte": "^0.0.11", "current-git-branch": "^2.0.2", "dayjs": "^1.11.18", "formsnap": "^2.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f90ff293..94023998 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,12 +20,6 @@ importers: '@tsparticles/svelte': specifier: ^3.1.1 version: 3.1.1(svelte@5.39.6) - convex: - specifier: ^1.27.3 - version: 1.27.3(react@19.1.0) - convex-svelte: - specifier: ^0.0.11 - version: 0.0.11(convex@1.27.3(react@19.1.0))(svelte@5.39.6) current-git-branch: specifier: ^2.0.2 version: 2.0.2 @@ -176,252 +170,126 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.4': - resolution: {integrity: sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/android-arm64@0.25.10': resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.4': - resolution: {integrity: sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm@0.25.10': resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.4': - resolution: {integrity: sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-x64@0.25.10': resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.4': - resolution: {integrity: sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/darwin-arm64@0.25.10': resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.4': - resolution: {integrity: sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-x64@0.25.10': resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.4': - resolution: {integrity: sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/freebsd-arm64@0.25.10': resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.4': - resolution: {integrity: sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.10': resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.4': - resolution: {integrity: sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/linux-arm64@0.25.10': resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.4': - resolution: {integrity: sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm@0.25.10': resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.4': - resolution: {integrity: sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-ia32@0.25.10': resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.4': - resolution: {integrity: sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-loong64@0.25.10': resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.4': - resolution: {integrity: sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-mips64el@0.25.10': resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.4': - resolution: {integrity: sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-ppc64@0.25.10': resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.4': - resolution: {integrity: sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-riscv64@0.25.10': resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.4': - resolution: {integrity: sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-s390x@0.25.10': resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.4': - resolution: {integrity: sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-x64@0.25.10': resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.4': - resolution: {integrity: sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/netbsd-arm64@0.25.10': resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.25.4': - resolution: {integrity: sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.10': resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.4': - resolution: {integrity: sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/openbsd-arm64@0.25.10': resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.25.4': - resolution: {integrity: sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.10': resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.4': - resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openharmony-arm64@0.25.10': resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} engines: {node: '>=18'} @@ -434,48 +302,24 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.4': - resolution: {integrity: sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/win32-arm64@0.25.10': resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.4': - resolution: {integrity: sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-ia32@0.25.10': resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.4': - resolution: {integrity: sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-x64@0.25.10': resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.4': - resolution: {integrity: sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@exodus/schemasafe@1.3.0': resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==} @@ -1271,28 +1115,6 @@ packages: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} - convex-svelte@0.0.11: - resolution: {integrity: sha512-N/29gg5Zqy72vKL4xHSLk3jGwXVKIWXPs6xzq6KxGL84y/D6hG85pG2CPOzn08EzMmByts5FTkJ5p3var6yDng==} - peerDependencies: - convex: ^1.10.0 - svelte: ^5.0.0 - - convex@1.27.3: - resolution: {integrity: sha512-Ebr9lPgXkL7JO5IFr3bG+gYvHskyJjc96Fx0BBNkJUDXrR/bd9/uI4q8QszbglK75XfDu068vR0d/HK2T7tB9Q==} - engines: {node: '>=18.0.0', npm: '>=7.0.0'} - hasBin: true - peerDependencies: - '@auth0/auth0-react': ^2.0.1 - '@clerk/clerk-react': ^4.12.8 || ^5.0.0 - react: ^18.0.0 || ^19.0.0-0 || ^19.0.0 - peerDependenciesMeta: - '@auth0/auth0-react': - optional: true - '@clerk/clerk-react': - optional: true - react: - optional: true - cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -1491,11 +1313,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.25.4: - resolution: {integrity: sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==} - engines: {node: '>=18'} - hasBin: true - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1636,10 +1453,6 @@ packages: jws@3.2.2: resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} - jwt-decode@4.0.0: - resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} - engines: {node: '>=18'} - kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -2016,10 +1829,6 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - react@19.1.0: - resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} - engines: {node: '>=0.10.0'} - readdirp@4.1.2: resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} engines: {node: '>= 14.18.0'} @@ -2394,156 +2203,81 @@ snapshots: '@esbuild/aix-ppc64@0.25.10': optional: true - '@esbuild/aix-ppc64@0.25.4': - optional: true - '@esbuild/android-arm64@0.25.10': optional: true - '@esbuild/android-arm64@0.25.4': - optional: true - '@esbuild/android-arm@0.25.10': optional: true - '@esbuild/android-arm@0.25.4': - optional: true - '@esbuild/android-x64@0.25.10': optional: true - '@esbuild/android-x64@0.25.4': - optional: true - '@esbuild/darwin-arm64@0.25.10': optional: true - '@esbuild/darwin-arm64@0.25.4': - optional: true - '@esbuild/darwin-x64@0.25.10': optional: true - '@esbuild/darwin-x64@0.25.4': - optional: true - '@esbuild/freebsd-arm64@0.25.10': optional: true - '@esbuild/freebsd-arm64@0.25.4': - optional: true - '@esbuild/freebsd-x64@0.25.10': optional: true - '@esbuild/freebsd-x64@0.25.4': - optional: true - '@esbuild/linux-arm64@0.25.10': optional: true - '@esbuild/linux-arm64@0.25.4': - optional: true - '@esbuild/linux-arm@0.25.10': optional: true - '@esbuild/linux-arm@0.25.4': - optional: true - '@esbuild/linux-ia32@0.25.10': optional: true - '@esbuild/linux-ia32@0.25.4': - optional: true - '@esbuild/linux-loong64@0.25.10': optional: true - '@esbuild/linux-loong64@0.25.4': - optional: true - '@esbuild/linux-mips64el@0.25.10': optional: true - '@esbuild/linux-mips64el@0.25.4': - optional: true - '@esbuild/linux-ppc64@0.25.10': optional: true - '@esbuild/linux-ppc64@0.25.4': - optional: true - '@esbuild/linux-riscv64@0.25.10': optional: true - '@esbuild/linux-riscv64@0.25.4': - optional: true - '@esbuild/linux-s390x@0.25.10': optional: true - '@esbuild/linux-s390x@0.25.4': - optional: true - '@esbuild/linux-x64@0.25.10': optional: true - '@esbuild/linux-x64@0.25.4': - optional: true - '@esbuild/netbsd-arm64@0.25.10': optional: true - '@esbuild/netbsd-arm64@0.25.4': - optional: true - '@esbuild/netbsd-x64@0.25.10': optional: true - '@esbuild/netbsd-x64@0.25.4': - optional: true - '@esbuild/openbsd-arm64@0.25.10': optional: true - '@esbuild/openbsd-arm64@0.25.4': - optional: true - '@esbuild/openbsd-x64@0.25.10': optional: true - '@esbuild/openbsd-x64@0.25.4': - optional: true - '@esbuild/openharmony-arm64@0.25.10': optional: true '@esbuild/sunos-x64@0.25.10': optional: true - '@esbuild/sunos-x64@0.25.4': - optional: true - '@esbuild/win32-arm64@0.25.10': optional: true - '@esbuild/win32-arm64@0.25.4': - optional: true - '@esbuild/win32-ia32@0.25.10': optional: true - '@esbuild/win32-ia32@0.25.4': - optional: true - '@esbuild/win32-x64@0.25.10': optional: true - '@esbuild/win32-x64@0.25.4': - optional: true - '@exodus/schemasafe@1.3.0': optional: true @@ -3415,19 +3149,6 @@ snapshots: commander@7.2.0: {} - convex-svelte@0.0.11(convex@1.27.3(react@19.1.0))(svelte@5.39.6): - dependencies: - convex: 1.27.3(react@19.1.0) - svelte: 5.39.6 - - convex@1.27.3(react@19.1.0): - dependencies: - esbuild: 0.25.4 - jwt-decode: 4.0.0 - prettier: 3.6.2 - optionalDependencies: - react: 19.1.0 - cookie@0.6.0: {} core-js@3.45.1: {} @@ -3634,34 +3355,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.10 '@esbuild/win32-x64': 0.25.10 - esbuild@0.25.4: - optionalDependencies: - '@esbuild/aix-ppc64': 0.25.4 - '@esbuild/android-arm': 0.25.4 - '@esbuild/android-arm64': 0.25.4 - '@esbuild/android-x64': 0.25.4 - '@esbuild/darwin-arm64': 0.25.4 - '@esbuild/darwin-x64': 0.25.4 - '@esbuild/freebsd-arm64': 0.25.4 - '@esbuild/freebsd-x64': 0.25.4 - '@esbuild/linux-arm': 0.25.4 - '@esbuild/linux-arm64': 0.25.4 - '@esbuild/linux-ia32': 0.25.4 - '@esbuild/linux-loong64': 0.25.4 - '@esbuild/linux-mips64el': 0.25.4 - '@esbuild/linux-ppc64': 0.25.4 - '@esbuild/linux-riscv64': 0.25.4 - '@esbuild/linux-s390x': 0.25.4 - '@esbuild/linux-x64': 0.25.4 - '@esbuild/netbsd-arm64': 0.25.4 - '@esbuild/netbsd-x64': 0.25.4 - '@esbuild/openbsd-arm64': 0.25.4 - '@esbuild/openbsd-x64': 0.25.4 - '@esbuild/sunos-x64': 0.25.4 - '@esbuild/win32-arm64': 0.25.4 - '@esbuild/win32-ia32': 0.25.4 - '@esbuild/win32-x64': 0.25.4 - escalade@3.2.0: {} escape-string-regexp@4.0.0: {} @@ -3805,8 +3498,6 @@ snapshots: jwa: 1.4.2 safe-buffer: 5.2.1 - jwt-decode@4.0.0: {} - kleur@4.1.5: {} layerchart@2.0.0-next.40(svelte@5.39.6): @@ -4148,9 +3839,6 @@ snapshots: pure-rand@6.1.0: optional: true - react@19.1.0: - optional: true - readdirp@4.1.2: {} remove-accents@0.5.0: {} diff --git a/src/convex/_generated/api.d.ts b/src/convex/_generated/api.d.ts deleted file mode 100644 index bb9140bb..00000000 --- a/src/convex/_generated/api.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -/* eslint-disable */ -/** - * Generated `api` utility. - * - * THIS CODE IS AUTOMATICALLY GENERATED. - * - * To regenerate, run `npx convex dev`. - * @module - */ - -import type { - ApiFromModules, - FilterApi, - FunctionReference, -} from "convex/server"; -import type * as types from "../types.js"; - -/** - * A utility for referencing Convex functions in your app's API. - * - * Usage: - * ```js - * const myFunctionReference = api.myModule.myFunction; - * ``` - */ -declare const fullApi: ApiFromModules<{ - types: typeof types; -}>; -export declare const api: FilterApi< - typeof fullApi, - FunctionReference ->; -export declare const internal: FilterApi< - typeof fullApi, - FunctionReference ->; diff --git a/src/convex/_generated/api.js b/src/convex/_generated/api.js deleted file mode 100644 index 3f9c482d..00000000 --- a/src/convex/_generated/api.js +++ /dev/null @@ -1,22 +0,0 @@ -/* eslint-disable */ -/** - * Generated `api` utility. - * - * THIS CODE IS AUTOMATICALLY GENERATED. - * - * To regenerate, run `npx convex dev`. - * @module - */ - -import { anyApi } from "convex/server"; - -/** - * A utility for referencing Convex functions in your app's API. - * - * Usage: - * ```js - * const myFunctionReference = api.myModule.myFunction; - * ``` - */ -export const api = anyApi; -export const internal = anyApi; diff --git a/src/convex/_generated/dataModel.d.ts b/src/convex/_generated/dataModel.d.ts deleted file mode 100644 index 8541f319..00000000 --- a/src/convex/_generated/dataModel.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -/* eslint-disable */ -/** - * Generated data model types. - * - * THIS CODE IS AUTOMATICALLY GENERATED. - * - * To regenerate, run `npx convex dev`. - * @module - */ - -import type { - DataModelFromSchemaDefinition, - DocumentByName, - TableNamesInDataModel, - SystemTableNames, -} from "convex/server"; -import type { GenericId } from "convex/values"; -import schema from "../schema.js"; - -/** - * The names of all of your Convex tables. - */ -export type TableNames = TableNamesInDataModel; - -/** - * The type of a document stored in Convex. - * - * @typeParam TableName - A string literal type of the table name (like "users"). - */ -export type Doc = DocumentByName< - DataModel, - TableName ->; - -/** - * An identifier for a document in Convex. - * - * Convex documents are uniquely identified by their `Id`, which is accessible - * on the `_id` field. To learn more, see [Document IDs](https://docs.convex.dev/using/document-ids). - * - * Documents can be loaded using `db.get(id)` in query and mutation functions. - * - * IDs are just strings at runtime, but this type can be used to distinguish them from other - * strings when type checking. - * - * @typeParam TableName - A string literal type of the table name (like "users"). - */ -export type Id = - GenericId; - -/** - * A type describing your Convex data model. - * - * This type includes information about what tables you have, the type of - * documents stored in those tables, and the indexes defined on them. - * - * This type is used to parameterize methods like `queryGeneric` and - * `mutationGeneric` to make them type-safe. - */ -export type DataModel = DataModelFromSchemaDefinition; diff --git a/src/convex/_generated/server.d.ts b/src/convex/_generated/server.d.ts deleted file mode 100644 index 7f337a43..00000000 --- a/src/convex/_generated/server.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -/* eslint-disable */ -/** - * Generated utilities for implementing server-side Convex query and mutation functions. - * - * THIS CODE IS AUTOMATICALLY GENERATED. - * - * To regenerate, run `npx convex dev`. - * @module - */ - -import { - ActionBuilder, - HttpActionBuilder, - MutationBuilder, - QueryBuilder, - GenericActionCtx, - GenericMutationCtx, - GenericQueryCtx, - GenericDatabaseReader, - GenericDatabaseWriter, -} from "convex/server"; -import type { DataModel } from "./dataModel.js"; - -/** - * Define a query in this Convex app's public API. - * - * This function will be allowed to read your Convex database and will be accessible from the client. - * - * @param func - The query function. It receives a {@link QueryCtx} as its first argument. - * @returns The wrapped query. Include this as an `export` to name it and make it accessible. - */ -export declare const query: QueryBuilder; - -/** - * Define a query that is only accessible from other Convex functions (but not from the client). - * - * This function will be allowed to read from your Convex database. It will not be accessible from the client. - * - * @param func - The query function. It receives a {@link QueryCtx} as its first argument. - * @returns The wrapped query. Include this as an `export` to name it and make it accessible. - */ -export declare const internalQuery: QueryBuilder; - -/** - * Define a mutation in this Convex app's public API. - * - * This function will be allowed to modify your Convex database and will be accessible from the client. - * - * @param func - The mutation function. It receives a {@link MutationCtx} as its first argument. - * @returns The wrapped mutation. Include this as an `export` to name it and make it accessible. - */ -export declare const mutation: MutationBuilder; - -/** - * Define a mutation that is only accessible from other Convex functions (but not from the client). - * - * This function will be allowed to modify your Convex database. It will not be accessible from the client. - * - * @param func - The mutation function. It receives a {@link MutationCtx} as its first argument. - * @returns The wrapped mutation. Include this as an `export` to name it and make it accessible. - */ -export declare const internalMutation: MutationBuilder; - -/** - * Define an action in this Convex app's public API. - * - * An action is a function which can execute any JavaScript code, including non-deterministic - * code and code with side-effects, like calling third-party services. - * They can be run in Convex's JavaScript environment or in Node.js using the "use node" directive. - * They can interact with the database indirectly by calling queries and mutations using the {@link ActionCtx}. - * - * @param func - The action. It receives an {@link ActionCtx} as its first argument. - * @returns The wrapped action. Include this as an `export` to name it and make it accessible. - */ -export declare const action: ActionBuilder; - -/** - * Define an action that is only accessible from other Convex functions (but not from the client). - * - * @param func - The function. It receives an {@link ActionCtx} as its first argument. - * @returns The wrapped function. Include this as an `export` to name it and make it accessible. - */ -export declare const internalAction: ActionBuilder; - -/** - * Define an HTTP action. - * - * This function will be used to respond to HTTP requests received by a Convex - * deployment if the requests matches the path and method where this action - * is routed. Be sure to route your action in `convex/http.js`. - * - * @param func - The function. It receives an {@link ActionCtx} as its first argument. - * @returns The wrapped function. Import this function from `convex/http.js` and route it to hook it up. - */ -export declare const httpAction: HttpActionBuilder; - -/** - * A set of services for use within Convex query functions. - * - * The query context is passed as the first argument to any Convex query - * function run on the server. - * - * This differs from the {@link MutationCtx} because all of the services are - * read-only. - */ -export type QueryCtx = GenericQueryCtx; - -/** - * A set of services for use within Convex mutation functions. - * - * The mutation context is passed as the first argument to any Convex mutation - * function run on the server. - */ -export type MutationCtx = GenericMutationCtx; - -/** - * A set of services for use within Convex action functions. - * - * The action context is passed as the first argument to any Convex action - * function run on the server. - */ -export type ActionCtx = GenericActionCtx; - -/** - * An interface to read from the database within Convex query functions. - * - * The two entry points are {@link DatabaseReader.get}, which fetches a single - * document by its {@link Id}, or {@link DatabaseReader.query}, which starts - * building a query. - */ -export type DatabaseReader = GenericDatabaseReader; - -/** - * An interface to read from and write to the database within Convex mutation - * functions. - * - * Convex guarantees that all writes within a single mutation are - * executed atomically, so you never have to worry about partial writes leaving - * your data in an inconsistent state. See [the Convex Guide](https://docs.convex.dev/understanding/convex-fundamentals/functions#atomicity-and-optimistic-concurrency-control) - * for the guarantees Convex provides your functions. - */ -export type DatabaseWriter = GenericDatabaseWriter; diff --git a/src/convex/_generated/server.js b/src/convex/_generated/server.js deleted file mode 100644 index 566d4858..00000000 --- a/src/convex/_generated/server.js +++ /dev/null @@ -1,89 +0,0 @@ -/* eslint-disable */ -/** - * Generated utilities for implementing server-side Convex query and mutation functions. - * - * THIS CODE IS AUTOMATICALLY GENERATED. - * - * To regenerate, run `npx convex dev`. - * @module - */ - -import { - actionGeneric, - httpActionGeneric, - queryGeneric, - mutationGeneric, - internalActionGeneric, - internalMutationGeneric, - internalQueryGeneric, -} from "convex/server"; - -/** - * Define a query in this Convex app's public API. - * - * This function will be allowed to read your Convex database and will be accessible from the client. - * - * @param func - The query function. It receives a {@link QueryCtx} as its first argument. - * @returns The wrapped query. Include this as an `export` to name it and make it accessible. - */ -export const query = queryGeneric; - -/** - * Define a query that is only accessible from other Convex functions (but not from the client). - * - * This function will be allowed to read from your Convex database. It will not be accessible from the client. - * - * @param func - The query function. It receives a {@link QueryCtx} as its first argument. - * @returns The wrapped query. Include this as an `export` to name it and make it accessible. - */ -export const internalQuery = internalQueryGeneric; - -/** - * Define a mutation in this Convex app's public API. - * - * This function will be allowed to modify your Convex database and will be accessible from the client. - * - * @param func - The mutation function. It receives a {@link MutationCtx} as its first argument. - * @returns The wrapped mutation. Include this as an `export` to name it and make it accessible. - */ -export const mutation = mutationGeneric; - -/** - * Define a mutation that is only accessible from other Convex functions (but not from the client). - * - * This function will be allowed to modify your Convex database. It will not be accessible from the client. - * - * @param func - The mutation function. It receives a {@link MutationCtx} as its first argument. - * @returns The wrapped mutation. Include this as an `export` to name it and make it accessible. - */ -export const internalMutation = internalMutationGeneric; - -/** - * Define an action in this Convex app's public API. - * - * An action is a function which can execute any JavaScript code, including non-deterministic - * code and code with side-effects, like calling third-party services. - * They can be run in Convex's JavaScript environment or in Node.js using the "use node" directive. - * They can interact with the database indirectly by calling queries and mutations using the {@link ActionCtx}. - * - * @param func - The action. It receives an {@link ActionCtx} as its first argument. - * @returns The wrapped action. Include this as an `export` to name it and make it accessible. - */ -export const action = actionGeneric; - -/** - * Define an action that is only accessible from other Convex functions (but not from the client). - * - * @param func - The function. It receives an {@link ActionCtx} as its first argument. - * @returns The wrapped function. Include this as an `export` to name it and make it accessible. - */ -export const internalAction = internalActionGeneric; - -/** - * Define a Convex HTTP action. - * - * @param func - The function. It receives an {@link ActionCtx} as its first argument, and a `Request` object - * as its second. - * @returns The wrapped endpoint function. Route a URL path to this function in `convex/http.js`. - */ -export const httpAction = httpActionGeneric; diff --git a/src/convex/backups.ts b/src/convex/backups.ts deleted file mode 100644 index ca44bf71..00000000 --- a/src/convex/backups.ts +++ /dev/null @@ -1,68 +0,0 @@ -// import { v } from 'convex/values'; -// import { mutation, query } from './_generated/server'; -// import { getAndUpdateUser, getUser, verifyJwtAndGetPayload } from './utils'; - -// export const get = query({ -// args: { -// jwt: v.string() -// }, -// handler: async (ctx, args) => { -// const payload = await verifyJwtAndGetPayload(args.jwt); -// const userInfo = await getUser(ctx, payload); -// if (!userInfo) { -// return []; -// } -// const backups = await ctx.db -// .query('backup') -// .order('desc') -// .filter((q) => q.eq(q.field('user'), userInfo._id)) -// .collect(); -// return backups.map((backup) => ({ -// name: backup.name, -// data: backup.data, -// creationTime: backup._creationTime, -// id: backup._id -// })); -// } -// }); - -// export const create = mutation({ -// args: { -// jwt: v.string(), -// name: v.string(), -// data: v.string() -// }, -// handler: async (ctx, args) => { -// const payload = await verifyJwtAndGetPayload(args.jwt); -// if (!payload.sub) { -// throw new Error('Invalid JWT: missing subject'); -// } -// const userInfo = await getAndUpdateUser(ctx, payload); -// if (!userInfo?._id) { -// throw new Error('Something went wrong'); -// } -// await ctx.db.insert('backup', { -// user: userInfo?._id, -// name: args.name, -// data: args.data -// }); -// } -// }); - -// export const remove = mutation({ -// args: { -// jwt: v.string(), -// id: v.id('backup') -// }, -// handler: async (ctx, args) => { -// const payload = await verifyJwtAndGetPayload(args.jwt); -// const backup = await ctx.db.get(args.id); -// const userInfo = await getAndUpdateUser(ctx, payload); - -// if (backup?.user !== userInfo?._id) { -// throw new Error('Unauthorized'); -// } -// await getAndUpdateUser(ctx, payload); -// await ctx.db.delete(args.id); -// } -// }); diff --git a/src/convex/schema.ts b/src/convex/schema.ts deleted file mode 100644 index 5b2393db..00000000 --- a/src/convex/schema.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { defineSchema, defineTable } from 'convex/server'; -import { v } from 'convex/values'; - -export default defineSchema({ - comments: defineTable({ - body: v.string(), - gmaeid: v.string(), - user: v.string() - }), - backup: defineTable({ - name: v.string(), - data: v.string(), - user: v.string() - }) -}); diff --git a/src/convex/sync.ts b/src/convex/sync.ts deleted file mode 100644 index 2275b656..00000000 --- a/src/convex/sync.ts +++ /dev/null @@ -1,74 +0,0 @@ -// import { v } from 'convex/values'; -// import { mutation, query } from './_generated/server'; -// import { getAndUpdateUser, getUser, verifyJwtAndGetPayload } from './utils'; - -// export const get = query({ -// args: { -// jwt: v.string() -// }, -// handler: async (ctx, args) => { -// const payload = await verifyJwtAndGetPayload(args.jwt); -// const userInfo = await getUser(ctx, payload); -// if (!userInfo) { -// return null; -// } -// return { -// settings: userInfo.settings, -// favourites: userInfo.favourites, -// history: userInfo.history -// }; -// } -// }); - -// export const update = mutation({ -// args: { -// jwt: v.string(), -// settings: v.optional( -// v.object({ -// experimentalFeatures: v.boolean(), -// open: v.string(), -// theme: v.string(), -// panic: v.object({ -// enabled: v.boolean(), -// key: v.string(), -// url: v.string(), -// disableExperimentalMode: v.boolean() -// }), -// cloak: v.object({ -// mode: v.string(), -// name: v.string(), -// icon: v.string() -// }), -// history: v.boolean() -// }) -// ), -// favourites: v.optional(v.array(v.string())), -// history: v.optional(v.array(v.string())) -// }, -// handler: async (ctx, args) => { -// const payload = await verifyJwtAndGetPayload(args.jwt); -// if (!payload.sub) { -// throw new Error('Invalid JWT: missing subject'); -// } -// const userInfo = await getAndUpdateUser(ctx, payload); -// if (!userInfo?._id) { -// throw new Error('Something went wrong'); -// } - -// if (args.favourites) { -// await ctx.db.patch(userInfo._id, { -// favourites: args.favourites -// }); -// } -// if (args.history) { -// await ctx.db.patch(userInfo._id, { -// history: args.history -// }); -// } -// if (args.settings) { -// await ctx.db.patch(userInfo._id, { -// settings: args.settings -// }); -// } -// } -// }); diff --git a/src/convex/types.ts b/src/convex/types.ts deleted file mode 100644 index b6a5f8e1..00000000 --- a/src/convex/types.ts +++ /dev/null @@ -1,18 +0,0 @@ -export interface JWTPayload { - email: string; - avatar: string; - lastname: string; - username: string; - verified: boolean; - firstname: string; - azp: string; - exp: number; - fva: number[]; - iat: number; - iss: string; - nbf: number; - sid: string; - sub: string; - v: string; - fea: string; -} diff --git a/src/convex/utils.ts b/src/convex/utils.ts deleted file mode 100644 index 0cd95eca..00000000 --- a/src/convex/utils.ts +++ /dev/null @@ -1,69 +0,0 @@ -// import * as jose from 'jose'; -// import type { MutationCtx, QueryCtx } from './_generated/server'; -// import type { JwtPayload } from 'jsonwebtoken'; - -// // Shared helper function to verify JWT and return payload -// export async function verifyJwtAndGetPayload(jwt: string) { -// if (!process.env.CLERK_JWT_KEY) { -// throw new Error('Missing CLERK_JWT_KEY environment variable'); -// } -// const publicKey = await jose.importSPKI(process.env.CLERK_JWT_KEY, 'RS256'); -// if (jwt.length === 0) { -// throw new Error('Missing JWT'); -// } -// const { payload } = await jose.jwtVerify(jwt, publicKey, {}); -// if (!payload.sub) { -// throw new Error('Invalid JWT'); -// } -// return payload; -// } - -// export async function getUser(ctx: QueryCtx, payload: JwtPayload) { -// if (!payload.sub) { -// throw new Error('Invalid JWT'); -// } -// let user = await ctx.db -// .query('users') -// .withIndex('clerkid', (q) => q.eq('clerkId', payload.sub || '')) -// .first(); - -// if (!user) { -// return null; -// } - -// return user; -// } - -// export async function getAndUpdateUser(ctx: MutationCtx, payload: JwtPayload) { -// if (!payload.sub) { -// throw new Error('Invalid JWT'); -// } -// let user = await ctx.db -// .query('users') -// .withIndex('clerkid', (q) => q.eq('clerkId', payload.sub || '')) -// .first(); -// if (user) { -// await ctx.db.patch(user._id, { -// avatar: payload.avatar, -// email: payload.email, -// firstName: payload.firstname, -// lastName: payload.lastname, -// username: payload.username, -// verified: payload.verified, -// clerkId: payload.sub -// }); -// user = await ctx.db.get(user._id); -// } else { -// const userId = await ctx.db.insert('users', { -// avatar: payload.avatar, -// email: payload.email, -// firstName: payload.firstname, -// lastName: payload.firstname, -// username: payload.username, -// verified: payload.verified, -// clerkId: payload.sub -// }); -// user = await ctx.db.get(userId); -// } -// return user; -// } diff --git a/src/lib/components/providers.svelte b/src/lib/components/providers.svelte index 7fd418ea..515d93e4 100644 --- a/src/lib/components/providers.svelte +++ b/src/lib/components/providers.svelte @@ -1,21 +1,21 @@ diff --git a/src/lib/components/ui/sidebar/sidebar.svelte b/src/lib/components/ui/sidebar/sidebar.svelte index 4698f9e3..a567395b 100644 --- a/src/lib/components/ui/sidebar/sidebar.svelte +++ b/src/lib/components/ui/sidebar/sidebar.svelte @@ -68,7 +68,7 @@ + + +{#if $preferencesStore.experimentalFeatures} +
+

About

+ Coming soon +
+{:else} +
+ 404 + Not Found + +
+{/if} diff --git a/src/routes/backups/+page.svelte b/src/routes/backups/+page.svelte index c3ba5ae2..2b787d2a 100644 --- a/src/routes/backups/+page.svelte +++ b/src/routes/backups/+page.svelte @@ -3,8 +3,8 @@ import dayjs from 'dayjs'; - import { useConvexClient, useQuery } from 'convex-svelte'; - import { api } from '$lib/../convex/_generated/api.js'; + // import { useConvexClient, useQuery } from 'convex-svelte'; + // import { api } from '$lib/../convex/_generated/api.js'; import Button, { buttonVariants } from '$lib/components/ui/button/button.svelte'; import * as Card from '$lib/components/ui/card/index.js'; import Input from '$lib/components/ui/input/input.svelte'; @@ -18,6 +18,7 @@ import Info from '@lucide/svelte/icons/info'; import * as Alert from '$lib/components/ui/alert/index.js'; import posthog from 'posthog-js'; + import { preferencesStore } from '$lib/stores.js'; // let query = $state(useQuery(api.backups.get, { jwt: '' })); // const client = useConvexClient(); @@ -40,52 +41,53 @@ } -
-

Backups

- - - Loading - - +{#if $preferencesStore.experimentalFeatures} +
+

Backups

+ + + Loading + + - - Local Backup - - Export -
- - -
- Import -
- - -
-
-
+ + Local Backup + + Export +
+ + +
+ Import +
+ + +
+
+
- -
+
+{:else} +
+ 404 + Not Found + +
+{/if} diff --git a/src/routes/backups/backup.svelte b/src/routes/backups/backup.svelte index 00134be6..fe91c5b8 100644 --- a/src/routes/backups/backup.svelte +++ b/src/routes/backups/backup.svelte @@ -3,11 +3,11 @@ import * as Card from '$lib/components/ui/card/index.js'; import * as AlertDialog from '$lib/components/ui/alert-dialog/index.js'; import dayjs from 'dayjs'; - import { api } from '$lib/../convex/_generated/api.js'; + // import { api } from '$lib/../convex/_generated/api.js'; import clsx from 'clsx'; import { toast } from 'svelte-sonner'; - import type { ConvexClient } from 'convex/browser'; - import type { Id } from '../../convex/_generated/dataModel'; + // import type { ConvexClient } from 'convex/browser'; + // import type { Id } from '../../convex/_generated/dataModel'; import Trash from '@lucide/svelte/icons/trash'; import Clipboard from '@lucide/svelte/icons/clipboard'; import History from '@lucide/svelte/icons/history'; @@ -16,7 +16,7 @@ let { backup, - client, + // client, getToken, setLoading }: { @@ -24,9 +24,9 @@ name: string; data: string; creationTime: number; - id: Id<'backup'>; + // id: Id<'backup'>; }; - client: ConvexClient; + // client: ConvexClient; getToken: () => Promise; setLoading: (value: boolean) => void; } = $props(); diff --git a/src/routes/g/+page.svelte b/src/routes/g/+page.svelte index 565bbb92..8b3dee8e 100644 --- a/src/routes/g/+page.svelte +++ b/src/routes/g/+page.svelte @@ -2,6 +2,16 @@ import DataTable from './data-table.svelte'; import { columns } from './columns.js'; import { gmaes } from '$lib/gmaes'; + import { preferencesStore } from '$lib/stores.js'; + import Button from '$lib/components/ui/button/button.svelte'; - +{#if $preferencesStore.experimentalFeatures} + +{:else} +
+ 404 + Not Found + +
+{/if} diff --git a/src/routes/g/[id]/+page.svelte b/src/routes/g/[id]/+page.svelte index 9f282706..cd14809f 100644 --- a/src/routes/g/[id]/+page.svelte +++ b/src/routes/g/[id]/+page.svelte @@ -1,8 +1,18 @@ -{#key page.params.id} - -{/key} +{#if $preferencesStore.experimentalFeatures} + {#key page.params.id} + + {/key} +{:else} +
+ 404 + Not Found + +
+{/if} diff --git a/src/routes/g/columns.ts b/src/routes/g/columns.ts index 4357d806..b3261aad 100644 --- a/src/routes/g/columns.ts +++ b/src/routes/g/columns.ts @@ -2,7 +2,6 @@ import type { ColumnDef } from '@tanstack/table-core'; import type { ParsedGmae } from '$lib/gmaes'; import { renderComponent } from '$lib/components/ui/data-table/index.js'; import TableActions from './table-actions.svelte'; -import Link from './link.svelte'; import HeaderButtonSort from './header-button-sort.svelte'; export const columns: ColumnDef[] = [ @@ -21,12 +20,6 @@ export const columns: ColumnDef[] = [ content: 'Name', sort: true }), - cell: ({ row }) => { - return renderComponent(Link, { - children: row.original.name, - href: `/g/${row.original.id}` - }); - }, // @ts-ignore filterFn: 'fuzzy' }, diff --git a/src/routes/g/data-table.svelte b/src/routes/g/data-table.svelte index 26703e08..8308df41 100644 --- a/src/routes/g/data-table.svelte +++ b/src/routes/g/data-table.svelte @@ -16,6 +16,7 @@ import Checkbox from '$lib/components/ui/checkbox/checkbox.svelte'; import Label from '$lib/components/ui/label/label.svelte'; import Button from '$lib/components/ui/button/button.svelte'; + import { goto } from '$app/navigation'; type DataTableProps = { columns: ColumnDef[]; data: TData[]; @@ -133,7 +134,11 @@ {#each table.getRowModel().rows as row (row.id)} - + goto(`/g/${(row.original as { id: string }).id}`)} + class="cursor-pointer" + > {#each row.getVisibleCells() as cell (cell.id)} diff --git a/src/routes/g/link.svelte b/src/routes/g/link.svelte deleted file mode 100644 index d82dc8b4..00000000 --- a/src/routes/g/link.svelte +++ /dev/null @@ -1,5 +0,0 @@ - - -{children} diff --git a/src/routes/history/columns.ts b/src/routes/history/columns.ts index 4357d806..b3261aad 100644 --- a/src/routes/history/columns.ts +++ b/src/routes/history/columns.ts @@ -2,7 +2,6 @@ import type { ColumnDef } from '@tanstack/table-core'; import type { ParsedGmae } from '$lib/gmaes'; import { renderComponent } from '$lib/components/ui/data-table/index.js'; import TableActions from './table-actions.svelte'; -import Link from './link.svelte'; import HeaderButtonSort from './header-button-sort.svelte'; export const columns: ColumnDef[] = [ @@ -21,12 +20,6 @@ export const columns: ColumnDef[] = [ content: 'Name', sort: true }), - cell: ({ row }) => { - return renderComponent(Link, { - children: row.original.name, - href: `/g/${row.original.id}` - }); - }, // @ts-ignore filterFn: 'fuzzy' }, diff --git a/src/routes/history/data-table.svelte b/src/routes/history/data-table.svelte index e7cd7efd..9482ceaa 100644 --- a/src/routes/history/data-table.svelte +++ b/src/routes/history/data-table.svelte @@ -17,6 +17,7 @@ import Label from '$lib/components/ui/label/label.svelte'; import Button from '$lib/components/ui/button/button.svelte'; import { historyStore } from '$lib/stores'; + import { goto } from '$app/navigation'; type DataTableProps = { columns: ColumnDef[]; data: TData[]; @@ -136,7 +137,11 @@ {#each table.getRowModel().rows as row (row.id)} - + goto(`/g/${(row.original as { id: string }).id}`)} + class="cursor-pointer" + > {#each row.getVisibleCells() as cell (cell.id)} diff --git a/src/routes/history/link.svelte b/src/routes/history/link.svelte deleted file mode 100644 index d82dc8b4..00000000 --- a/src/routes/history/link.svelte +++ /dev/null @@ -1,5 +0,0 @@ - - -{children}