├── .env.example ├── .gitignore ├── .gitpod.yml ├── .npmrc ├── README.md ├── package-lock.json ├── package.json ├── src ├── app.css ├── app.html ├── global.d.ts ├── lib │ └── db.ts └── routes │ ├── __layout.svelte │ ├── index.svelte │ └── sign-in.svelte ├── static ├── favicon.ico └── robots.txt ├── svelte.config.js └── tsconfig.json /.env.example: -------------------------------------------------------------------------------- 1 | VITE_SUPABASE_URL=your-supabase-url 2 | VITE_SUPABASE_ANON_KEY=your-supabase-anon-key 3 | SUPABASE_PRIVATE_KEY=your-supabase-private-key 4 | SUPABASE_JWT_SECRET=your-supabase-jwt-secret 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /.svelte 4 | /.svelte-kit 5 | /build 6 | /functions 7 | .env 8 | -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | # 2 | # Learn more about this Gitpod configuration file in the documentation at https://www.gitpod.io/docs/configuration 3 | # 4 | ports: 5 | - port: 3000 6 | onOpen: open-preview 7 | 8 | # List the start up tasks. You can start them in parallel in multiple terminals. See https://www.gitpod.io/docs/config-start-tasks 9 | tasks: 10 | - init: npm install 11 | command: | 12 | ( 13 | RED='\033[0;31m' 14 | BOLD='\033[1;30m' 15 | NC='\033[0m' # No Color 16 | 17 | gp env | grep --quiet VITE_SUPABASE_URL 18 | if [ $? -eq 1 ] 19 | then 20 | printf "${RED}Missing environment variables for supabase.${NC}\n\n" 21 | printf "To configure them:\n\n1. run: ${BOLD}gp env -e VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key${NC}\n2. stop and re-start your workspace\n" 22 | else 23 | export HMR_HOST=`gp url 3000` 24 | npm run dev 25 | fi 26 | ) 27 | 28 | github: 29 | prebuilds: 30 | # enable for the master/default branch (defaults to true) 31 | master: true 32 | # enable for all branches in this repo (defaults to false) 33 | branches: true 34 | # enable for pull requests coming from this repo (defaults to true) 35 | pullRequests: true 36 | # enable for pull requests coming from forks (defaults to false) 37 | pullRequestsFromForks: true 38 | # add a check to pull requests (defaults to true) 39 | addCheck: true 40 | # add a "Review in Gitpod" button as a comment to pull requests (defaults to false) 41 | addComment: false 42 | # add a "Review in Gitpod" button to the pull request's description (defaults to false) 43 | addBadge: true 44 | # add a label once the prebuild is ready to pull requests (defaults to false) 45 | addLabel: false 46 | 47 | vscode: 48 | extensions: 49 | - svelte.svelte-vscode 50 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sveltekit + supabase + gitpod 2 | 3 | A [svelte-kit](https://kit.svelte.dev) project, with [supabase](https://supabase.io) and [gitpod](https://gitpod.io) configured. 4 | 5 | ## GitPod 6 | 7 | Open with GitPod: https://gitpod.io/#https://github.com/joshnuss/supabase-sveltekit-example 8 | 9 | ## Running locally 10 | 11 | Configure the database settings in the `.env` file: 12 | 13 | ```bash 14 | # copy example template 15 | cp .env.example .env 16 | ``` 17 | 18 | The values can be found in your [supabase](https://app.supabase.io) account, in the Settings / API page. 19 | 20 | ## Developing 21 | 22 | Once you've installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: 23 | 24 | ```bash 25 | npm run dev 26 | 27 | # or start the server and open the app in a new browser tab 28 | npm run dev -- --open 29 | ``` 30 | 31 | ## Building 32 | 33 | Svelte apps are built with _adapters_, which optimise your project for deployment to different environments. 34 | 35 | By default, `npm run build` will generate a Node app that you can run with `node build`. To use a different adapter, add it to the `devDependencies` in `package.json` making sure to specify the version as `next` and update your `svelte.config.cjs` to [specify your chosen adapter](https://kit.svelte.dev/docs#configuration-adapter). The following official adapters are available: 36 | 37 | - [@sveltejs/adapter-node](https://github.com/sveltejs/kit/tree/master/packages/adapter-node) 38 | - [@sveltejs/adapter-static](https://github.com/sveltejs/kit/tree/master/packages/adapter-static) 39 | - [@sveltejs/adapter-netlify](https://github.com/sveltejs/kit/tree/master/packages/adapter-netlify) 40 | - [@sveltejs/adapter-vercel](https://github.com/sveltejs/kit/tree/master/packages/adapter-vercel) 41 | - ...more soon 42 | 43 | [See the adapter documentation for more detail](https://kit.svelte.dev/docs#adapters) 44 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sveltekit-example", 3 | "version": "0.0.1", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "sveltekit-example", 9 | "version": "0.0.1", 10 | "devDependencies": { 11 | "@supabase/supabase-js": "^1.24.0", 12 | "@sveltejs/adapter-node": "next", 13 | "@sveltejs/kit": "next", 14 | "supabase-ui-svelte": "^0.1.1", 15 | "svelte": "^3.34.0", 16 | "svelte-preprocess": "^4.0.0", 17 | "tslib": "^2.0.0", 18 | "typescript": "^4.0.0" 19 | } 20 | }, 21 | "node_modules/@rollup/pluginutils": { 22 | "version": "4.1.0", 23 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", 24 | "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", 25 | "dev": true, 26 | "dependencies": { 27 | "estree-walker": "^2.0.1", 28 | "picomatch": "^2.2.2" 29 | }, 30 | "engines": { 31 | "node": ">= 8.0.0" 32 | }, 33 | "peerDependencies": { 34 | "rollup": "^1.20.0||^2.0.0" 35 | } 36 | }, 37 | "node_modules/@supabase/gotrue-js": { 38 | "version": "1.18.0", 39 | "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.18.0.tgz", 40 | "integrity": "sha512-kGKy6EkMwait89yUYQF7umUDCeOsnNZD/rrfRTDH5jVDwuudvrF/5Dw0mBMHh8lQdZDFaF6Q8bVHlD3vXguGdw==", 41 | "dev": true, 42 | "dependencies": { 43 | "cross-fetch": "^3.0.6" 44 | } 45 | }, 46 | "node_modules/@supabase/postgrest-js": { 47 | "version": "0.34.0", 48 | "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.34.0.tgz", 49 | "integrity": "sha512-5n0fljeojwNvRrvwCoZPcSYDADr3fEJtvpLW7T3f+g+Mxgg8C8gHmuXfhYg0vzC7Jm/ldEWoZY98bN/ZAQs4cA==", 50 | "dev": true, 51 | "dependencies": { 52 | "cross-fetch": "^3.0.6" 53 | } 54 | }, 55 | "node_modules/@supabase/realtime-js": { 56 | "version": "1.1.3", 57 | "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.1.3.tgz", 58 | "integrity": "sha512-zVquwxiv8xnjrh3n/WWbdsv6L39sq5vFBrlkKcRaJ/m9iT5HdLfa2hvCwmp0eaeExvDoJnaQ0u/gPBmTrq4xqw==", 59 | "dev": true, 60 | "dependencies": { 61 | "@types/websocket": "^1.0.3", 62 | "websocket": "^1.0.34" 63 | } 64 | }, 65 | "node_modules/@supabase/storage-js": { 66 | "version": "1.4.1", 67 | "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.4.1.tgz", 68 | "integrity": "sha512-sMhFbuiSPh31m5NPuEZmDVbOLe0QjvkOVXceGk0J1KtApz+3LOXf+BZLNG8Ss9djc8ZkT2HWgu/m8cunJm9Mig==", 69 | "dev": true, 70 | "dependencies": { 71 | "cross-fetch": "^3.1.0" 72 | } 73 | }, 74 | "node_modules/@supabase/supabase-js": { 75 | "version": "1.24.0", 76 | "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.24.0.tgz", 77 | "integrity": "sha512-/gM9+mSqmftHF8pzWzb+etQOvVSLT1cDrlvIL6LZSNrlv+ZRij8QAXnX9JGiUh0lNq046ZtrJThxys01P2TJSA==", 78 | "dev": true, 79 | "dependencies": { 80 | "@supabase/gotrue-js": "^1.18.0", 81 | "@supabase/postgrest-js": "^0.34.0", 82 | "@supabase/realtime-js": "^1.1.3", 83 | "@supabase/storage-js": "^1.4.0" 84 | } 85 | }, 86 | "node_modules/@sveltejs/adapter-node": { 87 | "version": "1.0.0-next.12", 88 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.12.tgz", 89 | "integrity": "sha512-DGP3dT5ijsTV0zmLDmZP8wI4RjZlifGGzA0y4HLoWNEKhZJLDjFDJnNcA+O5S9QBxQOVaYUlAY2z19r+skBVjA==", 90 | "dev": true 91 | }, 92 | "node_modules/@sveltejs/kit": { 93 | "version": "1.0.0-next.105", 94 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.105.tgz", 95 | "integrity": "sha512-bmo5OD5cLyxk1DWE0Boj6NOXI4CviE93WCcdTpLpAXi8l/JQIk38o/lCbtm+edmdYdEI+J6TuseU2zTa+bA6cg==", 96 | "dev": true, 97 | "dependencies": { 98 | "@sveltejs/vite-plugin-svelte": "^1.0.0-next.10", 99 | "cheap-watch": "^1.0.3", 100 | "sade": "^1.7.4", 101 | "vite": "^2.3.0" 102 | }, 103 | "bin": { 104 | "svelte-kit": "svelte-kit.js" 105 | }, 106 | "engines": { 107 | "node": ">= 12.17.0" 108 | }, 109 | "peerDependencies": { 110 | "svelte": "^3.38.2" 111 | } 112 | }, 113 | "node_modules/@sveltejs/vite-plugin-svelte": { 114 | "version": "1.0.0-next.10", 115 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.10.tgz", 116 | "integrity": "sha512-ImvxbhPePm2hWNTKBSA3LHAYGwiEjHjvvgfPLXm4R87sfZ+BMXql9jBmDpzUC/URBLT4BB3Jxos/i523qkJBHg==", 117 | "dev": true, 118 | "dependencies": { 119 | "@rollup/pluginutils": "^4.1.0", 120 | "chalk": "^4.1.1", 121 | "debug": "^4.3.2", 122 | "hash-sum": "^2.0.0", 123 | "require-relative": "^0.8.7", 124 | "slash": "^4.0.0", 125 | "source-map": "^0.7.3", 126 | "svelte-hmr": "^0.14.2" 127 | }, 128 | "engines": { 129 | "node": ">=12.0.0" 130 | }, 131 | "peerDependencies": { 132 | "svelte": "^3.37.0", 133 | "vite": "^2.2.3" 134 | } 135 | }, 136 | "node_modules/@types/node": { 137 | "version": "14.14.37", 138 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", 139 | "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", 140 | "dev": true 141 | }, 142 | "node_modules/@types/pug": { 143 | "version": "2.0.4", 144 | "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.4.tgz", 145 | "integrity": "sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=", 146 | "dev": true 147 | }, 148 | "node_modules/@types/sass": { 149 | "version": "1.16.0", 150 | "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.16.0.tgz", 151 | "integrity": "sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==", 152 | "dev": true, 153 | "dependencies": { 154 | "@types/node": "*" 155 | } 156 | }, 157 | "node_modules/@types/websocket": { 158 | "version": "1.0.4", 159 | "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz", 160 | "integrity": "sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==", 161 | "dev": true, 162 | "dependencies": { 163 | "@types/node": "*" 164 | } 165 | }, 166 | "node_modules/ansi-styles": { 167 | "version": "4.3.0", 168 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 169 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 170 | "dev": true, 171 | "dependencies": { 172 | "color-convert": "^2.0.1" 173 | }, 174 | "engines": { 175 | "node": ">=8" 176 | }, 177 | "funding": { 178 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 179 | } 180 | }, 181 | "node_modules/bufferutil": { 182 | "version": "4.0.4", 183 | "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.4.tgz", 184 | "integrity": "sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw==", 185 | "dev": true, 186 | "hasInstallScript": true, 187 | "dependencies": { 188 | "node-gyp-build": "^4.2.0" 189 | }, 190 | "engines": { 191 | "node": ">=6.14.2" 192 | } 193 | }, 194 | "node_modules/chalk": { 195 | "version": "4.1.1", 196 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", 197 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", 198 | "dev": true, 199 | "dependencies": { 200 | "ansi-styles": "^4.1.0", 201 | "supports-color": "^7.1.0" 202 | }, 203 | "engines": { 204 | "node": ">=10" 205 | }, 206 | "funding": { 207 | "url": "https://github.com/chalk/chalk?sponsor=1" 208 | } 209 | }, 210 | "node_modules/cheap-watch": { 211 | "version": "1.0.3", 212 | "resolved": "https://registry.npmjs.org/cheap-watch/-/cheap-watch-1.0.3.tgz", 213 | "integrity": "sha512-xC5CruMhLzjPwJ5ecUxGu1uGmwJQykUhqd2QrCrYbwvsFYdRyviu6jG9+pccwDXJR/OpmOTOJ9yLFunVgQu9wg==", 214 | "dev": true, 215 | "engines": { 216 | "node": ">=8" 217 | } 218 | }, 219 | "node_modules/color-convert": { 220 | "version": "2.0.1", 221 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 222 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 223 | "dev": true, 224 | "dependencies": { 225 | "color-name": "~1.1.4" 226 | }, 227 | "engines": { 228 | "node": ">=7.0.0" 229 | } 230 | }, 231 | "node_modules/color-name": { 232 | "version": "1.1.4", 233 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 234 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 235 | "dev": true 236 | }, 237 | "node_modules/cross-fetch": { 238 | "version": "3.1.4", 239 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", 240 | "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", 241 | "dev": true, 242 | "dependencies": { 243 | "node-fetch": "2.6.1" 244 | } 245 | }, 246 | "node_modules/d": { 247 | "version": "1.0.1", 248 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", 249 | "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", 250 | "dev": true, 251 | "dependencies": { 252 | "es5-ext": "^0.10.50", 253 | "type": "^1.0.1" 254 | } 255 | }, 256 | "node_modules/debug": { 257 | "version": "4.3.2", 258 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", 259 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", 260 | "dev": true, 261 | "dependencies": { 262 | "ms": "2.1.2" 263 | }, 264 | "engines": { 265 | "node": ">=6.0" 266 | }, 267 | "peerDependenciesMeta": { 268 | "supports-color": { 269 | "optional": true 270 | } 271 | } 272 | }, 273 | "node_modules/detect-indent": { 274 | "version": "6.0.0", 275 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", 276 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", 277 | "dev": true, 278 | "engines": { 279 | "node": ">=8" 280 | } 281 | }, 282 | "node_modules/es5-ext": { 283 | "version": "0.10.53", 284 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", 285 | "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", 286 | "dev": true, 287 | "dependencies": { 288 | "es6-iterator": "~2.0.3", 289 | "es6-symbol": "~3.1.3", 290 | "next-tick": "~1.0.0" 291 | } 292 | }, 293 | "node_modules/es6-iterator": { 294 | "version": "2.0.3", 295 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", 296 | "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", 297 | "dev": true, 298 | "dependencies": { 299 | "d": "1", 300 | "es5-ext": "^0.10.35", 301 | "es6-symbol": "^3.1.1" 302 | } 303 | }, 304 | "node_modules/es6-symbol": { 305 | "version": "3.1.3", 306 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", 307 | "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", 308 | "dev": true, 309 | "dependencies": { 310 | "d": "^1.0.1", 311 | "ext": "^1.1.2" 312 | } 313 | }, 314 | "node_modules/esbuild": { 315 | "version": "0.11.20", 316 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.20.tgz", 317 | "integrity": "sha512-QOZrVpN/Yz74xfat0H6euSgn3RnwLevY1mJTEXneukz1ln9qB+ieaerRMzSeETpz/UJWsBMzRVR/andBht5WKw==", 318 | "dev": true, 319 | "hasInstallScript": true, 320 | "bin": { 321 | "esbuild": "bin/esbuild" 322 | } 323 | }, 324 | "node_modules/estree-walker": { 325 | "version": "2.0.2", 326 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 327 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 328 | "dev": true 329 | }, 330 | "node_modules/ext": { 331 | "version": "1.6.0", 332 | "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", 333 | "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", 334 | "dev": true, 335 | "dependencies": { 336 | "type": "^2.5.0" 337 | } 338 | }, 339 | "node_modules/ext/node_modules/type": { 340 | "version": "2.5.0", 341 | "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", 342 | "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", 343 | "dev": true 344 | }, 345 | "node_modules/fsevents": { 346 | "version": "2.3.2", 347 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 348 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 349 | "dev": true, 350 | "optional": true, 351 | "os": [ 352 | "darwin" 353 | ], 354 | "engines": { 355 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 356 | } 357 | }, 358 | "node_modules/function-bind": { 359 | "version": "1.1.1", 360 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 361 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 362 | "dev": true 363 | }, 364 | "node_modules/has": { 365 | "version": "1.0.3", 366 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 367 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 368 | "dev": true, 369 | "dependencies": { 370 | "function-bind": "^1.1.1" 371 | }, 372 | "engines": { 373 | "node": ">= 0.4.0" 374 | } 375 | }, 376 | "node_modules/has-flag": { 377 | "version": "4.0.0", 378 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 379 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 380 | "dev": true, 381 | "engines": { 382 | "node": ">=8" 383 | } 384 | }, 385 | "node_modules/hash-sum": { 386 | "version": "2.0.0", 387 | "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", 388 | "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", 389 | "dev": true 390 | }, 391 | "node_modules/is-core-module": { 392 | "version": "2.2.0", 393 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 394 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 395 | "dev": true, 396 | "dependencies": { 397 | "has": "^1.0.3" 398 | } 399 | }, 400 | "node_modules/is-typedarray": { 401 | "version": "1.0.0", 402 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 403 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 404 | "dev": true 405 | }, 406 | "node_modules/min-indent": { 407 | "version": "1.0.1", 408 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 409 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 410 | "dev": true, 411 | "engines": { 412 | "node": ">=4" 413 | } 414 | }, 415 | "node_modules/mri": { 416 | "version": "1.1.6", 417 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", 418 | "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", 419 | "dev": true, 420 | "engines": { 421 | "node": ">=4" 422 | } 423 | }, 424 | "node_modules/ms": { 425 | "version": "2.1.2", 426 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 427 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 428 | "dev": true 429 | }, 430 | "node_modules/nanocolors": { 431 | "version": "0.2.12", 432 | "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz", 433 | "integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==", 434 | "dev": true 435 | }, 436 | "node_modules/nanoid": { 437 | "version": "3.1.28", 438 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz", 439 | "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==", 440 | "dev": true, 441 | "bin": { 442 | "nanoid": "bin/nanoid.cjs" 443 | }, 444 | "engines": { 445 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 446 | } 447 | }, 448 | "node_modules/next-tick": { 449 | "version": "1.0.0", 450 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", 451 | "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", 452 | "dev": true 453 | }, 454 | "node_modules/node-fetch": { 455 | "version": "2.6.1", 456 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 457 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", 458 | "dev": true, 459 | "engines": { 460 | "node": "4.x || >=6.0.0" 461 | } 462 | }, 463 | "node_modules/node-gyp-build": { 464 | "version": "4.3.0", 465 | "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", 466 | "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", 467 | "dev": true, 468 | "bin": { 469 | "node-gyp-build": "bin.js", 470 | "node-gyp-build-optional": "optional.js", 471 | "node-gyp-build-test": "build-test.js" 472 | } 473 | }, 474 | "node_modules/path-parse": { 475 | "version": "1.0.7", 476 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 477 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 478 | "dev": true 479 | }, 480 | "node_modules/picomatch": { 481 | "version": "2.2.3", 482 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", 483 | "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", 484 | "dev": true, 485 | "engines": { 486 | "node": ">=8.6" 487 | }, 488 | "funding": { 489 | "url": "https://github.com/sponsors/jonschlinkert" 490 | } 491 | }, 492 | "node_modules/postcss": { 493 | "version": "8.3.8", 494 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz", 495 | "integrity": "sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA==", 496 | "dev": true, 497 | "dependencies": { 498 | "nanocolors": "^0.2.2", 499 | "nanoid": "^3.1.25", 500 | "source-map-js": "^0.6.2" 501 | }, 502 | "engines": { 503 | "node": "^10 || ^12 || >=14" 504 | }, 505 | "funding": { 506 | "type": "opencollective", 507 | "url": "https://opencollective.com/postcss/" 508 | } 509 | }, 510 | "node_modules/require-relative": { 511 | "version": "0.8.7", 512 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 513 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", 514 | "dev": true 515 | }, 516 | "node_modules/resolve": { 517 | "version": "1.20.0", 518 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 519 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 520 | "dev": true, 521 | "dependencies": { 522 | "is-core-module": "^2.2.0", 523 | "path-parse": "^1.0.6" 524 | } 525 | }, 526 | "node_modules/rollup": { 527 | "version": "2.44.0", 528 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.44.0.tgz", 529 | "integrity": "sha512-rGSF4pLwvuaH/x4nAS+zP6UNn5YUDWf/TeEU5IoXSZKBbKRNTCI3qMnYXKZgrC0D2KzS2baiOZt1OlqhMu5rnQ==", 530 | "dev": true, 531 | "bin": { 532 | "rollup": "dist/bin/rollup" 533 | }, 534 | "engines": { 535 | "node": ">=10.0.0" 536 | }, 537 | "optionalDependencies": { 538 | "fsevents": "~2.3.1" 539 | } 540 | }, 541 | "node_modules/sade": { 542 | "version": "1.7.4", 543 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", 544 | "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", 545 | "dev": true, 546 | "dependencies": { 547 | "mri": "^1.1.0" 548 | }, 549 | "engines": { 550 | "node": ">= 6" 551 | } 552 | }, 553 | "node_modules/slash": { 554 | "version": "4.0.0", 555 | "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", 556 | "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", 557 | "dev": true, 558 | "engines": { 559 | "node": ">=12" 560 | }, 561 | "funding": { 562 | "url": "https://github.com/sponsors/sindresorhus" 563 | } 564 | }, 565 | "node_modules/source-map": { 566 | "version": "0.7.3", 567 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 568 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 569 | "dev": true, 570 | "engines": { 571 | "node": ">= 8" 572 | } 573 | }, 574 | "node_modules/source-map-js": { 575 | "version": "0.6.2", 576 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", 577 | "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", 578 | "dev": true, 579 | "engines": { 580 | "node": ">=0.10.0" 581 | } 582 | }, 583 | "node_modules/strip-indent": { 584 | "version": "3.0.0", 585 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 586 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 587 | "dev": true, 588 | "dependencies": { 589 | "min-indent": "^1.0.0" 590 | }, 591 | "engines": { 592 | "node": ">=8" 593 | } 594 | }, 595 | "node_modules/supabase-ui-svelte": { 596 | "version": "0.1.1", 597 | "resolved": "https://registry.npmjs.org/supabase-ui-svelte/-/supabase-ui-svelte-0.1.1.tgz", 598 | "integrity": "sha512-tDnkU2ma2C8gmwBTr476FFeckt1kHxOxParTfrHLFtOkb30MuBABQ6zAE8ytImF12v3VGuSSniOB9cAYKaSxJA==", 599 | "dev": true, 600 | "dependencies": { 601 | "svelte-feather-icons": "^3.3.0" 602 | } 603 | }, 604 | "node_modules/supports-color": { 605 | "version": "7.2.0", 606 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 607 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 608 | "dev": true, 609 | "dependencies": { 610 | "has-flag": "^4.0.0" 611 | }, 612 | "engines": { 613 | "node": ">=8" 614 | } 615 | }, 616 | "node_modules/svelte": { 617 | "version": "3.38.2", 618 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.38.2.tgz", 619 | "integrity": "sha512-q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg==", 620 | "dev": true, 621 | "engines": { 622 | "node": ">= 8" 623 | } 624 | }, 625 | "node_modules/svelte-feather-icons": { 626 | "version": "3.3.0", 627 | "resolved": "https://registry.npmjs.org/svelte-feather-icons/-/svelte-feather-icons-3.3.0.tgz", 628 | "integrity": "sha512-9zlgrWK34YXDjvYgvjHG0HFhol5FrapK0VEiZEUN0m2iUpifqMefLojBhAxB+zSh7lK3TohvIJBoqhFTZtgljA==", 629 | "dev": true 630 | }, 631 | "node_modules/svelte-hmr": { 632 | "version": "0.14.3", 633 | "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.3.tgz", 634 | "integrity": "sha512-N56xX405zLMw2tpGHKRx5h+kmdeZwxI21pvyC6OyBHJDCF6DlwWBm9TifdQmSD4dloWSmpDPzHWYa3CSjfopUg==", 635 | "dev": true, 636 | "peerDependencies": { 637 | "svelte": ">=3.19.0" 638 | } 639 | }, 640 | "node_modules/svelte-preprocess": { 641 | "version": "4.7.0", 642 | "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.7.0.tgz", 643 | "integrity": "sha512-iNrY4YGqi0LD2e6oT9YbdSzOKntxk8gmzfqso1z/lUJOZh4o6fyIqkirmiZ8/dDJFqtIE1spVgDFWgkfhLEYlw==", 644 | "dev": true, 645 | "dependencies": { 646 | "@types/pug": "^2.0.4", 647 | "@types/sass": "^1.16.0", 648 | "detect-indent": "^6.0.0", 649 | "strip-indent": "^3.0.0" 650 | }, 651 | "engines": { 652 | "node": ">= 9.11.2" 653 | } 654 | }, 655 | "node_modules/tslib": { 656 | "version": "2.2.0", 657 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", 658 | "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", 659 | "dev": true 660 | }, 661 | "node_modules/type": { 662 | "version": "1.2.0", 663 | "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", 664 | "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", 665 | "dev": true 666 | }, 667 | "node_modules/typedarray-to-buffer": { 668 | "version": "3.1.5", 669 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 670 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 671 | "dev": true, 672 | "dependencies": { 673 | "is-typedarray": "^1.0.0" 674 | } 675 | }, 676 | "node_modules/typescript": { 677 | "version": "4.2.3", 678 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", 679 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", 680 | "dev": true, 681 | "bin": { 682 | "tsc": "bin/tsc", 683 | "tsserver": "bin/tsserver" 684 | }, 685 | "engines": { 686 | "node": ">=4.2.0" 687 | } 688 | }, 689 | "node_modules/utf-8-validate": { 690 | "version": "5.0.6", 691 | "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.6.tgz", 692 | "integrity": "sha512-hoY0gOf9EkCw+nimK21FVKHUIG1BMqSiRwxB/q3A9yKZOrOI99PP77BxmarDqWz6rG3vVYiBWfhG8z2Tl+7fZA==", 693 | "dev": true, 694 | "hasInstallScript": true, 695 | "dependencies": { 696 | "node-gyp-build": "^4.2.0" 697 | }, 698 | "engines": { 699 | "node": ">=6.14.2" 700 | } 701 | }, 702 | "node_modules/vite": { 703 | "version": "2.3.0", 704 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.3.0.tgz", 705 | "integrity": "sha512-gsCy0t3X9nGGYDoNiE2NJgYq6BPxrtKeo6FkpMXdMvtUluYxnRhl7xfpHaYDmQLCnMbYTWhvWS1L/Hpw/V9L5w==", 706 | "dev": true, 707 | "dependencies": { 708 | "esbuild": "^0.11.19", 709 | "postcss": "^8.2.1", 710 | "resolve": "^1.19.0", 711 | "rollup": "^2.38.5" 712 | }, 713 | "bin": { 714 | "vite": "bin/vite.js" 715 | }, 716 | "engines": { 717 | "node": ">=12.0.0" 718 | }, 719 | "optionalDependencies": { 720 | "fsevents": "~2.3.1" 721 | } 722 | }, 723 | "node_modules/websocket": { 724 | "version": "1.0.34", 725 | "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", 726 | "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", 727 | "dev": true, 728 | "dependencies": { 729 | "bufferutil": "^4.0.1", 730 | "debug": "^2.2.0", 731 | "es5-ext": "^0.10.50", 732 | "typedarray-to-buffer": "^3.1.5", 733 | "utf-8-validate": "^5.0.2", 734 | "yaeti": "^0.0.6" 735 | }, 736 | "engines": { 737 | "node": ">=4.0.0" 738 | } 739 | }, 740 | "node_modules/websocket/node_modules/debug": { 741 | "version": "2.6.9", 742 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 743 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 744 | "dev": true, 745 | "dependencies": { 746 | "ms": "2.0.0" 747 | } 748 | }, 749 | "node_modules/websocket/node_modules/ms": { 750 | "version": "2.0.0", 751 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 752 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 753 | "dev": true 754 | }, 755 | "node_modules/yaeti": { 756 | "version": "0.0.6", 757 | "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", 758 | "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", 759 | "dev": true, 760 | "engines": { 761 | "node": ">=0.10.32" 762 | } 763 | } 764 | }, 765 | "dependencies": { 766 | "@rollup/pluginutils": { 767 | "version": "4.1.0", 768 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.1.0.tgz", 769 | "integrity": "sha512-TrBhfJkFxA+ER+ew2U2/fHbebhLT/l/2pRk0hfj9KusXUuRXd2v0R58AfaZK9VXDQ4TogOSEmICVrQAA3zFnHQ==", 770 | "dev": true, 771 | "requires": { 772 | "estree-walker": "^2.0.1", 773 | "picomatch": "^2.2.2" 774 | } 775 | }, 776 | "@supabase/gotrue-js": { 777 | "version": "1.18.0", 778 | "resolved": "https://registry.npmjs.org/@supabase/gotrue-js/-/gotrue-js-1.18.0.tgz", 779 | "integrity": "sha512-kGKy6EkMwait89yUYQF7umUDCeOsnNZD/rrfRTDH5jVDwuudvrF/5Dw0mBMHh8lQdZDFaF6Q8bVHlD3vXguGdw==", 780 | "dev": true, 781 | "requires": { 782 | "cross-fetch": "^3.0.6" 783 | } 784 | }, 785 | "@supabase/postgrest-js": { 786 | "version": "0.34.0", 787 | "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-0.34.0.tgz", 788 | "integrity": "sha512-5n0fljeojwNvRrvwCoZPcSYDADr3fEJtvpLW7T3f+g+Mxgg8C8gHmuXfhYg0vzC7Jm/ldEWoZY98bN/ZAQs4cA==", 789 | "dev": true, 790 | "requires": { 791 | "cross-fetch": "^3.0.6" 792 | } 793 | }, 794 | "@supabase/realtime-js": { 795 | "version": "1.1.3", 796 | "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-1.1.3.tgz", 797 | "integrity": "sha512-zVquwxiv8xnjrh3n/WWbdsv6L39sq5vFBrlkKcRaJ/m9iT5HdLfa2hvCwmp0eaeExvDoJnaQ0u/gPBmTrq4xqw==", 798 | "dev": true, 799 | "requires": { 800 | "@types/websocket": "^1.0.3", 801 | "websocket": "^1.0.34" 802 | } 803 | }, 804 | "@supabase/storage-js": { 805 | "version": "1.4.1", 806 | "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-1.4.1.tgz", 807 | "integrity": "sha512-sMhFbuiSPh31m5NPuEZmDVbOLe0QjvkOVXceGk0J1KtApz+3LOXf+BZLNG8Ss9djc8ZkT2HWgu/m8cunJm9Mig==", 808 | "dev": true, 809 | "requires": { 810 | "cross-fetch": "^3.1.0" 811 | } 812 | }, 813 | "@supabase/supabase-js": { 814 | "version": "1.24.0", 815 | "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-1.24.0.tgz", 816 | "integrity": "sha512-/gM9+mSqmftHF8pzWzb+etQOvVSLT1cDrlvIL6LZSNrlv+ZRij8QAXnX9JGiUh0lNq046ZtrJThxys01P2TJSA==", 817 | "dev": true, 818 | "requires": { 819 | "@supabase/gotrue-js": "^1.18.0", 820 | "@supabase/postgrest-js": "^0.34.0", 821 | "@supabase/realtime-js": "^1.1.3", 822 | "@supabase/storage-js": "^1.4.0" 823 | } 824 | }, 825 | "@sveltejs/adapter-node": { 826 | "version": "1.0.0-next.12", 827 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-1.0.0-next.12.tgz", 828 | "integrity": "sha512-DGP3dT5ijsTV0zmLDmZP8wI4RjZlifGGzA0y4HLoWNEKhZJLDjFDJnNcA+O5S9QBxQOVaYUlAY2z19r+skBVjA==", 829 | "dev": true 830 | }, 831 | "@sveltejs/kit": { 832 | "version": "1.0.0-next.105", 833 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.105.tgz", 834 | "integrity": "sha512-bmo5OD5cLyxk1DWE0Boj6NOXI4CviE93WCcdTpLpAXi8l/JQIk38o/lCbtm+edmdYdEI+J6TuseU2zTa+bA6cg==", 835 | "dev": true, 836 | "requires": { 837 | "@sveltejs/vite-plugin-svelte": "^1.0.0-next.10", 838 | "cheap-watch": "^1.0.3", 839 | "sade": "^1.7.4", 840 | "vite": "^2.3.0" 841 | } 842 | }, 843 | "@sveltejs/vite-plugin-svelte": { 844 | "version": "1.0.0-next.10", 845 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.10.tgz", 846 | "integrity": "sha512-ImvxbhPePm2hWNTKBSA3LHAYGwiEjHjvvgfPLXm4R87sfZ+BMXql9jBmDpzUC/URBLT4BB3Jxos/i523qkJBHg==", 847 | "dev": true, 848 | "requires": { 849 | "@rollup/pluginutils": "^4.1.0", 850 | "chalk": "^4.1.1", 851 | "debug": "^4.3.2", 852 | "hash-sum": "^2.0.0", 853 | "require-relative": "^0.8.7", 854 | "slash": "^4.0.0", 855 | "source-map": "^0.7.3", 856 | "svelte-hmr": "^0.14.2" 857 | } 858 | }, 859 | "@types/node": { 860 | "version": "14.14.37", 861 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", 862 | "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==", 863 | "dev": true 864 | }, 865 | "@types/pug": { 866 | "version": "2.0.4", 867 | "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.4.tgz", 868 | "integrity": "sha1-h3L80EGOPNLMFxVV1zAHQVBR9LI=", 869 | "dev": true 870 | }, 871 | "@types/sass": { 872 | "version": "1.16.0", 873 | "resolved": "https://registry.npmjs.org/@types/sass/-/sass-1.16.0.tgz", 874 | "integrity": "sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==", 875 | "dev": true, 876 | "requires": { 877 | "@types/node": "*" 878 | } 879 | }, 880 | "@types/websocket": { 881 | "version": "1.0.4", 882 | "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz", 883 | "integrity": "sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==", 884 | "dev": true, 885 | "requires": { 886 | "@types/node": "*" 887 | } 888 | }, 889 | "ansi-styles": { 890 | "version": "4.3.0", 891 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 892 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 893 | "dev": true, 894 | "requires": { 895 | "color-convert": "^2.0.1" 896 | } 897 | }, 898 | "bufferutil": { 899 | "version": "4.0.4", 900 | "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.4.tgz", 901 | "integrity": "sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw==", 902 | "dev": true, 903 | "requires": { 904 | "node-gyp-build": "^4.2.0" 905 | } 906 | }, 907 | "chalk": { 908 | "version": "4.1.1", 909 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", 910 | "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", 911 | "dev": true, 912 | "requires": { 913 | "ansi-styles": "^4.1.0", 914 | "supports-color": "^7.1.0" 915 | } 916 | }, 917 | "cheap-watch": { 918 | "version": "1.0.3", 919 | "resolved": "https://registry.npmjs.org/cheap-watch/-/cheap-watch-1.0.3.tgz", 920 | "integrity": "sha512-xC5CruMhLzjPwJ5ecUxGu1uGmwJQykUhqd2QrCrYbwvsFYdRyviu6jG9+pccwDXJR/OpmOTOJ9yLFunVgQu9wg==", 921 | "dev": true 922 | }, 923 | "color-convert": { 924 | "version": "2.0.1", 925 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 926 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 927 | "dev": true, 928 | "requires": { 929 | "color-name": "~1.1.4" 930 | } 931 | }, 932 | "color-name": { 933 | "version": "1.1.4", 934 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 935 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 936 | "dev": true 937 | }, 938 | "cross-fetch": { 939 | "version": "3.1.4", 940 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", 941 | "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", 942 | "dev": true, 943 | "requires": { 944 | "node-fetch": "2.6.1" 945 | } 946 | }, 947 | "d": { 948 | "version": "1.0.1", 949 | "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", 950 | "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", 951 | "dev": true, 952 | "requires": { 953 | "es5-ext": "^0.10.50", 954 | "type": "^1.0.1" 955 | } 956 | }, 957 | "debug": { 958 | "version": "4.3.2", 959 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", 960 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", 961 | "dev": true, 962 | "requires": { 963 | "ms": "2.1.2" 964 | } 965 | }, 966 | "detect-indent": { 967 | "version": "6.0.0", 968 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", 969 | "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", 970 | "dev": true 971 | }, 972 | "es5-ext": { 973 | "version": "0.10.53", 974 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", 975 | "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", 976 | "dev": true, 977 | "requires": { 978 | "es6-iterator": "~2.0.3", 979 | "es6-symbol": "~3.1.3", 980 | "next-tick": "~1.0.0" 981 | } 982 | }, 983 | "es6-iterator": { 984 | "version": "2.0.3", 985 | "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", 986 | "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", 987 | "dev": true, 988 | "requires": { 989 | "d": "1", 990 | "es5-ext": "^0.10.35", 991 | "es6-symbol": "^3.1.1" 992 | } 993 | }, 994 | "es6-symbol": { 995 | "version": "3.1.3", 996 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", 997 | "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", 998 | "dev": true, 999 | "requires": { 1000 | "d": "^1.0.1", 1001 | "ext": "^1.1.2" 1002 | } 1003 | }, 1004 | "esbuild": { 1005 | "version": "0.11.20", 1006 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.20.tgz", 1007 | "integrity": "sha512-QOZrVpN/Yz74xfat0H6euSgn3RnwLevY1mJTEXneukz1ln9qB+ieaerRMzSeETpz/UJWsBMzRVR/andBht5WKw==", 1008 | "dev": true 1009 | }, 1010 | "estree-walker": { 1011 | "version": "2.0.2", 1012 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 1013 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 1014 | "dev": true 1015 | }, 1016 | "ext": { 1017 | "version": "1.6.0", 1018 | "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", 1019 | "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", 1020 | "dev": true, 1021 | "requires": { 1022 | "type": "^2.5.0" 1023 | }, 1024 | "dependencies": { 1025 | "type": { 1026 | "version": "2.5.0", 1027 | "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", 1028 | "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", 1029 | "dev": true 1030 | } 1031 | } 1032 | }, 1033 | "fsevents": { 1034 | "version": "2.3.2", 1035 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 1036 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 1037 | "dev": true, 1038 | "optional": true 1039 | }, 1040 | "function-bind": { 1041 | "version": "1.1.1", 1042 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1043 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1044 | "dev": true 1045 | }, 1046 | "has": { 1047 | "version": "1.0.3", 1048 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 1049 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 1050 | "dev": true, 1051 | "requires": { 1052 | "function-bind": "^1.1.1" 1053 | } 1054 | }, 1055 | "has-flag": { 1056 | "version": "4.0.0", 1057 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1058 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1059 | "dev": true 1060 | }, 1061 | "hash-sum": { 1062 | "version": "2.0.0", 1063 | "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", 1064 | "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", 1065 | "dev": true 1066 | }, 1067 | "is-core-module": { 1068 | "version": "2.2.0", 1069 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 1070 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 1071 | "dev": true, 1072 | "requires": { 1073 | "has": "^1.0.3" 1074 | } 1075 | }, 1076 | "is-typedarray": { 1077 | "version": "1.0.0", 1078 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1079 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", 1080 | "dev": true 1081 | }, 1082 | "min-indent": { 1083 | "version": "1.0.1", 1084 | "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", 1085 | "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", 1086 | "dev": true 1087 | }, 1088 | "mri": { 1089 | "version": "1.1.6", 1090 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz", 1091 | "integrity": "sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==", 1092 | "dev": true 1093 | }, 1094 | "ms": { 1095 | "version": "2.1.2", 1096 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1097 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1098 | "dev": true 1099 | }, 1100 | "nanocolors": { 1101 | "version": "0.2.12", 1102 | "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.12.tgz", 1103 | "integrity": "sha512-SFNdALvzW+rVlzqexid6epYdt8H9Zol7xDoQarioEFcFN0JHo4CYNztAxmtfgGTVRCmFlEOqqhBpoFGKqSAMug==", 1104 | "dev": true 1105 | }, 1106 | "nanoid": { 1107 | "version": "3.1.28", 1108 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.28.tgz", 1109 | "integrity": "sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw==", 1110 | "dev": true 1111 | }, 1112 | "next-tick": { 1113 | "version": "1.0.0", 1114 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", 1115 | "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", 1116 | "dev": true 1117 | }, 1118 | "node-fetch": { 1119 | "version": "2.6.1", 1120 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 1121 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", 1122 | "dev": true 1123 | }, 1124 | "node-gyp-build": { 1125 | "version": "4.3.0", 1126 | "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", 1127 | "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", 1128 | "dev": true 1129 | }, 1130 | "path-parse": { 1131 | "version": "1.0.7", 1132 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 1133 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 1134 | "dev": true 1135 | }, 1136 | "picomatch": { 1137 | "version": "2.2.3", 1138 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", 1139 | "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", 1140 | "dev": true 1141 | }, 1142 | "postcss": { 1143 | "version": "8.3.8", 1144 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.8.tgz", 1145 | "integrity": "sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA==", 1146 | "dev": true, 1147 | "requires": { 1148 | "nanocolors": "^0.2.2", 1149 | "nanoid": "^3.1.25", 1150 | "source-map-js": "^0.6.2" 1151 | } 1152 | }, 1153 | "require-relative": { 1154 | "version": "0.8.7", 1155 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 1156 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", 1157 | "dev": true 1158 | }, 1159 | "resolve": { 1160 | "version": "1.20.0", 1161 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 1162 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 1163 | "dev": true, 1164 | "requires": { 1165 | "is-core-module": "^2.2.0", 1166 | "path-parse": "^1.0.6" 1167 | } 1168 | }, 1169 | "rollup": { 1170 | "version": "2.44.0", 1171 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.44.0.tgz", 1172 | "integrity": "sha512-rGSF4pLwvuaH/x4nAS+zP6UNn5YUDWf/TeEU5IoXSZKBbKRNTCI3qMnYXKZgrC0D2KzS2baiOZt1OlqhMu5rnQ==", 1173 | "dev": true, 1174 | "requires": { 1175 | "fsevents": "~2.3.1" 1176 | } 1177 | }, 1178 | "sade": { 1179 | "version": "1.7.4", 1180 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", 1181 | "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", 1182 | "dev": true, 1183 | "requires": { 1184 | "mri": "^1.1.0" 1185 | } 1186 | }, 1187 | "slash": { 1188 | "version": "4.0.0", 1189 | "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", 1190 | "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", 1191 | "dev": true 1192 | }, 1193 | "source-map": { 1194 | "version": "0.7.3", 1195 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 1196 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 1197 | "dev": true 1198 | }, 1199 | "source-map-js": { 1200 | "version": "0.6.2", 1201 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", 1202 | "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", 1203 | "dev": true 1204 | }, 1205 | "strip-indent": { 1206 | "version": "3.0.0", 1207 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", 1208 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", 1209 | "dev": true, 1210 | "requires": { 1211 | "min-indent": "^1.0.0" 1212 | } 1213 | }, 1214 | "supabase-ui-svelte": { 1215 | "version": "0.1.1", 1216 | "resolved": "https://registry.npmjs.org/supabase-ui-svelte/-/supabase-ui-svelte-0.1.1.tgz", 1217 | "integrity": "sha512-tDnkU2ma2C8gmwBTr476FFeckt1kHxOxParTfrHLFtOkb30MuBABQ6zAE8ytImF12v3VGuSSniOB9cAYKaSxJA==", 1218 | "dev": true, 1219 | "requires": { 1220 | "svelte-feather-icons": "^3.3.0" 1221 | } 1222 | }, 1223 | "supports-color": { 1224 | "version": "7.2.0", 1225 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1226 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1227 | "dev": true, 1228 | "requires": { 1229 | "has-flag": "^4.0.0" 1230 | } 1231 | }, 1232 | "svelte": { 1233 | "version": "3.38.2", 1234 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.38.2.tgz", 1235 | "integrity": "sha512-q5Dq0/QHh4BLJyEVWGe7Cej5NWs040LWjMbicBGZ+3qpFWJ1YObRmUDZKbbovddLC9WW7THTj3kYbTOFmU9fbg==", 1236 | "dev": true 1237 | }, 1238 | "svelte-feather-icons": { 1239 | "version": "3.3.0", 1240 | "resolved": "https://registry.npmjs.org/svelte-feather-icons/-/svelte-feather-icons-3.3.0.tgz", 1241 | "integrity": "sha512-9zlgrWK34YXDjvYgvjHG0HFhol5FrapK0VEiZEUN0m2iUpifqMefLojBhAxB+zSh7lK3TohvIJBoqhFTZtgljA==", 1242 | "dev": true 1243 | }, 1244 | "svelte-hmr": { 1245 | "version": "0.14.3", 1246 | "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.14.3.tgz", 1247 | "integrity": "sha512-N56xX405zLMw2tpGHKRx5h+kmdeZwxI21pvyC6OyBHJDCF6DlwWBm9TifdQmSD4dloWSmpDPzHWYa3CSjfopUg==", 1248 | "dev": true, 1249 | "requires": {} 1250 | }, 1251 | "svelte-preprocess": { 1252 | "version": "4.7.0", 1253 | "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-4.7.0.tgz", 1254 | "integrity": "sha512-iNrY4YGqi0LD2e6oT9YbdSzOKntxk8gmzfqso1z/lUJOZh4o6fyIqkirmiZ8/dDJFqtIE1spVgDFWgkfhLEYlw==", 1255 | "dev": true, 1256 | "requires": { 1257 | "@types/pug": "^2.0.4", 1258 | "@types/sass": "^1.16.0", 1259 | "detect-indent": "^6.0.0", 1260 | "strip-indent": "^3.0.0" 1261 | } 1262 | }, 1263 | "tslib": { 1264 | "version": "2.2.0", 1265 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", 1266 | "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", 1267 | "dev": true 1268 | }, 1269 | "type": { 1270 | "version": "1.2.0", 1271 | "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", 1272 | "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", 1273 | "dev": true 1274 | }, 1275 | "typedarray-to-buffer": { 1276 | "version": "3.1.5", 1277 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 1278 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 1279 | "dev": true, 1280 | "requires": { 1281 | "is-typedarray": "^1.0.0" 1282 | } 1283 | }, 1284 | "typescript": { 1285 | "version": "4.2.3", 1286 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz", 1287 | "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==", 1288 | "dev": true 1289 | }, 1290 | "utf-8-validate": { 1291 | "version": "5.0.6", 1292 | "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.6.tgz", 1293 | "integrity": "sha512-hoY0gOf9EkCw+nimK21FVKHUIG1BMqSiRwxB/q3A9yKZOrOI99PP77BxmarDqWz6rG3vVYiBWfhG8z2Tl+7fZA==", 1294 | "dev": true, 1295 | "requires": { 1296 | "node-gyp-build": "^4.2.0" 1297 | } 1298 | }, 1299 | "vite": { 1300 | "version": "2.3.0", 1301 | "resolved": "https://registry.npmjs.org/vite/-/vite-2.3.0.tgz", 1302 | "integrity": "sha512-gsCy0t3X9nGGYDoNiE2NJgYq6BPxrtKeo6FkpMXdMvtUluYxnRhl7xfpHaYDmQLCnMbYTWhvWS1L/Hpw/V9L5w==", 1303 | "dev": true, 1304 | "requires": { 1305 | "esbuild": "^0.11.19", 1306 | "fsevents": "~2.3.1", 1307 | "postcss": "^8.2.1", 1308 | "resolve": "^1.19.0", 1309 | "rollup": "^2.38.5" 1310 | } 1311 | }, 1312 | "websocket": { 1313 | "version": "1.0.34", 1314 | "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.34.tgz", 1315 | "integrity": "sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==", 1316 | "dev": true, 1317 | "requires": { 1318 | "bufferutil": "^4.0.1", 1319 | "debug": "^2.2.0", 1320 | "es5-ext": "^0.10.50", 1321 | "typedarray-to-buffer": "^3.1.5", 1322 | "utf-8-validate": "^5.0.2", 1323 | "yaeti": "^0.0.6" 1324 | }, 1325 | "dependencies": { 1326 | "debug": { 1327 | "version": "2.6.9", 1328 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 1329 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 1330 | "dev": true, 1331 | "requires": { 1332 | "ms": "2.0.0" 1333 | } 1334 | }, 1335 | "ms": { 1336 | "version": "2.0.0", 1337 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 1338 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 1339 | "dev": true 1340 | } 1341 | } 1342 | }, 1343 | "yaeti": { 1344 | "version": "0.0.6", 1345 | "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", 1346 | "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", 1347 | "dev": true 1348 | } 1349 | } 1350 | } 1351 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sveltekit-example", 3 | "version": "0.0.1", 4 | "scripts": { 5 | "dev": "svelte-kit dev", 6 | "build": "svelte-kit build", 7 | "start": "svelte-kit start" 8 | }, 9 | "devDependencies": { 10 | "@supabase/supabase-js": "^1.24.0", 11 | "@sveltejs/adapter-node": "next", 12 | "@sveltejs/kit": "next", 13 | "supabase-ui-svelte": "^0.1.1", 14 | "svelte": "^3.34.0", 15 | "svelte-preprocess": "^4.0.0", 16 | "tslib": "^2.0.0", 17 | "typescript": "^4.0.0" 18 | }, 19 | "type": "module" 20 | } 21 | -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 3 | 'Open Sans', 'Helvetica Neue', sans-serif; 4 | } 5 | -------------------------------------------------------------------------------- /src/app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | %svelte.head% 8 | 9 | 10 |
%svelte.body%
11 | 12 | 13 | -------------------------------------------------------------------------------- /src/global.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | -------------------------------------------------------------------------------- /src/lib/db.ts: -------------------------------------------------------------------------------- 1 | import { createClient } from '@supabase/supabase-js' 2 | import { readable } from 'svelte/store' 3 | 4 | export const supabase = createClient( 5 | import.meta.env.VITE_SUPABASE_URL, 6 | import.meta.env.VITE_SUPABASE_ANON_KEY 7 | ) 8 | 9 | export const user = readable(supabase.auth.user(), set => { 10 | supabase.auth.onAuthStateChange((event, session) => { 11 | if (event == 'SIGNED_OUT') { 12 | set(null) 13 | } 14 | }) 15 | }) 16 | 17 | export const auth = supabase.auth 18 | 19 | // TODO: add your queries/inserts/updates/deletes here 20 | export const products = { 21 | async all() { 22 | const { data } = await supabase 23 | .from('products') 24 | .select('*') 25 | 26 | return data 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/routes/__layout.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/routes/index.svelte: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | 19 |
20 |

