Superpowered to do lists. No signup required.

Compare changes

Choose any two refs to compare.

-1
.npmrc
··· 1 - engine-strict=true
+4 -1
README.md
··· 1 1 # easytodo.link 2 2 3 - Do stuff the easy way. Explore what everyone's doing. No signup needed. 3 + Superpowered to do lists. No signup required. 4 4 5 5 ## Roadmap 6 6 7 7 ### v0.1: ๐Ÿ“ Basic functionality 8 8 - [x] Local first task list management 9 + - [x] Timer per task 9 10 10 11 ### v0.2: ๐ŸŒ Show and tell 11 12 - [ ] Cloud sync with accounts 12 13 - [ ] Share and explore public lists 14 + - [ ] Multiplayer Lists (1-way mirror/sync) 13 15 14 16 ### v0.3: โœจ Work smarter 15 17 - [ ] AI task suggestions 18 + - [ ] Task blocks (notes, embeds, links, etc.) 16 19 17 20 ## Made with 18 21
+539
bun.lock
··· 1 + { 2 + "lockfileVersion": 1, 3 + "workspaces": { 4 + "": { 5 + "name": "easytodo.link", 6 + "dependencies": { 7 + "@atproto/api": "latest", 8 + "@atproto/oauth-client-node": "latest", 9 + "@oslojs/encoding": "latest", 10 + "@tailwindcss/vite": "latest", 11 + "drizzle-orm": "latest", 12 + "oslo": "latest", 13 + "postgres": "latest", 14 + "svelte-french-toast": "latest", 15 + "tailwindcss": "latest", 16 + }, 17 + "devDependencies": { 18 + "@sveltejs/adapter-netlify": "latest", 19 + "@sveltejs/kit": "latest", 20 + "@sveltejs/vite-plugin-svelte": "latest", 21 + "drizzle-kit": "latest", 22 + "svelte": "latest", 23 + "svelte-check": "latest", 24 + "tslib": "latest", 25 + "typescript": "latest", 26 + "vite": "latest", 27 + }, 28 + }, 29 + }, 30 + "packages": { 31 + "@atproto-labs/did-resolver": ["@atproto-labs/did-resolver@0.2.1", "", { "dependencies": { "@atproto-labs/fetch": "0.2.3", "@atproto-labs/pipe": "0.1.1", "@atproto-labs/simple-store": "0.3.0", "@atproto-labs/simple-store-memory": "0.1.4", "@atproto/did": "0.2.0", "zod": "^3.23.8" } }, "sha512-zSoHyqwwRYUtMNLW+RrWsImt1U5S47nJv5FfmAXTmon6wVKjxKD/PFrD1pg/4G6THqJmQHTs1Hj+54XVupYnvQ=="], 32 + 33 + "@atproto-labs/fetch": ["@atproto-labs/fetch@0.2.3", "", { "dependencies": { "@atproto-labs/pipe": "0.1.1" } }, "sha512-NZtbJOCbxKUFRFKMpamT38PUQMY0hX0p7TG5AEYOPhZKZEP7dHZ1K2s1aB8MdVH0qxmqX7nQleNrrvLf09Zfdw=="], 34 + 35 + "@atproto-labs/fetch-node": ["@atproto-labs/fetch-node@0.1.10", "", { "dependencies": { "@atproto-labs/fetch": "0.2.3", "@atproto-labs/pipe": "0.1.1", "ipaddr.js": "^2.1.0", "undici": "^6.14.1" } }, "sha512-o7hGaonA71A6p7O107VhM6UBUN/g9tTyYohMp1q0Kf6xQ4npnuZYRSHSf2g6reSfGQJ1GoFNjBObETTT1ge/jQ=="], 36 + 37 + "@atproto-labs/handle-resolver": ["@atproto-labs/handle-resolver@0.3.1", "", { "dependencies": { "@atproto-labs/simple-store": "0.3.0", "@atproto-labs/simple-store-memory": "0.1.4", "@atproto/did": "0.2.0", "zod": "^3.23.8" } }, "sha512-mLZdMNvwomgnn9sffKO1/xr02ctgeiT0FUVw7JekbchTckub2RM7qMu8Rw1mC4bpCpW+i7DXDiOxpoajkppwYQ=="], 38 + 39 + "@atproto-labs/handle-resolver-node": ["@atproto-labs/handle-resolver-node@0.1.19", "", { "dependencies": { "@atproto-labs/fetch-node": "0.1.10", "@atproto-labs/handle-resolver": "0.3.1", "@atproto/did": "0.2.0" } }, "sha512-nNVCfiKudvMYfDcWCa9koOMOpCYaC0wG4Uys5dZev99s/Nka7tRlIZIV+u+GWivnG9lqCupKATkoyCd6Per8Gw=="], 40 + 41 + "@atproto-labs/identity-resolver": ["@atproto-labs/identity-resolver@0.3.1", "", { "dependencies": { "@atproto-labs/did-resolver": "0.2.1", "@atproto-labs/handle-resolver": "0.3.1" } }, "sha512-jCgotRRqPykPwh4gh0FBLOqeofv1G8OH/DZ5s88HWm7biUZeksZwDrEvL5TnqEFUpXT3O9Hcyp/XEpfCAplRoQ=="], 42 + 43 + "@atproto-labs/pipe": ["@atproto-labs/pipe@0.1.1", "", {}, "sha512-hdNw2oUs2B6BN1lp+32pF7cp8EMKuIN5Qok2Vvv/aOpG/3tNSJ9YkvfI0k6Zd188LeDDYRUpYpxcoFIcGH/FNg=="], 44 + 45 + "@atproto-labs/simple-store": ["@atproto-labs/simple-store@0.3.0", "", {}, "sha512-nOb6ONKBRJHRlukW1sVawUkBqReLlLx6hT35VS3imaNPwiXDxLnTK7lxw3Lrl9k5yugSBDQAkZAq3MPTEFSUBQ=="], 46 + 47 + "@atproto-labs/simple-store-memory": ["@atproto-labs/simple-store-memory@0.1.4", "", { "dependencies": { "@atproto-labs/simple-store": "0.3.0", "lru-cache": "^10.2.0" } }, "sha512-3mKY4dP8I7yKPFj9VKpYyCRzGJOi5CEpOLPlRhoJyLmgs3J4RzDrjn323Oakjz2Aj2JzRU/AIvWRAZVhpYNJHw=="], 48 + 49 + "@atproto/api": ["@atproto/api@0.17.0", "", { "dependencies": { "@atproto/common-web": "^0.4.3", "@atproto/lexicon": "^0.5.1", "@atproto/syntax": "^0.4.1", "@atproto/xrpc": "^0.7.5", "await-lock": "^2.2.2", "multiformats": "^9.9.0", "tlds": "^1.234.0", "zod": "^3.23.8" } }, "sha512-FNS9SW7/3kslAnJH7F4fO9/jPjXzC0NMD6u9NjJ/h4EnaIEpWHZQPkmD9Q2hvAwD6+Uo2boYZEPKkOa55Lr5Dg=="], 50 + 51 + "@atproto/common-web": ["@atproto/common-web@0.4.3", "", { "dependencies": { "graphemer": "^1.4.0", "multiformats": "^9.9.0", "uint8arrays": "3.0.0", "zod": "^3.23.8" } }, "sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg=="], 52 + 53 + "@atproto/did": ["@atproto/did@0.2.0", "", { "dependencies": { "zod": "^3.23.8" } }, "sha512-BskT39KYbwY1DUsWekkHh47xS+wvJpFq5F9acsicNfYniinyAMnNTzGKQEhnjQuG7K0qQItg/SnmC+y0tJXV7Q=="], 54 + 55 + "@atproto/jwk": ["@atproto/jwk@0.5.0", "", { "dependencies": { "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-Qi2NtEqhkG+uz3CKia4+H05WMV/z//dz3ESo5+cyBKrOnxVTJ5ZubMyltWjoYvy6v/jLhorXdDWcjn07yky7MQ=="], 56 + 57 + "@atproto/jwk-jose": ["@atproto/jwk-jose@0.1.10", "", { "dependencies": { "@atproto/jwk": "0.5.0", "jose": "^5.2.0" } }, "sha512-Eiu/u4tZHz3IIhHZt0zneYEffSAO3Oqk/ToKwlu1TqKte6sjtPs/4uquSiAAGFYozqgo92JC/AQclWzzkHI5QQ=="], 58 + 59 + "@atproto/jwk-webcrypto": ["@atproto/jwk-webcrypto@0.1.10", "", { "dependencies": { "@atproto/jwk": "0.5.0", "@atproto/jwk-jose": "0.1.10", "zod": "^3.23.8" } }, "sha512-JZsavs6JiSmw5rgcjkGDwzr1aCJGdybZOjVfYH+m9sXRU1BrUCA30uwNfZY7eFyWXyRAnCFiYiGVZgypXyKotw=="], 60 + 61 + "@atproto/lexicon": ["@atproto/lexicon@0.5.1", "", { "dependencies": { "@atproto/common-web": "^0.4.3", "@atproto/syntax": "^0.4.1", "iso-datestring-validator": "^2.2.2", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-y8AEtYmfgVl4fqFxqXAeGvhesiGkxiy3CWoJIfsFDDdTlZUC8DFnZrYhcqkIop3OlCkkljvpSJi1hbeC1tbi8A=="], 62 + 63 + "@atproto/oauth-client": ["@atproto/oauth-client@0.5.6", "", { "dependencies": { "@atproto-labs/did-resolver": "0.2.1", "@atproto-labs/fetch": "0.2.3", "@atproto-labs/handle-resolver": "0.3.1", "@atproto-labs/identity-resolver": "0.3.1", "@atproto-labs/simple-store": "0.3.0", "@atproto-labs/simple-store-memory": "0.1.4", "@atproto/did": "0.2.0", "@atproto/jwk": "0.5.0", "@atproto/oauth-types": "0.4.1", "@atproto/xrpc": "0.7.5", "multiformats": "^9.9.0", "zod": "^3.23.8" } }, "sha512-O1S9lPptJxWPcNd2kODaLgWntz+A7PzskU2hP4IFa7hVLs4aEnEt9dKq5wJE97tDli8mgyh/ndPQhxUaCVQ5iQ=="], 64 + 65 + "@atproto/oauth-client-node": ["@atproto/oauth-client-node@0.3.8", "", { "dependencies": { "@atproto-labs/did-resolver": "0.2.1", "@atproto-labs/handle-resolver-node": "0.1.19", "@atproto-labs/simple-store": "0.3.0", "@atproto/did": "0.2.0", "@atproto/jwk": "0.5.0", "@atproto/jwk-jose": "0.1.10", "@atproto/jwk-webcrypto": "0.1.10", "@atproto/oauth-client": "0.5.6", "@atproto/oauth-types": "0.4.1" } }, "sha512-HIBiYQERj04Xa0l8cJkqcZC0BbHH5uqDEvhqHWnJ5umSq/ms0+HZi3JKJXGv1XfYOvxUxx6NKgXJ8VhhYoQa5A=="], 66 + 67 + "@atproto/oauth-types": ["@atproto/oauth-types@0.4.1", "", { "dependencies": { "@atproto/jwk": "0.5.0", "zod": "^3.23.8" } }, "sha512-c5ixf2ZOzcltOu1fDBnO/tok6Wj7JDDK66+Z0q/+bAr8LXgOnxP7zQfJ+DD4gTkB+saTqsqWtVv8qvx/IEtm1g=="], 68 + 69 + "@atproto/syntax": ["@atproto/syntax@0.4.1", "", {}, "sha512-CJdImtLAiFO+0z3BWTtxwk6aY5w4t8orHTMVJgkf++QRJWTxPbIFko/0hrkADB7n2EruDxDSeAgfUGehpH6ngw=="], 70 + 71 + "@atproto/xrpc": ["@atproto/xrpc@0.7.5", "", { "dependencies": { "@atproto/lexicon": "^0.5.1", "zod": "^3.23.8" } }, "sha512-MUYNn5d2hv8yVegRL0ccHvTHAVj5JSnW07bkbiaz96UH45lvYNRVwt44z+yYVnb0/mvBzyD3/ZQ55TRGt7fHkA=="], 72 + 73 + "@drizzle-team/brocli": ["@drizzle-team/brocli@0.10.2", "", {}, "sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w=="], 74 + 75 + "@emnapi/core": ["@emnapi/core@0.45.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw=="], 76 + 77 + "@emnapi/runtime": ["@emnapi/runtime@0.45.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w=="], 78 + 79 + "@esbuild-kit/core-utils": ["@esbuild-kit/core-utils@3.3.2", "", { "dependencies": { "esbuild": "~0.18.20", "source-map-support": "^0.5.21" } }, "sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ=="], 80 + 81 + "@esbuild-kit/esm-loader": ["@esbuild-kit/esm-loader@2.6.5", "", { "dependencies": { "@esbuild-kit/core-utils": "^3.3.2", "get-tsconfig": "^4.7.0" } }, "sha512-FxEMIkJKnodyA1OaCUoEvbYRkoZlLZ4d/eXFu9Fh8CbBBgP5EmZxrfTRyN0qpXZ4vOvqnE5YdRdcrmUUXuU+dA=="], 82 + 83 + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.10", "", { "os": "aix", "cpu": "ppc64" }, "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw=="], 84 + 85 + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.10", "", { "os": "android", "cpu": "arm" }, "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w=="], 86 + 87 + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.10", "", { "os": "android", "cpu": "arm64" }, "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg=="], 88 + 89 + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.10", "", { "os": "android", "cpu": "x64" }, "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg=="], 90 + 91 + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.10", "", { "os": "darwin", "cpu": "arm64" }, "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA=="], 92 + 93 + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.10", "", { "os": "darwin", "cpu": "x64" }, "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg=="], 94 + 95 + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.10", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg=="], 96 + 97 + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.10", "", { "os": "freebsd", "cpu": "x64" }, "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA=="], 98 + 99 + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.10", "", { "os": "linux", "cpu": "arm" }, "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg=="], 100 + 101 + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.10", "", { "os": "linux", "cpu": "arm64" }, "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ=="], 102 + 103 + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.10", "", { "os": "linux", "cpu": "ia32" }, "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ=="], 104 + 105 + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.10", "", { "os": "linux", "cpu": "none" }, "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg=="], 106 + 107 + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.10", "", { "os": "linux", "cpu": "none" }, "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA=="], 108 + 109 + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.10", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA=="], 110 + 111 + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.10", "", { "os": "linux", "cpu": "none" }, "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA=="], 112 + 113 + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.10", "", { "os": "linux", "cpu": "s390x" }, "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew=="], 114 + 115 + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.10", "", { "os": "linux", "cpu": "x64" }, "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA=="], 116 + 117 + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.10", "", { "os": "none", "cpu": "arm64" }, "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A=="], 118 + 119 + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.10", "", { "os": "none", "cpu": "x64" }, "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig=="], 120 + 121 + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.10", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw=="], 122 + 123 + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.10", "", { "os": "openbsd", "cpu": "x64" }, "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw=="], 124 + 125 + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.10", "", { "os": "none", "cpu": "arm64" }, "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag=="], 126 + 127 + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.10", "", { "os": "sunos", "cpu": "x64" }, "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ=="], 128 + 129 + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.10", "", { "os": "win32", "cpu": "arm64" }, "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw=="], 130 + 131 + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.10", "", { "os": "win32", "cpu": "ia32" }, "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw=="], 132 + 133 + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.10", "", { "os": "win32", "cpu": "x64" }, "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw=="], 134 + 135 + "@iarna/toml": ["@iarna/toml@2.2.5", "", {}, "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg=="], 136 + 137 + "@isaacs/fs-minipass": ["@isaacs/fs-minipass@4.0.1", "", { "dependencies": { "minipass": "^7.0.4" } }, "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="], 138 + 139 + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], 140 + 141 + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], 142 + 143 + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], 144 + 145 + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], 146 + 147 + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], 148 + 149 + "@node-rs/argon2": ["@node-rs/argon2@1.7.0", "", { "optionalDependencies": { "@node-rs/argon2-android-arm-eabi": "1.7.0", "@node-rs/argon2-android-arm64": "1.7.0", "@node-rs/argon2-darwin-arm64": "1.7.0", "@node-rs/argon2-darwin-x64": "1.7.0", "@node-rs/argon2-freebsd-x64": "1.7.0", "@node-rs/argon2-linux-arm-gnueabihf": "1.7.0", "@node-rs/argon2-linux-arm64-gnu": "1.7.0", "@node-rs/argon2-linux-arm64-musl": "1.7.0", "@node-rs/argon2-linux-x64-gnu": "1.7.0", "@node-rs/argon2-linux-x64-musl": "1.7.0", "@node-rs/argon2-wasm32-wasi": "1.7.0", "@node-rs/argon2-win32-arm64-msvc": "1.7.0", "@node-rs/argon2-win32-ia32-msvc": "1.7.0", "@node-rs/argon2-win32-x64-msvc": "1.7.0" } }, "sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog=="], 150 + 151 + "@node-rs/argon2-android-arm-eabi": ["@node-rs/argon2-android-arm-eabi@1.7.0", "", { "os": "android", "cpu": "arm" }, "sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg=="], 152 + 153 + "@node-rs/argon2-android-arm64": ["@node-rs/argon2-android-arm64@1.7.0", "", { "os": "android", "cpu": "arm64" }, "sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A=="], 154 + 155 + "@node-rs/argon2-darwin-arm64": ["@node-rs/argon2-darwin-arm64@1.7.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw=="], 156 + 157 + "@node-rs/argon2-darwin-x64": ["@node-rs/argon2-darwin-x64@1.7.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw=="], 158 + 159 + "@node-rs/argon2-freebsd-x64": ["@node-rs/argon2-freebsd-x64@1.7.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA=="], 160 + 161 + "@node-rs/argon2-linux-arm-gnueabihf": ["@node-rs/argon2-linux-arm-gnueabihf@1.7.0", "", { "os": "linux", "cpu": "arm" }, "sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg=="], 162 + 163 + "@node-rs/argon2-linux-arm64-gnu": ["@node-rs/argon2-linux-arm64-gnu@1.7.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g=="], 164 + 165 + "@node-rs/argon2-linux-arm64-musl": ["@node-rs/argon2-linux-arm64-musl@1.7.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A=="], 166 + 167 + "@node-rs/argon2-linux-x64-gnu": ["@node-rs/argon2-linux-x64-gnu@1.7.0", "", { "os": "linux", "cpu": "x64" }, "sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ=="], 168 + 169 + "@node-rs/argon2-linux-x64-musl": ["@node-rs/argon2-linux-x64-musl@1.7.0", "", { "os": "linux", "cpu": "x64" }, "sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA=="], 170 + 171 + "@node-rs/argon2-wasm32-wasi": ["@node-rs/argon2-wasm32-wasi@1.7.0", "", { "dependencies": { "@emnapi/core": "^0.45.0", "@emnapi/runtime": "^0.45.0", "@tybys/wasm-util": "^0.8.1", "memfs-browser": "^3.4.13000" }, "cpu": "none" }, "sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w=="], 172 + 173 + "@node-rs/argon2-win32-arm64-msvc": ["@node-rs/argon2-win32-arm64-msvc@1.7.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA=="], 174 + 175 + "@node-rs/argon2-win32-ia32-msvc": ["@node-rs/argon2-win32-ia32-msvc@1.7.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg=="], 176 + 177 + "@node-rs/argon2-win32-x64-msvc": ["@node-rs/argon2-win32-x64-msvc@1.7.0", "", { "os": "win32", "cpu": "x64" }, "sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q=="], 178 + 179 + "@node-rs/bcrypt": ["@node-rs/bcrypt@1.9.0", "", { "optionalDependencies": { "@node-rs/bcrypt-android-arm-eabi": "1.9.0", "@node-rs/bcrypt-android-arm64": "1.9.0", "@node-rs/bcrypt-darwin-arm64": "1.9.0", "@node-rs/bcrypt-darwin-x64": "1.9.0", "@node-rs/bcrypt-freebsd-x64": "1.9.0", "@node-rs/bcrypt-linux-arm-gnueabihf": "1.9.0", "@node-rs/bcrypt-linux-arm64-gnu": "1.9.0", "@node-rs/bcrypt-linux-arm64-musl": "1.9.0", "@node-rs/bcrypt-linux-x64-gnu": "1.9.0", "@node-rs/bcrypt-linux-x64-musl": "1.9.0", "@node-rs/bcrypt-wasm32-wasi": "1.9.0", "@node-rs/bcrypt-win32-arm64-msvc": "1.9.0", "@node-rs/bcrypt-win32-ia32-msvc": "1.9.0", "@node-rs/bcrypt-win32-x64-msvc": "1.9.0" } }, "sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig=="], 180 + 181 + "@node-rs/bcrypt-android-arm-eabi": ["@node-rs/bcrypt-android-arm-eabi@1.9.0", "", { "os": "android", "cpu": "arm" }, "sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA=="], 182 + 183 + "@node-rs/bcrypt-android-arm64": ["@node-rs/bcrypt-android-arm64@1.9.0", "", { "os": "android", "cpu": "arm64" }, "sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A=="], 184 + 185 + "@node-rs/bcrypt-darwin-arm64": ["@node-rs/bcrypt-darwin-arm64@1.9.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw=="], 186 + 187 + "@node-rs/bcrypt-darwin-x64": ["@node-rs/bcrypt-darwin-x64@1.9.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug=="], 188 + 189 + "@node-rs/bcrypt-freebsd-x64": ["@node-rs/bcrypt-freebsd-x64@1.9.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg=="], 190 + 191 + "@node-rs/bcrypt-linux-arm-gnueabihf": ["@node-rs/bcrypt-linux-arm-gnueabihf@1.9.0", "", { "os": "linux", "cpu": "arm" }, "sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA=="], 192 + 193 + "@node-rs/bcrypt-linux-arm64-gnu": ["@node-rs/bcrypt-linux-arm64-gnu@1.9.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q=="], 194 + 195 + "@node-rs/bcrypt-linux-arm64-musl": ["@node-rs/bcrypt-linux-arm64-musl@1.9.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew=="], 196 + 197 + "@node-rs/bcrypt-linux-x64-gnu": ["@node-rs/bcrypt-linux-x64-gnu@1.9.0", "", { "os": "linux", "cpu": "x64" }, "sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ=="], 198 + 199 + "@node-rs/bcrypt-linux-x64-musl": ["@node-rs/bcrypt-linux-x64-musl@1.9.0", "", { "os": "linux", "cpu": "x64" }, "sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg=="], 200 + 201 + "@node-rs/bcrypt-wasm32-wasi": ["@node-rs/bcrypt-wasm32-wasi@1.9.0", "", { "dependencies": { "@emnapi/core": "^0.45.0", "@emnapi/runtime": "^0.45.0", "@tybys/wasm-util": "^0.8.1", "memfs-browser": "^3.4.13000" }, "cpu": "none" }, "sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw=="], 202 + 203 + "@node-rs/bcrypt-win32-arm64-msvc": ["@node-rs/bcrypt-win32-arm64-msvc@1.9.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw=="], 204 + 205 + "@node-rs/bcrypt-win32-ia32-msvc": ["@node-rs/bcrypt-win32-ia32-msvc@1.9.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA=="], 206 + 207 + "@node-rs/bcrypt-win32-x64-msvc": ["@node-rs/bcrypt-win32-x64-msvc@1.9.0", "", { "os": "win32", "cpu": "x64" }, "sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w=="], 208 + 209 + "@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="], 210 + 211 + "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], 212 + 213 + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.52.3", "", { "os": "android", "cpu": "arm" }, "sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw=="], 214 + 215 + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.52.3", "", { "os": "android", "cpu": "arm64" }, "sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw=="], 216 + 217 + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.52.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg=="], 218 + 219 + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.52.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A=="], 220 + 221 + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.52.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ=="], 222 + 223 + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.52.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A=="], 224 + 225 + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.52.3", "", { "os": "linux", "cpu": "arm" }, "sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA=="], 226 + 227 + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.52.3", "", { "os": "linux", "cpu": "arm" }, "sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA=="], 228 + 229 + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.52.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ=="], 230 + 231 + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.52.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw=="], 232 + 233 + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.52.3", "", { "os": "linux", "cpu": "none" }, "sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg=="], 234 + 235 + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.52.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw=="], 236 + 237 + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.52.3", "", { "os": "linux", "cpu": "none" }, "sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg=="], 238 + 239 + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.52.3", "", { "os": "linux", "cpu": "none" }, "sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg=="], 240 + 241 + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.52.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg=="], 242 + 243 + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.52.3", "", { "os": "linux", "cpu": "x64" }, "sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA=="], 244 + 245 + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.52.3", "", { "os": "linux", "cpu": "x64" }, "sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw=="], 246 + 247 + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.52.3", "", { "os": "none", "cpu": "arm64" }, "sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA=="], 248 + 249 + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.52.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA=="], 250 + 251 + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.52.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g=="], 252 + 253 + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.52.3", "", { "os": "win32", "cpu": "x64" }, "sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ=="], 254 + 255 + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.52.3", "", { "os": "win32", "cpu": "x64" }, "sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA=="], 256 + 257 + "@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="], 258 + 259 + "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.6", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ=="], 260 + 261 + "@sveltejs/adapter-netlify": ["@sveltejs/adapter-netlify@5.2.4", "", { "dependencies": { "@iarna/toml": "^2.2.5", "esbuild": "^0.25.4", "set-cookie-parser": "^2.6.0" }, "peerDependencies": { "@sveltejs/kit": "^2.4.0" } }, "sha512-UtPcZq1HUA43hM8uLi+nsm5Q+YjHNj7/SMFoyeLZeY/VTloVWABEZ0tJ5WodTUmy/8j5QJ7oLZjj28aQxi8y3g=="], 262 + 263 + "@sveltejs/kit": ["@sveltejs/kit@2.44.0", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/cookie": "^0.6.0", "acorn": "^8.14.1", "cookie": "^0.6.0", "devalue": "^5.3.2", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", "sirv": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["@opentelemetry/api"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-xU5qP7PiYmrSH70Whm/I+nf0j4xBnHyRQNkC1SEfaBOwCCkkeuL6WNxSb8q4Ib7+Z+sZ4JUTDYHfoyVm02EXVQ=="], 264 + 265 + "@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@6.2.1", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", "deepmerge": "^4.3.1", "magic-string": "^0.30.17", "vitefu": "^1.1.1" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ=="], 266 + 267 + "@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@5.0.1", "", { "dependencies": { "debug": "^4.4.1" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA=="], 268 + 269 + "@tailwindcss/node": ["@tailwindcss/node@4.1.14", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.0", "lightningcss": "1.30.1", "magic-string": "^0.30.19", "source-map-js": "^1.2.1", "tailwindcss": "4.1.14" } }, "sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw=="], 270 + 271 + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.14", "", { "dependencies": { "detect-libc": "^2.0.4", "tar": "^7.5.1" }, "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.14", "@tailwindcss/oxide-darwin-arm64": "4.1.14", "@tailwindcss/oxide-darwin-x64": "4.1.14", "@tailwindcss/oxide-freebsd-x64": "4.1.14", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.14", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.14", "@tailwindcss/oxide-linux-arm64-musl": "4.1.14", "@tailwindcss/oxide-linux-x64-gnu": "4.1.14", "@tailwindcss/oxide-linux-x64-musl": "4.1.14", "@tailwindcss/oxide-wasm32-wasi": "4.1.14", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.14", "@tailwindcss/oxide-win32-x64-msvc": "4.1.14" } }, "sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw=="], 272 + 273 + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.14", "", { "os": "android", "cpu": "arm64" }, "sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ=="], 274 + 275 + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.14", "", { "os": "darwin", "cpu": "arm64" }, "sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA=="], 276 + 277 + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.14", "", { "os": "darwin", "cpu": "x64" }, "sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw=="], 278 + 279 + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.14", "", { "os": "freebsd", "cpu": "x64" }, "sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw=="], 280 + 281 + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14", "", { "os": "linux", "cpu": "arm" }, "sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw=="], 282 + 283 + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.14", "", { "os": "linux", "cpu": "arm64" }, "sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w=="], 284 + 285 + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.14", "", { "os": "linux", "cpu": "arm64" }, "sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ=="], 286 + 287 + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.14", "", { "os": "linux", "cpu": "x64" }, "sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg=="], 288 + 289 + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.14", "", { "os": "linux", "cpu": "x64" }, "sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q=="], 290 + 291 + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.14", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.0.5", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ=="], 292 + 293 + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.14", "", { "os": "win32", "cpu": "arm64" }, "sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA=="], 294 + 295 + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.14", "", { "os": "win32", "cpu": "x64" }, "sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA=="], 296 + 297 + "@tailwindcss/vite": ["@tailwindcss/vite@4.1.14", "", { "dependencies": { "@tailwindcss/node": "4.1.14", "@tailwindcss/oxide": "4.1.14", "tailwindcss": "4.1.14" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" } }, "sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA=="], 298 + 299 + "@tybys/wasm-util": ["@tybys/wasm-util@0.8.3", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q=="], 300 + 301 + "@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="], 302 + 303 + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], 304 + 305 + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], 306 + 307 + "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], 308 + 309 + "await-lock": ["await-lock@2.2.2", "", {}, "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw=="], 310 + 311 + "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], 312 + 313 + "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], 314 + 315 + "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], 316 + 317 + "chownr": ["chownr@3.0.0", "", {}, "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="], 318 + 319 + "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], 320 + 321 + "cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="], 322 + 323 + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], 324 + 325 + "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], 326 + 327 + "detect-libc": ["detect-libc@2.1.1", "", {}, "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw=="], 328 + 329 + "devalue": ["devalue@5.3.2", "", {}, "sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw=="], 330 + 331 + "drizzle-kit": ["drizzle-kit@0.31.5", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-+CHgPFzuoTQTt7cOYCV6MOw2w8vqEn/ap1yv4bpZOWL03u7rlVRQhUY0WYT3rHsgVTXwYQDZaSUJSQrMBUKuWg=="], 332 + 333 + "drizzle-orm": ["drizzle-orm@0.44.6", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-uy6uarrrEOc9K1u5/uhBFJbdF5VJ5xQ/Yzbecw3eAYOunv5FDeYkR2m8iitocdHBOHbvorviKOW5GVw0U1j4LQ=="], 334 + 335 + "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], 336 + 337 + "esbuild": ["esbuild@0.25.10", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.10", "@esbuild/android-arm": "0.25.10", "@esbuild/android-arm64": "0.25.10", "@esbuild/android-x64": "0.25.10", "@esbuild/darwin-arm64": "0.25.10", "@esbuild/darwin-x64": "0.25.10", "@esbuild/freebsd-arm64": "0.25.10", "@esbuild/freebsd-x64": "0.25.10", "@esbuild/linux-arm": "0.25.10", "@esbuild/linux-arm64": "0.25.10", "@esbuild/linux-ia32": "0.25.10", "@esbuild/linux-loong64": "0.25.10", "@esbuild/linux-mips64el": "0.25.10", "@esbuild/linux-ppc64": "0.25.10", "@esbuild/linux-riscv64": "0.25.10", "@esbuild/linux-s390x": "0.25.10", "@esbuild/linux-x64": "0.25.10", "@esbuild/netbsd-arm64": "0.25.10", "@esbuild/netbsd-x64": "0.25.10", "@esbuild/openbsd-arm64": "0.25.10", "@esbuild/openbsd-x64": "0.25.10", "@esbuild/openharmony-arm64": "0.25.10", "@esbuild/sunos-x64": "0.25.10", "@esbuild/win32-arm64": "0.25.10", "@esbuild/win32-ia32": "0.25.10", "@esbuild/win32-x64": "0.25.10" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ=="], 338 + 339 + "esbuild-register": ["esbuild-register@3.6.0", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "esbuild": ">=0.12 <1" } }, "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg=="], 340 + 341 + "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], 342 + 343 + "esrap": ["esrap@2.1.0", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA=="], 344 + 345 + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], 346 + 347 + "fs-monkey": ["fs-monkey@1.1.0", "", {}, "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw=="], 348 + 349 + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], 350 + 351 + "get-tsconfig": ["get-tsconfig@4.10.1", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ=="], 352 + 353 + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], 354 + 355 + "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], 356 + 357 + "ipaddr.js": ["ipaddr.js@2.2.0", "", {}, "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA=="], 358 + 359 + "is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="], 360 + 361 + "iso-datestring-validator": ["iso-datestring-validator@2.2.2", "", {}, "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA=="], 362 + 363 + "jiti": ["jiti@2.6.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ=="], 364 + 365 + "jose": ["jose@5.10.0", "", {}, "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg=="], 366 + 367 + "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], 368 + 369 + "lightningcss": ["lightningcss@1.30.1", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.30.1", "lightningcss-darwin-x64": "1.30.1", "lightningcss-freebsd-x64": "1.30.1", "lightningcss-linux-arm-gnueabihf": "1.30.1", "lightningcss-linux-arm64-gnu": "1.30.1", "lightningcss-linux-arm64-musl": "1.30.1", "lightningcss-linux-x64-gnu": "1.30.1", "lightningcss-linux-x64-musl": "1.30.1", "lightningcss-win32-arm64-msvc": "1.30.1", "lightningcss-win32-x64-msvc": "1.30.1" } }, "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg=="], 370 + 371 + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ=="], 372 + 373 + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA=="], 374 + 375 + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig=="], 376 + 377 + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.1", "", { "os": "linux", "cpu": "arm" }, "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q=="], 378 + 379 + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw=="], 380 + 381 + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ=="], 382 + 383 + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw=="], 384 + 385 + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ=="], 386 + 387 + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA=="], 388 + 389 + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.1", "", { "os": "win32", "cpu": "x64" }, "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg=="], 390 + 391 + "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="], 392 + 393 + "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], 394 + 395 + "magic-string": ["magic-string@0.30.19", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw=="], 396 + 397 + "memfs": ["memfs@3.5.3", "", { "dependencies": { "fs-monkey": "^1.0.4" } }, "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw=="], 398 + 399 + "memfs-browser": ["memfs-browser@3.5.10302", "", { "dependencies": { "memfs": "3.5.3" } }, "sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw=="], 400 + 401 + "minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], 402 + 403 + "minizlib": ["minizlib@3.1.0", "", { "dependencies": { "minipass": "^7.1.2" } }, "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="], 404 + 405 + "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], 406 + 407 + "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], 408 + 409 + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], 410 + 411 + "multiformats": ["multiformats@9.9.0", "", {}, "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg=="], 412 + 413 + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], 414 + 415 + "oslo": ["oslo@1.2.1", "", { "dependencies": { "@node-rs/argon2": "1.7.0", "@node-rs/bcrypt": "1.9.0" } }, "sha512-HfIhB5ruTdQv0XX2XlncWQiJ5SIHZ7NHZhVyHth0CSZ/xzge00etRyYy/3wp/Dsu+PkxMC+6+B2lS/GcKoewkA=="], 416 + 417 + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], 418 + 419 + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], 420 + 421 + "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], 422 + 423 + "postgres": ["postgres@3.4.7", "", {}, "sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw=="], 424 + 425 + "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], 426 + 427 + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], 428 + 429 + "rollup": ["rollup@4.52.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.52.3", "@rollup/rollup-android-arm64": "4.52.3", "@rollup/rollup-darwin-arm64": "4.52.3", "@rollup/rollup-darwin-x64": "4.52.3", "@rollup/rollup-freebsd-arm64": "4.52.3", "@rollup/rollup-freebsd-x64": "4.52.3", "@rollup/rollup-linux-arm-gnueabihf": "4.52.3", "@rollup/rollup-linux-arm-musleabihf": "4.52.3", "@rollup/rollup-linux-arm64-gnu": "4.52.3", "@rollup/rollup-linux-arm64-musl": "4.52.3", "@rollup/rollup-linux-loong64-gnu": "4.52.3", "@rollup/rollup-linux-ppc64-gnu": "4.52.3", "@rollup/rollup-linux-riscv64-gnu": "4.52.3", "@rollup/rollup-linux-riscv64-musl": "4.52.3", "@rollup/rollup-linux-s390x-gnu": "4.52.3", "@rollup/rollup-linux-x64-gnu": "4.52.3", "@rollup/rollup-linux-x64-musl": "4.52.3", "@rollup/rollup-openharmony-arm64": "4.52.3", "@rollup/rollup-win32-arm64-msvc": "4.52.3", "@rollup/rollup-win32-ia32-msvc": "4.52.3", "@rollup/rollup-win32-x64-gnu": "4.52.3", "@rollup/rollup-win32-x64-msvc": "4.52.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A=="], 430 + 431 + "sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="], 432 + 433 + "set-cookie-parser": ["set-cookie-parser@2.7.1", "", {}, "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ=="], 434 + 435 + "sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="], 436 + 437 + "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], 438 + 439 + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], 440 + 441 + "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], 442 + 443 + "svelte": ["svelte@5.39.8", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", "esrap": "^2.1.0", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-KfZ3hCITdxIXTOvrea4nFZX2o+47HPTChKeocgj9BwJQYqWrviVCcPj4boXHF5yf8+eBKqhHY8xii//XaakKXA=="], 444 + 445 + "svelte-check": ["svelte-check@4.3.2", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-71udP5w2kaSTcX8iV0hn3o2FWlabQHhJTJLIQrCqMsrcOeDUO2VhCQKKCA8AMVHSPwdxLEWkUWh9OKxns5PD9w=="], 446 + 447 + "svelte-french-toast": ["svelte-french-toast@1.2.0", "", { "dependencies": { "svelte-writable-derived": "^3.1.0" }, "peerDependencies": { "svelte": "^3.57.0 || ^4.0.0" } }, "sha512-5PW+6RFX3xQPbR44CngYAP1Sd9oCq9P2FOox4FZffzJuZI2mHOB7q5gJBVnOiLF5y3moVGZ7u2bYt7+yPAgcEQ=="], 448 + 449 + "svelte-writable-derived": ["svelte-writable-derived@3.1.1", "", { "peerDependencies": { "svelte": "^3.2.1 || ^4.0.0-next.1 || ^5.0.0-next.94" } }, "sha512-w4LR6/bYZEuCs7SGr+M54oipk/UQKtiMadyOhW0PTwAtJ/Ai12QS77sLngEcfBx2q4H8ZBQucc9ktSA5sUGZWw=="], 450 + 451 + "tailwindcss": ["tailwindcss@4.1.14", "", {}, "sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA=="], 452 + 453 + "tapable": ["tapable@2.2.3", "", {}, "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg=="], 454 + 455 + "tar": ["tar@7.5.1", "", { "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", "minipass": "^7.1.2", "minizlib": "^3.1.0", "yallist": "^5.0.0" } }, "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g=="], 456 + 457 + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], 458 + 459 + "tlds": ["tlds@1.260.0", "", { "bin": { "tlds": "bin.js" } }, "sha512-78+28EWBhCEE7qlyaHA9OR3IPvbCLiDh3Ckla593TksfFc9vfTsgvH7eS+dr3o9qr31gwGbogcI16yN91PoRjQ=="], 460 + 461 + "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], 462 + 463 + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], 464 + 465 + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], 466 + 467 + "uint8arrays": ["uint8arrays@3.0.0", "", { "dependencies": { "multiformats": "^9.4.2" } }, "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA=="], 468 + 469 + "undici": ["undici@6.21.3", "", {}, "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw=="], 470 + 471 + "vite": ["vite@7.1.9", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg=="], 472 + 473 + "vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="], 474 + 475 + "yallist": ["yallist@5.0.0", "", {}, "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="], 476 + 477 + "zimmerframe": ["zimmerframe@1.1.4", "", {}, "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ=="], 478 + 479 + "zod": ["zod@3.25.76", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="], 480 + 481 + "@esbuild-kit/core-utils/esbuild": ["esbuild@0.18.20", "", { "optionalDependencies": { "@esbuild/android-arm": "0.18.20", "@esbuild/android-arm64": "0.18.20", "@esbuild/android-x64": "0.18.20", "@esbuild/darwin-arm64": "0.18.20", "@esbuild/darwin-x64": "0.18.20", "@esbuild/freebsd-arm64": "0.18.20", "@esbuild/freebsd-x64": "0.18.20", "@esbuild/linux-arm": "0.18.20", "@esbuild/linux-arm64": "0.18.20", "@esbuild/linux-ia32": "0.18.20", "@esbuild/linux-loong64": "0.18.20", "@esbuild/linux-mips64el": "0.18.20", "@esbuild/linux-ppc64": "0.18.20", "@esbuild/linux-riscv64": "0.18.20", "@esbuild/linux-s390x": "0.18.20", "@esbuild/linux-x64": "0.18.20", "@esbuild/netbsd-x64": "0.18.20", "@esbuild/openbsd-x64": "0.18.20", "@esbuild/sunos-x64": "0.18.20", "@esbuild/win32-arm64": "0.18.20", "@esbuild/win32-ia32": "0.18.20", "@esbuild/win32-x64": "0.18.20" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA=="], 482 + 483 + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.5.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg=="], 484 + 485 + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.5.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ=="], 486 + 487 + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], 488 + 489 + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.6", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-DXj75ewm11LIWUk198QSKUTxjyRjsBwk09MuMk5DGK+GDUtyPhhEHOGP/Xwwj3DjQXXkivoBirmOnKrLfc0+9g=="], 490 + 491 + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], 492 + 493 + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], 494 + 495 + "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.18.20", "", { "os": "android", "cpu": "arm" }, "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw=="], 496 + 497 + "@esbuild-kit/core-utils/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.18.20", "", { "os": "android", "cpu": "arm64" }, "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ=="], 498 + 499 + "@esbuild-kit/core-utils/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.18.20", "", { "os": "android", "cpu": "x64" }, "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg=="], 500 + 501 + "@esbuild-kit/core-utils/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.18.20", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA=="], 502 + 503 + "@esbuild-kit/core-utils/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.18.20", "", { "os": "darwin", "cpu": "x64" }, "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ=="], 504 + 505 + "@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.18.20", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw=="], 506 + 507 + "@esbuild-kit/core-utils/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.18.20", "", { "os": "freebsd", "cpu": "x64" }, "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ=="], 508 + 509 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.18.20", "", { "os": "linux", "cpu": "arm" }, "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg=="], 510 + 511 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.18.20", "", { "os": "linux", "cpu": "arm64" }, "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA=="], 512 + 513 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.18.20", "", { "os": "linux", "cpu": "ia32" }, "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA=="], 514 + 515 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg=="], 516 + 517 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ=="], 518 + 519 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.18.20", "", { "os": "linux", "cpu": "ppc64" }, "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA=="], 520 + 521 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.18.20", "", { "os": "linux", "cpu": "none" }, "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A=="], 522 + 523 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.18.20", "", { "os": "linux", "cpu": "s390x" }, "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ=="], 524 + 525 + "@esbuild-kit/core-utils/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.18.20", "", { "os": "linux", "cpu": "x64" }, "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w=="], 526 + 527 + "@esbuild-kit/core-utils/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.18.20", "", { "os": "none", "cpu": "x64" }, "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A=="], 528 + 529 + "@esbuild-kit/core-utils/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.18.20", "", { "os": "openbsd", "cpu": "x64" }, "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg=="], 530 + 531 + "@esbuild-kit/core-utils/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.18.20", "", { "os": "sunos", "cpu": "x64" }, "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ=="], 532 + 533 + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.18.20", "", { "os": "win32", "cpu": "arm64" }, "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg=="], 534 + 535 + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.18.20", "", { "os": "win32", "cpu": "ia32" }, "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g=="], 536 + 537 + "@esbuild-kit/core-utils/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.18.20", "", { "os": "win32", "cpu": "x64" }, "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ=="], 538 + } 539 + }
+11
drizzle/0000_first_praxagora.sql
··· 1 + CREATE TABLE "auth_session" ( 2 + "key" text PRIMARY KEY NOT NULL, 3 + "session" json NOT NULL, 4 + CONSTRAINT "auth_session_key_unique" UNIQUE("key") 5 + ); 6 + --> statement-breakpoint 7 + CREATE TABLE "auth_state" ( 8 + "key" text PRIMARY KEY NOT NULL, 9 + "state" json NOT NULL, 10 + CONSTRAINT "auth_state_key_unique" UNIQUE("key") 11 + );
+85
drizzle/meta/0000_snapshot.json
··· 1 + { 2 + "id": "6e06677f-9a96-41ee-82f8-e0f6e1ea34e3", 3 + "prevId": "00000000-0000-0000-0000-000000000000", 4 + "version": "7", 5 + "dialect": "postgresql", 6 + "tables": { 7 + "public.auth_session": { 8 + "name": "auth_session", 9 + "schema": "", 10 + "columns": { 11 + "key": { 12 + "name": "key", 13 + "type": "text", 14 + "primaryKey": true, 15 + "notNull": true 16 + }, 17 + "session": { 18 + "name": "session", 19 + "type": "json", 20 + "primaryKey": false, 21 + "notNull": true 22 + } 23 + }, 24 + "indexes": {}, 25 + "foreignKeys": {}, 26 + "compositePrimaryKeys": {}, 27 + "uniqueConstraints": { 28 + "auth_session_key_unique": { 29 + "name": "auth_session_key_unique", 30 + "nullsNotDistinct": false, 31 + "columns": [ 32 + "key" 33 + ] 34 + } 35 + }, 36 + "policies": {}, 37 + "checkConstraints": {}, 38 + "isRLSEnabled": false 39 + }, 40 + "public.auth_state": { 41 + "name": "auth_state", 42 + "schema": "", 43 + "columns": { 44 + "key": { 45 + "name": "key", 46 + "type": "text", 47 + "primaryKey": true, 48 + "notNull": true 49 + }, 50 + "state": { 51 + "name": "state", 52 + "type": "json", 53 + "primaryKey": false, 54 + "notNull": true 55 + } 56 + }, 57 + "indexes": {}, 58 + "foreignKeys": {}, 59 + "compositePrimaryKeys": {}, 60 + "uniqueConstraints": { 61 + "auth_state_key_unique": { 62 + "name": "auth_state_key_unique", 63 + "nullsNotDistinct": false, 64 + "columns": [ 65 + "key" 66 + ] 67 + } 68 + }, 69 + "policies": {}, 70 + "checkConstraints": {}, 71 + "isRLSEnabled": false 72 + } 73 + }, 74 + "enums": {}, 75 + "schemas": {}, 76 + "sequences": {}, 77 + "roles": {}, 78 + "policies": {}, 79 + "views": {}, 80 + "_meta": { 81 + "columns": {}, 82 + "schemas": {}, 83 + "tables": {} 84 + } 85 + }
+13
drizzle/meta/_journal.json
··· 1 + { 2 + "version": "7", 3 + "dialect": "postgresql", 4 + "entries": [ 5 + { 6 + "idx": 0, 7 + "version": "7", 8 + "when": 1759136833553, 9 + "tag": "0000_first_praxagora", 10 + "breakpoints": true 11 + } 12 + ] 13 + }
+12
drizzle.config.ts
··· 1 + import { defineConfig } from "drizzle-kit"; 2 + if (!process.env.DATABASE_URL) throw new Error("DATABASE_URL is not set"); 3 + 4 + export default defineConfig({ 5 + schema: "./src/lib/schema.ts", 6 + dbCredentials: { 7 + url: process.env.DATABASE_URL 8 + }, 9 + verbose: true, 10 + strict: true, 11 + dialect: "postgresql" 12 + });
+27
link/easytodo/tasks/list.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "link.easytodo.tasks.list", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "A list of items to do.", 8 + "key": "tid", 9 + "record": { 10 + "type": "object", 11 + "required": ["id", "title", "createdAt"], 12 + "properties": { 13 + "id": { "type": "string" }, 14 + "title": { "type": "string" }, 15 + "createdAt": { "type": "string", "format": "datetime" }, 16 + "tasks": { 17 + "type": "array", 18 + "items": { 19 + "type": "ref", 20 + "ref": "link.easytodo.tasks.task" 21 + } 22 + } 23 + } 24 + } 25 + } 26 + } 27 + }
+21
link/easytodo/tasks/task.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "link.easytodo.tasks.task", 4 + "defs": { 5 + "main": { 6 + "type": "record", 7 + "description": "An item to do.", 8 + "key": "tid", 9 + "record": { 10 + "type": "object", 11 + "required": ["id", "description", "is_completed"], 12 + "properties": { 13 + "id": { "type": "string" }, 14 + "description": { "type": "string" }, 15 + "is_completed": { "type": "boolean", "default": false }, 16 + "duration": { "type": "integer" } 17 + } 18 + } 19 + } 20 + } 21 + }
+22 -16
package.json
··· 7 7 "build": "vite build", 8 8 "preview": "vite preview", 9 9 "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", 10 - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" 10 + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", 11 + "db:push": "drizzle-kit push", 12 + "db:migrate": "drizzle-kit migrate", 13 + "db:studio": "drizzle-kit studio" 11 14 }, 12 15 "devDependencies": { 13 - "@sveltejs/adapter-auto": "^3.1.1", 14 - "@sveltejs/kit": "^2.5.2", 15 - "@sveltejs/vite-plugin-svelte": "^3.0.2", 16 - "autoprefixer": "^10.4.18", 17 - "postcss": "^8.4.35", 18 - "svelte": "5.0.0-next.69", 19 - "svelte-check": "^3.6.6", 20 - "tailwindcss": "^3.4.1", 21 - "tslib": "^2.6.2", 22 - "typescript": "^5.4.2", 23 - "vite": "^5.1.5" 16 + "@sveltejs/adapter-netlify": "^5.2.4", 17 + "@sveltejs/kit": "^2.44.0", 18 + "@sveltejs/vite-plugin-svelte": "^6.2.1", 19 + "drizzle-kit": "^0.31.5", 20 + "svelte": "^5.39.8", 21 + "svelte-check": "^4.3.2", 22 + "tslib": "^2.8.1", 23 + "typescript": "^5.9.3", 24 + "vite": "^7.1.9" 24 25 }, 25 26 "type": "module", 26 27 "dependencies": { 27 - "@vercel/analytics": "^1.2.2", 28 - "@vercel/speed-insights": "^1.0.10", 29 - "oslo": "^1.1.3", 30 - "svelte-french-toast": "^1.2.0" 28 + "@atproto/api": "^0.17.0", 29 + "@atproto/oauth-client-node": "^0.3.8", 30 + "@oslojs/encoding": "^1.1.0", 31 + "@tailwindcss/vite": "^4.1.14", 32 + "drizzle-orm": "^0.44.6", 33 + "oslo": "^1.2.1", 34 + "postgres": "^3.4.7", 35 + "svelte-french-toast": "^1.2.0", 36 + "tailwindcss": "^4.1.14" 31 37 } 32 38 }
-2087
pnpm-lock.yaml
··· 1 - lockfileVersion: '6.0' 2 - 3 - settings: 4 - autoInstallPeers: true 5 - excludeLinksFromLockfile: false 6 - 7 - dependencies: 8 - '@vercel/analytics': 9 - specifier: ^1.2.2 10 - version: 1.2.2 11 - '@vercel/speed-insights': 12 - specifier: ^1.0.10 13 - version: 1.0.10(@sveltejs/kit@2.5.2)(svelte@5.0.0-next.69) 14 - oslo: 15 - specifier: ^1.1.3 16 - version: 1.1.3 17 - svelte-french-toast: 18 - specifier: ^1.2.0 19 - version: 1.2.0(svelte@5.0.0-next.69) 20 - 21 - devDependencies: 22 - '@sveltejs/adapter-auto': 23 - specifier: ^3.1.1 24 - version: 3.1.1(@sveltejs/kit@2.5.2) 25 - '@sveltejs/kit': 26 - specifier: ^2.5.2 27 - version: 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.69)(vite@5.1.5) 28 - '@sveltejs/vite-plugin-svelte': 29 - specifier: ^3.0.2 30 - version: 3.0.2(svelte@5.0.0-next.69)(vite@5.1.5) 31 - autoprefixer: 32 - specifier: ^10.4.18 33 - version: 10.4.18(postcss@8.4.35) 34 - postcss: 35 - specifier: ^8.4.35 36 - version: 8.4.35 37 - svelte: 38 - specifier: 5.0.0-next.69 39 - version: 5.0.0-next.69 40 - svelte-check: 41 - specifier: ^3.6.6 42 - version: 3.6.6(postcss@8.4.35)(svelte@5.0.0-next.69) 43 - tailwindcss: 44 - specifier: ^3.4.1 45 - version: 3.4.1 46 - tslib: 47 - specifier: ^2.6.2 48 - version: 2.6.2 49 - typescript: 50 - specifier: ^5.4.2 51 - version: 5.4.2 52 - vite: 53 - specifier: ^5.1.5 54 - version: 5.1.5 55 - 56 - packages: 57 - 58 - /@alloc/quick-lru@5.2.0: 59 - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 60 - engines: {node: '>=10'} 61 - dev: true 62 - 63 - /@ampproject/remapping@2.3.0: 64 - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} 65 - engines: {node: '>=6.0.0'} 66 - dependencies: 67 - '@jridgewell/gen-mapping': 0.3.5 68 - '@jridgewell/trace-mapping': 0.3.25 69 - 70 - /@emnapi/core@0.45.0: 71 - resolution: {integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==} 72 - requiresBuild: true 73 - dependencies: 74 - tslib: 2.6.2 75 - dev: false 76 - optional: true 77 - 78 - /@emnapi/runtime@0.45.0: 79 - resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} 80 - requiresBuild: true 81 - dependencies: 82 - tslib: 2.6.2 83 - dev: false 84 - optional: true 85 - 86 - /@esbuild/aix-ppc64@0.19.12: 87 - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} 88 - engines: {node: '>=12'} 89 - cpu: [ppc64] 90 - os: [aix] 91 - requiresBuild: true 92 - optional: true 93 - 94 - /@esbuild/android-arm64@0.19.12: 95 - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} 96 - engines: {node: '>=12'} 97 - cpu: [arm64] 98 - os: [android] 99 - requiresBuild: true 100 - optional: true 101 - 102 - /@esbuild/android-arm@0.19.12: 103 - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} 104 - engines: {node: '>=12'} 105 - cpu: [arm] 106 - os: [android] 107 - requiresBuild: true 108 - optional: true 109 - 110 - /@esbuild/android-x64@0.19.12: 111 - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} 112 - engines: {node: '>=12'} 113 - cpu: [x64] 114 - os: [android] 115 - requiresBuild: true 116 - optional: true 117 - 118 - /@esbuild/darwin-arm64@0.19.12: 119 - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} 120 - engines: {node: '>=12'} 121 - cpu: [arm64] 122 - os: [darwin] 123 - requiresBuild: true 124 - optional: true 125 - 126 - /@esbuild/darwin-x64@0.19.12: 127 - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} 128 - engines: {node: '>=12'} 129 - cpu: [x64] 130 - os: [darwin] 131 - requiresBuild: true 132 - optional: true 133 - 134 - /@esbuild/freebsd-arm64@0.19.12: 135 - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} 136 - engines: {node: '>=12'} 137 - cpu: [arm64] 138 - os: [freebsd] 139 - requiresBuild: true 140 - optional: true 141 - 142 - /@esbuild/freebsd-x64@0.19.12: 143 - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} 144 - engines: {node: '>=12'} 145 - cpu: [x64] 146 - os: [freebsd] 147 - requiresBuild: true 148 - optional: true 149 - 150 - /@esbuild/linux-arm64@0.19.12: 151 - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} 152 - engines: {node: '>=12'} 153 - cpu: [arm64] 154 - os: [linux] 155 - requiresBuild: true 156 - optional: true 157 - 158 - /@esbuild/linux-arm@0.19.12: 159 - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} 160 - engines: {node: '>=12'} 161 - cpu: [arm] 162 - os: [linux] 163 - requiresBuild: true 164 - optional: true 165 - 166 - /@esbuild/linux-ia32@0.19.12: 167 - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} 168 - engines: {node: '>=12'} 169 - cpu: [ia32] 170 - os: [linux] 171 - requiresBuild: true 172 - optional: true 173 - 174 - /@esbuild/linux-loong64@0.19.12: 175 - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} 176 - engines: {node: '>=12'} 177 - cpu: [loong64] 178 - os: [linux] 179 - requiresBuild: true 180 - optional: true 181 - 182 - /@esbuild/linux-mips64el@0.19.12: 183 - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} 184 - engines: {node: '>=12'} 185 - cpu: [mips64el] 186 - os: [linux] 187 - requiresBuild: true 188 - optional: true 189 - 190 - /@esbuild/linux-ppc64@0.19.12: 191 - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} 192 - engines: {node: '>=12'} 193 - cpu: [ppc64] 194 - os: [linux] 195 - requiresBuild: true 196 - optional: true 197 - 198 - /@esbuild/linux-riscv64@0.19.12: 199 - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} 200 - engines: {node: '>=12'} 201 - cpu: [riscv64] 202 - os: [linux] 203 - requiresBuild: true 204 - optional: true 205 - 206 - /@esbuild/linux-s390x@0.19.12: 207 - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} 208 - engines: {node: '>=12'} 209 - cpu: [s390x] 210 - os: [linux] 211 - requiresBuild: true 212 - optional: true 213 - 214 - /@esbuild/linux-x64@0.19.12: 215 - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} 216 - engines: {node: '>=12'} 217 - cpu: [x64] 218 - os: [linux] 219 - requiresBuild: true 220 - optional: true 221 - 222 - /@esbuild/netbsd-x64@0.19.12: 223 - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} 224 - engines: {node: '>=12'} 225 - cpu: [x64] 226 - os: [netbsd] 227 - requiresBuild: true 228 - optional: true 229 - 230 - /@esbuild/openbsd-x64@0.19.12: 231 - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} 232 - engines: {node: '>=12'} 233 - cpu: [x64] 234 - os: [openbsd] 235 - requiresBuild: true 236 - optional: true 237 - 238 - /@esbuild/sunos-x64@0.19.12: 239 - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} 240 - engines: {node: '>=12'} 241 - cpu: [x64] 242 - os: [sunos] 243 - requiresBuild: true 244 - optional: true 245 - 246 - /@esbuild/win32-arm64@0.19.12: 247 - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} 248 - engines: {node: '>=12'} 249 - cpu: [arm64] 250 - os: [win32] 251 - requiresBuild: true 252 - optional: true 253 - 254 - /@esbuild/win32-ia32@0.19.12: 255 - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} 256 - engines: {node: '>=12'} 257 - cpu: [ia32] 258 - os: [win32] 259 - requiresBuild: true 260 - optional: true 261 - 262 - /@esbuild/win32-x64@0.19.12: 263 - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} 264 - engines: {node: '>=12'} 265 - cpu: [x64] 266 - os: [win32] 267 - requiresBuild: true 268 - optional: true 269 - 270 - /@isaacs/cliui@8.0.2: 271 - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 272 - engines: {node: '>=12'} 273 - dependencies: 274 - string-width: 5.1.2 275 - string-width-cjs: /string-width@4.2.3 276 - strip-ansi: 7.1.0 277 - strip-ansi-cjs: /strip-ansi@6.0.1 278 - wrap-ansi: 8.1.0 279 - wrap-ansi-cjs: /wrap-ansi@7.0.0 280 - dev: true 281 - 282 - /@jridgewell/gen-mapping@0.3.5: 283 - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 284 - engines: {node: '>=6.0.0'} 285 - dependencies: 286 - '@jridgewell/set-array': 1.2.1 287 - '@jridgewell/sourcemap-codec': 1.4.15 288 - '@jridgewell/trace-mapping': 0.3.25 289 - 290 - /@jridgewell/resolve-uri@3.1.2: 291 - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 292 - engines: {node: '>=6.0.0'} 293 - 294 - /@jridgewell/set-array@1.2.1: 295 - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 296 - engines: {node: '>=6.0.0'} 297 - 298 - /@jridgewell/sourcemap-codec@1.4.15: 299 - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 300 - 301 - /@jridgewell/trace-mapping@0.3.25: 302 - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 303 - dependencies: 304 - '@jridgewell/resolve-uri': 3.1.2 305 - '@jridgewell/sourcemap-codec': 1.4.15 306 - 307 - /@node-rs/argon2-android-arm-eabi@1.7.0: 308 - resolution: {integrity: sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==} 309 - engines: {node: '>= 10'} 310 - cpu: [arm] 311 - os: [android] 312 - requiresBuild: true 313 - dev: false 314 - optional: true 315 - 316 - /@node-rs/argon2-android-arm64@1.7.0: 317 - resolution: {integrity: sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==} 318 - engines: {node: '>= 10'} 319 - cpu: [arm64] 320 - os: [android] 321 - requiresBuild: true 322 - dev: false 323 - optional: true 324 - 325 - /@node-rs/argon2-darwin-arm64@1.7.0: 326 - resolution: {integrity: sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==} 327 - engines: {node: '>= 10'} 328 - cpu: [arm64] 329 - os: [darwin] 330 - requiresBuild: true 331 - dev: false 332 - optional: true 333 - 334 - /@node-rs/argon2-darwin-x64@1.7.0: 335 - resolution: {integrity: sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==} 336 - engines: {node: '>= 10'} 337 - cpu: [x64] 338 - os: [darwin] 339 - requiresBuild: true 340 - dev: false 341 - optional: true 342 - 343 - /@node-rs/argon2-freebsd-x64@1.7.0: 344 - resolution: {integrity: sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==} 345 - engines: {node: '>= 10'} 346 - cpu: [x64] 347 - os: [freebsd] 348 - requiresBuild: true 349 - dev: false 350 - optional: true 351 - 352 - /@node-rs/argon2-linux-arm-gnueabihf@1.7.0: 353 - resolution: {integrity: sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==} 354 - engines: {node: '>= 10'} 355 - cpu: [arm] 356 - os: [linux] 357 - requiresBuild: true 358 - dev: false 359 - optional: true 360 - 361 - /@node-rs/argon2-linux-arm64-gnu@1.7.0: 362 - resolution: {integrity: sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==} 363 - engines: {node: '>= 10'} 364 - cpu: [arm64] 365 - os: [linux] 366 - requiresBuild: true 367 - dev: false 368 - optional: true 369 - 370 - /@node-rs/argon2-linux-arm64-musl@1.7.0: 371 - resolution: {integrity: sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==} 372 - engines: {node: '>= 10'} 373 - cpu: [arm64] 374 - os: [linux] 375 - requiresBuild: true 376 - dev: false 377 - optional: true 378 - 379 - /@node-rs/argon2-linux-x64-gnu@1.7.0: 380 - resolution: {integrity: sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==} 381 - engines: {node: '>= 10'} 382 - cpu: [x64] 383 - os: [linux] 384 - requiresBuild: true 385 - dev: false 386 - optional: true 387 - 388 - /@node-rs/argon2-linux-x64-musl@1.7.0: 389 - resolution: {integrity: sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==} 390 - engines: {node: '>= 10'} 391 - cpu: [x64] 392 - os: [linux] 393 - requiresBuild: true 394 - dev: false 395 - optional: true 396 - 397 - /@node-rs/argon2-wasm32-wasi@1.7.0: 398 - resolution: {integrity: sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==} 399 - engines: {node: '>=14.0.0'} 400 - cpu: [wasm32] 401 - requiresBuild: true 402 - dependencies: 403 - '@emnapi/core': 0.45.0 404 - '@emnapi/runtime': 0.45.0 405 - '@tybys/wasm-util': 0.8.1 406 - memfs-browser: 3.5.10302 407 - dev: false 408 - optional: true 409 - 410 - /@node-rs/argon2-win32-arm64-msvc@1.7.0: 411 - resolution: {integrity: sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==} 412 - engines: {node: '>= 10'} 413 - cpu: [arm64] 414 - os: [win32] 415 - requiresBuild: true 416 - dev: false 417 - optional: true 418 - 419 - /@node-rs/argon2-win32-ia32-msvc@1.7.0: 420 - resolution: {integrity: sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==} 421 - engines: {node: '>= 10'} 422 - cpu: [ia32] 423 - os: [win32] 424 - requiresBuild: true 425 - dev: false 426 - optional: true 427 - 428 - /@node-rs/argon2-win32-x64-msvc@1.7.0: 429 - resolution: {integrity: sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==} 430 - engines: {node: '>= 10'} 431 - cpu: [x64] 432 - os: [win32] 433 - requiresBuild: true 434 - dev: false 435 - optional: true 436 - 437 - /@node-rs/argon2@1.7.0: 438 - resolution: {integrity: sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==} 439 - engines: {node: '>= 10'} 440 - optionalDependencies: 441 - '@node-rs/argon2-android-arm-eabi': 1.7.0 442 - '@node-rs/argon2-android-arm64': 1.7.0 443 - '@node-rs/argon2-darwin-arm64': 1.7.0 444 - '@node-rs/argon2-darwin-x64': 1.7.0 445 - '@node-rs/argon2-freebsd-x64': 1.7.0 446 - '@node-rs/argon2-linux-arm-gnueabihf': 1.7.0 447 - '@node-rs/argon2-linux-arm64-gnu': 1.7.0 448 - '@node-rs/argon2-linux-arm64-musl': 1.7.0 449 - '@node-rs/argon2-linux-x64-gnu': 1.7.0 450 - '@node-rs/argon2-linux-x64-musl': 1.7.0 451 - '@node-rs/argon2-wasm32-wasi': 1.7.0 452 - '@node-rs/argon2-win32-arm64-msvc': 1.7.0 453 - '@node-rs/argon2-win32-ia32-msvc': 1.7.0 454 - '@node-rs/argon2-win32-x64-msvc': 1.7.0 455 - dev: false 456 - 457 - /@node-rs/bcrypt-android-arm-eabi@1.9.0: 458 - resolution: {integrity: sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==} 459 - engines: {node: '>= 10'} 460 - cpu: [arm] 461 - os: [android] 462 - requiresBuild: true 463 - dev: false 464 - optional: true 465 - 466 - /@node-rs/bcrypt-android-arm64@1.9.0: 467 - resolution: {integrity: sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==} 468 - engines: {node: '>= 10'} 469 - cpu: [arm64] 470 - os: [android] 471 - requiresBuild: true 472 - dev: false 473 - optional: true 474 - 475 - /@node-rs/bcrypt-darwin-arm64@1.9.0: 476 - resolution: {integrity: sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==} 477 - engines: {node: '>= 10'} 478 - cpu: [arm64] 479 - os: [darwin] 480 - requiresBuild: true 481 - dev: false 482 - optional: true 483 - 484 - /@node-rs/bcrypt-darwin-x64@1.9.0: 485 - resolution: {integrity: sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==} 486 - engines: {node: '>= 10'} 487 - cpu: [x64] 488 - os: [darwin] 489 - requiresBuild: true 490 - dev: false 491 - optional: true 492 - 493 - /@node-rs/bcrypt-freebsd-x64@1.9.0: 494 - resolution: {integrity: sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==} 495 - engines: {node: '>= 10'} 496 - cpu: [x64] 497 - os: [freebsd] 498 - requiresBuild: true 499 - dev: false 500 - optional: true 501 - 502 - /@node-rs/bcrypt-linux-arm-gnueabihf@1.9.0: 503 - resolution: {integrity: sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==} 504 - engines: {node: '>= 10'} 505 - cpu: [arm] 506 - os: [linux] 507 - requiresBuild: true 508 - dev: false 509 - optional: true 510 - 511 - /@node-rs/bcrypt-linux-arm64-gnu@1.9.0: 512 - resolution: {integrity: sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==} 513 - engines: {node: '>= 10'} 514 - cpu: [arm64] 515 - os: [linux] 516 - requiresBuild: true 517 - dev: false 518 - optional: true 519 - 520 - /@node-rs/bcrypt-linux-arm64-musl@1.9.0: 521 - resolution: {integrity: sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==} 522 - engines: {node: '>= 10'} 523 - cpu: [arm64] 524 - os: [linux] 525 - requiresBuild: true 526 - dev: false 527 - optional: true 528 - 529 - /@node-rs/bcrypt-linux-x64-gnu@1.9.0: 530 - resolution: {integrity: sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==} 531 - engines: {node: '>= 10'} 532 - cpu: [x64] 533 - os: [linux] 534 - requiresBuild: true 535 - dev: false 536 - optional: true 537 - 538 - /@node-rs/bcrypt-linux-x64-musl@1.9.0: 539 - resolution: {integrity: sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==} 540 - engines: {node: '>= 10'} 541 - cpu: [x64] 542 - os: [linux] 543 - requiresBuild: true 544 - dev: false 545 - optional: true 546 - 547 - /@node-rs/bcrypt-wasm32-wasi@1.9.0: 548 - resolution: {integrity: sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==} 549 - engines: {node: '>=14.0.0'} 550 - cpu: [wasm32] 551 - requiresBuild: true 552 - dependencies: 553 - '@emnapi/core': 0.45.0 554 - '@emnapi/runtime': 0.45.0 555 - '@tybys/wasm-util': 0.8.1 556 - memfs-browser: 3.5.10302 557 - dev: false 558 - optional: true 559 - 560 - /@node-rs/bcrypt-win32-arm64-msvc@1.9.0: 561 - resolution: {integrity: sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==} 562 - engines: {node: '>= 10'} 563 - cpu: [arm64] 564 - os: [win32] 565 - requiresBuild: true 566 - dev: false 567 - optional: true 568 - 569 - /@node-rs/bcrypt-win32-ia32-msvc@1.9.0: 570 - resolution: {integrity: sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==} 571 - engines: {node: '>= 10'} 572 - cpu: [ia32] 573 - os: [win32] 574 - requiresBuild: true 575 - dev: false 576 - optional: true 577 - 578 - /@node-rs/bcrypt-win32-x64-msvc@1.9.0: 579 - resolution: {integrity: sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==} 580 - engines: {node: '>= 10'} 581 - cpu: [x64] 582 - os: [win32] 583 - requiresBuild: true 584 - dev: false 585 - optional: true 586 - 587 - /@node-rs/bcrypt@1.9.0: 588 - resolution: {integrity: sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==} 589 - engines: {node: '>= 10'} 590 - optionalDependencies: 591 - '@node-rs/bcrypt-android-arm-eabi': 1.9.0 592 - '@node-rs/bcrypt-android-arm64': 1.9.0 593 - '@node-rs/bcrypt-darwin-arm64': 1.9.0 594 - '@node-rs/bcrypt-darwin-x64': 1.9.0 595 - '@node-rs/bcrypt-freebsd-x64': 1.9.0 596 - '@node-rs/bcrypt-linux-arm-gnueabihf': 1.9.0 597 - '@node-rs/bcrypt-linux-arm64-gnu': 1.9.0 598 - '@node-rs/bcrypt-linux-arm64-musl': 1.9.0 599 - '@node-rs/bcrypt-linux-x64-gnu': 1.9.0 600 - '@node-rs/bcrypt-linux-x64-musl': 1.9.0 601 - '@node-rs/bcrypt-wasm32-wasi': 1.9.0 602 - '@node-rs/bcrypt-win32-arm64-msvc': 1.9.0 603 - '@node-rs/bcrypt-win32-ia32-msvc': 1.9.0 604 - '@node-rs/bcrypt-win32-x64-msvc': 1.9.0 605 - dev: false 606 - 607 - /@nodelib/fs.scandir@2.1.5: 608 - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 609 - engines: {node: '>= 8'} 610 - dependencies: 611 - '@nodelib/fs.stat': 2.0.5 612 - run-parallel: 1.2.0 613 - dev: true 614 - 615 - /@nodelib/fs.stat@2.0.5: 616 - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 617 - engines: {node: '>= 8'} 618 - dev: true 619 - 620 - /@nodelib/fs.walk@1.2.8: 621 - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 622 - engines: {node: '>= 8'} 623 - dependencies: 624 - '@nodelib/fs.scandir': 2.1.5 625 - fastq: 1.17.1 626 - dev: true 627 - 628 - /@pkgjs/parseargs@0.11.0: 629 - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 630 - engines: {node: '>=14'} 631 - requiresBuild: true 632 - dev: true 633 - optional: true 634 - 635 - /@polka/url@1.0.0-next.25: 636 - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} 637 - 638 - /@rollup/rollup-android-arm-eabi@4.12.1: 639 - resolution: {integrity: sha512-iU2Sya8hNn1LhsYyf0N+L4Gf9Qc+9eBTJJJsaOGUp+7x4n2M9dxTt8UvhJl3oeftSjblSlpCfvjA/IfP3g5VjQ==} 640 - cpu: [arm] 641 - os: [android] 642 - requiresBuild: true 643 - optional: true 644 - 645 - /@rollup/rollup-android-arm64@4.12.1: 646 - resolution: {integrity: sha512-wlzcWiH2Ir7rdMELxFE5vuM7D6TsOcJ2Yw0c3vaBR3VOsJFVTx9xvwnAvhgU5Ii8Gd6+I11qNHwndDscIm0HXg==} 647 - cpu: [arm64] 648 - os: [android] 649 - requiresBuild: true 650 - optional: true 651 - 652 - /@rollup/rollup-darwin-arm64@4.12.1: 653 - resolution: {integrity: sha512-YRXa1+aZIFN5BaImK+84B3uNK8C6+ynKLPgvn29X9s0LTVCByp54TB7tdSMHDR7GTV39bz1lOmlLDuedgTwwHg==} 654 - cpu: [arm64] 655 - os: [darwin] 656 - requiresBuild: true 657 - optional: true 658 - 659 - /@rollup/rollup-darwin-x64@4.12.1: 660 - resolution: {integrity: sha512-opjWJ4MevxeA8FhlngQWPBOvVWYNPFkq6/25rGgG+KOy0r8clYwL1CFd+PGwRqqMFVQ4/Qd3sQu5t7ucP7C/Uw==} 661 - cpu: [x64] 662 - os: [darwin] 663 - requiresBuild: true 664 - optional: true 665 - 666 - /@rollup/rollup-linux-arm-gnueabihf@4.12.1: 667 - resolution: {integrity: sha512-uBkwaI+gBUlIe+EfbNnY5xNyXuhZbDSx2nzzW8tRMjUmpScd6lCQYKY2V9BATHtv5Ef2OBq6SChEP8h+/cxifQ==} 668 - cpu: [arm] 669 - os: [linux] 670 - requiresBuild: true 671 - optional: true 672 - 673 - /@rollup/rollup-linux-arm64-gnu@4.12.1: 674 - resolution: {integrity: sha512-0bK9aG1kIg0Su7OcFTlexkVeNZ5IzEsnz1ept87a0TUgZ6HplSgkJAnFpEVRW7GRcikT4GlPV0pbtVedOaXHQQ==} 675 - cpu: [arm64] 676 - os: [linux] 677 - requiresBuild: true 678 - optional: true 679 - 680 - /@rollup/rollup-linux-arm64-musl@4.12.1: 681 - resolution: {integrity: sha512-qB6AFRXuP8bdkBI4D7UPUbE7OQf7u5OL+R94JE42Z2Qjmyj74FtDdLGeriRyBDhm4rQSvqAGCGC01b8Fu2LthQ==} 682 - cpu: [arm64] 683 - os: [linux] 684 - requiresBuild: true 685 - optional: true 686 - 687 - /@rollup/rollup-linux-riscv64-gnu@4.12.1: 688 - resolution: {integrity: sha512-sHig3LaGlpNgDj5o8uPEoGs98RII8HpNIqFtAI8/pYABO8i0nb1QzT0JDoXF/pxzqO+FkxvwkHZo9k0NJYDedg==} 689 - cpu: [riscv64] 690 - os: [linux] 691 - requiresBuild: true 692 - optional: true 693 - 694 - /@rollup/rollup-linux-x64-gnu@4.12.1: 695 - resolution: {integrity: sha512-nD3YcUv6jBJbBNFvSbp0IV66+ba/1teuBcu+fBBPZ33sidxitc6ErhON3JNavaH8HlswhWMC3s5rgZpM4MtPqQ==} 696 - cpu: [x64] 697 - os: [linux] 698 - requiresBuild: true 699 - optional: true 700 - 701 - /@rollup/rollup-linux-x64-musl@4.12.1: 702 - resolution: {integrity: sha512-7/XVZqgBby2qp/cO0TQ8uJK+9xnSdJ9ct6gSDdEr4MfABrjTyrW6Bau7HQ73a2a5tPB7hno49A0y1jhWGDN9OQ==} 703 - cpu: [x64] 704 - os: [linux] 705 - requiresBuild: true 706 - optional: true 707 - 708 - /@rollup/rollup-win32-arm64-msvc@4.12.1: 709 - resolution: {integrity: sha512-CYc64bnICG42UPL7TrhIwsJW4QcKkIt9gGlj21gq3VV0LL6XNb1yAdHVp1pIi9gkts9gGcT3OfUYHjGP7ETAiw==} 710 - cpu: [arm64] 711 - os: [win32] 712 - requiresBuild: true 713 - optional: true 714 - 715 - /@rollup/rollup-win32-ia32-msvc@4.12.1: 716 - resolution: {integrity: sha512-LN+vnlZ9g0qlHGlS920GR4zFCqAwbv2lULrR29yGaWP9u7wF5L7GqWu9Ah6/kFZPXPUkpdZwd//TNR+9XC9hvA==} 717 - cpu: [ia32] 718 - os: [win32] 719 - requiresBuild: true 720 - optional: true 721 - 722 - /@rollup/rollup-win32-x64-msvc@4.12.1: 723 - resolution: {integrity: sha512-n+vkrSyphvmU0qkQ6QBNXCGr2mKjhP08mPRM/Xp5Ck2FV4NrHU+y6axzDeixUrCBHVUS51TZhjqrKBBsHLKb2Q==} 724 - cpu: [x64] 725 - os: [win32] 726 - requiresBuild: true 727 - optional: true 728 - 729 - /@sveltejs/adapter-auto@3.1.1(@sveltejs/kit@2.5.2): 730 - resolution: {integrity: sha512-6LeZft2Fo/4HfmLBi5CucMYmgRxgcETweQl/yQoZo/895K3S9YWYN4Sfm/IhwlIpbJp3QNvhKmwCHbsqQNYQpw==} 731 - peerDependencies: 732 - '@sveltejs/kit': ^2.0.0 733 - dependencies: 734 - '@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.69)(vite@5.1.5) 735 - import-meta-resolve: 4.0.0 736 - dev: true 737 - 738 - /@sveltejs/kit@2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.69)(vite@5.1.5): 739 - resolution: {integrity: sha512-1Pm2lsBYURQsjnLyZa+jw75eVD4gYHxGRwPyFe4DAmB3FjTVR8vRNWGeuDLGFcKMh/B1ij6FTUrc9GrerogCng==} 740 - engines: {node: '>=18.13'} 741 - hasBin: true 742 - requiresBuild: true 743 - peerDependencies: 744 - '@sveltejs/vite-plugin-svelte': ^3.0.0 745 - svelte: ^4.0.0 || ^5.0.0-next.0 746 - vite: ^5.0.3 747 - dependencies: 748 - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@5.0.0-next.69)(vite@5.1.5) 749 - '@types/cookie': 0.6.0 750 - cookie: 0.6.0 751 - devalue: 4.3.2 752 - esm-env: 1.0.0 753 - import-meta-resolve: 4.0.0 754 - kleur: 4.1.5 755 - magic-string: 0.30.8 756 - mrmime: 2.0.0 757 - sade: 1.8.1 758 - set-cookie-parser: 2.6.0 759 - sirv: 2.0.4 760 - svelte: 5.0.0-next.69 761 - tiny-glob: 0.2.9 762 - vite: 5.1.5 763 - 764 - /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.69)(vite@5.1.5): 765 - resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==} 766 - engines: {node: ^18.0.0 || >=20} 767 - peerDependencies: 768 - '@sveltejs/vite-plugin-svelte': ^3.0.0 769 - svelte: ^4.0.0 || ^5.0.0-next.0 770 - vite: ^5.0.0 771 - dependencies: 772 - '@sveltejs/vite-plugin-svelte': 3.0.2(svelte@5.0.0-next.69)(vite@5.1.5) 773 - debug: 4.3.4 774 - svelte: 5.0.0-next.69 775 - vite: 5.1.5 776 - transitivePeerDependencies: 777 - - supports-color 778 - 779 - /@sveltejs/vite-plugin-svelte@3.0.2(svelte@5.0.0-next.69)(vite@5.1.5): 780 - resolution: {integrity: sha512-MpmF/cju2HqUls50WyTHQBZUV3ovV/Uk8k66AN2gwHogNAG8wnW8xtZDhzNBsFJJuvmq1qnzA5kE7YfMJNFv2Q==} 781 - engines: {node: ^18.0.0 || >=20} 782 - peerDependencies: 783 - svelte: ^4.0.0 || ^5.0.0-next.0 784 - vite: ^5.0.0 785 - dependencies: 786 - '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.69)(vite@5.1.5) 787 - debug: 4.3.4 788 - deepmerge: 4.3.1 789 - kleur: 4.1.5 790 - magic-string: 0.30.8 791 - svelte: 5.0.0-next.69 792 - svelte-hmr: 0.15.3(svelte@5.0.0-next.69) 793 - vite: 5.1.5 794 - vitefu: 0.2.5(vite@5.1.5) 795 - transitivePeerDependencies: 796 - - supports-color 797 - 798 - /@tybys/wasm-util@0.8.1: 799 - resolution: {integrity: sha512-GSsTwyBl4pIzsxAY5wroZdyQKyhXk0d8PCRZtrSZ2WEB1cBdrp2EgGBwHOGCZtIIPun/DL3+AykCv+J6fyRH4Q==} 800 - requiresBuild: true 801 - dependencies: 802 - tslib: 2.6.2 803 - dev: false 804 - optional: true 805 - 806 - /@types/cookie@0.6.0: 807 - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} 808 - 809 - /@types/estree@1.0.5: 810 - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 811 - 812 - /@types/pug@2.0.10: 813 - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} 814 - dev: true 815 - 816 - /@vercel/analytics@1.2.2: 817 - resolution: {integrity: sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==} 818 - peerDependencies: 819 - next: '>= 13' 820 - react: ^18 || ^19 821 - peerDependenciesMeta: 822 - next: 823 - optional: true 824 - react: 825 - optional: true 826 - dependencies: 827 - server-only: 0.0.1 828 - dev: false 829 - 830 - /@vercel/speed-insights@1.0.10(@sveltejs/kit@2.5.2)(svelte@5.0.0-next.69): 831 - resolution: {integrity: sha512-4uzdKB0RW6Ff2FkzshzjZ+RlJfLPxgm/00i0XXgxfMPhwnnsk92YgtqsxT9OcPLdJUyVU1DqFlSWWjIQMPkh0g==} 832 - requiresBuild: true 833 - peerDependencies: 834 - '@sveltejs/kit': ^1 || ^2 835 - next: '>= 13' 836 - react: ^18 || ^19 837 - svelte: ^4 838 - vue: ^3 839 - vue-router: ^4 840 - peerDependenciesMeta: 841 - '@sveltejs/kit': 842 - optional: true 843 - next: 844 - optional: true 845 - react: 846 - optional: true 847 - svelte: 848 - optional: true 849 - vue: 850 - optional: true 851 - vue-router: 852 - optional: true 853 - dependencies: 854 - '@sveltejs/kit': 2.5.2(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@5.0.0-next.69)(vite@5.1.5) 855 - svelte: 5.0.0-next.69 856 - dev: false 857 - 858 - /acorn-typescript@1.4.13(acorn@8.11.3): 859 - resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==} 860 - peerDependencies: 861 - acorn: '>=8.9.0' 862 - dependencies: 863 - acorn: 8.11.3 864 - 865 - /acorn@8.11.3: 866 - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 867 - engines: {node: '>=0.4.0'} 868 - hasBin: true 869 - 870 - /ansi-regex@5.0.1: 871 - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 872 - engines: {node: '>=8'} 873 - dev: true 874 - 875 - /ansi-regex@6.0.1: 876 - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 877 - engines: {node: '>=12'} 878 - dev: true 879 - 880 - /ansi-styles@4.3.0: 881 - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 882 - engines: {node: '>=8'} 883 - dependencies: 884 - color-convert: 2.0.1 885 - dev: true 886 - 887 - /ansi-styles@6.2.1: 888 - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 889 - engines: {node: '>=12'} 890 - dev: true 891 - 892 - /any-promise@1.3.0: 893 - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 894 - dev: true 895 - 896 - /anymatch@3.1.3: 897 - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 898 - engines: {node: '>= 8'} 899 - dependencies: 900 - normalize-path: 3.0.0 901 - picomatch: 2.3.1 902 - dev: true 903 - 904 - /arg@5.0.2: 905 - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 906 - dev: true 907 - 908 - /aria-query@5.3.0: 909 - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 910 - dependencies: 911 - dequal: 2.0.3 912 - 913 - /autoprefixer@10.4.18(postcss@8.4.35): 914 - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} 915 - engines: {node: ^10 || ^12 || >=14} 916 - hasBin: true 917 - peerDependencies: 918 - postcss: ^8.1.0 919 - dependencies: 920 - browserslist: 4.23.0 921 - caniuse-lite: 1.0.30001596 922 - fraction.js: 4.3.7 923 - normalize-range: 0.1.2 924 - picocolors: 1.0.0 925 - postcss: 8.4.35 926 - postcss-value-parser: 4.2.0 927 - dev: true 928 - 929 - /axobject-query@4.0.0: 930 - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} 931 - dependencies: 932 - dequal: 2.0.3 933 - 934 - /balanced-match@1.0.2: 935 - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 936 - dev: true 937 - 938 - /binary-extensions@2.2.0: 939 - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 940 - engines: {node: '>=8'} 941 - dev: true 942 - 943 - /brace-expansion@1.1.11: 944 - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 945 - dependencies: 946 - balanced-match: 1.0.2 947 - concat-map: 0.0.1 948 - dev: true 949 - 950 - /brace-expansion@2.0.1: 951 - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 952 - dependencies: 953 - balanced-match: 1.0.2 954 - dev: true 955 - 956 - /braces@3.0.2: 957 - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 958 - engines: {node: '>=8'} 959 - dependencies: 960 - fill-range: 7.0.1 961 - dev: true 962 - 963 - /browserslist@4.23.0: 964 - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} 965 - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 966 - hasBin: true 967 - dependencies: 968 - caniuse-lite: 1.0.30001596 969 - electron-to-chromium: 1.4.698 970 - node-releases: 2.0.14 971 - update-browserslist-db: 1.0.13(browserslist@4.23.0) 972 - dev: true 973 - 974 - /buffer-crc32@0.2.13: 975 - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 976 - dev: true 977 - 978 - /callsites@3.1.0: 979 - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 980 - engines: {node: '>=6'} 981 - dev: true 982 - 983 - /camelcase-css@2.0.1: 984 - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 985 - engines: {node: '>= 6'} 986 - dev: true 987 - 988 - /caniuse-lite@1.0.30001596: 989 - resolution: {integrity: sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==} 990 - dev: true 991 - 992 - /chokidar@3.6.0: 993 - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 994 - engines: {node: '>= 8.10.0'} 995 - dependencies: 996 - anymatch: 3.1.3 997 - braces: 3.0.2 998 - glob-parent: 5.1.2 999 - is-binary-path: 2.1.0 1000 - is-glob: 4.0.3 1001 - normalize-path: 3.0.0 1002 - readdirp: 3.6.0 1003 - optionalDependencies: 1004 - fsevents: 2.3.3 1005 - dev: true 1006 - 1007 - /color-convert@2.0.1: 1008 - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1009 - engines: {node: '>=7.0.0'} 1010 - dependencies: 1011 - color-name: 1.1.4 1012 - dev: true 1013 - 1014 - /color-name@1.1.4: 1015 - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1016 - dev: true 1017 - 1018 - /commander@4.1.1: 1019 - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 1020 - engines: {node: '>= 6'} 1021 - dev: true 1022 - 1023 - /concat-map@0.0.1: 1024 - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1025 - dev: true 1026 - 1027 - /cookie@0.6.0: 1028 - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 1029 - engines: {node: '>= 0.6'} 1030 - 1031 - /cross-spawn@7.0.3: 1032 - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 1033 - engines: {node: '>= 8'} 1034 - dependencies: 1035 - path-key: 3.1.1 1036 - shebang-command: 2.0.0 1037 - which: 2.0.2 1038 - dev: true 1039 - 1040 - /cssesc@3.0.0: 1041 - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1042 - engines: {node: '>=4'} 1043 - hasBin: true 1044 - dev: true 1045 - 1046 - /debug@4.3.4: 1047 - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 1048 - engines: {node: '>=6.0'} 1049 - peerDependencies: 1050 - supports-color: '*' 1051 - peerDependenciesMeta: 1052 - supports-color: 1053 - optional: true 1054 - dependencies: 1055 - ms: 2.1.2 1056 - 1057 - /deepmerge@4.3.1: 1058 - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 1059 - engines: {node: '>=0.10.0'} 1060 - 1061 - /dequal@2.0.3: 1062 - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1063 - engines: {node: '>=6'} 1064 - 1065 - /detect-indent@6.1.0: 1066 - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 1067 - engines: {node: '>=8'} 1068 - dev: true 1069 - 1070 - /devalue@4.3.2: 1071 - resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} 1072 - 1073 - /didyoumean@1.2.2: 1074 - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1075 - dev: true 1076 - 1077 - /dlv@1.1.3: 1078 - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1079 - dev: true 1080 - 1081 - /eastasianwidth@0.2.0: 1082 - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1083 - dev: true 1084 - 1085 - /electron-to-chromium@1.4.698: 1086 - resolution: {integrity: sha512-f9iZD1t3CLy1AS6vzM5EKGa6p9pRcOeEFXRFbaG2Ta+Oe7MkfRQ3fsvPYidzHe1h4i0JvIvpcY55C+B6BZNGtQ==} 1087 - dev: true 1088 - 1089 - /emoji-regex@8.0.0: 1090 - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1091 - dev: true 1092 - 1093 - /emoji-regex@9.2.2: 1094 - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1095 - dev: true 1096 - 1097 - /es6-promise@3.3.1: 1098 - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} 1099 - dev: true 1100 - 1101 - /esbuild@0.19.12: 1102 - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} 1103 - engines: {node: '>=12'} 1104 - hasBin: true 1105 - requiresBuild: true 1106 - optionalDependencies: 1107 - '@esbuild/aix-ppc64': 0.19.12 1108 - '@esbuild/android-arm': 0.19.12 1109 - '@esbuild/android-arm64': 0.19.12 1110 - '@esbuild/android-x64': 0.19.12 1111 - '@esbuild/darwin-arm64': 0.19.12 1112 - '@esbuild/darwin-x64': 0.19.12 1113 - '@esbuild/freebsd-arm64': 0.19.12 1114 - '@esbuild/freebsd-x64': 0.19.12 1115 - '@esbuild/linux-arm': 0.19.12 1116 - '@esbuild/linux-arm64': 0.19.12 1117 - '@esbuild/linux-ia32': 0.19.12 1118 - '@esbuild/linux-loong64': 0.19.12 1119 - '@esbuild/linux-mips64el': 0.19.12 1120 - '@esbuild/linux-ppc64': 0.19.12 1121 - '@esbuild/linux-riscv64': 0.19.12 1122 - '@esbuild/linux-s390x': 0.19.12 1123 - '@esbuild/linux-x64': 0.19.12 1124 - '@esbuild/netbsd-x64': 0.19.12 1125 - '@esbuild/openbsd-x64': 0.19.12 1126 - '@esbuild/sunos-x64': 0.19.12 1127 - '@esbuild/win32-arm64': 0.19.12 1128 - '@esbuild/win32-ia32': 0.19.12 1129 - '@esbuild/win32-x64': 0.19.12 1130 - 1131 - /escalade@3.1.2: 1132 - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 1133 - engines: {node: '>=6'} 1134 - dev: true 1135 - 1136 - /esm-env@1.0.0: 1137 - resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} 1138 - 1139 - /esrap@1.2.1: 1140 - resolution: {integrity: sha512-dhkcOLfN/aDdMFI1iwPEcy/XqAZzGNfgfEJjZozy2tia6u0dQoZyXzkRshHTckuNsM+c0CYQndY+uRFe3N+AIQ==} 1141 - dependencies: 1142 - '@jridgewell/sourcemap-codec': 1.4.15 1143 - '@types/estree': 1.0.5 1144 - 1145 - /fast-glob@3.3.2: 1146 - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1147 - engines: {node: '>=8.6.0'} 1148 - dependencies: 1149 - '@nodelib/fs.stat': 2.0.5 1150 - '@nodelib/fs.walk': 1.2.8 1151 - glob-parent: 5.1.2 1152 - merge2: 1.4.1 1153 - micromatch: 4.0.5 1154 - dev: true 1155 - 1156 - /fastq@1.17.1: 1157 - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1158 - dependencies: 1159 - reusify: 1.0.4 1160 - dev: true 1161 - 1162 - /fill-range@7.0.1: 1163 - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1164 - engines: {node: '>=8'} 1165 - dependencies: 1166 - to-regex-range: 5.0.1 1167 - dev: true 1168 - 1169 - /foreground-child@3.1.1: 1170 - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} 1171 - engines: {node: '>=14'} 1172 - dependencies: 1173 - cross-spawn: 7.0.3 1174 - signal-exit: 4.1.0 1175 - dev: true 1176 - 1177 - /fraction.js@4.3.7: 1178 - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 1179 - dev: true 1180 - 1181 - /fs-monkey@1.0.5: 1182 - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==} 1183 - requiresBuild: true 1184 - dev: false 1185 - optional: true 1186 - 1187 - /fs.realpath@1.0.0: 1188 - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1189 - dev: true 1190 - 1191 - /fsevents@2.3.3: 1192 - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1193 - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1194 - os: [darwin] 1195 - requiresBuild: true 1196 - optional: true 1197 - 1198 - /function-bind@1.1.2: 1199 - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1200 - dev: true 1201 - 1202 - /glob-parent@5.1.2: 1203 - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1204 - engines: {node: '>= 6'} 1205 - dependencies: 1206 - is-glob: 4.0.3 1207 - dev: true 1208 - 1209 - /glob-parent@6.0.2: 1210 - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1211 - engines: {node: '>=10.13.0'} 1212 - dependencies: 1213 - is-glob: 4.0.3 1214 - dev: true 1215 - 1216 - /glob@10.3.10: 1217 - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 1218 - engines: {node: '>=16 || 14 >=14.17'} 1219 - hasBin: true 1220 - dependencies: 1221 - foreground-child: 3.1.1 1222 - jackspeak: 2.3.6 1223 - minimatch: 9.0.3 1224 - minipass: 7.0.4 1225 - path-scurry: 1.10.1 1226 - dev: true 1227 - 1228 - /glob@7.2.3: 1229 - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1230 - dependencies: 1231 - fs.realpath: 1.0.0 1232 - inflight: 1.0.6 1233 - inherits: 2.0.4 1234 - minimatch: 3.1.2 1235 - once: 1.4.0 1236 - path-is-absolute: 1.0.1 1237 - dev: true 1238 - 1239 - /globalyzer@0.1.0: 1240 - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} 1241 - 1242 - /globrex@0.1.2: 1243 - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} 1244 - 1245 - /graceful-fs@4.2.11: 1246 - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1247 - dev: true 1248 - 1249 - /hasown@2.0.1: 1250 - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} 1251 - engines: {node: '>= 0.4'} 1252 - dependencies: 1253 - function-bind: 1.1.2 1254 - dev: true 1255 - 1256 - /import-fresh@3.3.0: 1257 - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1258 - engines: {node: '>=6'} 1259 - dependencies: 1260 - parent-module: 1.0.1 1261 - resolve-from: 4.0.0 1262 - dev: true 1263 - 1264 - /import-meta-resolve@4.0.0: 1265 - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} 1266 - 1267 - /inflight@1.0.6: 1268 - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1269 - dependencies: 1270 - once: 1.4.0 1271 - wrappy: 1.0.2 1272 - dev: true 1273 - 1274 - /inherits@2.0.4: 1275 - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1276 - dev: true 1277 - 1278 - /is-binary-path@2.1.0: 1279 - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1280 - engines: {node: '>=8'} 1281 - dependencies: 1282 - binary-extensions: 2.2.0 1283 - dev: true 1284 - 1285 - /is-core-module@2.13.1: 1286 - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1287 - dependencies: 1288 - hasown: 2.0.1 1289 - dev: true 1290 - 1291 - /is-extglob@2.1.1: 1292 - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1293 - engines: {node: '>=0.10.0'} 1294 - dev: true 1295 - 1296 - /is-fullwidth-code-point@3.0.0: 1297 - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1298 - engines: {node: '>=8'} 1299 - dev: true 1300 - 1301 - /is-glob@4.0.3: 1302 - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1303 - engines: {node: '>=0.10.0'} 1304 - dependencies: 1305 - is-extglob: 2.1.1 1306 - dev: true 1307 - 1308 - /is-number@7.0.0: 1309 - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1310 - engines: {node: '>=0.12.0'} 1311 - dev: true 1312 - 1313 - /is-reference@3.0.2: 1314 - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} 1315 - dependencies: 1316 - '@types/estree': 1.0.5 1317 - 1318 - /isexe@2.0.0: 1319 - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1320 - dev: true 1321 - 1322 - /jackspeak@2.3.6: 1323 - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 1324 - engines: {node: '>=14'} 1325 - dependencies: 1326 - '@isaacs/cliui': 8.0.2 1327 - optionalDependencies: 1328 - '@pkgjs/parseargs': 0.11.0 1329 - dev: true 1330 - 1331 - /jiti@1.21.0: 1332 - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} 1333 - hasBin: true 1334 - dev: true 1335 - 1336 - /kleur@4.1.5: 1337 - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} 1338 - engines: {node: '>=6'} 1339 - 1340 - /lilconfig@2.1.0: 1341 - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1342 - engines: {node: '>=10'} 1343 - dev: true 1344 - 1345 - /lilconfig@3.1.1: 1346 - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} 1347 - engines: {node: '>=14'} 1348 - dev: true 1349 - 1350 - /lines-and-columns@1.2.4: 1351 - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1352 - dev: true 1353 - 1354 - /locate-character@3.0.0: 1355 - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} 1356 - 1357 - /lru-cache@10.2.0: 1358 - resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} 1359 - engines: {node: 14 || >=16.14} 1360 - dev: true 1361 - 1362 - /magic-string@0.30.8: 1363 - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} 1364 - engines: {node: '>=12'} 1365 - dependencies: 1366 - '@jridgewell/sourcemap-codec': 1.4.15 1367 - 1368 - /memfs-browser@3.5.10302: 1369 - resolution: {integrity: sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw==} 1370 - requiresBuild: true 1371 - dependencies: 1372 - memfs: 3.5.3 1373 - dev: false 1374 - optional: true 1375 - 1376 - /memfs@3.5.3: 1377 - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} 1378 - engines: {node: '>= 4.0.0'} 1379 - requiresBuild: true 1380 - dependencies: 1381 - fs-monkey: 1.0.5 1382 - dev: false 1383 - optional: true 1384 - 1385 - /merge2@1.4.1: 1386 - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1387 - engines: {node: '>= 8'} 1388 - dev: true 1389 - 1390 - /micromatch@4.0.5: 1391 - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1392 - engines: {node: '>=8.6'} 1393 - dependencies: 1394 - braces: 3.0.2 1395 - picomatch: 2.3.1 1396 - dev: true 1397 - 1398 - /min-indent@1.0.1: 1399 - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1400 - engines: {node: '>=4'} 1401 - dev: true 1402 - 1403 - /minimatch@3.1.2: 1404 - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1405 - dependencies: 1406 - brace-expansion: 1.1.11 1407 - dev: true 1408 - 1409 - /minimatch@9.0.3: 1410 - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 1411 - engines: {node: '>=16 || 14 >=14.17'} 1412 - dependencies: 1413 - brace-expansion: 2.0.1 1414 - dev: true 1415 - 1416 - /minimist@1.2.8: 1417 - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1418 - dev: true 1419 - 1420 - /minipass@7.0.4: 1421 - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} 1422 - engines: {node: '>=16 || 14 >=14.17'} 1423 - dev: true 1424 - 1425 - /mkdirp@0.5.6: 1426 - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} 1427 - hasBin: true 1428 - dependencies: 1429 - minimist: 1.2.8 1430 - dev: true 1431 - 1432 - /mri@1.2.0: 1433 - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1434 - engines: {node: '>=4'} 1435 - 1436 - /mrmime@2.0.0: 1437 - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} 1438 - engines: {node: '>=10'} 1439 - 1440 - /ms@2.1.2: 1441 - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1442 - 1443 - /mz@2.7.0: 1444 - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1445 - dependencies: 1446 - any-promise: 1.3.0 1447 - object-assign: 4.1.1 1448 - thenify-all: 1.6.0 1449 - dev: true 1450 - 1451 - /nanoid@3.3.7: 1452 - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1453 - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1454 - hasBin: true 1455 - 1456 - /node-releases@2.0.14: 1457 - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} 1458 - dev: true 1459 - 1460 - /normalize-path@3.0.0: 1461 - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1462 - engines: {node: '>=0.10.0'} 1463 - dev: true 1464 - 1465 - /normalize-range@0.1.2: 1466 - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 1467 - engines: {node: '>=0.10.0'} 1468 - dev: true 1469 - 1470 - /object-assign@4.1.1: 1471 - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1472 - engines: {node: '>=0.10.0'} 1473 - dev: true 1474 - 1475 - /object-hash@3.0.0: 1476 - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1477 - engines: {node: '>= 6'} 1478 - dev: true 1479 - 1480 - /once@1.4.0: 1481 - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1482 - dependencies: 1483 - wrappy: 1.0.2 1484 - dev: true 1485 - 1486 - /oslo@1.1.3: 1487 - resolution: {integrity: sha512-hCz528UlNTiegplcyBg6AvG0HLNrnq06EJMp88Ze308GX1hszkb8u3puhNC4aqLMbYQ0hXpl+wQGnwxMtt5+5w==} 1488 - dependencies: 1489 - '@node-rs/argon2': 1.7.0 1490 - '@node-rs/bcrypt': 1.9.0 1491 - dev: false 1492 - 1493 - /parent-module@1.0.1: 1494 - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1495 - engines: {node: '>=6'} 1496 - dependencies: 1497 - callsites: 3.1.0 1498 - dev: true 1499 - 1500 - /path-is-absolute@1.0.1: 1501 - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1502 - engines: {node: '>=0.10.0'} 1503 - dev: true 1504 - 1505 - /path-key@3.1.1: 1506 - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1507 - engines: {node: '>=8'} 1508 - dev: true 1509 - 1510 - /path-parse@1.0.7: 1511 - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1512 - dev: true 1513 - 1514 - /path-scurry@1.10.1: 1515 - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} 1516 - engines: {node: '>=16 || 14 >=14.17'} 1517 - dependencies: 1518 - lru-cache: 10.2.0 1519 - minipass: 7.0.4 1520 - dev: true 1521 - 1522 - /picocolors@1.0.0: 1523 - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1524 - 1525 - /picomatch@2.3.1: 1526 - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1527 - engines: {node: '>=8.6'} 1528 - dev: true 1529 - 1530 - /pify@2.3.0: 1531 - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1532 - engines: {node: '>=0.10.0'} 1533 - dev: true 1534 - 1535 - /pirates@4.0.6: 1536 - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1537 - engines: {node: '>= 6'} 1538 - dev: true 1539 - 1540 - /postcss-import@15.1.0(postcss@8.4.35): 1541 - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1542 - engines: {node: '>=14.0.0'} 1543 - peerDependencies: 1544 - postcss: ^8.0.0 1545 - dependencies: 1546 - postcss: 8.4.35 1547 - postcss-value-parser: 4.2.0 1548 - read-cache: 1.0.0 1549 - resolve: 1.22.8 1550 - dev: true 1551 - 1552 - /postcss-js@4.0.1(postcss@8.4.35): 1553 - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1554 - engines: {node: ^12 || ^14 || >= 16} 1555 - peerDependencies: 1556 - postcss: ^8.4.21 1557 - dependencies: 1558 - camelcase-css: 2.0.1 1559 - postcss: 8.4.35 1560 - dev: true 1561 - 1562 - /postcss-load-config@4.0.2(postcss@8.4.35): 1563 - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 1564 - engines: {node: '>= 14'} 1565 - peerDependencies: 1566 - postcss: '>=8.0.9' 1567 - ts-node: '>=9.0.0' 1568 - peerDependenciesMeta: 1569 - postcss: 1570 - optional: true 1571 - ts-node: 1572 - optional: true 1573 - dependencies: 1574 - lilconfig: 3.1.1 1575 - postcss: 8.4.35 1576 - yaml: 2.4.1 1577 - dev: true 1578 - 1579 - /postcss-nested@6.0.1(postcss@8.4.35): 1580 - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 1581 - engines: {node: '>=12.0'} 1582 - peerDependencies: 1583 - postcss: ^8.2.14 1584 - dependencies: 1585 - postcss: 8.4.35 1586 - postcss-selector-parser: 6.0.15 1587 - dev: true 1588 - 1589 - /postcss-selector-parser@6.0.15: 1590 - resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} 1591 - engines: {node: '>=4'} 1592 - dependencies: 1593 - cssesc: 3.0.0 1594 - util-deprecate: 1.0.2 1595 - dev: true 1596 - 1597 - /postcss-value-parser@4.2.0: 1598 - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1599 - dev: true 1600 - 1601 - /postcss@8.4.35: 1602 - resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} 1603 - engines: {node: ^10 || ^12 || >=14} 1604 - dependencies: 1605 - nanoid: 3.3.7 1606 - picocolors: 1.0.0 1607 - source-map-js: 1.0.2 1608 - 1609 - /queue-microtask@1.2.3: 1610 - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1611 - dev: true 1612 - 1613 - /read-cache@1.0.0: 1614 - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1615 - dependencies: 1616 - pify: 2.3.0 1617 - dev: true 1618 - 1619 - /readdirp@3.6.0: 1620 - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1621 - engines: {node: '>=8.10.0'} 1622 - dependencies: 1623 - picomatch: 2.3.1 1624 - dev: true 1625 - 1626 - /resolve-from@4.0.0: 1627 - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1628 - engines: {node: '>=4'} 1629 - dev: true 1630 - 1631 - /resolve@1.22.8: 1632 - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1633 - hasBin: true 1634 - dependencies: 1635 - is-core-module: 2.13.1 1636 - path-parse: 1.0.7 1637 - supports-preserve-symlinks-flag: 1.0.0 1638 - dev: true 1639 - 1640 - /reusify@1.0.4: 1641 - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1642 - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1643 - dev: true 1644 - 1645 - /rimraf@2.7.1: 1646 - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} 1647 - hasBin: true 1648 - dependencies: 1649 - glob: 7.2.3 1650 - dev: true 1651 - 1652 - /rollup@4.12.1: 1653 - resolution: {integrity: sha512-ggqQKvx/PsB0FaWXhIvVkSWh7a/PCLQAsMjBc+nA2M8Rv2/HG0X6zvixAB7KyZBRtifBUhy5k8voQX/mRnABPg==} 1654 - engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1655 - hasBin: true 1656 - dependencies: 1657 - '@types/estree': 1.0.5 1658 - optionalDependencies: 1659 - '@rollup/rollup-android-arm-eabi': 4.12.1 1660 - '@rollup/rollup-android-arm64': 4.12.1 1661 - '@rollup/rollup-darwin-arm64': 4.12.1 1662 - '@rollup/rollup-darwin-x64': 4.12.1 1663 - '@rollup/rollup-linux-arm-gnueabihf': 4.12.1 1664 - '@rollup/rollup-linux-arm64-gnu': 4.12.1 1665 - '@rollup/rollup-linux-arm64-musl': 4.12.1 1666 - '@rollup/rollup-linux-riscv64-gnu': 4.12.1 1667 - '@rollup/rollup-linux-x64-gnu': 4.12.1 1668 - '@rollup/rollup-linux-x64-musl': 4.12.1 1669 - '@rollup/rollup-win32-arm64-msvc': 4.12.1 1670 - '@rollup/rollup-win32-ia32-msvc': 4.12.1 1671 - '@rollup/rollup-win32-x64-msvc': 4.12.1 1672 - fsevents: 2.3.3 1673 - 1674 - /run-parallel@1.2.0: 1675 - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1676 - dependencies: 1677 - queue-microtask: 1.2.3 1678 - dev: true 1679 - 1680 - /sade@1.8.1: 1681 - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} 1682 - engines: {node: '>=6'} 1683 - dependencies: 1684 - mri: 1.2.0 1685 - 1686 - /sander@0.5.1: 1687 - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} 1688 - dependencies: 1689 - es6-promise: 3.3.1 1690 - graceful-fs: 4.2.11 1691 - mkdirp: 0.5.6 1692 - rimraf: 2.7.1 1693 - dev: true 1694 - 1695 - /server-only@0.0.1: 1696 - resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} 1697 - dev: false 1698 - 1699 - /set-cookie-parser@2.6.0: 1700 - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} 1701 - 1702 - /shebang-command@2.0.0: 1703 - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1704 - engines: {node: '>=8'} 1705 - dependencies: 1706 - shebang-regex: 3.0.0 1707 - dev: true 1708 - 1709 - /shebang-regex@3.0.0: 1710 - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1711 - engines: {node: '>=8'} 1712 - dev: true 1713 - 1714 - /signal-exit@4.1.0: 1715 - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1716 - engines: {node: '>=14'} 1717 - dev: true 1718 - 1719 - /sirv@2.0.4: 1720 - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} 1721 - engines: {node: '>= 10'} 1722 - dependencies: 1723 - '@polka/url': 1.0.0-next.25 1724 - mrmime: 2.0.0 1725 - totalist: 3.0.1 1726 - 1727 - /sorcery@0.11.0: 1728 - resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} 1729 - hasBin: true 1730 - dependencies: 1731 - '@jridgewell/sourcemap-codec': 1.4.15 1732 - buffer-crc32: 0.2.13 1733 - minimist: 1.2.8 1734 - sander: 0.5.1 1735 - dev: true 1736 - 1737 - /source-map-js@1.0.2: 1738 - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1739 - engines: {node: '>=0.10.0'} 1740 - 1741 - /string-width@4.2.3: 1742 - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1743 - engines: {node: '>=8'} 1744 - dependencies: 1745 - emoji-regex: 8.0.0 1746 - is-fullwidth-code-point: 3.0.0 1747 - strip-ansi: 6.0.1 1748 - dev: true 1749 - 1750 - /string-width@5.1.2: 1751 - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1752 - engines: {node: '>=12'} 1753 - dependencies: 1754 - eastasianwidth: 0.2.0 1755 - emoji-regex: 9.2.2 1756 - strip-ansi: 7.1.0 1757 - dev: true 1758 - 1759 - /strip-ansi@6.0.1: 1760 - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1761 - engines: {node: '>=8'} 1762 - dependencies: 1763 - ansi-regex: 5.0.1 1764 - dev: true 1765 - 1766 - /strip-ansi@7.1.0: 1767 - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1768 - engines: {node: '>=12'} 1769 - dependencies: 1770 - ansi-regex: 6.0.1 1771 - dev: true 1772 - 1773 - /strip-indent@3.0.0: 1774 - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1775 - engines: {node: '>=8'} 1776 - dependencies: 1777 - min-indent: 1.0.1 1778 - dev: true 1779 - 1780 - /sucrase@3.35.0: 1781 - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1782 - engines: {node: '>=16 || 14 >=14.17'} 1783 - hasBin: true 1784 - dependencies: 1785 - '@jridgewell/gen-mapping': 0.3.5 1786 - commander: 4.1.1 1787 - glob: 10.3.10 1788 - lines-and-columns: 1.2.4 1789 - mz: 2.7.0 1790 - pirates: 4.0.6 1791 - ts-interface-checker: 0.1.13 1792 - dev: true 1793 - 1794 - /supports-preserve-symlinks-flag@1.0.0: 1795 - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1796 - engines: {node: '>= 0.4'} 1797 - dev: true 1798 - 1799 - /svelte-check@3.6.6(postcss@8.4.35)(svelte@5.0.0-next.69): 1800 - resolution: {integrity: sha512-b9q9rOHOMYF3U8XllK7LmXTq1LeWQ98waGfEJzrFutViadkNl1tgdEtxIQ8yuPx+VQ4l7YrknYol+0lfZocaZw==} 1801 - hasBin: true 1802 - peerDependencies: 1803 - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 1804 - dependencies: 1805 - '@jridgewell/trace-mapping': 0.3.25 1806 - chokidar: 3.6.0 1807 - fast-glob: 3.3.2 1808 - import-fresh: 3.3.0 1809 - picocolors: 1.0.0 1810 - sade: 1.8.1 1811 - svelte: 5.0.0-next.69 1812 - svelte-preprocess: 5.1.3(postcss@8.4.35)(svelte@5.0.0-next.69)(typescript@5.4.2) 1813 - typescript: 5.4.2 1814 - transitivePeerDependencies: 1815 - - '@babel/core' 1816 - - coffeescript 1817 - - less 1818 - - postcss 1819 - - postcss-load-config 1820 - - pug 1821 - - sass 1822 - - stylus 1823 - - sugarss 1824 - dev: true 1825 - 1826 - /svelte-french-toast@1.2.0(svelte@5.0.0-next.69): 1827 - resolution: {integrity: sha512-5PW+6RFX3xQPbR44CngYAP1Sd9oCq9P2FOox4FZffzJuZI2mHOB7q5gJBVnOiLF5y3moVGZ7u2bYt7+yPAgcEQ==} 1828 - peerDependencies: 1829 - svelte: ^3.57.0 || ^4.0.0 1830 - dependencies: 1831 - svelte: 5.0.0-next.69 1832 - svelte-writable-derived: 3.1.0(svelte@5.0.0-next.69) 1833 - dev: false 1834 - 1835 - /svelte-hmr@0.15.3(svelte@5.0.0-next.69): 1836 - resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} 1837 - engines: {node: ^12.20 || ^14.13.1 || >= 16} 1838 - peerDependencies: 1839 - svelte: ^3.19.0 || ^4.0.0 1840 - dependencies: 1841 - svelte: 5.0.0-next.69 1842 - 1843 - /svelte-preprocess@5.1.3(postcss@8.4.35)(svelte@5.0.0-next.69)(typescript@5.4.2): 1844 - resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==} 1845 - engines: {node: '>= 16.0.0', pnpm: ^8.0.0} 1846 - requiresBuild: true 1847 - peerDependencies: 1848 - '@babel/core': ^7.10.2 1849 - coffeescript: ^2.5.1 1850 - less: ^3.11.3 || ^4.0.0 1851 - postcss: ^7 || ^8 1852 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 1853 - pug: ^3.0.0 1854 - sass: ^1.26.8 1855 - stylus: ^0.55.0 1856 - sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 1857 - svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 1858 - typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' 1859 - peerDependenciesMeta: 1860 - '@babel/core': 1861 - optional: true 1862 - coffeescript: 1863 - optional: true 1864 - less: 1865 - optional: true 1866 - postcss: 1867 - optional: true 1868 - postcss-load-config: 1869 - optional: true 1870 - pug: 1871 - optional: true 1872 - sass: 1873 - optional: true 1874 - stylus: 1875 - optional: true 1876 - sugarss: 1877 - optional: true 1878 - typescript: 1879 - optional: true 1880 - dependencies: 1881 - '@types/pug': 2.0.10 1882 - detect-indent: 6.1.0 1883 - magic-string: 0.30.8 1884 - postcss: 8.4.35 1885 - sorcery: 0.11.0 1886 - strip-indent: 3.0.0 1887 - svelte: 5.0.0-next.69 1888 - typescript: 5.4.2 1889 - dev: true 1890 - 1891 - /svelte-writable-derived@3.1.0(svelte@5.0.0-next.69): 1892 - resolution: {integrity: sha512-cTvaVFNIJ036vSDIyPxJYivKC7ZLtcFOPm1Iq6qWBDo1fOHzfk6ZSbwaKrxhjgy52Rbl5IHzRcWgos6Zqn9/rg==} 1893 - peerDependencies: 1894 - svelte: ^3.2.1 || ^4.0.0-next.1 1895 - dependencies: 1896 - svelte: 5.0.0-next.69 1897 - dev: false 1898 - 1899 - /svelte@5.0.0-next.69: 1900 - resolution: {integrity: sha512-9/rJteePoaLTpZXvlnJn6PmFxpXHtRAEXZi/tydCpb0NiwkVG9aAlHriVaLA7gFiIHBPNE/n56MPvujnqnjgtw==} 1901 - engines: {node: '>=18'} 1902 - dependencies: 1903 - '@ampproject/remapping': 2.3.0 1904 - '@jridgewell/sourcemap-codec': 1.4.15 1905 - '@types/estree': 1.0.5 1906 - acorn: 8.11.3 1907 - acorn-typescript: 1.4.13(acorn@8.11.3) 1908 - aria-query: 5.3.0 1909 - axobject-query: 4.0.0 1910 - esm-env: 1.0.0 1911 - esrap: 1.2.1 1912 - is-reference: 3.0.2 1913 - locate-character: 3.0.0 1914 - magic-string: 0.30.8 1915 - zimmerframe: 1.1.2 1916 - 1917 - /tailwindcss@3.4.1: 1918 - resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} 1919 - engines: {node: '>=14.0.0'} 1920 - hasBin: true 1921 - dependencies: 1922 - '@alloc/quick-lru': 5.2.0 1923 - arg: 5.0.2 1924 - chokidar: 3.6.0 1925 - didyoumean: 1.2.2 1926 - dlv: 1.1.3 1927 - fast-glob: 3.3.2 1928 - glob-parent: 6.0.2 1929 - is-glob: 4.0.3 1930 - jiti: 1.21.0 1931 - lilconfig: 2.1.0 1932 - micromatch: 4.0.5 1933 - normalize-path: 3.0.0 1934 - object-hash: 3.0.0 1935 - picocolors: 1.0.0 1936 - postcss: 8.4.35 1937 - postcss-import: 15.1.0(postcss@8.4.35) 1938 - postcss-js: 4.0.1(postcss@8.4.35) 1939 - postcss-load-config: 4.0.2(postcss@8.4.35) 1940 - postcss-nested: 6.0.1(postcss@8.4.35) 1941 - postcss-selector-parser: 6.0.15 1942 - resolve: 1.22.8 1943 - sucrase: 3.35.0 1944 - transitivePeerDependencies: 1945 - - ts-node 1946 - dev: true 1947 - 1948 - /thenify-all@1.6.0: 1949 - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1950 - engines: {node: '>=0.8'} 1951 - dependencies: 1952 - thenify: 3.3.1 1953 - dev: true 1954 - 1955 - /thenify@3.3.1: 1956 - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1957 - dependencies: 1958 - any-promise: 1.3.0 1959 - dev: true 1960 - 1961 - /tiny-glob@0.2.9: 1962 - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} 1963 - dependencies: 1964 - globalyzer: 0.1.0 1965 - globrex: 0.1.2 1966 - 1967 - /to-regex-range@5.0.1: 1968 - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1969 - engines: {node: '>=8.0'} 1970 - dependencies: 1971 - is-number: 7.0.0 1972 - dev: true 1973 - 1974 - /totalist@3.0.1: 1975 - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} 1976 - engines: {node: '>=6'} 1977 - 1978 - /ts-interface-checker@0.1.13: 1979 - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1980 - dev: true 1981 - 1982 - /tslib@2.6.2: 1983 - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1984 - 1985 - /typescript@5.4.2: 1986 - resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} 1987 - engines: {node: '>=14.17'} 1988 - hasBin: true 1989 - dev: true 1990 - 1991 - /update-browserslist-db@1.0.13(browserslist@4.23.0): 1992 - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 1993 - hasBin: true 1994 - peerDependencies: 1995 - browserslist: '>= 4.21.0' 1996 - dependencies: 1997 - browserslist: 4.23.0 1998 - escalade: 3.1.2 1999 - picocolors: 1.0.0 2000 - dev: true 2001 - 2002 - /util-deprecate@1.0.2: 2003 - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2004 - dev: true 2005 - 2006 - /vite@5.1.5: 2007 - resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==} 2008 - engines: {node: ^18.0.0 || >=20.0.0} 2009 - hasBin: true 2010 - peerDependencies: 2011 - '@types/node': ^18.0.0 || >=20.0.0 2012 - less: '*' 2013 - lightningcss: ^1.21.0 2014 - sass: '*' 2015 - stylus: '*' 2016 - sugarss: '*' 2017 - terser: ^5.4.0 2018 - peerDependenciesMeta: 2019 - '@types/node': 2020 - optional: true 2021 - less: 2022 - optional: true 2023 - lightningcss: 2024 - optional: true 2025 - sass: 2026 - optional: true 2027 - stylus: 2028 - optional: true 2029 - sugarss: 2030 - optional: true 2031 - terser: 2032 - optional: true 2033 - dependencies: 2034 - esbuild: 0.19.12 2035 - postcss: 8.4.35 2036 - rollup: 4.12.1 2037 - optionalDependencies: 2038 - fsevents: 2.3.3 2039 - 2040 - /vitefu@0.2.5(vite@5.1.5): 2041 - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} 2042 - peerDependencies: 2043 - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 2044 - peerDependenciesMeta: 2045 - vite: 2046 - optional: true 2047 - dependencies: 2048 - vite: 5.1.5 2049 - 2050 - /which@2.0.2: 2051 - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2052 - engines: {node: '>= 8'} 2053 - hasBin: true 2054 - dependencies: 2055 - isexe: 2.0.0 2056 - dev: true 2057 - 2058 - /wrap-ansi@7.0.0: 2059 - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2060 - engines: {node: '>=10'} 2061 - dependencies: 2062 - ansi-styles: 4.3.0 2063 - string-width: 4.2.3 2064 - strip-ansi: 6.0.1 2065 - dev: true 2066 - 2067 - /wrap-ansi@8.1.0: 2068 - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2069 - engines: {node: '>=12'} 2070 - dependencies: 2071 - ansi-styles: 6.2.1 2072 - string-width: 5.1.2 2073 - strip-ansi: 7.1.0 2074 - dev: true 2075 - 2076 - /wrappy@1.0.2: 2077 - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2078 - dev: true 2079 - 2080 - /yaml@2.4.1: 2081 - resolution: {integrity: sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==} 2082 - engines: {node: '>= 14'} 2083 - hasBin: true 2084 - dev: true 2085 - 2086 - /zimmerframe@1.1.2: 2087 - resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==}
-6
postcss.config.js
··· 1 - export default { 2 - plugins: { 3 - tailwindcss: {}, 4 - autoprefixer: {}, 5 - }, 6 - }
+1 -3
src/app.css
··· 1 - @tailwind base; 2 - @tailwind components; 3 - @tailwind utilities; 1 + @import "tailwindcss"; 4 2 5 3 @font-face { 6 4 font-family: Apfel Grotezk;
+12 -2
src/app.d.ts
··· 1 - // See https://kit.svelte.dev/docs/types#app 1 + // See https://svelte.dev/docs/kit/types#app.d.ts 2 + 3 + import type { Agent } from "@atproto/api"; 4 + import type { ProfileViewDetailed } from "@atproto/api/dist/client/types/app/bsky/actor/defs"; 5 + 2 6 // for information about these interfaces 3 7 declare global { 4 8 namespace App { 5 9 // interface Error {} 6 - // interface Locals {} 10 + 11 + // set on `hooks.server.ts`, available on server functions 12 + interface Locals { 13 + authedAgent: Agent | undefined; 14 + user: ProfileViewDetailed | undefined; 15 + } 16 + 7 17 // interface PageData {} 8 18 // interface PageState {} 9 19 // interface Platform {}
+41
src/hooks.server.ts
··· 1 + import { Agent } from "@atproto/api"; 2 + import { atclient } from "$lib/atproto"; 3 + 4 + import { decryptToString } from "$lib/server/encryption"; 5 + import { decodeBase64, decodeBase64urlIgnorePadding } from "@oslojs/encoding"; 6 + 7 + import type { Handle } from "@sveltejs/kit"; 8 + import { ENCRYPTION_PASSWORD } from "$env/static/private"; 9 + 10 + // runs everytime there's a new request 11 + export const handle: Handle = async ({ event, resolve }) => { 12 + const sid = event.cookies.get("sid"); 13 + 14 + // if there is a session cookie 15 + if (sid) { 16 + // if a user is already authed, skip reauthing 17 + if (event.locals.user) { return resolve(event); } 18 + 19 + // decrypt session cookie 20 + const decoded = decodeBase64urlIgnorePadding(sid); 21 + const key = decodeBase64(ENCRYPTION_PASSWORD); 22 + const decrypted = await decryptToString(key, decoded); 23 + 24 + // get oauth session from client using decrypted cookie 25 + const oauthSession = await atclient.restore(decrypted); 26 + 27 + // set the authed agent 28 + const authedAgent = new Agent(oauthSession); 29 + if (!event.locals.authedAgent) { 30 + event.locals.authedAgent = authedAgent; 31 + } 32 + 33 + // set the authed user with decrypted session DID 34 + const user = await authedAgent.getProfile({ actor: decrypted }); 35 + event.locals.user = user.data; 36 + } 37 + 38 + return resolve(event); 39 + } 40 + 41 +
+92
src/lib/atproto.ts
··· 1 + import { eq } from "drizzle-orm"; 2 + import * as schema from "./schema"; 3 + import { db as database } from "./server/db"; 4 + import { NodeOAuthClient } from "@atproto/oauth-client-node"; 5 + import type { NodeSavedSession, NodeSavedSessionStore, NodeSavedState, NodeSavedStateStore } from "@atproto/oauth-client-node"; 6 + import { db } from "./server/db"; 7 + import { dev } from "$app/environment"; 8 + 9 + // can be implemented with your preferred DB and ORM 10 + // both stores are the same, only different is 'state' and 'session' 11 + 12 + export class AuthStateStore implements NodeSavedStateStore { 13 + constructor(private db: typeof database) {} 14 + 15 + async get(key: string): Promise<NodeSavedState | undefined> { 16 + const result = await this.db.query.AuthState.findFirst({ 17 + where: eq(schema.AuthState.key, key) 18 + }); 19 + 20 + if (!result) return; 21 + 22 + return result.state as NodeSavedState; 23 + } 24 + 25 + async set(key: string, val: NodeSavedState) { 26 + await this.db.insert(schema.AuthState) 27 + .values({ key, state: val }) 28 + .onConflictDoUpdate({ 29 + target: schema.AuthState.key, 30 + set: { state: val } 31 + }); 32 + } 33 + 34 + async del(key: string) { 35 + await this.db.delete(schema.AuthState) 36 + .where(eq(schema.AuthState.key, key)); 37 + } 38 + } 39 + 40 + export class AuthSessionStore implements NodeSavedSessionStore { 41 + constructor(private db: typeof database) {} 42 + 43 + async get(key: string): Promise<NodeSavedSession | undefined> { 44 + const result = await this.db.query.AuthSession.findFirst({ 45 + where: eq(schema.AuthSession.key, key) 46 + }); 47 + 48 + if (!result) return; 49 + return result.session as NodeSavedSession; 50 + } 51 + 52 + async set(key: string, val: NodeSavedSession) { 53 + await this.db.insert(schema.AuthSession) 54 + .values({ key, session: val }) 55 + .onConflictDoUpdate({ 56 + target: schema.AuthSession.key, 57 + set: { session: val } 58 + }); 59 + } 60 + 61 + async del(key: string) { 62 + await this.db.delete(schema.AuthSession) 63 + .where(eq(schema.AuthSession.key, key)); 64 + } 65 + } 66 + 67 + const publicUrl = "https://easytodo.link" 68 + // localhost resolves to either 127.0.0.1 or [::1] (if ipv6) 69 + const url = dev ? "http://[::1]:5173" : publicUrl; 70 + 71 + export const atclient = new NodeOAuthClient({ 72 + stateStore: new AuthStateStore(db), 73 + sessionStore: new AuthSessionStore(db), 74 + clientMetadata: { 75 + client_name: "easytodo.link", 76 + client_id: !dev ? `${publicUrl}/client-metadata.json` 77 + : `http://localhost?redirect_uri=${ 78 + encodeURIComponent(`${url}/oauth/callback`) 79 + }&scope=${ 80 + encodeURIComponent(`atproto repo:link.easytodo.tasks.list repo:link.easytodo.tasks.task rpc:app.bsky.actor.getProfile?aud=did:web:api.bsky.app%23bsky_appview`) 81 + }`, 82 + client_uri: url, 83 + redirect_uris: [`${url}/oauth/callback`], 84 + scope: "atproto repo:link.easytodo.tasks.list repo:link.easytodo.tasks.task rpc:app.bsky.actor.getProfile?aud=did:web:api.bsky.app%23bsky_appview", 85 + grant_types: ["authorization_code", "refresh_token"], 86 + application_type: "web", 87 + token_endpoint_auth_method: "none", 88 + dpop_bound_access_tokens: true 89 + } 90 + }); 91 + 92 +
-1
src/lib/index.ts
··· 1 - // place files you want to import through the `$lib` alias in this folder.
+11
src/lib/schema.ts
··· 1 + import { pgTable, text, json } from 'drizzle-orm/pg-core'; 2 + 3 + export const AuthState = pgTable('auth_state', { 4 + key: text('key').primaryKey().unique(), 5 + state: json('state').notNull() 6 + }); 7 + 8 + export const AuthSession = pgTable('auth_session', { 9 + key: text('key').primaryKey().unique(), 10 + session: json('session').notNull() 11 + });
+10
src/lib/server/db.ts
··· 1 + import { drizzle } from 'drizzle-orm/postgres-js'; 2 + import postgres from 'postgres'; 3 + import { env } from '$env/dynamic/private'; 4 + import * as schema from "../schema"; 5 + 6 + if (!env.DATABASE_URL) throw new Error('DATABASE_URL is not set'); 7 + const client = postgres(env.DATABASE_URL); 8 + 9 + // add schema 10 + export const db = drizzle(client, { schema });
+50
src/lib/server/encryption.ts
··· 1 + // Code by @pilcrowonpaper on GitHub: https://gist.github.com/pilcrowonpaper/353318556029221c8e25f451b91e5f76 2 + // AES128 with the Web Crypto API. 3 + async function encrypt(key: Uint8Array, data: Uint8Array): Promise<Uint8Array> { 4 + const iv = new Uint8Array(16); 5 + crypto.getRandomValues(iv); 6 + const cryptoKey = await crypto.subtle.importKey("raw", key, "AES-GCM", false, ["encrypt"]); 7 + const cipher = await crypto.subtle.encrypt( 8 + { 9 + name: "AES-GCM", 10 + iv, 11 + tagLength: 128 12 + }, 13 + cryptoKey, 14 + data 15 + ); 16 + const encrypted = new Uint8Array(iv.byteLength + cipher.byteLength); 17 + encrypted.set(iv); 18 + encrypted.set(new Uint8Array(cipher), iv.byteLength); 19 + return encrypted; 20 + } 21 + 22 + export async function encryptString(key: Uint8Array, data: string): Promise<Uint8Array> { 23 + const encoded = new TextEncoder().encode(data); 24 + const encrypted = await encrypt(key, encoded); 25 + return encrypted; 26 + } 27 + 28 + async function decrypt(key: Uint8Array, encrypted: Uint8Array): Promise<Uint8Array> { 29 + if (encrypted.length < 16) { 30 + throw new Error("Invalid data"); 31 + } 32 + const cryptoKey = await crypto.subtle.importKey("raw", key, "AES-GCM", false, ["decrypt"]); 33 + const decrypted = await crypto.subtle.decrypt( 34 + { 35 + name: "AES-GCM", 36 + iv: encrypted.slice(0, 16), 37 + tagLength: 128 38 + }, 39 + cryptoKey, 40 + encrypted.slice(16) 41 + ); 42 + return new Uint8Array(decrypted); 43 + } 44 + 45 + export async function decryptToString(key: Uint8Array, data: Uint8Array): Promise<string> { 46 + const decrypted = await decrypt(key, data); 47 + const decoded = new TextDecoder().decode(decrypted); 48 + return decoded; 49 + } 50 +
+6 -5
src/lib/stores.svelte.ts
··· 1 - import { alphabet, generateRandomString } from "oslo/crypto"; 1 + import { generateId } from "./utils"; 2 2 3 3 // Browser + Local Storage 4 4 const browser_exists = (typeof window !== "undefined") && (typeof (document) !== "undefined"); ··· 35 35 id: string; 36 36 description: string; 37 37 is_completed: boolean; 38 + // optional 39 + duration?: number; 40 + stopwatchInterval?: number; 41 + rkey?: string; 38 42 } 39 43 40 44 export type List = { 41 45 id: string; 42 46 title: string; 43 47 tasks: Task[]; 48 + rkey?: string; 44 49 } 45 50 46 51 export const local_lists = persisted<List[]>("local_lists", [ ··· 55 60 ]); 56 61 57 62 export const pinned_list = persisted<string>("pinned_list", local_lists.value![0].id); 58 - 59 - export function generateId() { 60 - return generateRandomString(10, alphabet("a-z", "0-9")); 61 - }
+30
src/lib/utils.ts
··· 1 + import { alphabet, generateRandomString } from "oslo/crypto"; 2 + 3 + export function generateId() { 4 + return generateRandomString(10, alphabet("a-z", "0-9")); 5 + } 6 + 7 + export function parseAtUri(uri: string) { 8 + const regex = /at:\/\/(?<did>did.*)\/(?<lexi>.*)\/(?<rkey>.*)/; 9 + const groups = regex.exec(uri)?.groups; 10 + return { 11 + did: groups?.did, 12 + lexi: groups?.lexi, 13 + rkey: groups?.rkey 14 + } 15 + } 16 + 17 + export function formatSecondsToDuration(seconds: number = 0) { 18 + let hours = Math.floor(seconds / 3600); 19 + let minutes = Math.floor((seconds - (hours * 3600)) / 60); 20 + seconds = seconds - (hours * 3600) - (minutes * 60); 21 + 22 + // string ver. 23 + let hrs, mins, secs; 24 + 25 + if (hours < 10) { hrs = "0" + hours; } else { hrs = hours; } 26 + if (minutes < 10) { mins = "0" + minutes; } else { mins = minutes; } 27 + if (seconds < 10) { secs = "0" + seconds; } else { secs = seconds; } 28 + 29 + return hrs + ':' + mins + ':' + secs ; 30 + }
+10
src/routes/+layout.server.ts
··· 1 + import type { LayoutServerLoadEvent } from "./$types"; 2 + 3 + export async function load({ locals }: LayoutServerLoadEvent) { 4 + // have user available throughout the app via LayoutData 5 + return !locals.user ? undefined : { user: { 6 + did: locals.user.did, 7 + handle: locals.user.handle, 8 + avatar: locals.user.avatar 9 + }}; 10 + }
+71 -23
src/routes/+layout.svelte
··· 1 1 <script lang="ts"> 2 2 import "../app.css"; 3 3 import { onMount } from "svelte"; 4 - import { page } from "$app/stores"; 4 + import { page } from "$app/state"; 5 5 import { goto } from "$app/navigation"; 6 6 import { fade } from "svelte/transition"; 7 + import type { LayoutProps } from "./$types"; 7 8 import toast, { Toaster } from "svelte-french-toast"; 8 9 import { persisted, pinned_list } from "$lib/stores.svelte"; 10 + 11 + let { data, children }: LayoutProps = $props(); 12 + let { user } = $derived(data); 9 13 10 14 let theme = persisted<string>("theme", "dark"); 11 15 let is_menu_open = $state(false); 16 + let loginDialog = $state<HTMLDialogElement>(); 17 + let accountDialog = $state<HTMLDialogElement>(); 12 18 let theme_style = $derived(theme.value === "dark" 13 - ? "text-white absolute top-0 z-[-2] h-screen w-screen bg-[#000000] bg-[radial-gradient(#ffffff33_1px,#00091d_1px)] bg-[size:20px_20px]" 14 - : "text-black absolute inset-0 -z-10 h-full w-full bg-white bg-[radial-gradient(#e5e7eb_1px,transparent_1px)] [background-size:16px_16px]" 19 + ? "text-white absolute top-0 z-[-2] h-screen w-screen bg-[#000000] bg-[radial-gradient(#ffffff33_1px,#00091d_1px)] bg-size-[20px_20px]" 20 + : "text-black absolute inset-0 -z-10 h-full w-full bg-white bg-[radial-gradient(#e5e7eb_1px,transparent_1px)] bg-size-[16px_16px]" 15 21 ); 16 22 17 23 function comingSoon() { ··· 19 25 } 20 26 21 27 onMount(() => { 22 - if ($page.url.pathname === "/") { 28 + if (page.url.pathname === "/") { 23 29 goto(`/${pinned_list.value}`); 24 30 } 25 31 }); 26 32 </script> 27 33 28 - <div class={`${theme_style} font-apfel flex flex-col w-full h-full min-w-screen min-h-screen p-8`}> 34 + <div class={`${theme_style} font-apfel flex flex-col w-full h-full min-w-screen min-h-screen p-8 overflow-auto`}> 29 35 <section class="p-4 w-full h-full"> 30 - <slot /> 36 + {@render children()} 31 37 </section> 32 38 33 - <aside class="z-50 absolute inset-x-0 bottom-0 !text-black flex w-full h-fit items-end justify-between p-8"> 34 - <div class="flex flex-col justify-start gap-4"> 39 + <dialog bind:this={loginDialog} class="flex flex-col w-lg gap-4 bg-white top-1/2 left-1/2 -translate-1/2 p-4 rounded"> 40 + <span class="flex items-center gap-4 self-end w-full justify-between"> 41 + <h1 class="text-xl font-bold">Log into the Atmosphere</h1> 42 + <button onclick={() => loginDialog?.close()} class="bg-gray-100 px-3 py-2 rounded self-end">Close</button> 43 + </span> 44 + <form method="POST" action="/?/login" class="flex flex-col gap-4"> 45 + <input name="handle" type="text" placeholder="zeu.dev" class="border rounded px-4 py-2" /> 46 + <button type="submit" class="border px-3 py-2 rounded">Login</button> 47 + </form> 48 + <details class="border border-gray-300 px-3 py-2 rounded"> 49 + <summary class="marker:hidden font-semibold cursor-pointer"> 50 + <span class="text-blue-500">@</span> Enter your internet handle 51 + </summary> 52 + <span class="flex flex-col gap-2 text-sm pt-1"> 53 + <p> 54 + This would be a domain you control, most likely first created with Bluesky, Tangled, Gander, 55 + or other Atmosphere applications. 56 + </p> 57 + <a href="" class="text-blue-500 underline"> 58 + Learn more about ATproto and controlling your social media data 59 + </a> 60 + </span> 61 + </details> 62 + </dialog> 63 + 64 + <dialog bind:this={accountDialog} class="bg-white p-6 shadow top-1/2 left-1/2 -translate-1/2"> 65 + <h1>Account</h1> 66 + <button onclick={() => accountDialog?.close()}>Close</button> 67 + <form method="POST" action="/?/logout"> 68 + <button type="submit">Logout</button> 69 + </form> 70 + </dialog> 71 + 72 + <aside class="z-50 fixed inset-x-0 bottom-0 text-black! flex w-full h-fit items-end justify-between p-8 pointer-events-none"> 73 + <div class="flex flex-col justify-start gap-4 pointer-events-auto"> 35 74 {#if is_menu_open} 36 - <menu 75 + <menu 37 76 transition:fade={{ duration: 150 }} 38 77 class={`${theme.value === "light" ? "border-black" : "border-[#00091d]"} w-fit border z-50 flex flex-col items-start gap-2 h-fit p-2 rounded-xl bg-white`} 39 78 > 40 - <button 79 + <button 41 80 onclick={() => { 42 81 comingSoon(); 43 82 is_menu_open = false; ··· 47 86 <img src="/shooting-star-line.svg" alt="Item 1" class="w-8 h-8" /> 48 87 Try a new list 49 88 </button> 50 - <button 89 + <button 51 90 onclick={() => { 52 91 comingSoon(); 53 92 is_menu_open = false; ··· 55 94 class="flex gap-2 text-start w-full h-full rounded-xl pl-2 pr-5 py-2 hover:bg-slate-500/10 transition-all duration-150 items-center" 56 95 > 57 96 <img src="/sparkles-line.svg" alt="Item 2" class="w-8 h-8" /> 58 - AI Suggestions 97 + AI Suggestions 59 98 </button> 60 99 </menu> 61 100 {/if} 62 101 63 102 <nav class={`${theme.value === "light" ? "border-black" : "border-[#00091d]"} border z-50 flex self-center items-center gap-4 mx-auto w-fit h-fit p-2 rounded-xl bg-white`}> 64 - <button 65 - onclick={() => is_menu_open = !is_menu_open} 103 + <button 104 + onclick={() => is_menu_open = !is_menu_open} 66 105 class="w-full h-fit hover:bg-slate-500/10 rounded-full" 67 106 > 68 107 <img src="/menu-line.svg" alt="Menu" class="w-12 h-12" /> 69 108 </button> 70 109 71 110 <!-- TODO: change to <a href='/explore'> --> 72 - <button 111 + <button 73 112 onclick={comingSoon} 74 113 class="items-center h-fit w-full hover:bg-slate-500/10 rounded-full" 75 114 > ··· 77 116 </button> 78 117 79 118 <!-- TODO: change to <a href='/login'> --> 80 - <button 81 - onclick={comingSoon} 82 - class="items-center h-fit w-full hover:bg-slate-500/10 rounded-full" 83 - > 84 - <img src="/login-line.svg" alt="Login" class="w-12 h-12"/> 85 - </button> 119 + {#if !user} 120 + <button 121 + onclick={() => loginDialog?.showModal()} 122 + class="items-center h-fit w-full hover:bg-slate-500/10 rounded-full" 123 + > 124 + <img src="/login-line.svg" alt="Login" class="w-12 h-12"/> 125 + </button> 126 + {:else} 127 + <button 128 + onclick={() => accountDialog?.showModal()} 129 + class="items-center h-fit w-full rounded-full" 130 + > 131 + <img src={user.avatar || "/user-line.svg"} alt="Login" class="w-10 h-10 rounded-full" /> 132 + </button> 133 + {/if} 86 134 </nav> 87 135 </div> 88 136 89 137 90 - <button 138 + <button 91 139 onclick={() => { theme.value = theme.value === "light" ? "dark" : "light" }} 92 - class={`${theme.value === "light" ? "border-black" : "border-[#00091d]"} border w-fit h-fit p-2 bg-white rounded-xl`} 140 + class={`${theme.value === "light" ? "border-black" : "border-[#00091d]"} border w-fit h-fit p-2 bg-white rounded-xl pointer-events-auto`} 93 141 > 94 142 <img 95 143 src="/light-bulb.svg"
+116
src/routes/+page.server.ts
··· 1 + import { atclient } from "$lib/atproto"; 2 + import type { Task } from "$lib/stores.svelte"; 3 + import { parseAtUri } from "$lib/utils"; 4 + import type { $Typed } from "@atproto/api"; 5 + import type { Create, CreateResult } from "@atproto/api/dist/client/types/com/atproto/repo/applyWrites"; 6 + import { isValidHandle } from "@atproto/syntax"; 7 + import { error, fail, redirect, type Actions } from "@sveltejs/kit"; 8 + 9 + export const actions: Actions = { 10 + login: async ({ request }) => { 11 + // get handle from form 12 + const formData = await request.formData(); 13 + const handle = formData.get("handle") as string; 14 + 15 + // validate handle using ATProto SDK 16 + if (!isValidHandle(handle)) { 17 + error(400, { message: "Invalid handle" }); 18 + } 19 + 20 + // get oauth authorizing url to redirect to 21 + const redirectUrl = await atclient.authorize(handle, { 22 + scope: "atproto repo:link.easytodo.tasks.list repo:link.easytodo.tasks.task rpc:app.bsky.actor.getProfile?aud=did:web:api.bsky.app%23bsky_appview" 23 + }); 24 + 25 + if (!redirectUrl) { 26 + error(500, { message: "Unable to authorize" }); 27 + } 28 + 29 + // redirect for user to authorize 30 + redirect(301, redirectUrl.toString()); 31 + }, 32 + logout: async ({ cookies }) => { 33 + cookies.delete("sid", { path: "/" }); 34 + redirect(301, "/"); 35 + }, 36 + 37 + 38 + // ATProto CRUD 39 + saveListRecord: async ({ request, locals }) => { 40 + const user = locals.user; 41 + const agent = locals.authedAgent; 42 + if (!user || !agent) { return fail(401); } 43 + 44 + const formData = await request.formData(); 45 + const id = formData.get("id") as string; 46 + const list_rkey = formData.get("rkey") as string; 47 + const title = formData.get("title") as string; 48 + const tasks = JSON.parse(formData.get("tasks") as string) as Task[]; 49 + 50 + const response = await agent.com.atproto.repo.applyWrites({ 51 + repo: user.did, 52 + writes: tasks.map((t) => { 53 + const { rkey: task_rkey, stopwatchInterval, ...rest } = t; 54 + if (task_rkey) { 55 + console.log("UPDATE TASK"); 56 + return { 57 + $type: 'com.atproto.repo.applyWrites#update', 58 + collection: "link.easytodo.tasks.task", 59 + rkey: task_rkey, 60 + value: { 61 + $type: "link.easytodo.tasks.task", 62 + ...rest 63 + } 64 + } 65 + } 66 + else { 67 + console.log("CREATE TASK"); 68 + return { 69 + $type: 'com.atproto.repo.applyWrites#create', 70 + collection: "link.easytodo.tasks.task", 71 + value: { 72 + $type: "link.easytodo.tasks.task", 73 + ...rest 74 + }, 75 + } 76 + } 77 + }) 78 + }); 79 + 80 + if (response.success) { 81 + console.log(response.data.results); 82 + const list_record = { 83 + $type: "link.easytodo.tasks.list", 84 + createdAt: new Date().toISOString(), 85 + id, 86 + title, 87 + tasks: response.data.results?.map((t) => { 88 + // @ts-ignore 89 + return { cid: t.cid, uri: t.uri } 90 + }) 91 + }; 92 + 93 + if (list_rkey) { 94 + const { success, data } = await agent.com.atproto.repo.putRecord({ 95 + rkey: list_rkey, 96 + repo: user.did, 97 + collection: "link.easytodo.tasks.list", 98 + record: list_record 99 + }); 100 + console.log("UPDATE LIST", { success, uri: data.uri }); 101 + return { saveListRecordResult: { success, rkey: list_rkey, uri: data.uri }}; 102 + } 103 + else { 104 + const { success, data } = await agent.com.atproto.repo.createRecord({ 105 + repo: user.did, 106 + collection: "link.easytodo.tasks.list", 107 + record: list_record 108 + }); 109 + const { rkey } = parseAtUri(data.uri); 110 + console.log("CREATE LIST", { success, rkey, uri: data.uri }); 111 + return { saveListRecordResult: { success, rkey, uri: data.uri }}; 112 + } 113 + 114 + } 115 + } 116 + };
+105 -30
src/routes/[id]/+page.svelte
··· 1 1 <script lang="ts"> 2 - import { onMount, tick } from "svelte"; 3 - import { page } from "$app/stores"; 4 - import { local_lists, pinned_list, generateId, type List } from "$lib/stores.svelte"; 5 - import { goto, pushState } from "$app/navigation"; 6 - import toast, { Toaster } from "svelte-french-toast"; 2 + import { onMount } from "svelte"; 3 + import { page } from "$app/state"; 4 + import { enhance } from "$app/forms"; 5 + import { goto } from "$app/navigation"; 6 + import toast from "svelte-french-toast"; 7 + import type { PageProps } from "../$types.js"; 8 + import { formatSecondsToDuration, generateId } from "$lib/utils"; 9 + import { local_lists, pinned_list, type List, type Task } from "$lib/stores.svelte"; 7 10 8 - let is_menu_open = $state(false); 9 - let list : List | undefined = $state(); 11 + let { data, form }: PageProps = $props(); 12 + let { user } = $derived(data); 13 + let is_lists_menu_open = $state(false); 14 + let is_cloud_menu_open = $state(false); 15 + let list : List | undefined = $state(local_lists.value!.find((l) => l.id === page.params.id)); 10 16 let task_input = $state(""); 11 17 let user_lists = $derived(local_lists.value) as List[]; 12 - 13 - onMount(() => { 14 - list = local_lists.value!.find((l) => l.id === $page.params.id); 15 - }); 16 18 17 19 // since list points to something inside local_lists, 18 20 // it will run when list state changes 19 21 $effect(() => local_lists.update()); 22 + 23 + $effect(() => { 24 + if (form?.saveListRecordResult.success) { 25 + toast.success("Successfully saved to PDS!"); 26 + } 27 + }); 20 28 21 29 function addTask() { 22 30 if (task_input.length === 0) { ··· 39 47 } 40 48 } 41 49 50 + function toggleInterval(id: string) { 51 + if (list) { 52 + const task = list.tasks.find((t) => t.id === id) as Task; 53 + if (task.stopwatchInterval) { 54 + clearInterval(task.stopwatchInterval); 55 + task.stopwatchInterval = undefined; 56 + } 57 + else { 58 + const interval = setInterval(() => { 59 + if (!task.duration) { task.duration = 0; } 60 + task.duration += 1; 61 + }, 1000); 62 + task.stopwatchInterval = interval; 63 + } 64 + } 65 + } 66 + 42 67 function createList() { 43 68 const new_list = { 44 69 id: generateId(), ··· 61 86 } 62 87 63 88 function deleteList() { 64 - if (pinned_list.value === $page.params.id) { 89 + if (pinned_list.value === page.params.id) { 65 90 toast.error("Cannot delete pinned list"); 66 91 return; 67 92 } 68 93 69 - local_lists.value = local_lists.value!.filter((l) => l.id !== $page.params.id); 94 + local_lists.value = local_lists.value!.filter((l) => l.id !== page.params.id); 70 95 list = local_lists.value.find((l) => l.id === pinned_list.value); 71 96 goto(`/${list!.id}`); 72 97 } 98 + 99 + onMount(() => { 100 + if (list) { 101 + for (const task of list.tasks) { 102 + // if a task's stopwatch is still running 103 + // remove it so the user can start it again in one click 104 + // instead of two cause the first `toggleInterval` would 105 + // just remove the interval 106 + if (task.stopwatchInterval) { 107 + clearInterval(task.stopwatchInterval); 108 + task.stopwatchInterval = undefined; 109 + local_lists.update(); 110 + } 111 + } 112 + } 113 + }); 73 114 </script> 74 115 75 - <main class="flex flex-col w-full px-2 pt-8 pb-12 lg:p-4 lg:pb-24 gap-8 text-xl lg:text-3xl"> 116 + <main class="flex flex-col w-full px-2 pt-8 pb-28 lg:px-4 lg:pt-4 gap-8 text-xl lg:text-3xl"> 76 117 {#if list} 77 118 <section class="relative flex gap-4 w-full"> 78 119 <div class="flex gap-4 border-black border w-fit h-fit p-2 bg-white rounded-xl"> 79 - <button onclick={() => is_menu_open = !is_menu_open}> 120 + <button onclick={() => is_lists_menu_open = !is_lists_menu_open}> 80 121 <img 81 122 src="/list-box-line.svg" 82 - alt="Lists button" 123 + alt="Lists menu button" 83 124 class="w-12 h-12 hover:bg-slate-500/10 rounded-full" 84 125 /> 85 126 </button> ··· 90 131 class="w-12 h-12 hover:bg-slate-500/10 rounded-full" 91 132 /> 92 133 </button> 134 + {#if user} 135 + <button onclick={() => is_cloud_menu_open = !is_cloud_menu_open}> 136 + <img 137 + src="/cloud.svg" 138 + alt="Cloud menu button" 139 + class="w-12 h-12 p-2 hover:bg-slate-500/10 rounded-full" 140 + /> 141 + </button> 142 + {/if} 93 143 <button onclick={deleteList}> 94 144 <img 95 145 src="/trash-line.svg" ··· 99 149 </button> 100 150 </div> 101 151 102 - {#if is_menu_open} 103 - <menu class="absolute flex flex-col gap-2 w-fit h-fit top-20 p-2 bg-white border border-black rounded-lg !text-black !text-lg"> 152 + {#if is_lists_menu_open} 153 + <menu class="absolute flex flex-col gap-2 w-fit h-fit top-20 p-2 bg-white border border-black rounded-lg text-black! text-lg!"> 104 154 {#each user_lists as user_list : List (user_list.id)} 105 155 <button 106 156 onclick={() => { 107 - switchToList(user_list.id) 108 - is_menu_open = false; 157 + switchToList(user_list.id); 158 + is_lists_menu_open = false; 109 159 }} 110 160 class="flex gap-2 justify-between text-start w-full h-full rounded-xl pl-2 pr-5 py-2 hover:bg-slate-500/10 transition-all duration-150 items-center" 111 161 > ··· 118 168 <button 119 169 onclick={() => { 120 170 createList(); 121 - is_menu_open = false; 171 + is_lists_menu_open = false; 122 172 }} 123 173 class="flex gap-2 justify-between text-start w-full h-full rounded-xl pl-2 pr-5 py-2 hover:bg-slate-500/10 transition-all duration-150 items-center" 124 174 > ··· 126 176 </button> 127 177 </menu> 128 178 {/if} 179 + 180 + {#if is_cloud_menu_open} 181 + <menu class="absolute flex flex-col gap-2 w-fit h-fit top-20 p-2 bg-white border border-black rounded-lg text-black! text-lg!"> 182 + <form method="POST" action="/?/saveListRecord" use:enhance> 183 + <input name="id" type="hidden" value={list.id} /> 184 + <input name="title" type="hidden" value={list.title} /> 185 + <input name="tasks" type="hidden" value={JSON.stringify(list.tasks)} /> 186 + <button 187 + type="submit" 188 + class="flex gap-2 justify-between text-start w-full h-full rounded-xl pl-2 pr-5 py-2 hover:bg-slate-500/10 transition-all duration-150 items-center" 189 + > 190 + <img src="/save.svg" alt="Save to PDS button" class="w-8 h-8 p-2"/> 191 + Save to PDS 192 + </button> 193 + </form> 194 + </menu> 195 + {/if} 129 196 </section> 130 - <input 131 - type="text" 132 - bind:value={list.title} 133 - placeholder="Untitled" 134 - class="text-5xl font-bold bg-transparent" 135 - /> 197 + 198 + <input 199 + type="text" 200 + bind:value={list.title} 201 + placeholder="Untitled" 202 + class="text-5xl font-bold bg-transparent" 203 + /> 204 + 136 205 <ul class="flex flex-col gap-4"> 137 206 {#each list.tasks as task (task.id)} 138 207 <li class="group flex justify-between items-center gap-4"> ··· 145 214 <input 146 215 type="text" 147 216 bind:value={task.description} 148 - class="w-full hover:underline text-ellipsis overflow-hidden bg-transparent" 217 + class={`w-full hover:underline text-ellipsis overflow-hidden bg-transparent ${task.is_completed && "text-white/50"}`} 149 218 /> 150 219 </div> 151 220 152 - <div class="flex lg:hidden group-hover:flex gap-4 w-fit"> 221 + <div class="flex gap-4 w-fit items-center"> 222 + <button 223 + onclick={() => toggleInterval(task.id)} 224 + class="w-fit h-fit tabular-nums text-lg" 225 + > 226 + {formatSecondsToDuration(task.duration!)} 227 + </button> 153 228 <button 154 229 onclick={() => deleteTask(task.id)} 155 230 class="px-4 py-2 bg-red-500 rounded-xl text-white" ··· 160 235 </li> 161 236 {/each} 162 237 <li class="flex gap-4 w-full"> 238 + <input type="text" bind:value={task_input} class="bg-transparent pr-4 py-2 border-b w-full"/> 163 239 <button onclick={addTask} class="px-5 rounded-full bg-white text-black"> 164 240 + 165 241 </button> 166 - <input type="text" bind:value={task_input} class="bg-transparent pr-4 py-2 border-b w-full"/> 167 242 </li> 168 243 </ul> 169 244
+6
src/routes/client-metadata.json/+server.ts
··· 1 + import { atclient } from "$lib/atproto"; 2 + import { json } from "@sveltejs/kit"; 3 + 4 + export async function GET() { 5 + return json(atclient.clientMetadata); 6 + }
+34
src/routes/oauth/callback/+server.ts
··· 1 + import { atclient } from "$lib/atproto"; 2 + import { encryptString } from "$lib/server/encryption"; 3 + import { decodeBase64, encodeBase64urlNoPadding } from "@oslojs/encoding"; 4 + 5 + import { error, redirect } from "@sveltejs/kit"; 6 + import type { RequestEvent } from "@sveltejs/kit"; 7 + import { ENCRYPTION_PASSWORD } from "$env/static/private"; 8 + 9 + // called on after authorizing OAuth 10 + export async function GET({ request, cookies }: RequestEvent) { 11 + // get parameters set by the callback 12 + const params = new URLSearchParams(request.url.split("?")[1]); 13 + 14 + try { 15 + const { session } = await atclient.callback(params); 16 + const key = decodeBase64(ENCRYPTION_PASSWORD); 17 + 18 + // encrypt the user DID 19 + const encrypted = await encryptString(key, session.did); 20 + const encoded = encodeBase64urlNoPadding(encrypted); 21 + 22 + // set encoded session DID as cookies for auth 23 + cookies.set("sid", encoded, { 24 + path: "/", 25 + maxAge: 60 * 60, 26 + httpOnly: true, 27 + sameSite: "lax" 28 + }); 29 + } catch (err) { 30 + error(500, { message: (err as Error).message }); 31 + } 32 + 33 + redirect(301, "/"); 34 + }
+1
static/cloud.svg
··· 1 + <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9"/></svg>
+1
static/save.svg
··· 1 + <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z"/><path d="M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7M7 3v4a1 1 0 0 0 1 1h7"/></g></svg>
+1
static/user-line.svg
··· 1 + <svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><circle cx="12" cy="8" r="5"/><path d="M20 21a8 8 0 1 0-16 0m16 0a8 8 0 1 0-16 0"/></g></svg>
+1 -1
svelte.config.js
··· 1 - import adapter from '@sveltejs/adapter-auto'; 1 + import adapter from '@deno/svelte-adapter'; 2 2 import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; 3 3 4 4 /** @type {import('@sveltejs/kit').Config} */
-12
tailwind.config.js
··· 1 - /** @type {import('tailwindcss').Config} */ 2 - export default { 3 - content: ['./src/**/*.{html,js,svelte,ts}'], 4 - theme: { 5 - extend: { 6 - fontFamily: { 7 - apfel: ["Apfel Grotezk"] 8 - } 9 - } 10 - }, 11 - plugins: [], 12 - };
+2 -1
vite.config.ts
··· 1 1 import { sveltekit } from '@sveltejs/kit/vite'; 2 + import tailwindcss from "@tailwindcss/vite"; 2 3 import { defineConfig } from 'vite'; 3 4 4 5 export default defineConfig({ 5 - plugins: [sveltekit()] 6 + plugins: [tailwindcss(), sveltekit()] 6 7 });