hi im alinez not even tryingto hide it
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

wow much better now

adam 7ea5168e fd97aaa6

+1015 -1556
+10
.editorconfig
··· 1 + root = true 2 + 3 + [*] 4 + charset = utf-8 5 + indent_size = 2 6 + indent_style = space 7 + end_of_line = lf 8 + insert_final_newline = true 9 + trim_trailing_whitespace = true 10 + max_line_length = 100
+3 -1
.gitignore
··· 1 + dist 1 2 build 3 + src/main.js 2 4 node_modules 3 5 *.db* 4 - .wrangler 6 + .env
+908 -1228
package-lock.json
··· 1 1 { 2 2 "name": "lebel", 3 - "version": "0.0.1", 3 + "version": "0.0.2", 4 4 "lockfileVersion": 3, 5 5 "requires": true, 6 6 "packages": { 7 7 "": { 8 8 "name": "lebel", 9 - "version": "0.0.1", 9 + "version": "0.0.2", 10 10 "license": "MIT", 11 11 "dependencies": { 12 - "@atcute/cbor": "^2.2.8", 13 - "@atcute/client": "^2.0.9", 14 - "uint8arrays": "^5.1.0" 12 + "@atproto/api": "^0.18.4", 13 + "@skyware/labeler": "^0.2.0" 15 14 }, 16 15 "devDependencies": { 17 - "@types/node": "^24.10.1", 18 - "typescript": "^5.9.3", 19 - "wrangler": "^4.51.0" 16 + "multiformats": "^13.4.1", 17 + "typescript": "^5.9.3" 18 + } 19 + }, 20 + "node_modules/@atcute/bluesky": { 21 + "version": "1.0.15", 22 + "resolved": "https://registry.npmjs.org/@atcute/bluesky/-/bluesky-1.0.15.tgz", 23 + "integrity": "sha512-+EFiybmKQ97aBAgtaD+cKRJER5AMn3cZMkEwEg/pDdWyzxYJ9m1UgemmLdTgI8VrxPufKqdXS2nl7uO7TY6BPA==", 24 + "license": "MIT", 25 + "peerDependencies": { 26 + "@atcute/client": "^1.0.0 || ^2.0.0" 20 27 } 21 28 }, 22 29 "node_modules/@atcute/cbor": { 23 - "version": "2.2.8", 24 - "resolved": "https://registry.npmjs.org/@atcute/cbor/-/cbor-2.2.8.tgz", 25 - "integrity": "sha512-UzOAN9BuN6JCXgn0ryV8qZuRJUDrNqrbLd6EFM8jc6RYssjRyGRxNy6RZ1NU/07Hd8Tq/0pz8+nQiMu5Zai5uw==", 26 - "license": "0BSD", 30 + "version": "1.0.7", 31 + "resolved": "https://registry.npmjs.org/@atcute/cbor/-/cbor-1.0.7.tgz", 32 + "integrity": "sha512-z3chucgCqjAN36ySvUVl1VSwtGME4CDS173eaaEfiTSpRIQ6ewKpKlkzapLUNqtLU9iBx884b9c2j6kjEyn1XA==", 33 + "license": "MIT", 27 34 "dependencies": { 28 - "@atcute/cid": "^2.2.6", 29 - "@atcute/multibase": "^1.1.6", 30 - "@atcute/uint8array": "^1.0.5" 35 + "@atcute/cid": "^1.0.3", 36 + "@atcute/multibase": "^1.0.0" 31 37 } 32 38 }, 33 39 "node_modules/@atcute/cid": { 34 - "version": "2.2.6", 35 - "resolved": "https://registry.npmjs.org/@atcute/cid/-/cid-2.2.6.tgz", 36 - "integrity": "sha512-bTAHHbJ24p+E//V4KCS4xdmd39o211jJswvqQOevj7vk+5IYcgDLx1ryZWZ1sEPOo9x875li/kj5gpKL14RDwQ==", 37 - "license": "0BSD", 40 + "version": "1.0.3", 41 + "resolved": "https://registry.npmjs.org/@atcute/cid/-/cid-1.0.3.tgz", 42 + "integrity": "sha512-BZbs+Xt0yMci0I2dLqqYsN76ua8lkMk/HQfEIKr7g2XMBlSc0XNCXfZdbAWPwiCK/NuGaPBocYMRwApd4dF2Qg==", 43 + "license": "MIT", 38 44 "dependencies": { 39 - "@atcute/multibase": "^1.1.6", 40 - "@atcute/uint8array": "^1.0.5" 45 + "@atcute/multibase": "^1.0.0", 46 + "@atcute/varint": "^1.0.1" 41 47 } 42 48 }, 43 49 "node_modules/@atcute/client": { ··· 55 61 "@atcute/uint8array": "^1.0.5" 56 62 } 57 63 }, 64 + "node_modules/@atcute/ozone": { 65 + "version": "1.0.12", 66 + "resolved": "https://registry.npmjs.org/@atcute/ozone/-/ozone-1.0.12.tgz", 67 + "integrity": "sha512-eogx/FCF6X3WTwAPxgG8RcrziuOUcJvMu+qHodeVcLSQ7QJvw2H/Q5V0HpnZegUOY5aRGKb5RvLk2SeZq3LCeA==", 68 + "license": "MIT", 69 + "peerDependencies": { 70 + "@atcute/bluesky": "^1.0.0", 71 + "@atcute/client": "^1.0.0 || ^2.0.0" 72 + } 73 + }, 58 74 "node_modules/@atcute/uint8array": { 59 75 "version": "1.0.5", 60 76 "resolved": "https://registry.npmjs.org/@atcute/uint8array/-/uint8array-1.0.5.tgz", 61 77 "integrity": "sha512-XLWWxoR2HNl2qU+FCr0rp1APwJXci7HnzbOQLxK55OaMNBXZ19+xNC5ii4QCsThsDxa4JS/JTzuiQLziITWf2Q==", 62 78 "license": "0BSD" 63 79 }, 64 - "node_modules/@cloudflare/kv-asset-handler": { 65 - "version": "0.4.1", 66 - "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.4.1.tgz", 67 - "integrity": "sha512-Nu8ahitGFFJztxUml9oD/DLb7Z28C8cd8F46IVQ7y5Btz575pvMY8AqZsXkX7Gds29eCKdMgIHjIvzskHgPSFg==", 68 - "dev": true, 69 - "license": "MIT OR Apache-2.0", 80 + "node_modules/@atcute/varint": { 81 + "version": "1.0.3", 82 + "resolved": "https://registry.npmjs.org/@atcute/varint/-/varint-1.0.3.tgz", 83 + "integrity": "sha512-fdvMPyBB+McDT+Ai5e9RwEbwYV4yjZ60S2Dn5PTjGqUyxvoCH1z42viuheDZRUDkmfQehXJTZ5az7dSozVNtog==", 84 + "license": "0BSD" 85 + }, 86 + "node_modules/@atproto/api": { 87 + "version": "0.18.4", 88 + "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.18.4.tgz", 89 + "integrity": "sha512-+kSxto/GRFXRFFlGwfERrwEKnC6OqTgK34BUToer/Fv08q4WMR+GYPRabbWlnDoJWu3owcQfeYdcblQ88vi16g==", 90 + "license": "MIT", 70 91 "dependencies": { 71 - "mime": "^3.0.0" 72 - }, 73 - "engines": { 74 - "node": ">=18.0.0" 92 + "@atproto/common-web": "^0.4.6", 93 + "@atproto/lexicon": "^0.5.2", 94 + "@atproto/syntax": "^0.4.2", 95 + "@atproto/xrpc": "^0.7.6", 96 + "await-lock": "^2.2.2", 97 + "multiformats": "^9.9.0", 98 + "tlds": "^1.234.0", 99 + "zod": "^3.23.8" 75 100 } 76 101 }, 77 - "node_modules/@cloudflare/unenv-preset": { 78 - "version": "2.7.11", 79 - "resolved": "https://registry.npmjs.org/@cloudflare/unenv-preset/-/unenv-preset-2.7.11.tgz", 80 - "integrity": "sha512-se23f1D4PxKrMKOq+Stz+Yn7AJ9ITHcEecXo2Yjb+UgbUDCEBch1FXQC6hx6uT5fNA3kmX3mfzeZiUmpK1W9IQ==", 81 - "dev": true, 82 - "license": "MIT OR Apache-2.0", 83 - "peerDependencies": { 84 - "unenv": "2.0.0-rc.24", 85 - "workerd": "^1.20251106.1" 86 - }, 87 - "peerDependenciesMeta": { 88 - "workerd": { 89 - "optional": true 90 - } 102 + "node_modules/@atproto/api/node_modules/multiformats": { 103 + "version": "9.9.0", 104 + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 105 + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", 106 + "license": "(Apache-2.0 AND MIT)" 107 + }, 108 + "node_modules/@atproto/common-web": { 109 + "version": "0.4.6", 110 + "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.6.tgz", 111 + "integrity": "sha512-+2mG/1oBcB/ZmYIU1ltrFMIiuy9aByKAkb2Fos/0eTdczcLBaH17k0KoxMGvhfsujN2r62XlanOAMzysa7lv1g==", 112 + "license": "MIT", 113 + "dependencies": { 114 + "@atproto/lex-data": "0.0.2", 115 + "@atproto/lex-json": "0.0.2", 116 + "zod": "^3.23.8" 91 117 } 92 118 }, 93 - "node_modules/@cloudflare/workerd-darwin-64": { 94 - "version": "1.20251125.0", 95 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20251125.0.tgz", 96 - "integrity": "sha512-xDIVJi8fPxBseRoEIzLiUJb0N+DXnah/ynS+Unzn58HEoKLetUWiV/T1Fhned//lo5krnToG9KRgVRs0SOOTpw==", 97 - "cpu": [ 98 - "x64" 99 - ], 100 - "dev": true, 101 - "license": "Apache-2.0", 102 - "optional": true, 103 - "os": [ 104 - "darwin" 105 - ], 106 - "engines": { 107 - "node": ">=16" 119 + "node_modules/@atproto/lex-data": { 120 + "version": "0.0.2", 121 + "resolved": "https://registry.npmjs.org/@atproto/lex-data/-/lex-data-0.0.2.tgz", 122 + "integrity": "sha512-euV2rDGi+coH8qvZOU+ieUOEbwPwff9ca6IiXIqjZJ76AvlIpj7vtAyIRCxHUW2BoU6h9yqyJgn9MKD2a7oIwg==", 123 + "license": "MIT", 124 + "dependencies": { 125 + "@atproto/syntax": "0.4.2", 126 + "multiformats": "^9.9.0", 127 + "tslib": "^2.8.1", 128 + "uint8arrays": "3.0.0", 129 + "unicode-segmenter": "^0.14.0" 108 130 } 109 131 }, 110 - "node_modules/@cloudflare/workerd-darwin-arm64": { 111 - "version": "1.20251125.0", 112 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20251125.0.tgz", 113 - "integrity": "sha512-k5FQET5PXnWjeDqZUpl4Ah/Rn0bH6mjfUtTyeAy6ky7QB3AZpwIhgWQD0vOFB3OvJaK4J/K4cUtNChYXB9mY/A==", 114 - "cpu": [ 115 - "arm64" 116 - ], 117 - "dev": true, 118 - "license": "Apache-2.0", 119 - "optional": true, 120 - "os": [ 121 - "darwin" 122 - ], 123 - "engines": { 124 - "node": ">=16" 132 + "node_modules/@atproto/lex-data/node_modules/multiformats": { 133 + "version": "9.9.0", 134 + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 135 + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", 136 + "license": "(Apache-2.0 AND MIT)" 137 + }, 138 + "node_modules/@atproto/lex-json": { 139 + "version": "0.0.2", 140 + "resolved": "https://registry.npmjs.org/@atproto/lex-json/-/lex-json-0.0.2.tgz", 141 + "integrity": "sha512-Pd72lO+l2rhOTutnf11omh9ZkoB/elbzE3HSmn2wuZlyH1mRhTYvoH8BOGokWQwbZkCE8LL3nOqMT3gHCD2l7g==", 142 + "license": "MIT", 143 + "dependencies": { 144 + "@atproto/lex-data": "0.0.2", 145 + "tslib": "^2.8.1" 125 146 } 126 147 }, 127 - "node_modules/@cloudflare/workerd-linux-64": { 128 - "version": "1.20251125.0", 129 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20251125.0.tgz", 130 - "integrity": "sha512-at6n/FomkftykWx0EqVLUZ0juUFz3ORtEPeBbW9ZZ3BQEyfVUtYfdcz/f1cN8Yyb7TE9ovF071P0mBRkx83ODw==", 131 - "cpu": [ 132 - "x64" 133 - ], 134 - "dev": true, 135 - "license": "Apache-2.0", 136 - "optional": true, 137 - "os": [ 138 - "linux" 139 - ], 140 - "engines": { 141 - "node": ">=16" 148 + "node_modules/@atproto/lexicon": { 149 + "version": "0.5.2", 150 + "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.2.tgz", 151 + "integrity": "sha512-lRmJgMA8f5j7VB5Iu5cp188ald5FuI4FlmZ7nn6EBrk1dgOstWVrI5Ft6K3z2vjyLZRG6nzknlsw+tDP63p7bQ==", 152 + "license": "MIT", 153 + "dependencies": { 154 + "@atproto/common-web": "^0.4.4", 155 + "@atproto/syntax": "^0.4.1", 156 + "iso-datestring-validator": "^2.2.2", 157 + "multiformats": "^9.9.0", 158 + "zod": "^3.23.8" 142 159 } 143 160 }, 144 - "node_modules/@cloudflare/workerd-linux-arm64": { 145 - "version": "1.20251125.0", 146 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20251125.0.tgz", 147 - "integrity": "sha512-EiRn+jrNaIs1QveabXGHFoyn3s/l02ui6Yp3nssyNhtmtgviddtt8KObBfM1jQKjXTpZlunhwdN4Bxf4jhlOMw==", 148 - "cpu": [ 149 - "arm64" 150 - ], 151 - "dev": true, 152 - "license": "Apache-2.0", 153 - "optional": true, 154 - "os": [ 155 - "linux" 156 - ], 157 - "engines": { 158 - "node": ">=16" 159 - } 161 + "node_modules/@atproto/lexicon/node_modules/multiformats": { 162 + "version": "9.9.0", 163 + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 164 + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", 165 + "license": "(Apache-2.0 AND MIT)" 160 166 }, 161 - "node_modules/@cloudflare/workerd-windows-64": { 162 - "version": "1.20251125.0", 163 - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20251125.0.tgz", 164 - "integrity": "sha512-6fdIsSeu65g++k8Y2DKzNKs0BkoU+KKI6GAAVBOLh2vvVWWnCP1OgMdVb5JAdjDrjDT5i0GSQu0bgQ8fPsW6zw==", 165 - "cpu": [ 166 - "x64" 167 - ], 168 - "dev": true, 169 - "license": "Apache-2.0", 170 - "optional": true, 171 - "os": [ 172 - "win32" 173 - ], 174 - "engines": { 175 - "node": ">=16" 167 + "node_modules/@atproto/syntax": { 168 + "version": "0.4.2", 169 + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.2.tgz", 170 + "integrity": "sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==", 171 + "license": "MIT" 172 + }, 173 + "node_modules/@atproto/xrpc": { 174 + "version": "0.7.6", 175 + "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.6.tgz", 176 + "integrity": "sha512-RvCf4j0JnKYWuz3QzsYCntJi3VuiAAybQsMIUw2wLWcHhchO9F7UaBZINLL2z0qc/cYWPv5NSwcVydMseoCZLA==", 177 + "license": "MIT", 178 + "dependencies": { 179 + "@atproto/lexicon": "^0.5.2", 180 + "zod": "^3.23.8" 176 181 } 177 182 }, 178 - "node_modules/@cspotcode/source-map-support": { 179 - "version": "0.8.1", 180 - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", 181 - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", 182 - "dev": true, 183 + "node_modules/@fastify/ajv-compiler": { 184 + "version": "3.6.0", 185 + "resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.6.0.tgz", 186 + "integrity": "sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==", 183 187 "license": "MIT", 184 188 "dependencies": { 185 - "@jridgewell/trace-mapping": "0.3.9" 186 - }, 187 - "engines": { 188 - "node": ">=12" 189 + "ajv": "^8.11.0", 190 + "ajv-formats": "^2.1.1", 191 + "fast-uri": "^2.0.0" 189 192 } 190 193 }, 191 - "node_modules/@emnapi/runtime": { 192 - "version": "1.7.1", 193 - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", 194 - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", 195 - "dev": true, 194 + "node_modules/@fastify/error": { 195 + "version": "3.4.1", 196 + "resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz", 197 + "integrity": "sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==", 198 + "license": "MIT" 199 + }, 200 + "node_modules/@fastify/fast-json-stringify-compiler": { 201 + "version": "4.3.0", 202 + "resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz", 203 + "integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==", 196 204 "license": "MIT", 197 - "optional": true, 198 205 "dependencies": { 199 - "tslib": "^2.4.0" 206 + "fast-json-stringify": "^5.7.0" 200 207 } 201 208 }, 202 - "node_modules/@esbuild/aix-ppc64": { 203 - "version": "0.25.4", 204 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", 205 - "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", 206 - "cpu": [ 207 - "ppc64" 208 - ], 209 - "dev": true, 209 + "node_modules/@fastify/merge-json-schemas": { 210 + "version": "0.1.1", 211 + "resolved": "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz", 212 + "integrity": "sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==", 210 213 "license": "MIT", 211 - "optional": true, 212 - "os": [ 213 - "aix" 214 - ], 215 - "engines": { 216 - "node": ">=18" 214 + "dependencies": { 215 + "fast-deep-equal": "^3.1.3" 217 216 } 218 217 }, 219 - "node_modules/@esbuild/android-arm": { 220 - "version": "0.25.4", 221 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", 222 - "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", 223 - "cpu": [ 224 - "arm" 225 - ], 226 - "dev": true, 218 + "node_modules/@fastify/websocket": { 219 + "version": "10.0.1", 220 + "resolved": "https://registry.npmjs.org/@fastify/websocket/-/websocket-10.0.1.tgz", 221 + "integrity": "sha512-8/pQIxTPRD8U94aILTeJ+2O3el/r19+Ej5z1O1mXlqplsUH7KzCjAI0sgd5DM/NoPjAi5qLFNIjgM5+9/rGSNw==", 227 222 "license": "MIT", 228 - "optional": true, 229 - "os": [ 230 - "android" 231 - ], 232 - "engines": { 233 - "node": ">=18" 223 + "dependencies": { 224 + "duplexify": "^4.1.2", 225 + "fastify-plugin": "^4.0.0", 226 + "ws": "^8.0.0" 234 227 } 235 228 }, 236 - "node_modules/@esbuild/android-arm64": { 237 - "version": "0.25.4", 238 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", 239 - "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", 240 - "cpu": [ 241 - "arm64" 242 - ], 243 - "dev": true, 229 + "node_modules/@libsql/client": { 230 + "version": "0.14.0", 231 + "resolved": "https://registry.npmjs.org/@libsql/client/-/client-0.14.0.tgz", 232 + "integrity": "sha512-/9HEKfn6fwXB5aTEEoMeFh4CtG0ZzbncBb1e++OCdVpgKZ/xyMsIVYXm0w7Pv4RUel803vE6LwniB3PqD72R0Q==", 244 233 "license": "MIT", 245 - "optional": true, 246 - "os": [ 247 - "android" 248 - ], 249 - "engines": { 250 - "node": ">=18" 234 + "dependencies": { 235 + "@libsql/core": "^0.14.0", 236 + "@libsql/hrana-client": "^0.7.0", 237 + "js-base64": "^3.7.5", 238 + "libsql": "^0.4.4", 239 + "promise-limit": "^2.7.0" 251 240 } 252 241 }, 253 - "node_modules/@esbuild/android-x64": { 254 - "version": "0.25.4", 255 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", 256 - "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", 257 - "cpu": [ 258 - "x64" 259 - ], 260 - "dev": true, 242 + "node_modules/@libsql/core": { 243 + "version": "0.14.0", 244 + "resolved": "https://registry.npmjs.org/@libsql/core/-/core-0.14.0.tgz", 245 + "integrity": "sha512-nhbuXf7GP3PSZgdCY2Ecj8vz187ptHlZQ0VRc751oB2C1W8jQUXKKklvt7t1LJiUTQBVJuadF628eUk+3cRi4Q==", 261 246 "license": "MIT", 262 - "optional": true, 263 - "os": [ 264 - "android" 265 - ], 266 - "engines": { 267 - "node": ">=18" 247 + "dependencies": { 248 + "js-base64": "^3.7.5" 268 249 } 269 250 }, 270 - "node_modules/@esbuild/darwin-arm64": { 271 - "version": "0.25.4", 272 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", 273 - "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", 251 + "node_modules/@libsql/darwin-arm64": { 252 + "version": "0.4.7", 253 + "resolved": "https://registry.npmjs.org/@libsql/darwin-arm64/-/darwin-arm64-0.4.7.tgz", 254 + "integrity": "sha512-yOL742IfWUlUevnI5PdnIT4fryY3LYTdLm56bnY0wXBw7dhFcnjuA7jrH3oSVz2mjZTHujxoITgAE7V6Z+eAbg==", 274 255 "cpu": [ 275 256 "arm64" 276 257 ], 277 - "dev": true, 278 258 "license": "MIT", 279 259 "optional": true, 280 260 "os": [ 281 261 "darwin" 282 - ], 283 - "engines": { 284 - "node": ">=18" 285 - } 262 + ] 286 263 }, 287 - "node_modules/@esbuild/darwin-x64": { 288 - "version": "0.25.4", 289 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", 290 - "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", 264 + "node_modules/@libsql/darwin-x64": { 265 + "version": "0.4.7", 266 + "resolved": "https://registry.npmjs.org/@libsql/darwin-x64/-/darwin-x64-0.4.7.tgz", 267 + "integrity": "sha512-ezc7V75+eoyyH07BO9tIyJdqXXcRfZMbKcLCeF8+qWK5nP8wWuMcfOVywecsXGRbT99zc5eNra4NEx6z5PkSsA==", 291 268 "cpu": [ 292 269 "x64" 293 270 ], 294 - "dev": true, 295 271 "license": "MIT", 296 272 "optional": true, 297 273 "os": [ 298 274 "darwin" 299 - ], 300 - "engines": { 301 - "node": ">=18" 302 - } 275 + ] 303 276 }, 304 - "node_modules/@esbuild/freebsd-arm64": { 305 - "version": "0.25.4", 306 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", 307 - "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", 308 - "cpu": [ 309 - "arm64" 310 - ], 311 - "dev": true, 277 + "node_modules/@libsql/hrana-client": { 278 + "version": "0.7.0", 279 + "resolved": "https://registry.npmjs.org/@libsql/hrana-client/-/hrana-client-0.7.0.tgz", 280 + "integrity": "sha512-OF8fFQSkbL7vJY9rfuegK1R7sPgQ6kFMkDamiEccNUvieQ+3urzfDFI616oPl8V7T9zRmnTkSjMOImYCAVRVuw==", 312 281 "license": "MIT", 313 - "optional": true, 314 - "os": [ 315 - "freebsd" 316 - ], 317 - "engines": { 318 - "node": ">=18" 282 + "dependencies": { 283 + "@libsql/isomorphic-fetch": "^0.3.1", 284 + "@libsql/isomorphic-ws": "^0.1.5", 285 + "js-base64": "^3.7.5", 286 + "node-fetch": "^3.3.2" 319 287 } 320 288 }, 321 - "node_modules/@esbuild/freebsd-x64": { 322 - "version": "0.25.4", 323 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", 324 - "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", 325 - "cpu": [ 326 - "x64" 327 - ], 328 - "dev": true, 289 + "node_modules/@libsql/isomorphic-fetch": { 290 + "version": "0.3.1", 291 + "resolved": "https://registry.npmjs.org/@libsql/isomorphic-fetch/-/isomorphic-fetch-0.3.1.tgz", 292 + "integrity": "sha512-6kK3SUK5Uu56zPq/Las620n5aS9xJq+jMBcNSOmjhNf/MUvdyji4vrMTqD7ptY7/4/CAVEAYDeotUz60LNQHtw==", 329 293 "license": "MIT", 330 - "optional": true, 331 - "os": [ 332 - "freebsd" 333 - ], 334 294 "engines": { 335 - "node": ">=18" 295 + "node": ">=18.0.0" 336 296 } 337 297 }, 338 - "node_modules/@esbuild/linux-arm": { 339 - "version": "0.25.4", 340 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", 341 - "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", 342 - "cpu": [ 343 - "arm" 344 - ], 345 - "dev": true, 298 + "node_modules/@libsql/isomorphic-ws": { 299 + "version": "0.1.5", 300 + "resolved": "https://registry.npmjs.org/@libsql/isomorphic-ws/-/isomorphic-ws-0.1.5.tgz", 301 + "integrity": "sha512-DtLWIH29onUYR00i0GlQ3UdcTRC6EP4u9w/h9LxpUZJWRMARk6dQwZ6Jkd+QdwVpuAOrdxt18v0K2uIYR3fwFg==", 346 302 "license": "MIT", 347 - "optional": true, 348 - "os": [ 349 - "linux" 350 - ], 351 - "engines": { 352 - "node": ">=18" 303 + "dependencies": { 304 + "@types/ws": "^8.5.4", 305 + "ws": "^8.13.0" 353 306 } 354 307 }, 355 - "node_modules/@esbuild/linux-arm64": { 356 - "version": "0.25.4", 357 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", 358 - "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", 308 + "node_modules/@libsql/linux-arm64-gnu": { 309 + "version": "0.4.7", 310 + "resolved": "https://registry.npmjs.org/@libsql/linux-arm64-gnu/-/linux-arm64-gnu-0.4.7.tgz", 311 + "integrity": "sha512-WlX2VYB5diM4kFfNaYcyhw5y+UJAI3xcMkEUJZPtRDEIu85SsSFrQ+gvoKfcVh76B//ztSeEX2wl9yrjF7BBCA==", 359 312 "cpu": [ 360 313 "arm64" 361 314 ], 362 - "dev": true, 363 315 "license": "MIT", 364 316 "optional": true, 365 317 "os": [ 366 318 "linux" 367 - ], 368 - "engines": { 369 - "node": ">=18" 370 - } 319 + ] 371 320 }, 372 - "node_modules/@esbuild/linux-ia32": { 373 - "version": "0.25.4", 374 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", 375 - "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", 321 + "node_modules/@libsql/linux-arm64-musl": { 322 + "version": "0.4.7", 323 + "resolved": "https://registry.npmjs.org/@libsql/linux-arm64-musl/-/linux-arm64-musl-0.4.7.tgz", 324 + "integrity": "sha512-6kK9xAArVRlTCpWeqnNMCoXW1pe7WITI378n4NpvU5EJ0Ok3aNTIC2nRPRjhro90QcnmLL1jPcrVwO4WD1U0xw==", 376 325 "cpu": [ 377 - "ia32" 326 + "arm64" 378 327 ], 379 - "dev": true, 380 328 "license": "MIT", 381 329 "optional": true, 382 330 "os": [ 383 331 "linux" 384 - ], 385 - "engines": { 386 - "node": ">=18" 387 - } 332 + ] 388 333 }, 389 - "node_modules/@esbuild/linux-loong64": { 390 - "version": "0.25.4", 391 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", 392 - "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", 334 + "node_modules/@libsql/linux-x64-gnu": { 335 + "version": "0.4.7", 336 + "resolved": "https://registry.npmjs.org/@libsql/linux-x64-gnu/-/linux-x64-gnu-0.4.7.tgz", 337 + "integrity": "sha512-CMnNRCmlWQqqzlTw6NeaZXzLWI8bydaXDke63JTUCvu8R+fj/ENsLrVBtPDlxQ0wGsYdXGlrUCH8Qi9gJep0yQ==", 393 338 "cpu": [ 394 - "loong64" 339 + "x64" 395 340 ], 396 - "dev": true, 397 341 "license": "MIT", 398 342 "optional": true, 399 343 "os": [ 400 344 "linux" 401 - ], 402 - "engines": { 403 - "node": ">=18" 404 - } 345 + ] 405 346 }, 406 - "node_modules/@esbuild/linux-mips64el": { 407 - "version": "0.25.4", 408 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", 409 - "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", 347 + "node_modules/@libsql/linux-x64-musl": { 348 + "version": "0.4.7", 349 + "resolved": "https://registry.npmjs.org/@libsql/linux-x64-musl/-/linux-x64-musl-0.4.7.tgz", 350 + "integrity": "sha512-nI6tpS1t6WzGAt1Kx1n1HsvtBbZ+jHn0m7ogNNT6pQHZQj7AFFTIMeDQw/i/Nt5H38np1GVRNsFe99eSIMs9XA==", 410 351 "cpu": [ 411 - "mips64el" 352 + "x64" 412 353 ], 413 - "dev": true, 414 354 "license": "MIT", 415 355 "optional": true, 416 356 "os": [ 417 357 "linux" 418 - ], 419 - "engines": { 420 - "node": ">=18" 421 - } 358 + ] 422 359 }, 423 - "node_modules/@esbuild/linux-ppc64": { 424 - "version": "0.25.4", 425 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", 426 - "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", 360 + "node_modules/@libsql/win32-x64-msvc": { 361 + "version": "0.4.7", 362 + "resolved": "https://registry.npmjs.org/@libsql/win32-x64-msvc/-/win32-x64-msvc-0.4.7.tgz", 363 + "integrity": "sha512-7pJzOWzPm6oJUxml+PCDRzYQ4A1hTMHAciTAHfFK4fkbDZX33nWPVG7Y3vqdKtslcwAzwmrNDc6sXy2nwWnbiw==", 427 364 "cpu": [ 428 - "ppc64" 365 + "x64" 429 366 ], 430 - "dev": true, 431 367 "license": "MIT", 432 368 "optional": true, 433 369 "os": [ 434 - "linux" 435 - ], 436 - "engines": { 437 - "node": ">=18" 438 - } 370 + "win32" 371 + ] 372 + }, 373 + "node_modules/@neon-rs/load": { 374 + "version": "0.0.4", 375 + "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.4.tgz", 376 + "integrity": "sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==", 377 + "license": "MIT" 439 378 }, 440 - "node_modules/@esbuild/linux-riscv64": { 441 - "version": "0.25.4", 442 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", 443 - "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", 444 - "cpu": [ 445 - "riscv64" 446 - ], 447 - "dev": true, 379 + "node_modules/@noble/curves": { 380 + "version": "1.9.7", 381 + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", 382 + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", 448 383 "license": "MIT", 449 - "optional": true, 450 - "os": [ 451 - "linux" 452 - ], 384 + "dependencies": { 385 + "@noble/hashes": "1.8.0" 386 + }, 453 387 "engines": { 454 - "node": ">=18" 388 + "node": "^14.21.3 || >=16" 389 + }, 390 + "funding": { 391 + "url": "https://paulmillr.com/funding/" 455 392 } 456 393 }, 457 - "node_modules/@esbuild/linux-s390x": { 458 - "version": "0.25.4", 459 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", 460 - "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", 461 - "cpu": [ 462 - "s390x" 463 - ], 464 - "dev": true, 394 + "node_modules/@noble/hashes": { 395 + "version": "1.8.0", 396 + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", 397 + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", 465 398 "license": "MIT", 466 - "optional": true, 467 - "os": [ 468 - "linux" 469 - ], 470 399 "engines": { 471 - "node": ">=18" 400 + "node": "^14.21.3 || >=16" 401 + }, 402 + "funding": { 403 + "url": "https://paulmillr.com/funding/" 472 404 } 473 405 }, 474 - "node_modules/@esbuild/linux-x64": { 475 - "version": "0.25.4", 476 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", 477 - "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", 478 - "cpu": [ 479 - "x64" 480 - ], 481 - "dev": true, 482 - "license": "MIT", 483 - "optional": true, 484 - "os": [ 485 - "linux" 486 - ], 487 - "engines": { 488 - "node": ">=18" 406 + "node_modules/@pinojs/redact": { 407 + "version": "0.4.0", 408 + "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz", 409 + "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==", 410 + "license": "MIT" 411 + }, 412 + "node_modules/@skyware/labeler": { 413 + "version": "0.2.0", 414 + "resolved": "https://registry.npmjs.org/@skyware/labeler/-/labeler-0.2.0.tgz", 415 + "integrity": "sha512-5Xsjly8Crvi+vILmFkObNs5y/FeNj/mIztcm1qfNafUzwv9n9B7O5MQmmg3aZfnalmQWsYfs2BgVlaBBBni5bw==", 416 + "license": "MPL-2.0", 417 + "dependencies": { 418 + "@atcute/bluesky": "^1.0.7", 419 + "@atcute/cbor": "^1.0.2", 420 + "@atcute/client": "^2.0.3", 421 + "@atcute/ozone": "^1.0.4", 422 + "@fastify/websocket": "^10.0.1", 423 + "@libsql/client": "^0.14.0", 424 + "@noble/curves": "^1.6.0", 425 + "@noble/hashes": "^1.5.0", 426 + "fastify": "^4.28.1", 427 + "prompts": "^2.4.2", 428 + "uint8arrays": "^5.1.0" 429 + }, 430 + "bin": { 431 + "labeler": "dist/bin.js" 489 432 } 490 433 }, 491 - "node_modules/@esbuild/netbsd-arm64": { 492 - "version": "0.25.4", 493 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", 494 - "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", 495 - "cpu": [ 496 - "arm64" 497 - ], 498 - "dev": true, 499 - "license": "MIT", 500 - "optional": true, 501 - "os": [ 502 - "netbsd" 503 - ], 504 - "engines": { 505 - "node": ">=18" 434 + "node_modules/@skyware/labeler/node_modules/uint8arrays": { 435 + "version": "5.1.0", 436 + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", 437 + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", 438 + "license": "Apache-2.0 OR MIT", 439 + "dependencies": { 440 + "multiformats": "^13.0.0" 506 441 } 507 442 }, 508 - "node_modules/@esbuild/netbsd-x64": { 509 - "version": "0.25.4", 510 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", 511 - "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", 512 - "cpu": [ 513 - "x64" 514 - ], 515 - "dev": true, 443 + "node_modules/@types/node": { 444 + "version": "24.10.1", 445 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", 446 + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", 516 447 "license": "MIT", 517 - "optional": true, 518 - "os": [ 519 - "netbsd" 520 - ], 521 - "engines": { 522 - "node": ">=18" 448 + "dependencies": { 449 + "undici-types": "~7.16.0" 523 450 } 524 451 }, 525 - "node_modules/@esbuild/openbsd-arm64": { 526 - "version": "0.25.4", 527 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", 528 - "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", 529 - "cpu": [ 530 - "arm64" 531 - ], 532 - "dev": true, 452 + "node_modules/@types/ws": { 453 + "version": "8.18.1", 454 + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", 455 + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", 533 456 "license": "MIT", 534 - "optional": true, 535 - "os": [ 536 - "openbsd" 537 - ], 538 - "engines": { 539 - "node": ">=18" 457 + "dependencies": { 458 + "@types/node": "*" 540 459 } 541 460 }, 542 - "node_modules/@esbuild/openbsd-x64": { 543 - "version": "0.25.4", 544 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", 545 - "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", 546 - "cpu": [ 547 - "x64" 548 - ], 549 - "dev": true, 461 + "node_modules/abstract-logging": { 462 + "version": "2.0.1", 463 + "resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz", 464 + "integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==", 465 + "license": "MIT" 466 + }, 467 + "node_modules/ajv": { 468 + "version": "8.17.1", 469 + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", 470 + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", 550 471 "license": "MIT", 551 - "optional": true, 552 - "os": [ 553 - "openbsd" 554 - ], 555 - "engines": { 556 - "node": ">=18" 472 + "dependencies": { 473 + "fast-deep-equal": "^3.1.3", 474 + "fast-uri": "^3.0.1", 475 + "json-schema-traverse": "^1.0.0", 476 + "require-from-string": "^2.0.2" 477 + }, 478 + "funding": { 479 + "type": "github", 480 + "url": "https://github.com/sponsors/epoberezkin" 557 481 } 558 482 }, 559 - "node_modules/@esbuild/sunos-x64": { 560 - "version": "0.25.4", 561 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", 562 - "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", 563 - "cpu": [ 564 - "x64" 565 - ], 566 - "dev": true, 483 + "node_modules/ajv-formats": { 484 + "version": "2.1.1", 485 + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", 486 + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", 567 487 "license": "MIT", 568 - "optional": true, 569 - "os": [ 570 - "sunos" 571 - ], 572 - "engines": { 573 - "node": ">=18" 488 + "dependencies": { 489 + "ajv": "^8.0.0" 490 + }, 491 + "peerDependencies": { 492 + "ajv": "^8.0.0" 493 + }, 494 + "peerDependenciesMeta": { 495 + "ajv": { 496 + "optional": true 497 + } 574 498 } 575 499 }, 576 - "node_modules/@esbuild/win32-arm64": { 577 - "version": "0.25.4", 578 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", 579 - "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", 580 - "cpu": [ 581 - "arm64" 500 + "node_modules/ajv/node_modules/fast-uri": { 501 + "version": "3.1.0", 502 + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", 503 + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", 504 + "funding": [ 505 + { 506 + "type": "github", 507 + "url": "https://github.com/sponsors/fastify" 508 + }, 509 + { 510 + "type": "opencollective", 511 + "url": "https://opencollective.com/fastify" 512 + } 582 513 ], 583 - "dev": true, 514 + "license": "BSD-3-Clause" 515 + }, 516 + "node_modules/atomic-sleep": { 517 + "version": "1.0.0", 518 + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", 519 + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", 584 520 "license": "MIT", 585 - "optional": true, 586 - "os": [ 587 - "win32" 588 - ], 589 521 "engines": { 590 - "node": ">=18" 522 + "node": ">=8.0.0" 591 523 } 592 524 }, 593 - "node_modules/@esbuild/win32-ia32": { 594 - "version": "0.25.4", 595 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", 596 - "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", 597 - "cpu": [ 598 - "ia32" 599 - ], 600 - "dev": true, 525 + "node_modules/avvio": { 526 + "version": "8.4.0", 527 + "resolved": "https://registry.npmjs.org/avvio/-/avvio-8.4.0.tgz", 528 + "integrity": "sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==", 601 529 "license": "MIT", 602 - "optional": true, 603 - "os": [ 604 - "win32" 605 - ], 606 - "engines": { 607 - "node": ">=18" 530 + "dependencies": { 531 + "@fastify/error": "^3.3.0", 532 + "fastq": "^1.17.1" 608 533 } 609 534 }, 610 - "node_modules/@esbuild/win32-x64": { 611 - "version": "0.25.4", 612 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", 613 - "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", 614 - "cpu": [ 615 - "x64" 616 - ], 617 - "dev": true, 535 + "node_modules/await-lock": { 536 + "version": "2.2.2", 537 + "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", 538 + "integrity": "sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==", 539 + "license": "MIT" 540 + }, 541 + "node_modules/cookie": { 542 + "version": "0.7.2", 543 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", 544 + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", 618 545 "license": "MIT", 619 - "optional": true, 620 - "os": [ 621 - "win32" 622 - ], 623 546 "engines": { 624 - "node": ">=18" 547 + "node": ">= 0.6" 625 548 } 626 549 }, 627 - "node_modules/@img/sharp-darwin-arm64": { 628 - "version": "0.33.5", 629 - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", 630 - "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", 631 - "cpu": [ 632 - "arm64" 633 - ], 634 - "dev": true, 635 - "license": "Apache-2.0", 636 - "optional": true, 637 - "os": [ 638 - "darwin" 639 - ], 550 + "node_modules/data-uri-to-buffer": { 551 + "version": "4.0.1", 552 + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", 553 + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", 554 + "license": "MIT", 640 555 "engines": { 641 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 642 - }, 643 - "funding": { 644 - "url": "https://opencollective.com/libvips" 645 - }, 646 - "optionalDependencies": { 647 - "@img/sharp-libvips-darwin-arm64": "1.0.4" 556 + "node": ">= 12" 648 557 } 649 558 }, 650 - "node_modules/@img/sharp-darwin-x64": { 651 - "version": "0.33.5", 652 - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", 653 - "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", 654 - "cpu": [ 655 - "x64" 656 - ], 657 - "dev": true, 559 + "node_modules/detect-libc": { 560 + "version": "2.0.2", 561 + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", 562 + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", 658 563 "license": "Apache-2.0", 659 - "optional": true, 660 - "os": [ 661 - "darwin" 662 - ], 663 564 "engines": { 664 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 665 - }, 666 - "funding": { 667 - "url": "https://opencollective.com/libvips" 668 - }, 669 - "optionalDependencies": { 670 - "@img/sharp-libvips-darwin-x64": "1.0.4" 565 + "node": ">=8" 671 566 } 672 567 }, 673 - "node_modules/@img/sharp-libvips-darwin-arm64": { 674 - "version": "1.0.4", 675 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", 676 - "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", 677 - "cpu": [ 678 - "arm64" 679 - ], 680 - "dev": true, 681 - "license": "LGPL-3.0-or-later", 682 - "optional": true, 683 - "os": [ 684 - "darwin" 685 - ], 686 - "funding": { 687 - "url": "https://opencollective.com/libvips" 568 + "node_modules/duplexify": { 569 + "version": "4.1.3", 570 + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", 571 + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", 572 + "license": "MIT", 573 + "dependencies": { 574 + "end-of-stream": "^1.4.1", 575 + "inherits": "^2.0.3", 576 + "readable-stream": "^3.1.1", 577 + "stream-shift": "^1.0.2" 688 578 } 689 579 }, 690 - "node_modules/@img/sharp-libvips-darwin-x64": { 691 - "version": "1.0.4", 692 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", 693 - "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", 694 - "cpu": [ 695 - "x64" 696 - ], 697 - "dev": true, 698 - "license": "LGPL-3.0-or-later", 699 - "optional": true, 700 - "os": [ 701 - "darwin" 702 - ], 703 - "funding": { 704 - "url": "https://opencollective.com/libvips" 580 + "node_modules/end-of-stream": { 581 + "version": "1.4.5", 582 + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", 583 + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", 584 + "license": "MIT", 585 + "dependencies": { 586 + "once": "^1.4.0" 705 587 } 706 588 }, 707 - "node_modules/@img/sharp-libvips-linux-arm": { 708 - "version": "1.0.5", 709 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", 710 - "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", 711 - "cpu": [ 712 - "arm" 713 - ], 714 - "dev": true, 715 - "license": "LGPL-3.0-or-later", 716 - "optional": true, 717 - "os": [ 718 - "linux" 719 - ], 720 - "funding": { 721 - "url": "https://opencollective.com/libvips" 722 - } 589 + "node_modules/fast-content-type-parse": { 590 + "version": "1.1.0", 591 + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz", 592 + "integrity": "sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==", 593 + "license": "MIT" 723 594 }, 724 - "node_modules/@img/sharp-libvips-linux-arm64": { 725 - "version": "1.0.4", 726 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", 727 - "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", 728 - "cpu": [ 729 - "arm64" 730 - ], 731 - "dev": true, 732 - "license": "LGPL-3.0-or-later", 733 - "optional": true, 734 - "os": [ 735 - "linux" 736 - ], 737 - "funding": { 738 - "url": "https://opencollective.com/libvips" 739 - } 595 + "node_modules/fast-decode-uri-component": { 596 + "version": "1.0.1", 597 + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", 598 + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", 599 + "license": "MIT" 740 600 }, 741 - "node_modules/@img/sharp-libvips-linux-s390x": { 742 - "version": "1.0.4", 743 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", 744 - "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", 745 - "cpu": [ 746 - "s390x" 747 - ], 748 - "dev": true, 749 - "license": "LGPL-3.0-or-later", 750 - "optional": true, 751 - "os": [ 752 - "linux" 753 - ], 754 - "funding": { 755 - "url": "https://opencollective.com/libvips" 756 - } 601 + "node_modules/fast-deep-equal": { 602 + "version": "3.1.3", 603 + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 604 + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 605 + "license": "MIT" 757 606 }, 758 - "node_modules/@img/sharp-libvips-linux-x64": { 759 - "version": "1.0.4", 760 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", 761 - "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", 762 - "cpu": [ 763 - "x64" 764 - ], 765 - "dev": true, 766 - "license": "LGPL-3.0-or-later", 767 - "optional": true, 768 - "os": [ 769 - "linux" 770 - ], 771 - "funding": { 772 - "url": "https://opencollective.com/libvips" 607 + "node_modules/fast-json-stringify": { 608 + "version": "5.16.1", 609 + "resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.16.1.tgz", 610 + "integrity": "sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==", 611 + "license": "MIT", 612 + "dependencies": { 613 + "@fastify/merge-json-schemas": "^0.1.0", 614 + "ajv": "^8.10.0", 615 + "ajv-formats": "^3.0.1", 616 + "fast-deep-equal": "^3.1.3", 617 + "fast-uri": "^2.1.0", 618 + "json-schema-ref-resolver": "^1.0.1", 619 + "rfdc": "^1.2.0" 773 620 } 774 621 }, 775 - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 776 - "version": "1.0.4", 777 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", 778 - "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", 779 - "cpu": [ 780 - "arm64" 781 - ], 782 - "dev": true, 783 - "license": "LGPL-3.0-or-later", 784 - "optional": true, 785 - "os": [ 786 - "linux" 787 - ], 788 - "funding": { 789 - "url": "https://opencollective.com/libvips" 790 - } 791 - }, 792 - "node_modules/@img/sharp-libvips-linuxmusl-x64": { 793 - "version": "1.0.4", 794 - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", 795 - "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", 796 - "cpu": [ 797 - "x64" 798 - ], 799 - "dev": true, 800 - "license": "LGPL-3.0-or-later", 801 - "optional": true, 802 - "os": [ 803 - "linux" 804 - ], 805 - "funding": { 806 - "url": "https://opencollective.com/libvips" 807 - } 808 - }, 809 - "node_modules/@img/sharp-linux-arm": { 810 - "version": "0.33.5", 811 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", 812 - "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", 813 - "cpu": [ 814 - "arm" 815 - ], 816 - "dev": true, 817 - "license": "Apache-2.0", 818 - "optional": true, 819 - "os": [ 820 - "linux" 821 - ], 822 - "engines": { 823 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 622 + "node_modules/fast-json-stringify/node_modules/ajv-formats": { 623 + "version": "3.0.1", 624 + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", 625 + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", 626 + "license": "MIT", 627 + "dependencies": { 628 + "ajv": "^8.0.0" 824 629 }, 825 - "funding": { 826 - "url": "https://opencollective.com/libvips" 630 + "peerDependencies": { 631 + "ajv": "^8.0.0" 827 632 }, 828 - "optionalDependencies": { 829 - "@img/sharp-libvips-linux-arm": "1.0.5" 633 + "peerDependenciesMeta": { 634 + "ajv": { 635 + "optional": true 636 + } 830 637 } 831 638 }, 832 - "node_modules/@img/sharp-linux-arm64": { 833 - "version": "0.33.5", 834 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", 835 - "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", 836 - "cpu": [ 837 - "arm64" 838 - ], 839 - "dev": true, 840 - "license": "Apache-2.0", 841 - "optional": true, 842 - "os": [ 843 - "linux" 844 - ], 845 - "engines": { 846 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 847 - }, 848 - "funding": { 849 - "url": "https://opencollective.com/libvips" 850 - }, 851 - "optionalDependencies": { 852 - "@img/sharp-libvips-linux-arm64": "1.0.4" 639 + "node_modules/fast-querystring": { 640 + "version": "1.1.2", 641 + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", 642 + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", 643 + "license": "MIT", 644 + "dependencies": { 645 + "fast-decode-uri-component": "^1.0.1" 853 646 } 854 647 }, 855 - "node_modules/@img/sharp-linux-s390x": { 856 - "version": "0.33.5", 857 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", 858 - "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", 859 - "cpu": [ 860 - "s390x" 861 - ], 862 - "dev": true, 863 - "license": "Apache-2.0", 864 - "optional": true, 865 - "os": [ 866 - "linux" 648 + "node_modules/fast-uri": { 649 + "version": "2.4.0", 650 + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz", 651 + "integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==", 652 + "license": "MIT" 653 + }, 654 + "node_modules/fastify": { 655 + "version": "4.29.1", 656 + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.29.1.tgz", 657 + "integrity": "sha512-m2kMNHIG92tSNWv+Z3UeTR9AWLLuo7KctC7mlFPtMEVrfjIhmQhkQnT9v15qA/BfVq3vvj134Y0jl9SBje3jXQ==", 658 + "funding": [ 659 + { 660 + "type": "github", 661 + "url": "https://github.com/sponsors/fastify" 662 + }, 663 + { 664 + "type": "opencollective", 665 + "url": "https://opencollective.com/fastify" 666 + } 867 667 ], 868 - "engines": { 869 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 870 - }, 871 - "funding": { 872 - "url": "https://opencollective.com/libvips" 873 - }, 874 - "optionalDependencies": { 875 - "@img/sharp-libvips-linux-s390x": "1.0.4" 668 + "license": "MIT", 669 + "dependencies": { 670 + "@fastify/ajv-compiler": "^3.5.0", 671 + "@fastify/error": "^3.4.0", 672 + "@fastify/fast-json-stringify-compiler": "^4.3.0", 673 + "abstract-logging": "^2.0.1", 674 + "avvio": "^8.3.0", 675 + "fast-content-type-parse": "^1.1.0", 676 + "fast-json-stringify": "^5.8.0", 677 + "find-my-way": "^8.0.0", 678 + "light-my-request": "^5.11.0", 679 + "pino": "^9.0.0", 680 + "process-warning": "^3.0.0", 681 + "proxy-addr": "^2.0.7", 682 + "rfdc": "^1.3.0", 683 + "secure-json-parse": "^2.7.0", 684 + "semver": "^7.5.4", 685 + "toad-cache": "^3.3.0" 876 686 } 877 687 }, 878 - "node_modules/@img/sharp-linux-x64": { 879 - "version": "0.33.5", 880 - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", 881 - "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", 882 - "cpu": [ 883 - "x64" 884 - ], 885 - "dev": true, 886 - "license": "Apache-2.0", 887 - "optional": true, 888 - "os": [ 889 - "linux" 890 - ], 891 - "engines": { 892 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 893 - }, 894 - "funding": { 895 - "url": "https://opencollective.com/libvips" 896 - }, 897 - "optionalDependencies": { 898 - "@img/sharp-libvips-linux-x64": "1.0.4" 688 + "node_modules/fastify-plugin": { 689 + "version": "4.5.1", 690 + "resolved": "https://registry.npmjs.org/fastify-plugin/-/fastify-plugin-4.5.1.tgz", 691 + "integrity": "sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==", 692 + "license": "MIT" 693 + }, 694 + "node_modules/fastq": { 695 + "version": "1.19.1", 696 + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", 697 + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", 698 + "license": "ISC", 699 + "dependencies": { 700 + "reusify": "^1.0.4" 899 701 } 900 702 }, 901 - "node_modules/@img/sharp-linuxmusl-arm64": { 902 - "version": "0.33.5", 903 - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", 904 - "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", 905 - "cpu": [ 906 - "arm64" 907 - ], 908 - "dev": true, 909 - "license": "Apache-2.0", 910 - "optional": true, 911 - "os": [ 912 - "linux" 703 + "node_modules/fetch-blob": { 704 + "version": "3.2.0", 705 + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", 706 + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", 707 + "funding": [ 708 + { 709 + "type": "github", 710 + "url": "https://github.com/sponsors/jimmywarting" 711 + }, 712 + { 713 + "type": "paypal", 714 + "url": "https://paypal.me/jimmywarting" 715 + } 913 716 ], 914 - "engines": { 915 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 916 - }, 917 - "funding": { 918 - "url": "https://opencollective.com/libvips" 717 + "license": "MIT", 718 + "dependencies": { 719 + "node-domexception": "^1.0.0", 720 + "web-streams-polyfill": "^3.0.3" 919 721 }, 920 - "optionalDependencies": { 921 - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" 922 - } 923 - }, 924 - "node_modules/@img/sharp-linuxmusl-x64": { 925 - "version": "0.33.5", 926 - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", 927 - "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", 928 - "cpu": [ 929 - "x64" 930 - ], 931 - "dev": true, 932 - "license": "Apache-2.0", 933 - "optional": true, 934 - "os": [ 935 - "linux" 936 - ], 937 722 "engines": { 938 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 939 - }, 940 - "funding": { 941 - "url": "https://opencollective.com/libvips" 942 - }, 943 - "optionalDependencies": { 944 - "@img/sharp-libvips-linuxmusl-x64": "1.0.4" 723 + "node": "^12.20 || >= 14.13" 945 724 } 946 725 }, 947 - "node_modules/@img/sharp-wasm32": { 948 - "version": "0.33.5", 949 - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", 950 - "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", 951 - "cpu": [ 952 - "wasm32" 953 - ], 954 - "dev": true, 955 - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 956 - "optional": true, 726 + "node_modules/find-my-way": { 727 + "version": "8.2.2", 728 + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.2.tgz", 729 + "integrity": "sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==", 730 + "license": "MIT", 957 731 "dependencies": { 958 - "@emnapi/runtime": "^1.2.0" 732 + "fast-deep-equal": "^3.1.3", 733 + "fast-querystring": "^1.0.0", 734 + "safe-regex2": "^3.1.0" 959 735 }, 960 736 "engines": { 961 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 962 - }, 963 - "funding": { 964 - "url": "https://opencollective.com/libvips" 737 + "node": ">=14" 965 738 } 966 739 }, 967 - "node_modules/@img/sharp-win32-ia32": { 968 - "version": "0.33.5", 969 - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", 970 - "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", 971 - "cpu": [ 972 - "ia32" 973 - ], 974 - "dev": true, 975 - "license": "Apache-2.0 AND LGPL-3.0-or-later", 976 - "optional": true, 977 - "os": [ 978 - "win32" 979 - ], 980 - "engines": { 981 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 740 + "node_modules/formdata-polyfill": { 741 + "version": "4.0.10", 742 + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", 743 + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", 744 + "license": "MIT", 745 + "dependencies": { 746 + "fetch-blob": "^3.1.2" 982 747 }, 983 - "funding": { 984 - "url": "https://opencollective.com/libvips" 748 + "engines": { 749 + "node": ">=12.20.0" 985 750 } 986 751 }, 987 - "node_modules/@img/sharp-win32-x64": { 988 - "version": "0.33.5", 989 - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", 990 - "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", 991 - "cpu": [ 992 - "x64" 993 - ], 994 - "dev": true, 995 - "license": "Apache-2.0 AND LGPL-3.0-or-later", 996 - "optional": true, 997 - "os": [ 998 - "win32" 999 - ], 752 + "node_modules/forwarded": { 753 + "version": "0.2.0", 754 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", 755 + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", 756 + "license": "MIT", 1000 757 "engines": { 1001 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1002 - }, 1003 - "funding": { 1004 - "url": "https://opencollective.com/libvips" 758 + "node": ">= 0.6" 1005 759 } 1006 760 }, 1007 - "node_modules/@jridgewell/resolve-uri": { 1008 - "version": "3.1.2", 1009 - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 1010 - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 1011 - "dev": true, 761 + "node_modules/inherits": { 762 + "version": "2.0.4", 763 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 764 + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 765 + "license": "ISC" 766 + }, 767 + "node_modules/ipaddr.js": { 768 + "version": "1.9.1", 769 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", 770 + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", 1012 771 "license": "MIT", 1013 772 "engines": { 1014 - "node": ">=6.0.0" 773 + "node": ">= 0.10" 1015 774 } 1016 775 }, 1017 - "node_modules/@jridgewell/sourcemap-codec": { 1018 - "version": "1.5.5", 1019 - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", 1020 - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", 1021 - "dev": true, 776 + "node_modules/iso-datestring-validator": { 777 + "version": "2.2.2", 778 + "resolved": "https://registry.npmjs.org/iso-datestring-validator/-/iso-datestring-validator-2.2.2.tgz", 779 + "integrity": "sha512-yLEMkBbLZTlVQqOnQ4FiMujR6T4DEcCb1xizmvXS+OxuhwcbtynoosRzdMA69zZCShCNAbi+gJ71FxZBBXx1SA==", 1022 780 "license": "MIT" 1023 781 }, 1024 - "node_modules/@jridgewell/trace-mapping": { 1025 - "version": "0.3.9", 1026 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", 1027 - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", 1028 - "dev": true, 782 + "node_modules/js-base64": { 783 + "version": "3.7.8", 784 + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz", 785 + "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", 786 + "license": "BSD-3-Clause" 787 + }, 788 + "node_modules/json-schema-ref-resolver": { 789 + "version": "1.0.1", 790 + "resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz", 791 + "integrity": "sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==", 1029 792 "license": "MIT", 1030 793 "dependencies": { 1031 - "@jridgewell/resolve-uri": "^3.0.3", 1032 - "@jridgewell/sourcemap-codec": "^1.4.10" 794 + "fast-deep-equal": "^3.1.3" 1033 795 } 1034 796 }, 1035 - "node_modules/@poppinss/colors": { 1036 - "version": "4.1.5", 1037 - "resolved": "https://registry.npmjs.org/@poppinss/colors/-/colors-4.1.5.tgz", 1038 - "integrity": "sha512-FvdDqtcRCtz6hThExcFOgW0cWX+xwSMWcRuQe5ZEb2m7cVQOAVZOIMt+/v9RxGiD9/OY16qJBXK4CVKWAPalBw==", 1039 - "dev": true, 797 + "node_modules/json-schema-traverse": { 798 + "version": "1.0.0", 799 + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", 800 + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", 801 + "license": "MIT" 802 + }, 803 + "node_modules/kleur": { 804 + "version": "3.0.3", 805 + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", 806 + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", 1040 807 "license": "MIT", 1041 - "dependencies": { 1042 - "kleur": "^4.1.5" 808 + "engines": { 809 + "node": ">=6" 1043 810 } 1044 811 }, 1045 - "node_modules/@poppinss/dumper": { 1046 - "version": "0.6.5", 1047 - "resolved": "https://registry.npmjs.org/@poppinss/dumper/-/dumper-0.6.5.tgz", 1048 - "integrity": "sha512-NBdYIb90J7LfOI32dOewKI1r7wnkiH6m920puQ3qHUeZkxNkQiFnXVWoE6YtFSv6QOiPPf7ys6i+HWWecDz7sw==", 1049 - "dev": true, 812 + "node_modules/libsql": { 813 + "version": "0.4.7", 814 + "resolved": "https://registry.npmjs.org/libsql/-/libsql-0.4.7.tgz", 815 + "integrity": "sha512-T9eIRCs6b0J1SHKYIvD8+KCJMcWZ900iZyxdnSCdqxN12Z1ijzT+jY5nrk72Jw4B0HGzms2NgpryArlJqvc3Lw==", 816 + "cpu": [ 817 + "x64", 818 + "arm64", 819 + "wasm32" 820 + ], 1050 821 "license": "MIT", 822 + "os": [ 823 + "darwin", 824 + "linux", 825 + "win32" 826 + ], 1051 827 "dependencies": { 1052 - "@poppinss/colors": "^4.1.5", 1053 - "@sindresorhus/is": "^7.0.2", 1054 - "supports-color": "^10.0.0" 828 + "@neon-rs/load": "^0.0.4", 829 + "detect-libc": "2.0.2" 830 + }, 831 + "optionalDependencies": { 832 + "@libsql/darwin-arm64": "0.4.7", 833 + "@libsql/darwin-x64": "0.4.7", 834 + "@libsql/linux-arm64-gnu": "0.4.7", 835 + "@libsql/linux-arm64-musl": "0.4.7", 836 + "@libsql/linux-x64-gnu": "0.4.7", 837 + "@libsql/linux-x64-musl": "0.4.7", 838 + "@libsql/win32-x64-msvc": "0.4.7" 839 + } 840 + }, 841 + "node_modules/light-my-request": { 842 + "version": "5.14.0", 843 + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.14.0.tgz", 844 + "integrity": "sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==", 845 + "license": "BSD-3-Clause", 846 + "dependencies": { 847 + "cookie": "^0.7.0", 848 + "process-warning": "^3.0.0", 849 + "set-cookie-parser": "^2.4.1" 1055 850 } 1056 851 }, 1057 - "node_modules/@poppinss/exception": { 1058 - "version": "1.2.2", 1059 - "resolved": "https://registry.npmjs.org/@poppinss/exception/-/exception-1.2.2.tgz", 1060 - "integrity": "sha512-m7bpKCD4QMlFCjA/nKTs23fuvoVFoA83brRKmObCUNmi/9tVu8Ve3w4YQAnJu4q3Tjf5fr685HYIC/IA2zHRSg==", 1061 - "dev": true, 1062 - "license": "MIT" 852 + "node_modules/multiformats": { 853 + "version": "13.4.1", 854 + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", 855 + "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", 856 + "license": "Apache-2.0 OR MIT" 857 + }, 858 + "node_modules/node-domexception": { 859 + "version": "1.0.0", 860 + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", 861 + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", 862 + "deprecated": "Use your platform's native DOMException instead", 863 + "funding": [ 864 + { 865 + "type": "github", 866 + "url": "https://github.com/sponsors/jimmywarting" 867 + }, 868 + { 869 + "type": "github", 870 + "url": "https://paypal.me/jimmywarting" 871 + } 872 + ], 873 + "license": "MIT", 874 + "engines": { 875 + "node": ">=10.5.0" 876 + } 1063 877 }, 1064 - "node_modules/@sindresorhus/is": { 1065 - "version": "7.1.1", 1066 - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.1.1.tgz", 1067 - "integrity": "sha512-rO92VvpgMc3kfiTjGT52LEtJ8Yc5kCWhZjLQ3LwlA4pSgPpQO7bVpYXParOD8Jwf+cVQECJo3yP/4I8aZtUQTQ==", 1068 - "dev": true, 878 + "node_modules/node-fetch": { 879 + "version": "3.3.2", 880 + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", 881 + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", 1069 882 "license": "MIT", 883 + "dependencies": { 884 + "data-uri-to-buffer": "^4.0.0", 885 + "fetch-blob": "^3.1.4", 886 + "formdata-polyfill": "^4.0.10" 887 + }, 1070 888 "engines": { 1071 - "node": ">=18" 889 + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1072 890 }, 1073 891 "funding": { 1074 - "url": "https://github.com/sindresorhus/is?sponsor=1" 892 + "type": "opencollective", 893 + "url": "https://opencollective.com/node-fetch" 1075 894 } 1076 895 }, 1077 - "node_modules/@speed-highlight/core": { 1078 - "version": "1.2.12", 1079 - "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.12.tgz", 1080 - "integrity": "sha512-uilwrK0Ygyri5dToHYdZSjcvpS2ZwX0w5aSt3GCEN9hrjxWCoeV4Z2DTXuxjwbntaLQIEEAlCeNQss5SoHvAEA==", 1081 - "dev": true, 1082 - "license": "CC0-1.0" 896 + "node_modules/on-exit-leak-free": { 897 + "version": "2.1.2", 898 + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", 899 + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", 900 + "license": "MIT", 901 + "engines": { 902 + "node": ">=14.0.0" 903 + } 1083 904 }, 1084 - "node_modules/@types/node": { 1085 - "version": "24.10.1", 1086 - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", 1087 - "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", 1088 - "dev": true, 1089 - "license": "MIT", 905 + "node_modules/once": { 906 + "version": "1.4.0", 907 + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 908 + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", 909 + "license": "ISC", 1090 910 "dependencies": { 1091 - "undici-types": "~7.16.0" 911 + "wrappy": "1" 1092 912 } 1093 913 }, 1094 - "node_modules/acorn": { 1095 - "version": "8.14.0", 1096 - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 1097 - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 1098 - "dev": true, 914 + "node_modules/pino": { 915 + "version": "9.14.0", 916 + "resolved": "https://registry.npmjs.org/pino/-/pino-9.14.0.tgz", 917 + "integrity": "sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==", 1099 918 "license": "MIT", 919 + "dependencies": { 920 + "@pinojs/redact": "^0.4.0", 921 + "atomic-sleep": "^1.0.0", 922 + "on-exit-leak-free": "^2.1.0", 923 + "pino-abstract-transport": "^2.0.0", 924 + "pino-std-serializers": "^7.0.0", 925 + "process-warning": "^5.0.0", 926 + "quick-format-unescaped": "^4.0.3", 927 + "real-require": "^0.2.0", 928 + "safe-stable-stringify": "^2.3.1", 929 + "sonic-boom": "^4.0.1", 930 + "thread-stream": "^3.0.0" 931 + }, 1100 932 "bin": { 1101 - "acorn": "bin/acorn" 1102 - }, 1103 - "engines": { 1104 - "node": ">=0.4.0" 933 + "pino": "bin.js" 1105 934 } 1106 935 }, 1107 - "node_modules/acorn-walk": { 1108 - "version": "8.3.2", 1109 - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", 1110 - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", 1111 - "dev": true, 936 + "node_modules/pino-abstract-transport": { 937 + "version": "2.0.0", 938 + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", 939 + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", 1112 940 "license": "MIT", 1113 - "engines": { 1114 - "node": ">=0.4.0" 941 + "dependencies": { 942 + "split2": "^4.0.0" 1115 943 } 1116 944 }, 1117 - "node_modules/blake3-wasm": { 1118 - "version": "2.1.5", 1119 - "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", 1120 - "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", 1121 - "dev": true, 945 + "node_modules/pino-std-serializers": { 946 + "version": "7.0.0", 947 + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", 948 + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", 1122 949 "license": "MIT" 1123 950 }, 1124 - "node_modules/color": { 1125 - "version": "4.2.3", 1126 - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 1127 - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 1128 - "dev": true, 951 + "node_modules/pino/node_modules/process-warning": { 952 + "version": "5.0.0", 953 + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", 954 + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", 955 + "funding": [ 956 + { 957 + "type": "github", 958 + "url": "https://github.com/sponsors/fastify" 959 + }, 960 + { 961 + "type": "opencollective", 962 + "url": "https://opencollective.com/fastify" 963 + } 964 + ], 965 + "license": "MIT" 966 + }, 967 + "node_modules/process-warning": { 968 + "version": "3.0.0", 969 + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", 970 + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", 971 + "license": "MIT" 972 + }, 973 + "node_modules/promise-limit": { 974 + "version": "2.7.0", 975 + "resolved": "https://registry.npmjs.org/promise-limit/-/promise-limit-2.7.0.tgz", 976 + "integrity": "sha512-7nJ6v5lnJsXwGprnGXga4wx6d1POjvi5Qmf1ivTRxTjH4Z/9Czja/UCMLVmB9N93GeWOU93XaFaEt6jbuoagNw==", 977 + "license": "ISC" 978 + }, 979 + "node_modules/prompts": { 980 + "version": "2.4.2", 981 + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", 982 + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", 1129 983 "license": "MIT", 1130 984 "dependencies": { 1131 - "color-convert": "^2.0.1", 1132 - "color-string": "^1.9.0" 985 + "kleur": "^3.0.3", 986 + "sisteransi": "^1.0.5" 1133 987 }, 1134 988 "engines": { 1135 - "node": ">=12.5.0" 989 + "node": ">= 6" 1136 990 } 1137 991 }, 1138 - "node_modules/color-convert": { 1139 - "version": "2.0.1", 1140 - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1141 - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1142 - "dev": true, 992 + "node_modules/proxy-addr": { 993 + "version": "2.0.7", 994 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", 995 + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", 1143 996 "license": "MIT", 1144 997 "dependencies": { 1145 - "color-name": "~1.1.4" 998 + "forwarded": "0.2.0", 999 + "ipaddr.js": "1.9.1" 1146 1000 }, 1147 1001 "engines": { 1148 - "node": ">=7.0.0" 1002 + "node": ">= 0.10" 1149 1003 } 1150 1004 }, 1151 - "node_modules/color-name": { 1152 - "version": "1.1.4", 1153 - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1154 - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1155 - "dev": true, 1005 + "node_modules/quick-format-unescaped": { 1006 + "version": "4.0.4", 1007 + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", 1008 + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", 1156 1009 "license": "MIT" 1157 1010 }, 1158 - "node_modules/color-string": { 1159 - "version": "1.9.1", 1160 - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 1161 - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 1162 - "dev": true, 1011 + "node_modules/readable-stream": { 1012 + "version": "3.6.2", 1013 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 1014 + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 1163 1015 "license": "MIT", 1164 1016 "dependencies": { 1165 - "color-name": "^1.0.0", 1166 - "simple-swizzle": "^0.2.2" 1167 - } 1168 - }, 1169 - "node_modules/cookie": { 1170 - "version": "1.1.1", 1171 - "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", 1172 - "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", 1173 - "dev": true, 1174 - "license": "MIT", 1175 - "engines": { 1176 - "node": ">=18" 1017 + "inherits": "^2.0.3", 1018 + "string_decoder": "^1.1.1", 1019 + "util-deprecate": "^1.0.1" 1177 1020 }, 1178 - "funding": { 1179 - "type": "opencollective", 1180 - "url": "https://opencollective.com/express" 1181 - } 1182 - }, 1183 - "node_modules/detect-libc": { 1184 - "version": "2.1.2", 1185 - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", 1186 - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", 1187 - "dev": true, 1188 - "license": "Apache-2.0", 1189 1021 "engines": { 1190 - "node": ">=8" 1022 + "node": ">= 6" 1191 1023 } 1192 1024 }, 1193 - "node_modules/error-stack-parser-es": { 1194 - "version": "1.0.5", 1195 - "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", 1196 - "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", 1197 - "dev": true, 1025 + "node_modules/real-require": { 1026 + "version": "0.2.0", 1027 + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", 1028 + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", 1198 1029 "license": "MIT", 1199 - "funding": { 1200 - "url": "https://github.com/sponsors/antfu" 1030 + "engines": { 1031 + "node": ">= 12.13.0" 1201 1032 } 1202 1033 }, 1203 - "node_modules/esbuild": { 1204 - "version": "0.25.4", 1205 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", 1206 - "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", 1207 - "dev": true, 1208 - "hasInstallScript": true, 1034 + "node_modules/require-from-string": { 1035 + "version": "2.0.2", 1036 + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", 1037 + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", 1209 1038 "license": "MIT", 1210 - "bin": { 1211 - "esbuild": "bin/esbuild" 1212 - }, 1213 1039 "engines": { 1214 - "node": ">=18" 1215 - }, 1216 - "optionalDependencies": { 1217 - "@esbuild/aix-ppc64": "0.25.4", 1218 - "@esbuild/android-arm": "0.25.4", 1219 - "@esbuild/android-arm64": "0.25.4", 1220 - "@esbuild/android-x64": "0.25.4", 1221 - "@esbuild/darwin-arm64": "0.25.4", 1222 - "@esbuild/darwin-x64": "0.25.4", 1223 - "@esbuild/freebsd-arm64": "0.25.4", 1224 - "@esbuild/freebsd-x64": "0.25.4", 1225 - "@esbuild/linux-arm": "0.25.4", 1226 - "@esbuild/linux-arm64": "0.25.4", 1227 - "@esbuild/linux-ia32": "0.25.4", 1228 - "@esbuild/linux-loong64": "0.25.4", 1229 - "@esbuild/linux-mips64el": "0.25.4", 1230 - "@esbuild/linux-ppc64": "0.25.4", 1231 - "@esbuild/linux-riscv64": "0.25.4", 1232 - "@esbuild/linux-s390x": "0.25.4", 1233 - "@esbuild/linux-x64": "0.25.4", 1234 - "@esbuild/netbsd-arm64": "0.25.4", 1235 - "@esbuild/netbsd-x64": "0.25.4", 1236 - "@esbuild/openbsd-arm64": "0.25.4", 1237 - "@esbuild/openbsd-x64": "0.25.4", 1238 - "@esbuild/sunos-x64": "0.25.4", 1239 - "@esbuild/win32-arm64": "0.25.4", 1240 - "@esbuild/win32-ia32": "0.25.4", 1241 - "@esbuild/win32-x64": "0.25.4" 1040 + "node": ">=0.10.0" 1242 1041 } 1243 1042 }, 1244 - "node_modules/exit-hook": { 1245 - "version": "2.2.1", 1246 - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", 1247 - "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", 1248 - "dev": true, 1043 + "node_modules/ret": { 1044 + "version": "0.4.3", 1045 + "resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz", 1046 + "integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==", 1249 1047 "license": "MIT", 1250 1048 "engines": { 1251 - "node": ">=6" 1252 - }, 1253 - "funding": { 1254 - "url": "https://github.com/sponsors/sindresorhus" 1049 + "node": ">=10" 1255 1050 } 1256 1051 }, 1257 - "node_modules/fsevents": { 1258 - "version": "2.3.3", 1259 - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1260 - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1261 - "dev": true, 1262 - "hasInstallScript": true, 1052 + "node_modules/reusify": { 1053 + "version": "1.1.0", 1054 + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", 1055 + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", 1263 1056 "license": "MIT", 1264 - "optional": true, 1265 - "os": [ 1266 - "darwin" 1267 - ], 1268 1057 "engines": { 1269 - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 1058 + "iojs": ">=1.0.0", 1059 + "node": ">=0.10.0" 1270 1060 } 1271 1061 }, 1272 - "node_modules/glob-to-regexp": { 1273 - "version": "0.4.1", 1274 - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 1275 - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 1276 - "dev": true, 1277 - "license": "BSD-2-Clause" 1062 + "node_modules/rfdc": { 1063 + "version": "1.4.1", 1064 + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", 1065 + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", 1066 + "license": "MIT" 1278 1067 }, 1279 - "node_modules/is-arrayish": { 1280 - "version": "0.3.4", 1281 - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", 1282 - "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", 1283 - "dev": true, 1068 + "node_modules/safe-buffer": { 1069 + "version": "5.2.1", 1070 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1071 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 1072 + "funding": [ 1073 + { 1074 + "type": "github", 1075 + "url": "https://github.com/sponsors/feross" 1076 + }, 1077 + { 1078 + "type": "patreon", 1079 + "url": "https://www.patreon.com/feross" 1080 + }, 1081 + { 1082 + "type": "consulting", 1083 + "url": "https://feross.org/support" 1084 + } 1085 + ], 1284 1086 "license": "MIT" 1285 1087 }, 1286 - "node_modules/kleur": { 1287 - "version": "4.1.5", 1288 - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", 1289 - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", 1290 - "dev": true, 1088 + "node_modules/safe-regex2": { 1089 + "version": "3.1.0", 1090 + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-3.1.0.tgz", 1091 + "integrity": "sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==", 1291 1092 "license": "MIT", 1292 - "engines": { 1293 - "node": ">=6" 1093 + "dependencies": { 1094 + "ret": "~0.4.0" 1294 1095 } 1295 1096 }, 1296 - "node_modules/mime": { 1297 - "version": "3.0.0", 1298 - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", 1299 - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", 1300 - "dev": true, 1097 + "node_modules/safe-stable-stringify": { 1098 + "version": "2.5.0", 1099 + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", 1100 + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", 1301 1101 "license": "MIT", 1302 - "bin": { 1303 - "mime": "cli.js" 1304 - }, 1305 1102 "engines": { 1306 - "node": ">=10.0.0" 1307 - } 1308 - }, 1309 - "node_modules/miniflare": { 1310 - "version": "4.20251125.0", 1311 - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-4.20251125.0.tgz", 1312 - "integrity": "sha512-xY6deLx0Drt8GfGG2Fv0fHUocHAIG/Iv62Kl36TPfDzgq7/+DQ5gYNisxnmyISQdA/sm7kOvn2XRBncxjWYrLg==", 1313 - "dev": true, 1314 - "license": "MIT", 1315 - "dependencies": { 1316 - "@cspotcode/source-map-support": "0.8.1", 1317 - "acorn": "8.14.0", 1318 - "acorn-walk": "8.3.2", 1319 - "exit-hook": "2.2.1", 1320 - "glob-to-regexp": "0.4.1", 1321 - "sharp": "^0.33.5", 1322 - "stoppable": "1.1.0", 1323 - "undici": "7.14.0", 1324 - "workerd": "1.20251125.0", 1325 - "ws": "8.18.0", 1326 - "youch": "4.1.0-beta.10", 1327 - "zod": "3.22.3" 1328 - }, 1329 - "bin": { 1330 - "miniflare": "bootstrap.js" 1331 - }, 1332 - "engines": { 1333 - "node": ">=18.0.0" 1103 + "node": ">=10" 1334 1104 } 1335 1105 }, 1336 - "node_modules/multiformats": { 1337 - "version": "13.4.1", 1338 - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", 1339 - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", 1340 - "license": "Apache-2.0 OR MIT" 1341 - }, 1342 - "node_modules/path-to-regexp": { 1343 - "version": "6.3.0", 1344 - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", 1345 - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", 1346 - "dev": true, 1347 - "license": "MIT" 1348 - }, 1349 - "node_modules/pathe": { 1350 - "version": "2.0.3", 1351 - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", 1352 - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", 1353 - "dev": true, 1354 - "license": "MIT" 1106 + "node_modules/secure-json-parse": { 1107 + "version": "2.7.0", 1108 + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", 1109 + "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", 1110 + "license": "BSD-3-Clause" 1355 1111 }, 1356 1112 "node_modules/semver": { 1357 1113 "version": "7.7.3", 1358 1114 "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", 1359 1115 "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", 1360 - "dev": true, 1361 1116 "license": "ISC", 1362 1117 "bin": { 1363 1118 "semver": "bin/semver.js" ··· 1366 1121 "node": ">=10" 1367 1122 } 1368 1123 }, 1369 - "node_modules/sharp": { 1370 - "version": "0.33.5", 1371 - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", 1372 - "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", 1373 - "dev": true, 1374 - "hasInstallScript": true, 1375 - "license": "Apache-2.0", 1124 + "node_modules/set-cookie-parser": { 1125 + "version": "2.7.2", 1126 + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", 1127 + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", 1128 + "license": "MIT" 1129 + }, 1130 + "node_modules/sisteransi": { 1131 + "version": "1.0.5", 1132 + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", 1133 + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", 1134 + "license": "MIT" 1135 + }, 1136 + "node_modules/sonic-boom": { 1137 + "version": "4.2.0", 1138 + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", 1139 + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", 1140 + "license": "MIT", 1376 1141 "dependencies": { 1377 - "color": "^4.2.3", 1378 - "detect-libc": "^2.0.3", 1379 - "semver": "^7.6.3" 1380 - }, 1142 + "atomic-sleep": "^1.0.0" 1143 + } 1144 + }, 1145 + "node_modules/split2": { 1146 + "version": "4.2.0", 1147 + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", 1148 + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", 1149 + "license": "ISC", 1381 1150 "engines": { 1382 - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 1383 - }, 1384 - "funding": { 1385 - "url": "https://opencollective.com/libvips" 1386 - }, 1387 - "optionalDependencies": { 1388 - "@img/sharp-darwin-arm64": "0.33.5", 1389 - "@img/sharp-darwin-x64": "0.33.5", 1390 - "@img/sharp-libvips-darwin-arm64": "1.0.4", 1391 - "@img/sharp-libvips-darwin-x64": "1.0.4", 1392 - "@img/sharp-libvips-linux-arm": "1.0.5", 1393 - "@img/sharp-libvips-linux-arm64": "1.0.4", 1394 - "@img/sharp-libvips-linux-s390x": "1.0.4", 1395 - "@img/sharp-libvips-linux-x64": "1.0.4", 1396 - "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", 1397 - "@img/sharp-libvips-linuxmusl-x64": "1.0.4", 1398 - "@img/sharp-linux-arm": "0.33.5", 1399 - "@img/sharp-linux-arm64": "0.33.5", 1400 - "@img/sharp-linux-s390x": "0.33.5", 1401 - "@img/sharp-linux-x64": "0.33.5", 1402 - "@img/sharp-linuxmusl-arm64": "0.33.5", 1403 - "@img/sharp-linuxmusl-x64": "0.33.5", 1404 - "@img/sharp-wasm32": "0.33.5", 1405 - "@img/sharp-win32-ia32": "0.33.5", 1406 - "@img/sharp-win32-x64": "0.33.5" 1151 + "node": ">= 10.x" 1407 1152 } 1408 1153 }, 1409 - "node_modules/simple-swizzle": { 1410 - "version": "0.2.4", 1411 - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", 1412 - "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", 1413 - "dev": true, 1154 + "node_modules/stream-shift": { 1155 + "version": "1.0.3", 1156 + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", 1157 + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", 1158 + "license": "MIT" 1159 + }, 1160 + "node_modules/string_decoder": { 1161 + "version": "1.3.0", 1162 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1163 + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1414 1164 "license": "MIT", 1415 1165 "dependencies": { 1416 - "is-arrayish": "^0.3.1" 1166 + "safe-buffer": "~5.2.0" 1417 1167 } 1418 1168 }, 1419 - "node_modules/stoppable": { 1420 - "version": "1.1.0", 1421 - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", 1422 - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", 1423 - "dev": true, 1169 + "node_modules/thread-stream": { 1170 + "version": "3.1.0", 1171 + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", 1172 + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", 1424 1173 "license": "MIT", 1425 - "engines": { 1426 - "node": ">=4", 1427 - "npm": ">=6" 1174 + "dependencies": { 1175 + "real-require": "^0.2.0" 1176 + } 1177 + }, 1178 + "node_modules/tlds": { 1179 + "version": "1.261.0", 1180 + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz", 1181 + "integrity": "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==", 1182 + "license": "MIT", 1183 + "bin": { 1184 + "tlds": "bin.js" 1428 1185 } 1429 1186 }, 1430 - "node_modules/supports-color": { 1431 - "version": "10.2.2", 1432 - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", 1433 - "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", 1434 - "dev": true, 1187 + "node_modules/toad-cache": { 1188 + "version": "3.7.0", 1189 + "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz", 1190 + "integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==", 1435 1191 "license": "MIT", 1436 1192 "engines": { 1437 - "node": ">=18" 1438 - }, 1439 - "funding": { 1440 - "url": "https://github.com/chalk/supports-color?sponsor=1" 1193 + "node": ">=12" 1441 1194 } 1442 1195 }, 1443 1196 "node_modules/tslib": { 1444 1197 "version": "2.8.1", 1445 1198 "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 1446 1199 "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 1447 - "dev": true, 1448 - "license": "0BSD", 1449 - "optional": true 1200 + "license": "0BSD" 1450 1201 }, 1451 1202 "node_modules/typescript": { 1452 1203 "version": "5.9.3", ··· 1463 1214 } 1464 1215 }, 1465 1216 "node_modules/uint8arrays": { 1466 - "version": "5.1.0", 1467 - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", 1468 - "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", 1469 - "license": "Apache-2.0 OR MIT", 1217 + "version": "3.0.0", 1218 + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", 1219 + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", 1220 + "license": "MIT", 1470 1221 "dependencies": { 1471 - "multiformats": "^13.0.0" 1222 + "multiformats": "^9.4.2" 1472 1223 } 1473 1224 }, 1474 - "node_modules/undici": { 1475 - "version": "7.14.0", 1476 - "resolved": "https://registry.npmjs.org/undici/-/undici-7.14.0.tgz", 1477 - "integrity": "sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==", 1478 - "dev": true, 1479 - "license": "MIT", 1480 - "engines": { 1481 - "node": ">=20.18.1" 1482 - } 1225 + "node_modules/uint8arrays/node_modules/multiformats": { 1226 + "version": "9.9.0", 1227 + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", 1228 + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", 1229 + "license": "(Apache-2.0 AND MIT)" 1483 1230 }, 1484 1231 "node_modules/undici-types": { 1485 1232 "version": "7.16.0", 1486 1233 "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", 1487 1234 "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", 1488 - "dev": true, 1489 1235 "license": "MIT" 1490 1236 }, 1491 - "node_modules/unenv": { 1492 - "version": "2.0.0-rc.24", 1493 - "resolved": "https://registry.npmjs.org/unenv/-/unenv-2.0.0-rc.24.tgz", 1494 - "integrity": "sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==", 1495 - "dev": true, 1237 + "node_modules/unicode-segmenter": { 1238 + "version": "0.14.0", 1239 + "resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.0.tgz", 1240 + "integrity": "sha512-AH4lhPCJANUnSLEKnM4byboctePJzltF4xj8b+NbNiYeAkAXGh7px2K/4NANFp7dnr6+zB3e6HLu8Jj8SKyvYg==", 1241 + "license": "MIT" 1242 + }, 1243 + "node_modules/util-deprecate": { 1244 + "version": "1.0.2", 1245 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1246 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", 1247 + "license": "MIT" 1248 + }, 1249 + "node_modules/web-streams-polyfill": { 1250 + "version": "3.3.3", 1251 + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", 1252 + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", 1496 1253 "license": "MIT", 1497 - "dependencies": { 1498 - "pathe": "^2.0.3" 1499 - } 1500 - }, 1501 - "node_modules/workerd": { 1502 - "version": "1.20251125.0", 1503 - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20251125.0.tgz", 1504 - "integrity": "sha512-oQYfgu3UZ15HlMcEyilKD1RdielRnKSG5MA0xoi1theVs99Rop9AEFYicYCyK1R4YjYblLRYEiL1tMgEFqpReA==", 1505 - "dev": true, 1506 - "hasInstallScript": true, 1507 - "license": "Apache-2.0", 1508 - "bin": { 1509 - "workerd": "bin/workerd" 1510 - }, 1511 1254 "engines": { 1512 - "node": ">=16" 1513 - }, 1514 - "optionalDependencies": { 1515 - "@cloudflare/workerd-darwin-64": "1.20251125.0", 1516 - "@cloudflare/workerd-darwin-arm64": "1.20251125.0", 1517 - "@cloudflare/workerd-linux-64": "1.20251125.0", 1518 - "@cloudflare/workerd-linux-arm64": "1.20251125.0", 1519 - "@cloudflare/workerd-windows-64": "1.20251125.0" 1255 + "node": ">= 8" 1520 1256 } 1521 1257 }, 1522 - "node_modules/wrangler": { 1523 - "version": "4.51.0", 1524 - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-4.51.0.tgz", 1525 - "integrity": "sha512-JHv+58UxM2//e4kf9ASDwg016xd/OdDNDUKW6zLQyE7Uc9ayYKX1QJ9NsYtpo4dC1dfg6rT67pf1aNK1cTzUDg==", 1526 - "dev": true, 1527 - "license": "MIT OR Apache-2.0", 1528 - "dependencies": { 1529 - "@cloudflare/kv-asset-handler": "0.4.1", 1530 - "@cloudflare/unenv-preset": "2.7.11", 1531 - "blake3-wasm": "2.1.5", 1532 - "esbuild": "0.25.4", 1533 - "miniflare": "4.20251125.0", 1534 - "path-to-regexp": "6.3.0", 1535 - "unenv": "2.0.0-rc.24", 1536 - "workerd": "1.20251125.0" 1537 - }, 1538 - "bin": { 1539 - "wrangler": "bin/wrangler.js", 1540 - "wrangler2": "bin/wrangler.js" 1541 - }, 1542 - "engines": { 1543 - "node": ">=20.0.0" 1544 - }, 1545 - "optionalDependencies": { 1546 - "fsevents": "~2.3.2" 1547 - }, 1548 - "peerDependencies": { 1549 - "@cloudflare/workers-types": "^4.20251125.0" 1550 - }, 1551 - "peerDependenciesMeta": { 1552 - "@cloudflare/workers-types": { 1553 - "optional": true 1554 - } 1555 - } 1258 + "node_modules/wrappy": { 1259 + "version": "1.0.2", 1260 + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1261 + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", 1262 + "license": "ISC" 1556 1263 }, 1557 1264 "node_modules/ws": { 1558 - "version": "8.18.0", 1559 - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 1560 - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 1561 - "dev": true, 1265 + "version": "8.18.3", 1266 + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", 1267 + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", 1562 1268 "license": "MIT", 1563 1269 "engines": { 1564 1270 "node": ">=10.0.0" ··· 1576 1282 } 1577 1283 } 1578 1284 }, 1579 - "node_modules/youch": { 1580 - "version": "4.1.0-beta.10", 1581 - "resolved": "https://registry.npmjs.org/youch/-/youch-4.1.0-beta.10.tgz", 1582 - "integrity": "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ==", 1583 - "dev": true, 1584 - "license": "MIT", 1585 - "dependencies": { 1586 - "@poppinss/colors": "^4.1.5", 1587 - "@poppinss/dumper": "^0.6.4", 1588 - "@speed-highlight/core": "^1.2.7", 1589 - "cookie": "^1.0.2", 1590 - "youch-core": "^0.3.3" 1591 - } 1592 - }, 1593 - "node_modules/youch-core": { 1594 - "version": "0.3.3", 1595 - "resolved": "https://registry.npmjs.org/youch-core/-/youch-core-0.3.3.tgz", 1596 - "integrity": "sha512-ho7XuGjLaJ2hWHoK8yFnsUGy2Y5uDpqSTq1FkHLK4/oqKtyUU1AFbOOxY4IpC9f0fTLjwYbslUz0Po5BpD1wrA==", 1597 - "dev": true, 1598 - "license": "MIT", 1599 - "dependencies": { 1600 - "@poppinss/exception": "^1.2.2", 1601 - "error-stack-parser-es": "^1.0.5" 1602 - } 1603 - }, 1604 1285 "node_modules/zod": { 1605 - "version": "3.22.3", 1606 - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.3.tgz", 1607 - "integrity": "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug==", 1608 - "dev": true, 1286 + "version": "3.25.76", 1287 + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", 1288 + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", 1609 1289 "license": "MIT", 1610 1290 "funding": { 1611 1291 "url": "https://github.com/sponsors/colinhacks"
+7 -9
package.json
··· 1 1 { 2 2 "name": "lebel", 3 - "version": "0.0.1", 3 + "version": "0.0.2", 4 4 "description": "hi im alinez not even tryingto hide it", 5 5 "type": "module", 6 6 "private": true, 7 7 "scripts": { 8 - "start": "wrangler dev", 9 - "deploy": "wrangler deploy" 8 + "start": "node --env-file .env ./build/main.js", 9 + "build": "tsc --outDir build" 10 10 }, 11 11 "repository": { 12 12 "type": "git", ··· 15 15 "author": "adam <me@adamperkowski.dev>", 16 16 "license": "MIT", 17 17 "devDependencies": { 18 - "@types/node": "^24.10.1", 19 - "typescript": "^5.9.3", 20 - "wrangler": "^4.51.0" 18 + "multiformats": "^13.4.1", 19 + "typescript": "^5.9.3" 21 20 }, 22 21 "dependencies": { 23 - "@atcute/cbor": "^2.2.8", 24 - "@atcute/client": "^2.0.9", 25 - "uint8arrays": "^5.1.0" 22 + "@atproto/api": "^0.18.4", 23 + "@skyware/labeler": "^0.2.0" 26 24 } 27 25 }
+1 -1
shell.nix
··· 3 3 }: 4 4 5 5 let 6 - pkgInputs = with pkgs; [ nodejs ]; 6 + pkgInputs = with pkgs; [ nodejs sqlite ]; 7 7 in 8 8 pkgs.mkShell { 9 9 packages = pkgInputs;
-162
src/index.ts
··· 1 - import { encode as cborEncode } from "@atcute/cbor"; 2 - 3 - import { LabelRow, LabelFrameLabel, OpCode } from "./types.ts"; 4 - import { LABELS } from "./labels.ts"; 5 - 6 - export interface Env {} 7 - 8 - const LABEL_VERSION = 1; 9 - const LABELER_DID = "did:plc:nwrcwcrhpkgrqqvkg3lmaqky"; 10 - 11 - const subscribers = new Set<WebSocket>(); 12 - 13 - function encodeFrame(op: OpCode, body: unknown, type?: string): Uint8Array { 14 - const header: Record<string, unknown> = { op }; 15 - if (type) header.t = type; 16 - return concatUint8([cborEncode(header), cborEncode(body)]); 17 - } 18 - 19 - function concatUint8(chunks: Uint8Array[]): Uint8Array { 20 - const total = chunks.reduce((n, c) => n + c.length, 0); 21 - const out = new Uint8Array(total); 22 - let offset = 0; 23 - for (const c of chunks) { 24 - out.set(c, offset); 25 - offset += c.length; 26 - } 27 - return out; 28 - } 29 - 30 - function toFrameLabel(row: LabelRow): LabelFrameLabel { 31 - return { 32 - ver: LABEL_VERSION, 33 - src: LABELER_DID, 34 - cid: row.cid, 35 - uri: row.uri, 36 - val: row.val, 37 - neg: false, 38 - cts: row.cts, 39 - sig: row.sig, 40 - }; 41 - } 42 - 43 - async function replay(sub: WebSocket, cursor: number | null): Promise<void> { 44 - for (const row of LABELS) { 45 - if (cursor !== null && row.id < cursor) continue; 46 - 47 - const label = toFrameLabel(row); 48 - const bytes = encodeFrame( 49 - OpCode.Message, 50 - { 51 - seq: row.id, 52 - labels: [label], 53 - }, 54 - "#labels" 55 - ); 56 - 57 - try { 58 - sub.send(bytes); 59 - } catch (err) { 60 - console.error("Failed sending replay frame:", err); 61 - break; 62 - } 63 - } 64 - } 65 - 66 - function jsonResponse(data: unknown, status = 200): Response { 67 - return new Response(JSON.stringify(data), { 68 - status, 69 - headers: { "Content-Type": "application/json" }, 70 - }); 71 - } 72 - 73 - function sendErrorAndClose(ws: WebSocket, error: unknown): void { 74 - try { 75 - const frame = encodeFrame(OpCode.Error, { 76 - error: error instanceof Error ? error.message : String(error), 77 - }); 78 - ws.send(frame); 79 - } finally { 80 - ws.close(); 81 - } 82 - } 83 - 84 - function handleQueryLabels(): Response { 85 - const labels = LABELS.map(toFrameLabel); 86 - return jsonResponse({ 87 - cursor: String(LABELS.length), 88 - labels, 89 - }); 90 - } 91 - 92 - function handleSubscribe(request: Request): Response { 93 - const upgradeHeader = request.headers.get("Upgrade"); 94 - if (upgradeHeader?.toLowerCase() !== "websocket") { 95 - return new Response("Expected Upgrade: websocket", { status: 426 }); 96 - } 97 - 98 - const url = new URL(request.url); 99 - const cursorParam = url.searchParams.get("cursor"); 100 - let cursor: number | null = null; 101 - 102 - if (cursorParam !== null) { 103 - const parsed = Number(cursorParam); 104 - if (!Number.isFinite(parsed) || parsed < 0) { 105 - return jsonResponse({ error: "Invalid cursor parameter" }, 400); 106 - } 107 - cursor = parsed; 108 - } 109 - 110 - const pair = new WebSocketPair(); 111 - const client = pair[0]; 112 - const server = pair[1]; 113 - server.accept(); 114 - 115 - subscribers.add(server); 116 - 117 - const cleanup = () => subscribers.delete(server); 118 - server.addEventListener("close", cleanup); 119 - server.addEventListener("error", cleanup); 120 - 121 - let pingInterval: number | undefined; 122 - try { 123 - pingInterval = (setInterval(() => { 124 - try { 125 - server.send(encodeFrame(OpCode.Message, { ping: Date.now() }, "#ping")); 126 - } catch { 127 - server.close(); 128 - } 129 - }, 30_000) as unknown) as number; 130 - 131 - server.addEventListener("close", () => clearInterval(pingInterval)); 132 - server.addEventListener("error", () => clearInterval(pingInterval)); 133 - } catch {} 134 - 135 - replay(server, cursor).catch((reason) => { 136 - console.error("Replay error:", reason); 137 - sendErrorAndClose(server, reason); 138 - }); 139 - 140 - return new Response(null, { 141 - status: 101, 142 - webSocket: client, 143 - }); 144 - } 145 - 146 - export default { 147 - async fetch(request: Request, _env: Env, _ctx: ExecutionContext): Promise<Response> { 148 - const url = new URL(request.url); 149 - const { pathname } = url; 150 - 151 - switch (pathname) { 152 - case "/xrpc/com.atproto.label.subscribeLabels": 153 - return handleSubscribe(request); 154 - 155 - case "/xrpc/com.atproto.label.queryLabels": 156 - return handleQueryLabels(); 157 - 158 - default: 159 - return new Response("Not Found", { status: 404 }); 160 - } 161 - }, 162 - } satisfies ExportedHandler<Env>;
-121
src/labels.ts
··· 1 - import { LabelRow } from "./types.ts"; 2 - 3 - export const LABELS: LabelRow[] = [ 4 - { 5 - id: 13, 6 - uri: "did:plc:adrzi2p6rqjvw47hzsw4l2lq", // @kolpix.de 7 - val: "alienphobe", 8 - cts: "2025-12-03T02:05:05.293Z", 9 - sig: { 10 - $bytes: "yNNadfNRNVfaK4u6cJdXOZMC0ini1viOTlSx8DK7+XojEXfk/H3Ry52Dgi1yB/5KUKd/RK2CItfMMdkyLyWoTA" 11 - }, 12 - }, 13 - { 14 - id: 12, 15 - uri: "did:plc:73gqgbnvpx5syidcponjrics", // @wantedcoolhandle.tngl.sh 16 - val: "alienphobe", 17 - cts: "2025-12-03T02:05:05.239Z", 18 - sig: { 19 - $bytes: "nSlU4MypMEyau2LKLIJ9yRIioOEhaGdsofa4nOmWRdZRnScxTJUYbMg1yV58uq7+2IwHgXXk8gHsnCT5+Xqxzg" 20 - }, 21 - }, 22 - { 23 - id: 11, 24 - uri: "did:plc:nwrcwcrhpkgrqqvkg3lmaqky", // @lebel.tngl.sh 25 - val: "alien", 26 - cts: "2025-11-30T15:46:16.573Z", 27 - sig: { 28 - $bytes: "GBeJCE+Yg84KJymsg2+WlBi2O5BEH2KAsuDP7TuXJUEYt4TJQCyr+igVPa57X0KM1Ifwlsjky4O5YRHNQpNsDQ" 29 - }, 30 - }, 31 - { 32 - id: 10, 33 - uri: "did:plc:yfklixyvt4y3irrkdb4mtvqn", // @meowderation.tngl.sh 34 - val: "alien", 35 - cts: "2025-11-30T15:46:16.519Z", 36 - sig: { 37 - $bytes: "mp3w4WFHqngG30W8w/qpXpeB9t2qGQStYE7QgSttT6kz23XuUkypjlVnM6ukr6C03KbqFiBR6VvU6nD1OQylHg" 38 - }, 39 - }, 40 - { 41 - id: 9, 42 - uri: "did:plc:2btolxxgou2ze2stwytv75vw", // @nyxt.dev 43 - val: "alien", 44 - cts: "2025-11-29T03:36:17.831Z", 45 - sig: { 46 - $bytes: "0jkBkfzIn7FWh3nR1pdbLCSLiEPuZEV703dffTHjf98BnIPDiELc5UtCauLXGxFbrLIqElp+fW4foOjNZX9VOg" 47 - }, 48 - }, 49 - { 50 - id: 8, 51 - uri: "did:plc:7mx2jwbmpnvzwzjid7jjtbqp", // @upcloud.com 52 - val: "alien", 53 - cts: "2025-11-27T19:42:03.314Z", 54 - sig: { 55 - $bytes: "oTuLNGtozhCACPKSDHvLmlniMUYC3ZXAqceSkuCoOiUo9NS0MGRD+QccXPegF1OTJvkwnFoQd16VKjZ9TaFeJg", 56 - }, 57 - }, 58 - { 59 - id: 7, 60 - uri: "did:plc:3fwecdnvtcscjnrx2p4n7alz", // @lewis.moe 61 - val: "alien", 62 - cts: "2025-11-27T19:42:03.413Z", 63 - sig: { 64 - $bytes: "Vxy33kT6pXqxLhRzEeIZB8POq5Uue0WZu6aMS7Za43xygcTqs/q65d4yVWQ1oQjOuARJ2Goub118CWFpa59HZQ", 65 - }, 66 - }, 67 - { 68 - id: 6, 69 - uri: "did:plc:irx36xprktslecsbopbwnh5w", // @sharpmars.nekoweb.org 70 - val: "alien", 71 - cts: "2025-11-27T18:35:30.745Z", 72 - sig: { 73 - $bytes: "m+8mx8BYnVaY+6D3lv/lIXIvwtmD3i+TnDAeQWsuvkpG2NmaC9qUSjjpSxyak/ALTysUMLFICzT5QIgHvWDt4Q", 74 - }, 75 - }, 76 - { 77 - id: 5, 78 - uri: "did:plc:alienzgwnsdb55yjfuezx2cm", // @sydney.blue 79 - val: "alien", 80 - cts: "2025-11-27T14:09:05.056Z", 81 - sig: { 82 - $bytes: "FK8mVDsMvT5LsmYyBsOb8Ldt5b8vbKJm1jVHAQdpAUgYlMzysw1NFDEAbihHuN9/qQC+tO4PpgUCWRquKQ/tig", 83 - }, 84 - }, 85 - { 86 - id: 4, 87 - uri: "did:plc:nmpjck4rv6hjscoxnwdltfyj", // @pci.express 88 - val: "alien", 89 - cts: "2025-11-27T14:08:24.986Z", 90 - sig: { 91 - $bytes: "04S18hWPJplWzyApI31U0tO3Iz/hqkFGTQlEr5rIGM9M4nkY/sA1K3Ss36jqnVMZS/jbR91aC4MDjek0xNIBTw", 92 - }, 93 - }, 94 - { 95 - id: 3, 96 - uri: "did:plc:dblbeuqpdiyfnmwptez6f3mp", // @tasky.uwu.network 97 - val: "alien", 98 - cts: "2025-11-27T13:48:30.189Z", 99 - sig: { 100 - $bytes: "GpgoIWu/QNWr43pSiWwrgST3xMt/e6OTQku12yuvRzl6bMh8yR+mHAhVu5CV3vr3UoDZOX/WpK45fMeA2Nu3OA", 101 - }, 102 - }, 103 - { 104 - id: 2, 105 - uri: "did:plc:73gqgbnvpx5syidcponjrics", // @wantedcoolhandle.tngl.sh 106 - val: "alien", 107 - cts: "2025-11-27T08:22:21.998Z", 108 - sig: { 109 - $bytes: "aM1V9IByJ2qbsZU4gEeQ1qLFawjN5dGwfSCcYs9zl5QHQx/WlAUZZGoSFrgMwNVzUx2MSwW3/4t2lSOshL1Fdg", 110 - }, 111 - }, 112 - { 113 - id: 1, 114 - uri: "did:plc:b26ewgkrnx3yvsp2cdao3ntu", // @adamperkowski.dev 115 - val: "alien", 116 - cts: "2025-11-27T06:55:57.497Z", 117 - sig: { 118 - $bytes: "JLXaxP1FcR4kwlyNu+RHvtjgHIbqR13BvHBUPBUy+Q1obemt8FYBCRqdCdvUHEqU8j/7teX430d+IQPrpQT4lg", 119 - }, 120 - } 121 - ];
+86
src/main.ts
··· 1 + import { LabelerServer } from "@skyware/labeler"; 2 + import { BskyAgent, AppBskyGraphDefs } from '@atproto/api' 3 + 4 + const LABELER_HANDLE = process.env.LABELER_HANDLE!; 5 + const LABELER_PASSWORD = process.env.LABELER_PASSWORD!; 6 + const LABELER_PDS = process.env.LABELER_PDS!; 7 + const LABELER_DID = process.env.LABELER_DID!; 8 + const SIGNING_KEY = process.env.SIGNING_KEY!; 9 + const LABELS_LISTS = [ 10 + ['alien', '3m72hhjgqww2u'], 11 + ['alienphobe', '3m72h3vsecg2u'] 12 + ]; 13 + 14 + const server = new LabelerServer({ 15 + did: LABELER_DID, 16 + signingKey: SIGNING_KEY 17 + }); 18 + const agent = new BskyAgent({ 19 + service: LABELER_PDS 20 + }) 21 + 22 + await agent.login({ 23 + identifier: LABELER_DID, 24 + password: LABELER_PASSWORD 25 + }) 26 + 27 + server.start(14831, (error) => { 28 + if (error) { 29 + console.error("failed to start server:", error); 30 + } else { 31 + console.log("labeler server running on port 14831"); 32 + } 33 + }); 34 + 35 + let isFetching = false; 36 + 37 + async function fetchAndLabel() { 38 + if (isFetching) return; 39 + isFetching = true; 40 + 41 + try { 42 + console.log("labeling..."); 43 + 44 + const query = await server.db.execute({ 45 + sql: "SELECT uri, val, neg FROM labels", 46 + args: [] 47 + }); 48 + console.log(`fetched ${query.rows.length} existing labels`); 49 + 50 + for (const [label, list] of LABELS_LISTS) { 51 + let cursor: string | undefined 52 + let members: AppBskyGraphDefs.ListItemView[] = [] 53 + do { 54 + let res = await agent.app.bsky.graph.getList({ 55 + list: `at://${LABELER_DID}/app.bsky.graph.list/${list}`, 56 + limit: 100, 57 + cursor 58 + }) 59 + cursor = res.data.cursor 60 + members = members.concat(res.data.items) 61 + } while (cursor) 62 + 63 + for (const member of members) { 64 + try { 65 + if (query.rows.find((row: any) => row.uri === member.subject.did && row.val === label && row.neg === 0)) continue; 66 + 67 + await server.createLabel({ 68 + uri: member.subject.did, 69 + val: label 70 + }); 71 + } catch (err) { 72 + console.error(`failed to create label ${label} for ${member.subject.did}:`, err); 73 + } 74 + } 75 + console.log(`labeled ${members.length} members with ${label}`); 76 + } 77 + console.log("labeling completed"); 78 + } catch (err) { 79 + console.error("labeling failed:", err); 80 + } finally { 81 + isFetching = false; 82 + } 83 + } 84 + 85 + await fetchAndLabel(); 86 + setInterval(fetchAndLabel, 30 * 60 * 1000); // 30 minutes
-26
src/types.ts
··· 1 - import type { At } from "@atcute/client/lexicons"; 2 - 3 - export interface LabelRow { 4 - id: number; 5 - uri: string; 6 - val: string; 7 - cts: string; 8 - sig: { $bytes: string }; 9 - cid?: At.CID; 10 - } 11 - 12 - export interface LabelFrameLabel { 13 - ver: number; 14 - src: At.DID; 15 - cid?: At.CID; 16 - uri: string; 17 - val: string; 18 - neg: boolean; 19 - cts: string; 20 - sig: { $bytes: string }; 21 - } 22 - 23 - export const enum OpCode { 24 - Error = -1, 25 - Message = 1, 26 - }
-8
wrangler.toml
··· 1 - name = "lebel" 2 - main = "src/index.ts" 3 - compatibility_date = "2025-11-27" 4 - compatibility_flags = ["nodejs_compat"] 5 - 6 - [[routes]] 7 - pattern = "lebel.adamperkowski.dev" 8 - custom_domain = true