There are {products.length} products.

21 | 22 | {#if $user} 23 |

You are signed in as {$user.email}

24 | 25 | {:else} 26 | 29 | {/if} 30 |
31 | -------------------------------------------------------------------------------- /src/routes/sign-in.svelte: -------------------------------------------------------------------------------- 1 | 5 | 6 |
7 |

Sign in

8 | 9 | 10 |
11 | 12 | 20 | -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/supabase-community/supabase-sveltekit-example/58ee3759a3abdb66f0c805ee725ba008b5e3562c/static/favicon.ico -------------------------------------------------------------------------------- /static/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /svelte.config.js: -------------------------------------------------------------------------------- 1 | import sveltePreprocess from 'svelte-preprocess'; 2 | import node from '@sveltejs/adapter-node'; 3 | 4 | /** @type {import('@sveltejs/kit').Config} */ 5 | export default { 6 | // Consult https://github.com/sveltejs/svelte-preprocess 7 | // for more information about preprocessors 8 | preprocess: sveltePreprocess(), 9 | kit: { 10 | // By default, `npm run build` will create a standard Node app. 11 | // You can create optimized builds for different platforms by 12 | // specifying a different adapter 13 | adapter: node(), 14 | 15 | // hydrate the
element in src/app.html 16 | target: '#svelte', 17 | 18 | vite: { 19 | server: { 20 | hmr: { 21 | clientPort: process.env.HMR_HOST ? 443 : 24678, 22 | host: process.env.HMR_HOST ? process.env.HMR_HOST.substring("https://".length) : "localhost" 23 | } 24 | } 25 | } 26 | } 27 | }; 28 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "moduleResolution": "node", 4 | "module": "es2020", 5 | "lib": ["es2020"], 6 | "target": "es2019", 7 | /** 8 | svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript 9 | to enforce using \`import type\` instead of \`import\` for Types. 10 | */ 11 | "importsNotUsedAsValues": "error", 12 | "isolatedModules": true, 13 | "resolveJsonModule": true, 14 | /** 15 | To have warnings/errors of the Svelte compiler at the correct position, 16 | enable source maps by default. 17 | */ 18 | "sourceMap": true, 19 | "esModuleInterop": true, 20 | "skipLibCheck": true, 21 | "forceConsistentCasingInFileNames": true, 22 | "baseUrl": ".", 23 | "allowJs": true, 24 | "checkJs": true, 25 | "paths": { 26 | "$app/*": [".svelte/dev/runtime/app/*", ".svelte/build/runtime/app/*"], 27 | "$service-worker": [".svelte/build/runtime/service-worker"], 28 | "$lib/*": ["src/lib/*"] 29 | } 30 | }, 31 | "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.svelte"] 32 | } 33 | --------------------------------------------------------------------------------