A small Disqus alternative based on AT Proto (WIP)

Compare changes

Choose any two refs to compare.

+25
.woodpecker/build.yml
···
··· 1 + when: 2 + - event: push 3 + branch: main 4 + 5 + steps: 6 + - name: build 7 + image: node:23-alpine 8 + commands: 9 + - npm install 10 + - npm run build 11 + - name: Publish Bunny 12 + image: ghcr.io/bigaston/bunnyci 13 + settings: 14 + path: ./dist 15 + bunny_storage_zone: 16 + from_secret: "BUNNY_STORAGE_ZONE" 17 + bunny_storage_key: 18 + from_secret: "BUNNY_STORAGE_KEY" 19 + bunny_path: "" 20 + bunny_clean_storage: "true" 21 + bunny_clear_cache: "true" 22 + bunny_pull_zone: 23 + from_secret: "BUNNY_PULL_ZONE" 24 + bunny_pull_zone_key: 25 + from_secret: "BUNNY_PULL_ZONE_TOKEN"
+4 -2
README.md
··· 1 - # AT Video 2 - An experiment to add some YouTube like content to ATProto/Bluesky 3 4 Style inspired by [pdsls.dev](https://pdsls.dev/)
··· 1 + # Comments 2 + An alternative to Disqus made with ATProto (still eavy WIP) 3 + 4 + Deployed for now on [here](https://bigaston-comments.b-cdn.net) 5 6 Style inspired by [pdsls.dev](https://pdsls.dev/)
+22
bruh/index.ts
···
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + import { 5 + XrpcClient, 6 + type FetchHandler, 7 + type FetchHandlerOptions, 8 + } from '@atproto/xrpc' 9 + import { schemas } from './lexicons.js' 10 + import { CID } from 'multiformats/cid' 11 + import { type OmitKey, type Un$Typed } from './util.js' 12 + 13 + export class AtpBaseClient extends XrpcClient { 14 + constructor(options: FetchHandler | FetchHandlerOptions) { 15 + super(options, schemas) 16 + } 17 + 18 + /** @deprecated use `this` instead */ 19 + get xrpc(): XrpcClient { 20 + return this 21 + } 22 + }
+44
bruh/lexicons.ts
···
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + import { 5 + type LexiconDoc, 6 + Lexicons, 7 + ValidationError, 8 + type ValidationResult, 9 + } from '@atproto/lexicon' 10 + import { type $Typed, is$typed, maybe$typed } from './util.js' 11 + 12 + export const schemaDict = {} as const satisfies Record<string, LexiconDoc> 13 + export const schemas = Object.values(schemaDict) satisfies LexiconDoc[] 14 + export const lexicons: Lexicons = new Lexicons(schemas) 15 + 16 + export function validate<T extends { $type: string }>( 17 + v: unknown, 18 + id: string, 19 + hash: string, 20 + requiredType: true, 21 + ): ValidationResult<T> 22 + export function validate<T extends { $type?: string }>( 23 + v: unknown, 24 + id: string, 25 + hash: string, 26 + requiredType?: false, 27 + ): ValidationResult<T> 28 + export function validate( 29 + v: unknown, 30 + id: string, 31 + hash: string, 32 + requiredType?: boolean, 33 + ): ValidationResult { 34 + return (requiredType ? is$typed : maybe$typed)(v, id, hash) 35 + ? lexicons.validate(`${id}#${hash}`, v) 36 + : { 37 + success: false, 38 + error: new ValidationError( 39 + `Must be an object with "${hash === 'main' ? id : `${id}#${hash}`}" $type property`, 40 + ), 41 + } 42 + } 43 + 44 + export const ids = {} as const
+82
bruh/util.ts
···
··· 1 + /** 2 + * GENERATED CODE - DO NOT MODIFY 3 + */ 4 + 5 + import { type ValidationResult } from '@atproto/lexicon' 6 + 7 + export type OmitKey<T, K extends keyof T> = { 8 + [K2 in keyof T as K2 extends K ? never : K2]: T[K2] 9 + } 10 + 11 + export type $Typed<V, T extends string = string> = V & { $type: T } 12 + export type Un$Typed<V extends { $type?: string }> = OmitKey<V, '$type'> 13 + 14 + export type $Type<Id extends string, Hash extends string> = Hash extends 'main' 15 + ? Id 16 + : `${Id}#${Hash}` 17 + 18 + function isObject<V>(v: V): v is V & object { 19 + return v != null && typeof v === 'object' 20 + } 21 + 22 + function is$type<Id extends string, Hash extends string>( 23 + $type: unknown, 24 + id: Id, 25 + hash: Hash, 26 + ): $type is $Type<Id, Hash> { 27 + return hash === 'main' 28 + ? $type === id 29 + : // $type === `${id}#${hash}` 30 + typeof $type === 'string' && 31 + $type.length === id.length + 1 + hash.length && 32 + $type.charCodeAt(id.length) === 35 /* '#' */ && 33 + $type.startsWith(id) && 34 + $type.endsWith(hash) 35 + } 36 + 37 + export type $TypedObject< 38 + V, 39 + Id extends string, 40 + Hash extends string, 41 + > = V extends { 42 + $type: $Type<Id, Hash> 43 + } 44 + ? V 45 + : V extends { $type?: string } 46 + ? V extends { $type?: infer T extends $Type<Id, Hash> } 47 + ? V & { $type: T } 48 + : never 49 + : V & { $type: $Type<Id, Hash> } 50 + 51 + export function is$typed<V, Id extends string, Hash extends string>( 52 + v: V, 53 + id: Id, 54 + hash: Hash, 55 + ): v is $TypedObject<V, Id, Hash> { 56 + return isObject(v) && '$type' in v && is$type(v.$type, id, hash) 57 + } 58 + 59 + export function maybe$typed<V, Id extends string, Hash extends string>( 60 + v: V, 61 + id: Id, 62 + hash: Hash, 63 + ): v is V & object & { $type?: $Type<Id, Hash> } { 64 + return ( 65 + isObject(v) && 66 + ('$type' in v ? v.$type === undefined || is$type(v.$type, id, hash) : true) 67 + ) 68 + } 69 + 70 + export type Validator<R = unknown> = (v: unknown) => ValidationResult<R> 71 + export type ValidatorParam<V extends Validator> = 72 + V extends Validator<infer R> ? R : never 73 + 74 + /** 75 + * Utility function that allows to convert a "validate*" utility function into a 76 + * type predicate. 77 + */ 78 + export function asPredicate<V extends Validator>(validate: V) { 79 + return function <T>(v: T): v is T & ValidatorParam<V> { 80 + return validate(v).success 81 + } 82 + }
+2 -2
index.html
··· 1 - <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 - <title>at-video</title> 8 </head> 9 <body class="h-screen bg-neutral-100"> 10 <div id="app"></div>
··· 1 + <!doctype html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 + <title>Comments</title> 8 </head> 9 <body class="h-screen bg-neutral-100"> 10 <div id="app"></div>
+767 -482
package-lock.json
··· 8 "name": "at-video", 9 "version": "0.0.0", 10 "dependencies": { 11 - "@atproto/api": "^0.17.3", 12 "@atproto/oauth-client-browser": "^0.3.33", 13 "@tailwindcss/vite": "^4.1.14", 14 "tailwindcss": "^4.1.14" ··· 24 } 25 }, 26 "node_modules/@atproto-labs/did-resolver": { 27 - "version": "0.2.2", 28 - "resolved": "https://registry.npmjs.org/@atproto-labs/did-resolver/-/did-resolver-0.2.2.tgz", 29 - "integrity": "sha512-ca2B7xR43tVoQ8XxBvha58DXwIH8cIyKQl6lpOKGkPUrJuFoO4iCLlDiSDi2Ueh+yE1rMDPP/qveHdajgDX3WQ==", 30 "license": "MIT", 31 "dependencies": { 32 "@atproto-labs/fetch": "0.2.3", 33 "@atproto-labs/pipe": "0.1.1", 34 "@atproto-labs/simple-store": "0.3.0", 35 "@atproto-labs/simple-store-memory": "0.1.4", 36 - "@atproto/did": "0.2.1", 37 "zod": "^3.23.8" 38 } 39 }, ··· 47 } 48 }, 49 "node_modules/@atproto-labs/handle-resolver": { 50 - "version": "0.3.2", 51 - "resolved": "https://registry.npmjs.org/@atproto-labs/handle-resolver/-/handle-resolver-0.3.2.tgz", 52 - "integrity": "sha512-KIerCzh3qb+zZoqWbIvTlvBY0XPq0r56kwViaJY/LTe/3oPO2JaqlYKS/F4dByWBhHK6YoUOJ0sWrh6PMJl40A==", 53 "license": "MIT", 54 "dependencies": { 55 "@atproto-labs/simple-store": "0.3.0", 56 "@atproto-labs/simple-store-memory": "0.1.4", 57 - "@atproto/did": "0.2.1", 58 "zod": "^3.23.8" 59 } 60 }, 61 "node_modules/@atproto-labs/identity-resolver": { 62 - "version": "0.3.2", 63 - "resolved": "https://registry.npmjs.org/@atproto-labs/identity-resolver/-/identity-resolver-0.3.2.tgz", 64 - "integrity": "sha512-MYxO9pe0WsFyi5HFdKAwqIqHfiF2kBPoVhAIuH/4PYHzGr799ED47xLhNMxR3ZUYrJm5+TQzWXypGZ0Btw1Ffw==", 65 "license": "MIT", 66 "dependencies": { 67 - "@atproto-labs/did-resolver": "0.2.2", 68 - "@atproto-labs/handle-resolver": "0.3.2" 69 } 70 }, 71 "node_modules/@atproto-labs/pipe": { ··· 91 } 92 }, 93 "node_modules/@atproto/api": { 94 - "version": "0.17.3", 95 - "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.17.3.tgz", 96 - "integrity": "sha512-pdQXhUAapNPdmN00W0vX5ta/aMkHqfgBHATt20X02XwxQpY2AnrPm2Iog4FyjsZqoHooAtCNV/NWJ4xfddJzsg==", 97 "license": "MIT", 98 "dependencies": { 99 - "@atproto/common-web": "^0.4.3", 100 - "@atproto/lexicon": "^0.5.1", 101 - "@atproto/syntax": "^0.4.1", 102 - "@atproto/xrpc": "^0.7.5", 103 "await-lock": "^2.2.2", 104 "multiformats": "^9.9.0", 105 "tlds": "^1.234.0", 106 "zod": "^3.23.8" 107 } 108 }, 109 "node_modules/@atproto/common-web": { 110 - "version": "0.4.3", 111 - "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.3.tgz", 112 - "integrity": "sha512-nRDINmSe4VycJzPo6fP/hEltBcULFxt9Kw7fQk6405FyAWZiTluYHlXOnU7GkQfeUK44OENG1qFTBcmCJ7e8pg==", 113 "license": "MIT", 114 "dependencies": { 115 - "graphemer": "^1.4.0", 116 - "multiformats": "^9.9.0", 117 - "uint8arrays": "3.0.0", 118 "zod": "^3.23.8" 119 } 120 }, 121 "node_modules/@atproto/did": { 122 - "version": "0.2.1", 123 - "resolved": "https://registry.npmjs.org/@atproto/did/-/did-0.2.1.tgz", 124 - "integrity": "sha512-1i5BTU2GnBaaeYWhxUOnuEKFVq9euT5+dQPFabHpa927BlJ54PmLGyBBaOI7/NbLmN5HWwBa18SBkMpg3jGZRA==", 125 "license": "MIT", 126 "dependencies": { 127 "zod": "^3.23.8" ··· 158 "zod": "^3.23.8" 159 } 160 }, 161 "node_modules/@atproto/lexicon": { 162 - "version": "0.5.1", 163 - "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.1.tgz", 164 - "integrity": "sha512-y8AEtYmfgVl4fqFxqXAeGvhesiGkxiy3CWoJIfsFDDdTlZUC8DFnZrYhcqkIop3OlCkkljvpSJi1hbeC1tbi8A==", 165 "license": "MIT", 166 "dependencies": { 167 - "@atproto/common-web": "^0.4.3", 168 "@atproto/syntax": "^0.4.1", 169 "iso-datestring-validator": "^2.2.2", 170 "multiformats": "^9.9.0", ··· 172 } 173 }, 174 "node_modules/@atproto/oauth-client": { 175 - "version": "0.5.7", 176 - "resolved": "https://registry.npmjs.org/@atproto/oauth-client/-/oauth-client-0.5.7.tgz", 177 - "integrity": "sha512-pDvbvy9DCxrAJv7bAbBUzWrHZKhFy091HvEMZhr+EyZA6gSCGYmmQJG/coDj0oICSVQeafAZd+IxR0YUCWwmEg==", 178 "license": "MIT", 179 "dependencies": { 180 - "@atproto-labs/did-resolver": "0.2.2", 181 "@atproto-labs/fetch": "0.2.3", 182 - "@atproto-labs/handle-resolver": "0.3.2", 183 - "@atproto-labs/identity-resolver": "0.3.2", 184 "@atproto-labs/simple-store": "0.3.0", 185 "@atproto-labs/simple-store-memory": "0.1.4", 186 - "@atproto/did": "0.2.1", 187 "@atproto/jwk": "0.6.0", 188 - "@atproto/oauth-types": "0.4.2", 189 - "@atproto/xrpc": "0.7.5", 190 "core-js": "^3", 191 "multiformats": "^9.9.0", 192 "zod": "^3.23.8" 193 } 194 }, 195 "node_modules/@atproto/oauth-client-browser": { 196 - "version": "0.3.33", 197 - "resolved": "https://registry.npmjs.org/@atproto/oauth-client-browser/-/oauth-client-browser-0.3.33.tgz", 198 - "integrity": "sha512-IvHn/5W3e9GXFUGXQ4MV19E4HXY4zJFgu+eZRWexIXnZl4GwgTH7op8J1SosczdOK1Ngu+LnHE6npcNhUGGd6Q==", 199 "license": "MIT", 200 "dependencies": { 201 - "@atproto-labs/did-resolver": "0.2.2", 202 - "@atproto-labs/handle-resolver": "0.3.2", 203 "@atproto-labs/simple-store": "0.3.0", 204 - "@atproto/did": "0.2.1", 205 "@atproto/jwk": "0.6.0", 206 "@atproto/jwk-webcrypto": "0.2.0", 207 - "@atproto/oauth-client": "0.5.7", 208 - "@atproto/oauth-types": "0.4.2", 209 "core-js": "^3" 210 } 211 }, 212 "node_modules/@atproto/oauth-types": { 213 - "version": "0.4.2", 214 - "resolved": "https://registry.npmjs.org/@atproto/oauth-types/-/oauth-types-0.4.2.tgz", 215 - "integrity": "sha512-gcfNTyFsPJcYDf79M0iKHykWqzxloscioKoerdIN3MTS3htiNOSgZjm2p8ho7pdrElLzea3qktuhTQI39j1XFQ==", 216 "license": "MIT", 217 "dependencies": { 218 - "@atproto/did": "0.2.1", 219 "@atproto/jwk": "0.6.0", 220 "zod": "^3.23.8" 221 } 222 }, 223 "node_modules/@atproto/syntax": { 224 - "version": "0.4.1", 225 - "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.1.tgz", 226 - "integrity": "sha512-CJdImtLAiFO+0z3BWTtxwk6aY5w4t8orHTMVJgkf++QRJWTxPbIFko/0hrkADB7n2EruDxDSeAgfUGehpH6ngw==", 227 "license": "MIT" 228 }, 229 "node_modules/@atproto/xrpc": { 230 - "version": "0.7.5", 231 - "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.5.tgz", 232 - "integrity": "sha512-MUYNn5d2hv8yVegRL0ccHvTHAVj5JSnW07bkbiaz96UH45lvYNRVwt44z+yYVnb0/mvBzyD3/ZQ55TRGt7fHkA==", 233 "license": "MIT", 234 "dependencies": { 235 - "@atproto/lexicon": "^0.5.1", 236 "zod": "^3.23.8" 237 } 238 }, 239 "node_modules/@esbuild/aix-ppc64": { 240 - "version": "0.25.11", 241 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", 242 - "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", 243 "cpu": [ 244 "ppc64" 245 ], ··· 253 } 254 }, 255 "node_modules/@esbuild/android-arm": { 256 - "version": "0.25.11", 257 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", 258 - "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", 259 "cpu": [ 260 "arm" 261 ], ··· 269 } 270 }, 271 "node_modules/@esbuild/android-arm64": { 272 - "version": "0.25.11", 273 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", 274 - "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", 275 "cpu": [ 276 "arm64" 277 ], ··· 285 } 286 }, 287 "node_modules/@esbuild/android-x64": { 288 - "version": "0.25.11", 289 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", 290 - "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", 291 "cpu": [ 292 "x64" 293 ], ··· 301 } 302 }, 303 "node_modules/@esbuild/darwin-arm64": { 304 - "version": "0.25.11", 305 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", 306 - "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", 307 "cpu": [ 308 "arm64" 309 ], ··· 317 } 318 }, 319 "node_modules/@esbuild/darwin-x64": { 320 - "version": "0.25.11", 321 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", 322 - "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", 323 "cpu": [ 324 "x64" 325 ], ··· 333 } 334 }, 335 "node_modules/@esbuild/freebsd-arm64": { 336 - "version": "0.25.11", 337 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", 338 - "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", 339 "cpu": [ 340 "arm64" 341 ], ··· 349 } 350 }, 351 "node_modules/@esbuild/freebsd-x64": { 352 - "version": "0.25.11", 353 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", 354 - "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", 355 "cpu": [ 356 "x64" 357 ], ··· 365 } 366 }, 367 "node_modules/@esbuild/linux-arm": { 368 - "version": "0.25.11", 369 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", 370 - "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", 371 "cpu": [ 372 "arm" 373 ], ··· 381 } 382 }, 383 "node_modules/@esbuild/linux-arm64": { 384 - "version": "0.25.11", 385 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", 386 - "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", 387 "cpu": [ 388 "arm64" 389 ], ··· 397 } 398 }, 399 "node_modules/@esbuild/linux-ia32": { 400 - "version": "0.25.11", 401 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", 402 - "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", 403 "cpu": [ 404 "ia32" 405 ], ··· 413 } 414 }, 415 "node_modules/@esbuild/linux-loong64": { 416 - "version": "0.25.11", 417 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", 418 - "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", 419 "cpu": [ 420 "loong64" 421 ], ··· 429 } 430 }, 431 "node_modules/@esbuild/linux-mips64el": { 432 - "version": "0.25.11", 433 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", 434 - "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", 435 "cpu": [ 436 "mips64el" 437 ], ··· 445 } 446 }, 447 "node_modules/@esbuild/linux-ppc64": { 448 - "version": "0.25.11", 449 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", 450 - "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", 451 "cpu": [ 452 "ppc64" 453 ], ··· 461 } 462 }, 463 "node_modules/@esbuild/linux-riscv64": { 464 - "version": "0.25.11", 465 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", 466 - "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", 467 "cpu": [ 468 "riscv64" 469 ], ··· 477 } 478 }, 479 "node_modules/@esbuild/linux-s390x": { 480 - "version": "0.25.11", 481 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", 482 - "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", 483 "cpu": [ 484 "s390x" 485 ], ··· 493 } 494 }, 495 "node_modules/@esbuild/linux-x64": { 496 - "version": "0.25.11", 497 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", 498 - "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", 499 "cpu": [ 500 "x64" 501 ], ··· 509 } 510 }, 511 "node_modules/@esbuild/netbsd-arm64": { 512 - "version": "0.25.11", 513 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", 514 - "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", 515 "cpu": [ 516 "arm64" 517 ], ··· 525 } 526 }, 527 "node_modules/@esbuild/netbsd-x64": { 528 - "version": "0.25.11", 529 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", 530 - "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", 531 "cpu": [ 532 "x64" 533 ], ··· 541 } 542 }, 543 "node_modules/@esbuild/openbsd-arm64": { 544 - "version": "0.25.11", 545 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", 546 - "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", 547 "cpu": [ 548 "arm64" 549 ], ··· 557 } 558 }, 559 "node_modules/@esbuild/openbsd-x64": { 560 - "version": "0.25.11", 561 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", 562 - "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", 563 "cpu": [ 564 "x64" 565 ], ··· 573 } 574 }, 575 "node_modules/@esbuild/openharmony-arm64": { 576 - "version": "0.25.11", 577 - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", 578 - "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", 579 "cpu": [ 580 "arm64" 581 ], ··· 589 } 590 }, 591 "node_modules/@esbuild/sunos-x64": { 592 - "version": "0.25.11", 593 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", 594 - "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", 595 "cpu": [ 596 "x64" 597 ], ··· 605 } 606 }, 607 "node_modules/@esbuild/win32-arm64": { 608 - "version": "0.25.11", 609 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", 610 - "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", 611 "cpu": [ 612 "arm64" 613 ], ··· 621 } 622 }, 623 "node_modules/@esbuild/win32-ia32": { 624 - "version": "0.25.11", 625 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", 626 - "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", 627 "cpu": [ 628 "ia32" 629 ], ··· 637 } 638 }, 639 "node_modules/@esbuild/win32-x64": { 640 - "version": "0.25.11", 641 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", 642 - "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", 643 "cpu": [ 644 "x64" 645 ], ··· 652 "node": ">=18" 653 } 654 }, 655 - "node_modules/@isaacs/fs-minipass": { 656 - "version": "4.0.1", 657 - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", 658 - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", 659 - "license": "ISC", 660 - "dependencies": { 661 - "minipass": "^7.0.4" 662 - }, 663 - "engines": { 664 - "node": ">=18.0.0" 665 - } 666 - }, 667 "node_modules/@jridgewell/gen-mapping": { 668 "version": "0.3.13", 669 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", ··· 710 } 711 }, 712 "node_modules/@rollup/rollup-android-arm-eabi": { 713 - "version": "4.52.5", 714 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.5.tgz", 715 - "integrity": "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==", 716 "cpu": [ 717 "arm" 718 ], ··· 723 ] 724 }, 725 "node_modules/@rollup/rollup-android-arm64": { 726 - "version": "4.52.5", 727 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.5.tgz", 728 - "integrity": "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==", 729 "cpu": [ 730 "arm64" 731 ], ··· 736 ] 737 }, 738 "node_modules/@rollup/rollup-darwin-arm64": { 739 - "version": "4.52.5", 740 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.5.tgz", 741 - "integrity": "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==", 742 "cpu": [ 743 "arm64" 744 ], ··· 749 ] 750 }, 751 "node_modules/@rollup/rollup-darwin-x64": { 752 - "version": "4.52.5", 753 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.5.tgz", 754 - "integrity": "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==", 755 "cpu": [ 756 "x64" 757 ], ··· 762 ] 763 }, 764 "node_modules/@rollup/rollup-freebsd-arm64": { 765 - "version": "4.52.5", 766 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.5.tgz", 767 - "integrity": "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==", 768 "cpu": [ 769 "arm64" 770 ], ··· 775 ] 776 }, 777 "node_modules/@rollup/rollup-freebsd-x64": { 778 - "version": "4.52.5", 779 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.5.tgz", 780 - "integrity": "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==", 781 "cpu": [ 782 "x64" 783 ], ··· 788 ] 789 }, 790 "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 791 - "version": "4.52.5", 792 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.5.tgz", 793 - "integrity": "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==", 794 "cpu": [ 795 "arm" 796 ], ··· 801 ] 802 }, 803 "node_modules/@rollup/rollup-linux-arm-musleabihf": { 804 - "version": "4.52.5", 805 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.5.tgz", 806 - "integrity": "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==", 807 "cpu": [ 808 "arm" 809 ], ··· 814 ] 815 }, 816 "node_modules/@rollup/rollup-linux-arm64-gnu": { 817 - "version": "4.52.5", 818 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.5.tgz", 819 - "integrity": "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==", 820 "cpu": [ 821 "arm64" 822 ], ··· 827 ] 828 }, 829 "node_modules/@rollup/rollup-linux-arm64-musl": { 830 - "version": "4.52.5", 831 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.5.tgz", 832 - "integrity": "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==", 833 "cpu": [ 834 "arm64" 835 ], ··· 840 ] 841 }, 842 "node_modules/@rollup/rollup-linux-loong64-gnu": { 843 - "version": "4.52.5", 844 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.5.tgz", 845 - "integrity": "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==", 846 "cpu": [ 847 "loong64" 848 ], ··· 853 ] 854 }, 855 "node_modules/@rollup/rollup-linux-ppc64-gnu": { 856 - "version": "4.52.5", 857 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.5.tgz", 858 - "integrity": "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==", 859 "cpu": [ 860 "ppc64" 861 ], ··· 866 ] 867 }, 868 "node_modules/@rollup/rollup-linux-riscv64-gnu": { 869 - "version": "4.52.5", 870 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.5.tgz", 871 - "integrity": "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==", 872 "cpu": [ 873 "riscv64" 874 ], ··· 879 ] 880 }, 881 "node_modules/@rollup/rollup-linux-riscv64-musl": { 882 - "version": "4.52.5", 883 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.5.tgz", 884 - "integrity": "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==", 885 "cpu": [ 886 "riscv64" 887 ], ··· 892 ] 893 }, 894 "node_modules/@rollup/rollup-linux-s390x-gnu": { 895 - "version": "4.52.5", 896 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.5.tgz", 897 - "integrity": "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==", 898 "cpu": [ 899 "s390x" 900 ], ··· 905 ] 906 }, 907 "node_modules/@rollup/rollup-linux-x64-gnu": { 908 - "version": "4.52.5", 909 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.5.tgz", 910 - "integrity": "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==", 911 "cpu": [ 912 "x64" 913 ], ··· 918 ] 919 }, 920 "node_modules/@rollup/rollup-linux-x64-musl": { 921 - "version": "4.52.5", 922 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.5.tgz", 923 - "integrity": "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==", 924 "cpu": [ 925 "x64" 926 ], ··· 931 ] 932 }, 933 "node_modules/@rollup/rollup-openharmony-arm64": { 934 - "version": "4.52.5", 935 - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.5.tgz", 936 - "integrity": "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==", 937 "cpu": [ 938 "arm64" 939 ], ··· 944 ] 945 }, 946 "node_modules/@rollup/rollup-win32-arm64-msvc": { 947 - "version": "4.52.5", 948 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.5.tgz", 949 - "integrity": "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==", 950 "cpu": [ 951 "arm64" 952 ], ··· 957 ] 958 }, 959 "node_modules/@rollup/rollup-win32-ia32-msvc": { 960 - "version": "4.52.5", 961 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.5.tgz", 962 - "integrity": "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==", 963 "cpu": [ 964 "ia32" 965 ], ··· 970 ] 971 }, 972 "node_modules/@rollup/rollup-win32-x64-gnu": { 973 - "version": "4.52.5", 974 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.5.tgz", 975 - "integrity": "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==", 976 "cpu": [ 977 "x64" 978 ], ··· 983 ] 984 }, 985 "node_modules/@rollup/rollup-win32-x64-msvc": { 986 - "version": "4.52.5", 987 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.5.tgz", 988 - "integrity": "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==", 989 "cpu": [ 990 "x64" 991 ], ··· 996 ] 997 }, 998 "node_modules/@sveltejs/acorn-typescript": { 999 - "version": "1.0.6", 1000 - "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.6.tgz", 1001 - "integrity": "sha512-4awhxtMh4cx9blePWl10HRHj8Iivtqj+2QdDCSMDzxG+XKa9+VCNupQuCuvzEhYPzZSrX+0gC+0lHA/0fFKKQQ==", 1002 "dev": true, 1003 "license": "MIT", 1004 "peerDependencies": { ··· 1046 } 1047 }, 1048 "node_modules/@tailwindcss/node": { 1049 - "version": "4.1.14", 1050 - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.14.tgz", 1051 - "integrity": "sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==", 1052 "license": "MIT", 1053 "dependencies": { 1054 "@jridgewell/remapping": "^2.3.4", 1055 "enhanced-resolve": "^5.18.3", 1056 - "jiti": "^2.6.0", 1057 - "lightningcss": "1.30.1", 1058 - "magic-string": "^0.30.19", 1059 "source-map-js": "^1.2.1", 1060 - "tailwindcss": "4.1.14" 1061 } 1062 }, 1063 "node_modules/@tailwindcss/oxide": { 1064 - "version": "4.1.14", 1065 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.14.tgz", 1066 - "integrity": "sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==", 1067 - "hasInstallScript": true, 1068 "license": "MIT", 1069 - "dependencies": { 1070 - "detect-libc": "^2.0.4", 1071 - "tar": "^7.5.1" 1072 - }, 1073 "engines": { 1074 "node": ">= 10" 1075 }, 1076 "optionalDependencies": { 1077 - "@tailwindcss/oxide-android-arm64": "4.1.14", 1078 - "@tailwindcss/oxide-darwin-arm64": "4.1.14", 1079 - "@tailwindcss/oxide-darwin-x64": "4.1.14", 1080 - "@tailwindcss/oxide-freebsd-x64": "4.1.14", 1081 - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.14", 1082 - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.14", 1083 - "@tailwindcss/oxide-linux-arm64-musl": "4.1.14", 1084 - "@tailwindcss/oxide-linux-x64-gnu": "4.1.14", 1085 - "@tailwindcss/oxide-linux-x64-musl": "4.1.14", 1086 - "@tailwindcss/oxide-wasm32-wasi": "4.1.14", 1087 - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.14", 1088 - "@tailwindcss/oxide-win32-x64-msvc": "4.1.14" 1089 } 1090 }, 1091 "node_modules/@tailwindcss/oxide-android-arm64": { 1092 - "version": "4.1.14", 1093 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.14.tgz", 1094 - "integrity": "sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==", 1095 "cpu": [ 1096 "arm64" 1097 ], ··· 1105 } 1106 }, 1107 "node_modules/@tailwindcss/oxide-darwin-arm64": { 1108 - "version": "4.1.14", 1109 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.14.tgz", 1110 - "integrity": "sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==", 1111 "cpu": [ 1112 "arm64" 1113 ], ··· 1121 } 1122 }, 1123 "node_modules/@tailwindcss/oxide-darwin-x64": { 1124 - "version": "4.1.14", 1125 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.14.tgz", 1126 - "integrity": "sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==", 1127 "cpu": [ 1128 "x64" 1129 ], ··· 1137 } 1138 }, 1139 "node_modules/@tailwindcss/oxide-freebsd-x64": { 1140 - "version": "4.1.14", 1141 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.14.tgz", 1142 - "integrity": "sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==", 1143 "cpu": [ 1144 "x64" 1145 ], ··· 1153 } 1154 }, 1155 "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { 1156 - "version": "4.1.14", 1157 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.14.tgz", 1158 - "integrity": "sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==", 1159 "cpu": [ 1160 "arm" 1161 ], ··· 1169 } 1170 }, 1171 "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { 1172 - "version": "4.1.14", 1173 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.14.tgz", 1174 - "integrity": "sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==", 1175 "cpu": [ 1176 "arm64" 1177 ], ··· 1185 } 1186 }, 1187 "node_modules/@tailwindcss/oxide-linux-arm64-musl": { 1188 - "version": "4.1.14", 1189 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.14.tgz", 1190 - "integrity": "sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==", 1191 "cpu": [ 1192 "arm64" 1193 ], ··· 1201 } 1202 }, 1203 "node_modules/@tailwindcss/oxide-linux-x64-gnu": { 1204 - "version": "4.1.14", 1205 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.14.tgz", 1206 - "integrity": "sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==", 1207 "cpu": [ 1208 "x64" 1209 ], ··· 1217 } 1218 }, 1219 "node_modules/@tailwindcss/oxide-linux-x64-musl": { 1220 - "version": "4.1.14", 1221 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.14.tgz", 1222 - "integrity": "sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==", 1223 "cpu": [ 1224 "x64" 1225 ], ··· 1233 } 1234 }, 1235 "node_modules/@tailwindcss/oxide-wasm32-wasi": { 1236 - "version": "4.1.14", 1237 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.14.tgz", 1238 - "integrity": "sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==", 1239 "bundleDependencies": [ 1240 "@napi-rs/wasm-runtime", 1241 "@emnapi/core", ··· 1250 "license": "MIT", 1251 "optional": true, 1252 "dependencies": { 1253 - "@emnapi/core": "^1.5.0", 1254 - "@emnapi/runtime": "^1.5.0", 1255 "@emnapi/wasi-threads": "^1.1.0", 1256 - "@napi-rs/wasm-runtime": "^1.0.5", 1257 "@tybys/wasm-util": "^0.10.1", 1258 "tslib": "^2.4.0" 1259 }, ··· 1262 } 1263 }, 1264 "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { 1265 - "version": "4.1.14", 1266 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.14.tgz", 1267 - "integrity": "sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==", 1268 "cpu": [ 1269 "arm64" 1270 ], ··· 1278 } 1279 }, 1280 "node_modules/@tailwindcss/oxide-win32-x64-msvc": { 1281 - "version": "4.1.14", 1282 - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.14.tgz", 1283 - "integrity": "sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==", 1284 "cpu": [ 1285 "x64" 1286 ], ··· 1294 } 1295 }, 1296 "node_modules/@tailwindcss/vite": { 1297 - "version": "4.1.14", 1298 - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.14.tgz", 1299 - "integrity": "sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==", 1300 "license": "MIT", 1301 "dependencies": { 1302 - "@tailwindcss/node": "4.1.14", 1303 - "@tailwindcss/oxide": "4.1.14", 1304 - "tailwindcss": "4.1.14" 1305 }, 1306 "peerDependencies": { 1307 "vite": "^5.2.0 || ^6 || ^7" 1308 } 1309 }, 1310 "node_modules/@tsconfig/svelte": { 1311 - "version": "5.0.5", 1312 - "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.5.tgz", 1313 - "integrity": "sha512-48fAnUjKye38FvMiNOj0J9I/4XlQQiZlpe9xaNPfe8vy2Y1hFBt8g1yqf2EGjVvHavo4jf2lC+TQyENCr4BJBQ==", 1314 "dev": true, 1315 "license": "MIT" 1316 }, ··· 1321 "license": "MIT" 1322 }, 1323 "node_modules/@types/node": { 1324 - "version": "24.8.1", 1325 - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.8.1.tgz", 1326 - "integrity": "sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q==", 1327 "devOptional": true, 1328 "license": "MIT", 1329 "peer": true, 1330 "dependencies": { 1331 - "undici-types": "~7.14.0" 1332 } 1333 }, 1334 "node_modules/acorn": { ··· 1355 "node": ">= 0.4" 1356 } 1357 }, 1358 "node_modules/await-lock": { 1359 "version": "2.2.2", 1360 "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", ··· 1371 "node": ">= 0.4" 1372 } 1373 }, 1374 "node_modules/chokidar": { 1375 "version": "4.0.3", 1376 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", ··· 1387 "url": "https://paulmillr.com/funding/" 1388 } 1389 }, 1390 - "node_modules/chownr": { 1391 - "version": "3.0.0", 1392 - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", 1393 - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", 1394 - "license": "BlueOak-1.0.0", 1395 - "engines": { 1396 - "node": ">=18" 1397 - } 1398 - }, 1399 "node_modules/clsx": { 1400 "version": "2.1.1", 1401 "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", ··· 1407 } 1408 }, 1409 "node_modules/core-js": { 1410 - "version": "3.46.0", 1411 - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", 1412 - "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", 1413 "hasInstallScript": true, 1414 "license": "MIT", 1415 "funding": { ··· 1454 "node": ">=8" 1455 } 1456 }, 1457 "node_modules/enhanced-resolve": { 1458 "version": "5.18.3", 1459 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", ··· 1468 } 1469 }, 1470 "node_modules/esbuild": { 1471 - "version": "0.25.11", 1472 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", 1473 - "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", 1474 "hasInstallScript": true, 1475 "license": "MIT", 1476 "bin": { ··· 1480 "node": ">=18" 1481 }, 1482 "optionalDependencies": { 1483 - "@esbuild/aix-ppc64": "0.25.11", 1484 - "@esbuild/android-arm": "0.25.11", 1485 - "@esbuild/android-arm64": "0.25.11", 1486 - "@esbuild/android-x64": "0.25.11", 1487 - "@esbuild/darwin-arm64": "0.25.11", 1488 - "@esbuild/darwin-x64": "0.25.11", 1489 - "@esbuild/freebsd-arm64": "0.25.11", 1490 - "@esbuild/freebsd-x64": "0.25.11", 1491 - "@esbuild/linux-arm": "0.25.11", 1492 - "@esbuild/linux-arm64": "0.25.11", 1493 - "@esbuild/linux-ia32": "0.25.11", 1494 - "@esbuild/linux-loong64": "0.25.11", 1495 - "@esbuild/linux-mips64el": "0.25.11", 1496 - "@esbuild/linux-ppc64": "0.25.11", 1497 - "@esbuild/linux-riscv64": "0.25.11", 1498 - "@esbuild/linux-s390x": "0.25.11", 1499 - "@esbuild/linux-x64": "0.25.11", 1500 - "@esbuild/netbsd-arm64": "0.25.11", 1501 - "@esbuild/netbsd-x64": "0.25.11", 1502 - "@esbuild/openbsd-arm64": "0.25.11", 1503 - "@esbuild/openbsd-x64": "0.25.11", 1504 - "@esbuild/openharmony-arm64": "0.25.11", 1505 - "@esbuild/sunos-x64": "0.25.11", 1506 - "@esbuild/win32-arm64": "0.25.11", 1507 - "@esbuild/win32-ia32": "0.25.11", 1508 - "@esbuild/win32-x64": "0.25.11" 1509 } 1510 }, 1511 "node_modules/esm-env": { ··· 1516 "license": "MIT" 1517 }, 1518 "node_modules/esrap": { 1519 - "version": "2.1.0", 1520 - "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.0.tgz", 1521 - "integrity": "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==", 1522 "dev": true, 1523 "license": "MIT", 1524 "dependencies": { 1525 "@jridgewell/sourcemap-codec": "^1.4.15" 1526 } 1527 }, 1528 "node_modules/fdir": { ··· 1562 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1563 "license": "ISC" 1564 }, 1565 - "node_modules/graphemer": { 1566 - "version": "1.4.0", 1567 - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 1568 - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 1569 - "license": "MIT" 1570 }, 1571 "node_modules/is-reference": { 1572 "version": "3.0.3", ··· 1603 } 1604 }, 1605 "node_modules/lightningcss": { 1606 - "version": "1.30.1", 1607 - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.1.tgz", 1608 - "integrity": "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==", 1609 "license": "MPL-2.0", 1610 "dependencies": { 1611 "detect-libc": "^2.0.3" ··· 1618 "url": "https://opencollective.com/parcel" 1619 }, 1620 "optionalDependencies": { 1621 - "lightningcss-darwin-arm64": "1.30.1", 1622 - "lightningcss-darwin-x64": "1.30.1", 1623 - "lightningcss-freebsd-x64": "1.30.1", 1624 - "lightningcss-linux-arm-gnueabihf": "1.30.1", 1625 - "lightningcss-linux-arm64-gnu": "1.30.1", 1626 - "lightningcss-linux-arm64-musl": "1.30.1", 1627 - "lightningcss-linux-x64-gnu": "1.30.1", 1628 - "lightningcss-linux-x64-musl": "1.30.1", 1629 - "lightningcss-win32-arm64-msvc": "1.30.1", 1630 - "lightningcss-win32-x64-msvc": "1.30.1" 1631 } 1632 }, 1633 "node_modules/lightningcss-darwin-arm64": { 1634 - "version": "1.30.1", 1635 - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.1.tgz", 1636 - "integrity": "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==", 1637 "cpu": [ 1638 "arm64" 1639 ], ··· 1651 } 1652 }, 1653 "node_modules/lightningcss-darwin-x64": { 1654 - "version": "1.30.1", 1655 - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.1.tgz", 1656 - "integrity": "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==", 1657 "cpu": [ 1658 "x64" 1659 ], ··· 1671 } 1672 }, 1673 "node_modules/lightningcss-freebsd-x64": { 1674 - "version": "1.30.1", 1675 - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.1.tgz", 1676 - "integrity": "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==", 1677 "cpu": [ 1678 "x64" 1679 ], ··· 1691 } 1692 }, 1693 "node_modules/lightningcss-linux-arm-gnueabihf": { 1694 - "version": "1.30.1", 1695 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.1.tgz", 1696 - "integrity": "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==", 1697 "cpu": [ 1698 "arm" 1699 ], ··· 1711 } 1712 }, 1713 "node_modules/lightningcss-linux-arm64-gnu": { 1714 - "version": "1.30.1", 1715 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.1.tgz", 1716 - "integrity": "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==", 1717 "cpu": [ 1718 "arm64" 1719 ], ··· 1731 } 1732 }, 1733 "node_modules/lightningcss-linux-arm64-musl": { 1734 - "version": "1.30.1", 1735 - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.1.tgz", 1736 - "integrity": "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==", 1737 "cpu": [ 1738 "arm64" 1739 ], ··· 1751 } 1752 }, 1753 "node_modules/lightningcss-linux-x64-gnu": { 1754 - "version": "1.30.1", 1755 - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.1.tgz", 1756 - "integrity": "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==", 1757 "cpu": [ 1758 "x64" 1759 ], ··· 1771 } 1772 }, 1773 "node_modules/lightningcss-linux-x64-musl": { 1774 - "version": "1.30.1", 1775 - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.1.tgz", 1776 - "integrity": "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==", 1777 "cpu": [ 1778 "x64" 1779 ], ··· 1791 } 1792 }, 1793 "node_modules/lightningcss-win32-arm64-msvc": { 1794 - "version": "1.30.1", 1795 - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.1.tgz", 1796 - "integrity": "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==", 1797 "cpu": [ 1798 "arm64" 1799 ], ··· 1811 } 1812 }, 1813 "node_modules/lightningcss-win32-x64-msvc": { 1814 - "version": "1.30.1", 1815 - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.1.tgz", 1816 - "integrity": "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==", 1817 "cpu": [ 1818 "x64" 1819 ], ··· 1844 "license": "ISC" 1845 }, 1846 "node_modules/magic-string": { 1847 - "version": "0.30.19", 1848 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz", 1849 - "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==", 1850 "license": "MIT", 1851 "dependencies": { 1852 "@jridgewell/sourcemap-codec": "^1.5.5" 1853 } 1854 }, 1855 - "node_modules/minipass": { 1856 - "version": "7.1.2", 1857 - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", 1858 - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 1859 - "license": "ISC", 1860 - "engines": { 1861 - "node": ">=16 || 14 >=14.17" 1862 - } 1863 - }, 1864 - "node_modules/minizlib": { 1865 - "version": "3.1.0", 1866 - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", 1867 - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", 1868 - "license": "MIT", 1869 - "dependencies": { 1870 - "minipass": "^7.1.2" 1871 - }, 1872 - "engines": { 1873 - "node": ">= 18" 1874 - } 1875 - }, 1876 "node_modules/mri": { 1877 "version": "1.2.0", 1878 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", ··· 1914 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1915 } 1916 }, 1917 "node_modules/picocolors": { 1918 "version": "1.1.1", 1919 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", ··· 1933 "url": "https://github.com/sponsors/jonschlinkert" 1934 } 1935 }, 1936 "node_modules/postcss": { 1937 "version": "8.5.6", 1938 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", ··· 1961 "node": "^10 || ^12 || >=14" 1962 } 1963 }, 1964 "node_modules/readdirp": { 1965 "version": "4.1.2", 1966 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", ··· 1973 "funding": { 1974 "type": "individual", 1975 "url": "https://paulmillr.com/funding/" 1976 } 1977 }, 1978 "node_modules/rollup": { 1979 - "version": "4.52.5", 1980 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.5.tgz", 1981 - "integrity": "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==", 1982 "license": "MIT", 1983 "dependencies": { 1984 "@types/estree": "1.0.8" ··· 1991 "npm": ">=8.0.0" 1992 }, 1993 "optionalDependencies": { 1994 - "@rollup/rollup-android-arm-eabi": "4.52.5", 1995 - "@rollup/rollup-android-arm64": "4.52.5", 1996 - "@rollup/rollup-darwin-arm64": "4.52.5", 1997 - "@rollup/rollup-darwin-x64": "4.52.5", 1998 - "@rollup/rollup-freebsd-arm64": "4.52.5", 1999 - "@rollup/rollup-freebsd-x64": "4.52.5", 2000 - "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", 2001 - "@rollup/rollup-linux-arm-musleabihf": "4.52.5", 2002 - "@rollup/rollup-linux-arm64-gnu": "4.52.5", 2003 - "@rollup/rollup-linux-arm64-musl": "4.52.5", 2004 - "@rollup/rollup-linux-loong64-gnu": "4.52.5", 2005 - "@rollup/rollup-linux-ppc64-gnu": "4.52.5", 2006 - "@rollup/rollup-linux-riscv64-gnu": "4.52.5", 2007 - "@rollup/rollup-linux-riscv64-musl": "4.52.5", 2008 - "@rollup/rollup-linux-s390x-gnu": "4.52.5", 2009 - "@rollup/rollup-linux-x64-gnu": "4.52.5", 2010 - "@rollup/rollup-linux-x64-musl": "4.52.5", 2011 - "@rollup/rollup-openharmony-arm64": "4.52.5", 2012 - "@rollup/rollup-win32-arm64-msvc": "4.52.5", 2013 - "@rollup/rollup-win32-ia32-msvc": "4.52.5", 2014 - "@rollup/rollup-win32-x64-gnu": "4.52.5", 2015 - "@rollup/rollup-win32-x64-msvc": "4.52.5", 2016 "fsevents": "~2.3.2" 2017 } 2018 }, ··· 2029 "node": ">=6" 2030 } 2031 }, 2032 "node_modules/source-map-js": { 2033 "version": "1.2.1", 2034 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", ··· 2038 "node": ">=0.10.0" 2039 } 2040 }, 2041 "node_modules/svelte": { 2042 - "version": "5.41.0", 2043 - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.41.0.tgz", 2044 - "integrity": "sha512-mP3vFFv5OUM5JN189+nJVW74kQ1dGqUrXTEzvCEVZqessY0GxZDls1nWVvt4Sxyv2USfQvAZO68VRaeIZvpzKg==", 2045 "dev": true, 2046 "license": "MIT", 2047 "peer": true, ··· 2054 "aria-query": "^5.3.1", 2055 "axobject-query": "^4.1.0", 2056 "clsx": "^2.1.1", 2057 "esm-env": "^1.2.1", 2058 - "esrap": "^2.1.0", 2059 "is-reference": "^3.0.3", 2060 "locate-character": "^3.0.0", 2061 "magic-string": "^0.30.11", ··· 2066 } 2067 }, 2068 "node_modules/svelte-check": { 2069 - "version": "4.3.3", 2070 - "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.3.tgz", 2071 - "integrity": "sha512-RYP0bEwenDXzfv0P1sKAwjZSlaRyqBn0Fz1TVni58lqyEiqgwztTpmodJrGzP6ZT2aHl4MbTvWP6gbmQ3FOnBg==", 2072 "dev": true, 2073 "license": "MIT", 2074 "dependencies": { ··· 2090 } 2091 }, 2092 "node_modules/tailwindcss": { 2093 - "version": "4.1.14", 2094 - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.14.tgz", 2095 - "integrity": "sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==", 2096 "license": "MIT" 2097 }, 2098 "node_modules/tapable": { ··· 2108 "url": "https://opencollective.com/webpack" 2109 } 2110 }, 2111 - "node_modules/tar": { 2112 - "version": "7.5.1", 2113 - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", 2114 - "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", 2115 - "license": "ISC", 2116 "dependencies": { 2117 - "@isaacs/fs-minipass": "^4.0.0", 2118 - "chownr": "^3.0.0", 2119 - "minipass": "^7.1.2", 2120 - "minizlib": "^3.1.0", 2121 - "yallist": "^5.0.0" 2122 - }, 2123 - "engines": { 2124 - "node": ">=18" 2125 } 2126 }, 2127 "node_modules/tinyglobby": { ··· 2141 } 2142 }, 2143 "node_modules/tlds": { 2144 - "version": "1.260.0", 2145 - "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.260.0.tgz", 2146 - "integrity": "sha512-78+28EWBhCEE7qlyaHA9OR3IPvbCLiDh3Ckla593TksfFc9vfTsgvH7eS+dr3o9qr31gwGbogcI16yN91PoRjQ==", 2147 "license": "MIT", 2148 "bin": { 2149 "tlds": "bin.js" 2150 } 2151 }, 2152 "node_modules/typescript": { 2153 "version": "5.9.3", ··· 2174 } 2175 }, 2176 "node_modules/undici-types": { 2177 - "version": "7.14.0", 2178 - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", 2179 - "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==", 2180 "devOptional": true, 2181 "license": "MIT" 2182 }, 2183 "node_modules/vite": { 2184 - "version": "7.1.10", 2185 - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.10.tgz", 2186 - "integrity": "sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA==", 2187 "license": "MIT", 2188 "peer": true, 2189 "dependencies": { ··· 2273 "vite": { 2274 "optional": true 2275 } 2276 - } 2277 - }, 2278 - "node_modules/yallist": { 2279 - "version": "5.0.0", 2280 - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", 2281 - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", 2282 - "license": "BlueOak-1.0.0", 2283 - "engines": { 2284 - "node": ">=18" 2285 } 2286 }, 2287 "node_modules/zimmerframe": {
··· 8 "name": "at-video", 9 "version": "0.0.0", 10 "dependencies": { 11 + "@atproto/api": "^0.18.4", 12 + "@atproto/common": "^0.5.2", 13 + "@atproto/common-web": "^0.4.3", 14 "@atproto/oauth-client-browser": "^0.3.33", 15 "@tailwindcss/vite": "^4.1.14", 16 "tailwindcss": "^4.1.14" ··· 26 } 27 }, 28 "node_modules/@atproto-labs/did-resolver": { 29 + "version": "0.2.4", 30 + "resolved": "https://registry.npmjs.org/@atproto-labs/did-resolver/-/did-resolver-0.2.4.tgz", 31 + "integrity": "sha512-sbXxBnAJWsKv/FEGG6a/WLz7zQYUr1vA2TXvNnPwwJQJCjPwEJMOh1vM22wBr185Phy7D2GD88PcRokn7eUVyw==", 32 "license": "MIT", 33 "dependencies": { 34 "@atproto-labs/fetch": "0.2.3", 35 "@atproto-labs/pipe": "0.1.1", 36 "@atproto-labs/simple-store": "0.3.0", 37 "@atproto-labs/simple-store-memory": "0.1.4", 38 + "@atproto/did": "0.2.3", 39 "zod": "^3.23.8" 40 } 41 }, ··· 49 } 50 }, 51 "node_modules/@atproto-labs/handle-resolver": { 52 + "version": "0.3.4", 53 + "resolved": "https://registry.npmjs.org/@atproto-labs/handle-resolver/-/handle-resolver-0.3.4.tgz", 54 + "integrity": "sha512-wsNopfzfgO3uPvfnFDgNeXgDufXxSXhjBjp2WEiSzEiLrMy0Jodnqggw4OzD9MJKf0a4Iu2/ydd537qdy91LrQ==", 55 "license": "MIT", 56 "dependencies": { 57 "@atproto-labs/simple-store": "0.3.0", 58 "@atproto-labs/simple-store-memory": "0.1.4", 59 + "@atproto/did": "0.2.3", 60 "zod": "^3.23.8" 61 } 62 }, 63 "node_modules/@atproto-labs/identity-resolver": { 64 + "version": "0.3.4", 65 + "resolved": "https://registry.npmjs.org/@atproto-labs/identity-resolver/-/identity-resolver-0.3.4.tgz", 66 + "integrity": "sha512-HNUEFQIo2ws6iATxmgHd5D5rAsWYupgxZucgwolVHPiMjE1SY+EmxEsfbEN1wDEzM8/u9AKUg/jrxxPEwsgbew==", 67 "license": "MIT", 68 "dependencies": { 69 + "@atproto-labs/did-resolver": "0.2.4", 70 + "@atproto-labs/handle-resolver": "0.3.4" 71 } 72 }, 73 "node_modules/@atproto-labs/pipe": { ··· 93 } 94 }, 95 "node_modules/@atproto/api": { 96 + "version": "0.18.4", 97 + "resolved": "https://registry.npmjs.org/@atproto/api/-/api-0.18.4.tgz", 98 + "integrity": "sha512-+kSxto/GRFXRFFlGwfERrwEKnC6OqTgK34BUToer/Fv08q4WMR+GYPRabbWlnDoJWu3owcQfeYdcblQ88vi16g==", 99 "license": "MIT", 100 "dependencies": { 101 + "@atproto/common-web": "^0.4.6", 102 + "@atproto/lexicon": "^0.5.2", 103 + "@atproto/syntax": "^0.4.2", 104 + "@atproto/xrpc": "^0.7.6", 105 "await-lock": "^2.2.2", 106 "multiformats": "^9.9.0", 107 "tlds": "^1.234.0", 108 "zod": "^3.23.8" 109 } 110 }, 111 + "node_modules/@atproto/common": { 112 + "version": "0.5.2", 113 + "resolved": "https://registry.npmjs.org/@atproto/common/-/common-0.5.2.tgz", 114 + "integrity": "sha512-7KdU8FcIfnwS2kmv7M86pKxtw/fLvPY2bSI1rXpG+AmA8O++IUGlSCujBGzbrPwnQvY/z++f6Le4rdBzu8bFaA==", 115 + "license": "MIT", 116 + "dependencies": { 117 + "@atproto/common-web": "^0.4.6", 118 + "@atproto/lex-cbor": "0.0.2", 119 + "@atproto/lex-data": "0.0.2", 120 + "iso-datestring-validator": "^2.2.2", 121 + "multiformats": "^9.9.0", 122 + "pino": "^8.21.0" 123 + }, 124 + "engines": { 125 + "node": ">=18.7.0" 126 + } 127 + }, 128 "node_modules/@atproto/common-web": { 129 + "version": "0.4.6", 130 + "resolved": "https://registry.npmjs.org/@atproto/common-web/-/common-web-0.4.6.tgz", 131 + "integrity": "sha512-+2mG/1oBcB/ZmYIU1ltrFMIiuy9aByKAkb2Fos/0eTdczcLBaH17k0KoxMGvhfsujN2r62XlanOAMzysa7lv1g==", 132 "license": "MIT", 133 "dependencies": { 134 + "@atproto/lex-data": "0.0.2", 135 + "@atproto/lex-json": "0.0.2", 136 "zod": "^3.23.8" 137 } 138 }, 139 "node_modules/@atproto/did": { 140 + "version": "0.2.3", 141 + "resolved": "https://registry.npmjs.org/@atproto/did/-/did-0.2.3.tgz", 142 + "integrity": "sha512-VI8JJkSizvM2cHYJa37WlbzeCm5tWpojyc1/Zy8q8OOjyoy6X4S4BEfoP941oJcpxpMTObamibQIXQDo7tnIjg==", 143 "license": "MIT", 144 "dependencies": { 145 "zod": "^3.23.8" ··· 176 "zod": "^3.23.8" 177 } 178 }, 179 + "node_modules/@atproto/lex-cbor": { 180 + "version": "0.0.2", 181 + "resolved": "https://registry.npmjs.org/@atproto/lex-cbor/-/lex-cbor-0.0.2.tgz", 182 + "integrity": "sha512-sTr3UCL2SgxEoYVpzJGgWTnNl4TpngP5tMcRyaOvi21Se4m3oR4RDsoVDPz8AS6XphiteRwzwPstquN7aWWMbA==", 183 + "license": "MIT", 184 + "dependencies": { 185 + "@atproto/lex-data": "0.0.2", 186 + "multiformats": "^9.9.0", 187 + "tslib": "^2.8.1" 188 + } 189 + }, 190 + "node_modules/@atproto/lex-data": { 191 + "version": "0.0.2", 192 + "resolved": "https://registry.npmjs.org/@atproto/lex-data/-/lex-data-0.0.2.tgz", 193 + "integrity": "sha512-euV2rDGi+coH8qvZOU+ieUOEbwPwff9ca6IiXIqjZJ76AvlIpj7vtAyIRCxHUW2BoU6h9yqyJgn9MKD2a7oIwg==", 194 + "license": "MIT", 195 + "dependencies": { 196 + "@atproto/syntax": "0.4.2", 197 + "multiformats": "^9.9.0", 198 + "tslib": "^2.8.1", 199 + "uint8arrays": "3.0.0", 200 + "unicode-segmenter": "^0.14.0" 201 + } 202 + }, 203 + "node_modules/@atproto/lex-json": { 204 + "version": "0.0.2", 205 + "resolved": "https://registry.npmjs.org/@atproto/lex-json/-/lex-json-0.0.2.tgz", 206 + "integrity": "sha512-Pd72lO+l2rhOTutnf11omh9ZkoB/elbzE3HSmn2wuZlyH1mRhTYvoH8BOGokWQwbZkCE8LL3nOqMT3gHCD2l7g==", 207 + "license": "MIT", 208 + "dependencies": { 209 + "@atproto/lex-data": "0.0.2", 210 + "tslib": "^2.8.1" 211 + } 212 + }, 213 "node_modules/@atproto/lexicon": { 214 + "version": "0.5.2", 215 + "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.2.tgz", 216 + "integrity": "sha512-lRmJgMA8f5j7VB5Iu5cp188ald5FuI4FlmZ7nn6EBrk1dgOstWVrI5Ft6K3z2vjyLZRG6nzknlsw+tDP63p7bQ==", 217 "license": "MIT", 218 "dependencies": { 219 + "@atproto/common-web": "^0.4.4", 220 "@atproto/syntax": "^0.4.1", 221 "iso-datestring-validator": "^2.2.2", 222 "multiformats": "^9.9.0", ··· 224 } 225 }, 226 "node_modules/@atproto/oauth-client": { 227 + "version": "0.5.10", 228 + "resolved": "https://registry.npmjs.org/@atproto/oauth-client/-/oauth-client-0.5.10.tgz", 229 + "integrity": "sha512-2mdJFyYbaOw3e/1KMBOQ2/J9p+MfWW8kE6FKdExWrJ7JPJpTJw2ZF2EmdGHCVeXw386dQgXbLkr+w4vbgSqfMQ==", 230 "license": "MIT", 231 "dependencies": { 232 + "@atproto-labs/did-resolver": "0.2.4", 233 "@atproto-labs/fetch": "0.2.3", 234 + "@atproto-labs/handle-resolver": "0.3.4", 235 + "@atproto-labs/identity-resolver": "0.3.4", 236 "@atproto-labs/simple-store": "0.3.0", 237 "@atproto-labs/simple-store-memory": "0.1.4", 238 + "@atproto/did": "0.2.3", 239 "@atproto/jwk": "0.6.0", 240 + "@atproto/oauth-types": "0.5.2", 241 + "@atproto/xrpc": "0.7.6", 242 "core-js": "^3", 243 "multiformats": "^9.9.0", 244 "zod": "^3.23.8" 245 } 246 }, 247 "node_modules/@atproto/oauth-client-browser": { 248 + "version": "0.3.36", 249 + "resolved": "https://registry.npmjs.org/@atproto/oauth-client-browser/-/oauth-client-browser-0.3.36.tgz", 250 + "integrity": "sha512-tilBmqi/6Pel+6JHsse8GlN41x68XlDzxwAovgOUhf5UVFc7NBXP4QQDwLzBOFUfXiwmkb3o9JMtJt/PO6DiVw==", 251 "license": "MIT", 252 "dependencies": { 253 + "@atproto-labs/did-resolver": "0.2.4", 254 + "@atproto-labs/handle-resolver": "0.3.4", 255 "@atproto-labs/simple-store": "0.3.0", 256 + "@atproto/did": "0.2.3", 257 "@atproto/jwk": "0.6.0", 258 "@atproto/jwk-webcrypto": "0.2.0", 259 + "@atproto/oauth-client": "0.5.10", 260 + "@atproto/oauth-types": "0.5.2", 261 "core-js": "^3" 262 } 263 }, 264 "node_modules/@atproto/oauth-types": { 265 + "version": "0.5.2", 266 + "resolved": "https://registry.npmjs.org/@atproto/oauth-types/-/oauth-types-0.5.2.tgz", 267 + "integrity": "sha512-9DCDvtvCanTwAaU5UakYDO0hzcOITS3RutK5zfLytE5Y9unj0REmTDdN8Xd8YCfUJl7T/9pYpf04Uyq7bFTASg==", 268 "license": "MIT", 269 "dependencies": { 270 + "@atproto/did": "0.2.3", 271 "@atproto/jwk": "0.6.0", 272 "zod": "^3.23.8" 273 } 274 }, 275 "node_modules/@atproto/syntax": { 276 + "version": "0.4.2", 277 + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.2.tgz", 278 + "integrity": "sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==", 279 "license": "MIT" 280 }, 281 "node_modules/@atproto/xrpc": { 282 + "version": "0.7.6", 283 + "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.6.tgz", 284 + "integrity": "sha512-RvCf4j0JnKYWuz3QzsYCntJi3VuiAAybQsMIUw2wLWcHhchO9F7UaBZINLL2z0qc/cYWPv5NSwcVydMseoCZLA==", 285 "license": "MIT", 286 "dependencies": { 287 + "@atproto/lexicon": "^0.5.2", 288 "zod": "^3.23.8" 289 } 290 }, 291 "node_modules/@esbuild/aix-ppc64": { 292 + "version": "0.25.12", 293 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", 294 + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", 295 "cpu": [ 296 "ppc64" 297 ], ··· 305 } 306 }, 307 "node_modules/@esbuild/android-arm": { 308 + "version": "0.25.12", 309 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", 310 + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", 311 "cpu": [ 312 "arm" 313 ], ··· 321 } 322 }, 323 "node_modules/@esbuild/android-arm64": { 324 + "version": "0.25.12", 325 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", 326 + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", 327 "cpu": [ 328 "arm64" 329 ], ··· 337 } 338 }, 339 "node_modules/@esbuild/android-x64": { 340 + "version": "0.25.12", 341 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", 342 + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", 343 "cpu": [ 344 "x64" 345 ], ··· 353 } 354 }, 355 "node_modules/@esbuild/darwin-arm64": { 356 + "version": "0.25.12", 357 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", 358 + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", 359 "cpu": [ 360 "arm64" 361 ], ··· 369 } 370 }, 371 "node_modules/@esbuild/darwin-x64": { 372 + "version": "0.25.12", 373 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", 374 + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", 375 "cpu": [ 376 "x64" 377 ], ··· 385 } 386 }, 387 "node_modules/@esbuild/freebsd-arm64": { 388 + "version": "0.25.12", 389 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", 390 + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", 391 "cpu": [ 392 "arm64" 393 ], ··· 401 } 402 }, 403 "node_modules/@esbuild/freebsd-x64": { 404 + "version": "0.25.12", 405 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", 406 + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", 407 "cpu": [ 408 "x64" 409 ], ··· 417 } 418 }, 419 "node_modules/@esbuild/linux-arm": { 420 + "version": "0.25.12", 421 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", 422 + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", 423 "cpu": [ 424 "arm" 425 ], ··· 433 } 434 }, 435 "node_modules/@esbuild/linux-arm64": { 436 + "version": "0.25.12", 437 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", 438 + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", 439 "cpu": [ 440 "arm64" 441 ], ··· 449 } 450 }, 451 "node_modules/@esbuild/linux-ia32": { 452 + "version": "0.25.12", 453 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", 454 + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", 455 "cpu": [ 456 "ia32" 457 ], ··· 465 } 466 }, 467 "node_modules/@esbuild/linux-loong64": { 468 + "version": "0.25.12", 469 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", 470 + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", 471 "cpu": [ 472 "loong64" 473 ], ··· 481 } 482 }, 483 "node_modules/@esbuild/linux-mips64el": { 484 + "version": "0.25.12", 485 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", 486 + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", 487 "cpu": [ 488 "mips64el" 489 ], ··· 497 } 498 }, 499 "node_modules/@esbuild/linux-ppc64": { 500 + "version": "0.25.12", 501 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", 502 + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", 503 "cpu": [ 504 "ppc64" 505 ], ··· 513 } 514 }, 515 "node_modules/@esbuild/linux-riscv64": { 516 + "version": "0.25.12", 517 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", 518 + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", 519 "cpu": [ 520 "riscv64" 521 ], ··· 529 } 530 }, 531 "node_modules/@esbuild/linux-s390x": { 532 + "version": "0.25.12", 533 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", 534 + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", 535 "cpu": [ 536 "s390x" 537 ], ··· 545 } 546 }, 547 "node_modules/@esbuild/linux-x64": { 548 + "version": "0.25.12", 549 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", 550 + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", 551 "cpu": [ 552 "x64" 553 ], ··· 561 } 562 }, 563 "node_modules/@esbuild/netbsd-arm64": { 564 + "version": "0.25.12", 565 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", 566 + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", 567 "cpu": [ 568 "arm64" 569 ], ··· 577 } 578 }, 579 "node_modules/@esbuild/netbsd-x64": { 580 + "version": "0.25.12", 581 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", 582 + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", 583 "cpu": [ 584 "x64" 585 ], ··· 593 } 594 }, 595 "node_modules/@esbuild/openbsd-arm64": { 596 + "version": "0.25.12", 597 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", 598 + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", 599 "cpu": [ 600 "arm64" 601 ], ··· 609 } 610 }, 611 "node_modules/@esbuild/openbsd-x64": { 612 + "version": "0.25.12", 613 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", 614 + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", 615 "cpu": [ 616 "x64" 617 ], ··· 625 } 626 }, 627 "node_modules/@esbuild/openharmony-arm64": { 628 + "version": "0.25.12", 629 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", 630 + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", 631 "cpu": [ 632 "arm64" 633 ], ··· 641 } 642 }, 643 "node_modules/@esbuild/sunos-x64": { 644 + "version": "0.25.12", 645 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", 646 + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", 647 "cpu": [ 648 "x64" 649 ], ··· 657 } 658 }, 659 "node_modules/@esbuild/win32-arm64": { 660 + "version": "0.25.12", 661 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", 662 + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", 663 "cpu": [ 664 "arm64" 665 ], ··· 673 } 674 }, 675 "node_modules/@esbuild/win32-ia32": { 676 + "version": "0.25.12", 677 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", 678 + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", 679 "cpu": [ 680 "ia32" 681 ], ··· 689 } 690 }, 691 "node_modules/@esbuild/win32-x64": { 692 + "version": "0.25.12", 693 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", 694 + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", 695 "cpu": [ 696 "x64" 697 ], ··· 704 "node": ">=18" 705 } 706 }, 707 "node_modules/@jridgewell/gen-mapping": { 708 "version": "0.3.13", 709 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", ··· 750 } 751 }, 752 "node_modules/@rollup/rollup-android-arm-eabi": { 753 + "version": "4.53.3", 754 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", 755 + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", 756 "cpu": [ 757 "arm" 758 ], ··· 763 ] 764 }, 765 "node_modules/@rollup/rollup-android-arm64": { 766 + "version": "4.53.3", 767 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", 768 + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", 769 "cpu": [ 770 "arm64" 771 ], ··· 776 ] 777 }, 778 "node_modules/@rollup/rollup-darwin-arm64": { 779 + "version": "4.53.3", 780 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", 781 + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", 782 "cpu": [ 783 "arm64" 784 ], ··· 789 ] 790 }, 791 "node_modules/@rollup/rollup-darwin-x64": { 792 + "version": "4.53.3", 793 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", 794 + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", 795 "cpu": [ 796 "x64" 797 ], ··· 802 ] 803 }, 804 "node_modules/@rollup/rollup-freebsd-arm64": { 805 + "version": "4.53.3", 806 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", 807 + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", 808 "cpu": [ 809 "arm64" 810 ], ··· 815 ] 816 }, 817 "node_modules/@rollup/rollup-freebsd-x64": { 818 + "version": "4.53.3", 819 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", 820 + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", 821 "cpu": [ 822 "x64" 823 ], ··· 828 ] 829 }, 830 "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 831 + "version": "4.53.3", 832 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", 833 + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", 834 "cpu": [ 835 "arm" 836 ], ··· 841 ] 842 }, 843 "node_modules/@rollup/rollup-linux-arm-musleabihf": { 844 + "version": "4.53.3", 845 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", 846 + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", 847 "cpu": [ 848 "arm" 849 ], ··· 854 ] 855 }, 856 "node_modules/@rollup/rollup-linux-arm64-gnu": { 857 + "version": "4.53.3", 858 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", 859 + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", 860 "cpu": [ 861 "arm64" 862 ], ··· 867 ] 868 }, 869 "node_modules/@rollup/rollup-linux-arm64-musl": { 870 + "version": "4.53.3", 871 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", 872 + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", 873 "cpu": [ 874 "arm64" 875 ], ··· 880 ] 881 }, 882 "node_modules/@rollup/rollup-linux-loong64-gnu": { 883 + "version": "4.53.3", 884 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", 885 + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", 886 "cpu": [ 887 "loong64" 888 ], ··· 893 ] 894 }, 895 "node_modules/@rollup/rollup-linux-ppc64-gnu": { 896 + "version": "4.53.3", 897 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", 898 + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", 899 "cpu": [ 900 "ppc64" 901 ], ··· 906 ] 907 }, 908 "node_modules/@rollup/rollup-linux-riscv64-gnu": { 909 + "version": "4.53.3", 910 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", 911 + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", 912 "cpu": [ 913 "riscv64" 914 ], ··· 919 ] 920 }, 921 "node_modules/@rollup/rollup-linux-riscv64-musl": { 922 + "version": "4.53.3", 923 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", 924 + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", 925 "cpu": [ 926 "riscv64" 927 ], ··· 932 ] 933 }, 934 "node_modules/@rollup/rollup-linux-s390x-gnu": { 935 + "version": "4.53.3", 936 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", 937 + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", 938 "cpu": [ 939 "s390x" 940 ], ··· 945 ] 946 }, 947 "node_modules/@rollup/rollup-linux-x64-gnu": { 948 + "version": "4.53.3", 949 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", 950 + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", 951 "cpu": [ 952 "x64" 953 ], ··· 958 ] 959 }, 960 "node_modules/@rollup/rollup-linux-x64-musl": { 961 + "version": "4.53.3", 962 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", 963 + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", 964 "cpu": [ 965 "x64" 966 ], ··· 971 ] 972 }, 973 "node_modules/@rollup/rollup-openharmony-arm64": { 974 + "version": "4.53.3", 975 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", 976 + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", 977 "cpu": [ 978 "arm64" 979 ], ··· 984 ] 985 }, 986 "node_modules/@rollup/rollup-win32-arm64-msvc": { 987 + "version": "4.53.3", 988 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", 989 + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", 990 "cpu": [ 991 "arm64" 992 ], ··· 997 ] 998 }, 999 "node_modules/@rollup/rollup-win32-ia32-msvc": { 1000 + "version": "4.53.3", 1001 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", 1002 + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", 1003 "cpu": [ 1004 "ia32" 1005 ], ··· 1010 ] 1011 }, 1012 "node_modules/@rollup/rollup-win32-x64-gnu": { 1013 + "version": "4.53.3", 1014 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", 1015 + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", 1016 "cpu": [ 1017 "x64" 1018 ], ··· 1023 ] 1024 }, 1025 "node_modules/@rollup/rollup-win32-x64-msvc": { 1026 + "version": "4.53.3", 1027 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", 1028 + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", 1029 "cpu": [ 1030 "x64" 1031 ], ··· 1036 ] 1037 }, 1038 "node_modules/@sveltejs/acorn-typescript": { 1039 + "version": "1.0.8", 1040 + "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.8.tgz", 1041 + "integrity": "sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA==", 1042 "dev": true, 1043 "license": "MIT", 1044 "peerDependencies": { ··· 1086 } 1087 }, 1088 "node_modules/@tailwindcss/node": { 1089 + "version": "4.1.17", 1090 + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.17.tgz", 1091 + "integrity": "sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==", 1092 "license": "MIT", 1093 "dependencies": { 1094 "@jridgewell/remapping": "^2.3.4", 1095 "enhanced-resolve": "^5.18.3", 1096 + "jiti": "^2.6.1", 1097 + "lightningcss": "1.30.2", 1098 + "magic-string": "^0.30.21", 1099 "source-map-js": "^1.2.1", 1100 + "tailwindcss": "4.1.17" 1101 } 1102 }, 1103 "node_modules/@tailwindcss/oxide": { 1104 + "version": "4.1.17", 1105 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.17.tgz", 1106 + "integrity": "sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==", 1107 "license": "MIT", 1108 "engines": { 1109 "node": ">= 10" 1110 }, 1111 "optionalDependencies": { 1112 + "@tailwindcss/oxide-android-arm64": "4.1.17", 1113 + "@tailwindcss/oxide-darwin-arm64": "4.1.17", 1114 + "@tailwindcss/oxide-darwin-x64": "4.1.17", 1115 + "@tailwindcss/oxide-freebsd-x64": "4.1.17", 1116 + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.17", 1117 + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.17", 1118 + "@tailwindcss/oxide-linux-arm64-musl": "4.1.17", 1119 + "@tailwindcss/oxide-linux-x64-gnu": "4.1.17", 1120 + "@tailwindcss/oxide-linux-x64-musl": "4.1.17", 1121 + "@tailwindcss/oxide-wasm32-wasi": "4.1.17", 1122 + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.17", 1123 + "@tailwindcss/oxide-win32-x64-msvc": "4.1.17" 1124 } 1125 }, 1126 "node_modules/@tailwindcss/oxide-android-arm64": { 1127 + "version": "4.1.17", 1128 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.17.tgz", 1129 + "integrity": "sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==", 1130 "cpu": [ 1131 "arm64" 1132 ], ··· 1140 } 1141 }, 1142 "node_modules/@tailwindcss/oxide-darwin-arm64": { 1143 + "version": "4.1.17", 1144 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.17.tgz", 1145 + "integrity": "sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==", 1146 "cpu": [ 1147 "arm64" 1148 ], ··· 1156 } 1157 }, 1158 "node_modules/@tailwindcss/oxide-darwin-x64": { 1159 + "version": "4.1.17", 1160 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.17.tgz", 1161 + "integrity": "sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==", 1162 "cpu": [ 1163 "x64" 1164 ], ··· 1172 } 1173 }, 1174 "node_modules/@tailwindcss/oxide-freebsd-x64": { 1175 + "version": "4.1.17", 1176 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.17.tgz", 1177 + "integrity": "sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==", 1178 "cpu": [ 1179 "x64" 1180 ], ··· 1188 } 1189 }, 1190 "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { 1191 + "version": "4.1.17", 1192 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.17.tgz", 1193 + "integrity": "sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==", 1194 "cpu": [ 1195 "arm" 1196 ], ··· 1204 } 1205 }, 1206 "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { 1207 + "version": "4.1.17", 1208 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.17.tgz", 1209 + "integrity": "sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==", 1210 "cpu": [ 1211 "arm64" 1212 ], ··· 1220 } 1221 }, 1222 "node_modules/@tailwindcss/oxide-linux-arm64-musl": { 1223 + "version": "4.1.17", 1224 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.17.tgz", 1225 + "integrity": "sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==", 1226 "cpu": [ 1227 "arm64" 1228 ], ··· 1236 } 1237 }, 1238 "node_modules/@tailwindcss/oxide-linux-x64-gnu": { 1239 + "version": "4.1.17", 1240 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.17.tgz", 1241 + "integrity": "sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==", 1242 "cpu": [ 1243 "x64" 1244 ], ··· 1252 } 1253 }, 1254 "node_modules/@tailwindcss/oxide-linux-x64-musl": { 1255 + "version": "4.1.17", 1256 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.17.tgz", 1257 + "integrity": "sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==", 1258 "cpu": [ 1259 "x64" 1260 ], ··· 1268 } 1269 }, 1270 "node_modules/@tailwindcss/oxide-wasm32-wasi": { 1271 + "version": "4.1.17", 1272 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.17.tgz", 1273 + "integrity": "sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==", 1274 "bundleDependencies": [ 1275 "@napi-rs/wasm-runtime", 1276 "@emnapi/core", ··· 1285 "license": "MIT", 1286 "optional": true, 1287 "dependencies": { 1288 + "@emnapi/core": "^1.6.0", 1289 + "@emnapi/runtime": "^1.6.0", 1290 "@emnapi/wasi-threads": "^1.1.0", 1291 + "@napi-rs/wasm-runtime": "^1.0.7", 1292 "@tybys/wasm-util": "^0.10.1", 1293 "tslib": "^2.4.0" 1294 }, ··· 1297 } 1298 }, 1299 "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { 1300 + "version": "4.1.17", 1301 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.17.tgz", 1302 + "integrity": "sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==", 1303 "cpu": [ 1304 "arm64" 1305 ], ··· 1313 } 1314 }, 1315 "node_modules/@tailwindcss/oxide-win32-x64-msvc": { 1316 + "version": "4.1.17", 1317 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.17.tgz", 1318 + "integrity": "sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==", 1319 "cpu": [ 1320 "x64" 1321 ], ··· 1329 } 1330 }, 1331 "node_modules/@tailwindcss/vite": { 1332 + "version": "4.1.17", 1333 + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.17.tgz", 1334 + "integrity": "sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA==", 1335 "license": "MIT", 1336 "dependencies": { 1337 + "@tailwindcss/node": "4.1.17", 1338 + "@tailwindcss/oxide": "4.1.17", 1339 + "tailwindcss": "4.1.17" 1340 }, 1341 "peerDependencies": { 1342 "vite": "^5.2.0 || ^6 || ^7" 1343 } 1344 }, 1345 "node_modules/@tsconfig/svelte": { 1346 + "version": "5.0.6", 1347 + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.6.tgz", 1348 + "integrity": "sha512-yGxYL0I9eETH1/DR9qVJey4DAsCdeau4a9wYPKuXfEhm8lFO8wg+LLYJjIpAm6Fw7HSlhepPhYPDop75485yWQ==", 1349 "dev": true, 1350 "license": "MIT" 1351 }, ··· 1356 "license": "MIT" 1357 }, 1358 "node_modules/@types/node": { 1359 + "version": "24.10.1", 1360 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", 1361 + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", 1362 "devOptional": true, 1363 "license": "MIT", 1364 "peer": true, 1365 "dependencies": { 1366 + "undici-types": "~7.16.0" 1367 + } 1368 + }, 1369 + "node_modules/abort-controller": { 1370 + "version": "3.0.0", 1371 + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", 1372 + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", 1373 + "license": "MIT", 1374 + "dependencies": { 1375 + "event-target-shim": "^5.0.0" 1376 + }, 1377 + "engines": { 1378 + "node": ">=6.5" 1379 } 1380 }, 1381 "node_modules/acorn": { ··· 1402 "node": ">= 0.4" 1403 } 1404 }, 1405 + "node_modules/atomic-sleep": { 1406 + "version": "1.0.0", 1407 + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", 1408 + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", 1409 + "license": "MIT", 1410 + "engines": { 1411 + "node": ">=8.0.0" 1412 + } 1413 + }, 1414 "node_modules/await-lock": { 1415 "version": "2.2.2", 1416 "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", ··· 1427 "node": ">= 0.4" 1428 } 1429 }, 1430 + "node_modules/base64-js": { 1431 + "version": "1.5.1", 1432 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 1433 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 1434 + "funding": [ 1435 + { 1436 + "type": "github", 1437 + "url": "https://github.com/sponsors/feross" 1438 + }, 1439 + { 1440 + "type": "patreon", 1441 + "url": "https://www.patreon.com/feross" 1442 + }, 1443 + { 1444 + "type": "consulting", 1445 + "url": "https://feross.org/support" 1446 + } 1447 + ], 1448 + "license": "MIT" 1449 + }, 1450 + "node_modules/buffer": { 1451 + "version": "6.0.3", 1452 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 1453 + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 1454 + "funding": [ 1455 + { 1456 + "type": "github", 1457 + "url": "https://github.com/sponsors/feross" 1458 + }, 1459 + { 1460 + "type": "patreon", 1461 + "url": "https://www.patreon.com/feross" 1462 + }, 1463 + { 1464 + "type": "consulting", 1465 + "url": "https://feross.org/support" 1466 + } 1467 + ], 1468 + "license": "MIT", 1469 + "dependencies": { 1470 + "base64-js": "^1.3.1", 1471 + "ieee754": "^1.2.1" 1472 + } 1473 + }, 1474 "node_modules/chokidar": { 1475 "version": "4.0.3", 1476 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", ··· 1487 "url": "https://paulmillr.com/funding/" 1488 } 1489 }, 1490 "node_modules/clsx": { 1491 "version": "2.1.1", 1492 "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", ··· 1498 } 1499 }, 1500 "node_modules/core-js": { 1501 + "version": "3.47.0", 1502 + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", 1503 + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", 1504 "hasInstallScript": true, 1505 "license": "MIT", 1506 "funding": { ··· 1545 "node": ">=8" 1546 } 1547 }, 1548 + "node_modules/devalue": { 1549 + "version": "5.5.0", 1550 + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.5.0.tgz", 1551 + "integrity": "sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w==", 1552 + "dev": true, 1553 + "license": "MIT" 1554 + }, 1555 "node_modules/enhanced-resolve": { 1556 "version": "5.18.3", 1557 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", ··· 1566 } 1567 }, 1568 "node_modules/esbuild": { 1569 + "version": "0.25.12", 1570 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", 1571 + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", 1572 "hasInstallScript": true, 1573 "license": "MIT", 1574 "bin": { ··· 1578 "node": ">=18" 1579 }, 1580 "optionalDependencies": { 1581 + "@esbuild/aix-ppc64": "0.25.12", 1582 + "@esbuild/android-arm": "0.25.12", 1583 + "@esbuild/android-arm64": "0.25.12", 1584 + "@esbuild/android-x64": "0.25.12", 1585 + "@esbuild/darwin-arm64": "0.25.12", 1586 + "@esbuild/darwin-x64": "0.25.12", 1587 + "@esbuild/freebsd-arm64": "0.25.12", 1588 + "@esbuild/freebsd-x64": "0.25.12", 1589 + "@esbuild/linux-arm": "0.25.12", 1590 + "@esbuild/linux-arm64": "0.25.12", 1591 + "@esbuild/linux-ia32": "0.25.12", 1592 + "@esbuild/linux-loong64": "0.25.12", 1593 + "@esbuild/linux-mips64el": "0.25.12", 1594 + "@esbuild/linux-ppc64": "0.25.12", 1595 + "@esbuild/linux-riscv64": "0.25.12", 1596 + "@esbuild/linux-s390x": "0.25.12", 1597 + "@esbuild/linux-x64": "0.25.12", 1598 + "@esbuild/netbsd-arm64": "0.25.12", 1599 + "@esbuild/netbsd-x64": "0.25.12", 1600 + "@esbuild/openbsd-arm64": "0.25.12", 1601 + "@esbuild/openbsd-x64": "0.25.12", 1602 + "@esbuild/openharmony-arm64": "0.25.12", 1603 + "@esbuild/sunos-x64": "0.25.12", 1604 + "@esbuild/win32-arm64": "0.25.12", 1605 + "@esbuild/win32-ia32": "0.25.12", 1606 + "@esbuild/win32-x64": "0.25.12" 1607 } 1608 }, 1609 "node_modules/esm-env": { ··· 1614 "license": "MIT" 1615 }, 1616 "node_modules/esrap": { 1617 + "version": "2.2.1", 1618 + "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.2.1.tgz", 1619 + "integrity": "sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg==", 1620 "dev": true, 1621 "license": "MIT", 1622 "dependencies": { 1623 "@jridgewell/sourcemap-codec": "^1.4.15" 1624 + } 1625 + }, 1626 + "node_modules/event-target-shim": { 1627 + "version": "5.0.1", 1628 + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", 1629 + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", 1630 + "license": "MIT", 1631 + "engines": { 1632 + "node": ">=6" 1633 + } 1634 + }, 1635 + "node_modules/events": { 1636 + "version": "3.3.0", 1637 + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", 1638 + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", 1639 + "license": "MIT", 1640 + "engines": { 1641 + "node": ">=0.8.x" 1642 + } 1643 + }, 1644 + "node_modules/fast-redact": { 1645 + "version": "3.5.0", 1646 + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", 1647 + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", 1648 + "license": "MIT", 1649 + "engines": { 1650 + "node": ">=6" 1651 } 1652 }, 1653 "node_modules/fdir": { ··· 1687 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1688 "license": "ISC" 1689 }, 1690 + "node_modules/ieee754": { 1691 + "version": "1.2.1", 1692 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1693 + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 1694 + "funding": [ 1695 + { 1696 + "type": "github", 1697 + "url": "https://github.com/sponsors/feross" 1698 + }, 1699 + { 1700 + "type": "patreon", 1701 + "url": "https://www.patreon.com/feross" 1702 + }, 1703 + { 1704 + "type": "consulting", 1705 + "url": "https://feross.org/support" 1706 + } 1707 + ], 1708 + "license": "BSD-3-Clause" 1709 }, 1710 "node_modules/is-reference": { 1711 "version": "3.0.3", ··· 1742 } 1743 }, 1744 "node_modules/lightningcss": { 1745 + "version": "1.30.2", 1746 + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", 1747 + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", 1748 "license": "MPL-2.0", 1749 "dependencies": { 1750 "detect-libc": "^2.0.3" ··· 1757 "url": "https://opencollective.com/parcel" 1758 }, 1759 "optionalDependencies": { 1760 + "lightningcss-android-arm64": "1.30.2", 1761 + "lightningcss-darwin-arm64": "1.30.2", 1762 + "lightningcss-darwin-x64": "1.30.2", 1763 + "lightningcss-freebsd-x64": "1.30.2", 1764 + "lightningcss-linux-arm-gnueabihf": "1.30.2", 1765 + "lightningcss-linux-arm64-gnu": "1.30.2", 1766 + "lightningcss-linux-arm64-musl": "1.30.2", 1767 + "lightningcss-linux-x64-gnu": "1.30.2", 1768 + "lightningcss-linux-x64-musl": "1.30.2", 1769 + "lightningcss-win32-arm64-msvc": "1.30.2", 1770 + "lightningcss-win32-x64-msvc": "1.30.2" 1771 + } 1772 + }, 1773 + "node_modules/lightningcss-android-arm64": { 1774 + "version": "1.30.2", 1775 + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", 1776 + "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", 1777 + "cpu": [ 1778 + "arm64" 1779 + ], 1780 + "license": "MPL-2.0", 1781 + "optional": true, 1782 + "os": [ 1783 + "android" 1784 + ], 1785 + "engines": { 1786 + "node": ">= 12.0.0" 1787 + }, 1788 + "funding": { 1789 + "type": "opencollective", 1790 + "url": "https://opencollective.com/parcel" 1791 } 1792 }, 1793 "node_modules/lightningcss-darwin-arm64": { 1794 + "version": "1.30.2", 1795 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", 1796 + "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", 1797 "cpu": [ 1798 "arm64" 1799 ], ··· 1811 } 1812 }, 1813 "node_modules/lightningcss-darwin-x64": { 1814 + "version": "1.30.2", 1815 + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", 1816 + "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", 1817 "cpu": [ 1818 "x64" 1819 ], ··· 1831 } 1832 }, 1833 "node_modules/lightningcss-freebsd-x64": { 1834 + "version": "1.30.2", 1835 + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", 1836 + "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", 1837 "cpu": [ 1838 "x64" 1839 ], ··· 1851 } 1852 }, 1853 "node_modules/lightningcss-linux-arm-gnueabihf": { 1854 + "version": "1.30.2", 1855 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", 1856 + "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", 1857 "cpu": [ 1858 "arm" 1859 ], ··· 1871 } 1872 }, 1873 "node_modules/lightningcss-linux-arm64-gnu": { 1874 + "version": "1.30.2", 1875 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", 1876 + "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", 1877 "cpu": [ 1878 "arm64" 1879 ], ··· 1891 } 1892 }, 1893 "node_modules/lightningcss-linux-arm64-musl": { 1894 + "version": "1.30.2", 1895 + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", 1896 + "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", 1897 "cpu": [ 1898 "arm64" 1899 ], ··· 1911 } 1912 }, 1913 "node_modules/lightningcss-linux-x64-gnu": { 1914 + "version": "1.30.2", 1915 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", 1916 + "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", 1917 "cpu": [ 1918 "x64" 1919 ], ··· 1931 } 1932 }, 1933 "node_modules/lightningcss-linux-x64-musl": { 1934 + "version": "1.30.2", 1935 + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", 1936 + "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", 1937 "cpu": [ 1938 "x64" 1939 ], ··· 1951 } 1952 }, 1953 "node_modules/lightningcss-win32-arm64-msvc": { 1954 + "version": "1.30.2", 1955 + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", 1956 + "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", 1957 "cpu": [ 1958 "arm64" 1959 ], ··· 1971 } 1972 }, 1973 "node_modules/lightningcss-win32-x64-msvc": { 1974 + "version": "1.30.2", 1975 + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", 1976 + "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", 1977 "cpu": [ 1978 "x64" 1979 ], ··· 2004 "license": "ISC" 2005 }, 2006 "node_modules/magic-string": { 2007 + "version": "0.30.21", 2008 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 2009 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 2010 "license": "MIT", 2011 "dependencies": { 2012 "@jridgewell/sourcemap-codec": "^1.5.5" 2013 } 2014 }, 2015 "node_modules/mri": { 2016 "version": "1.2.0", 2017 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", ··· 2053 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 2054 } 2055 }, 2056 + "node_modules/on-exit-leak-free": { 2057 + "version": "2.1.2", 2058 + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", 2059 + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", 2060 + "license": "MIT", 2061 + "engines": { 2062 + "node": ">=14.0.0" 2063 + } 2064 + }, 2065 "node_modules/picocolors": { 2066 "version": "1.1.1", 2067 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", ··· 2081 "url": "https://github.com/sponsors/jonschlinkert" 2082 } 2083 }, 2084 + "node_modules/pino": { 2085 + "version": "8.21.0", 2086 + "resolved": "https://registry.npmjs.org/pino/-/pino-8.21.0.tgz", 2087 + "integrity": "sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==", 2088 + "license": "MIT", 2089 + "dependencies": { 2090 + "atomic-sleep": "^1.0.0", 2091 + "fast-redact": "^3.1.1", 2092 + "on-exit-leak-free": "^2.1.0", 2093 + "pino-abstract-transport": "^1.2.0", 2094 + "pino-std-serializers": "^6.0.0", 2095 + "process-warning": "^3.0.0", 2096 + "quick-format-unescaped": "^4.0.3", 2097 + "real-require": "^0.2.0", 2098 + "safe-stable-stringify": "^2.3.1", 2099 + "sonic-boom": "^3.7.0", 2100 + "thread-stream": "^2.6.0" 2101 + }, 2102 + "bin": { 2103 + "pino": "bin.js" 2104 + } 2105 + }, 2106 + "node_modules/pino-abstract-transport": { 2107 + "version": "1.2.0", 2108 + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", 2109 + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", 2110 + "license": "MIT", 2111 + "dependencies": { 2112 + "readable-stream": "^4.0.0", 2113 + "split2": "^4.0.0" 2114 + } 2115 + }, 2116 + "node_modules/pino-std-serializers": { 2117 + "version": "6.2.2", 2118 + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", 2119 + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", 2120 + "license": "MIT" 2121 + }, 2122 "node_modules/postcss": { 2123 "version": "8.5.6", 2124 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", ··· 2147 "node": "^10 || ^12 || >=14" 2148 } 2149 }, 2150 + "node_modules/process": { 2151 + "version": "0.11.10", 2152 + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 2153 + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", 2154 + "license": "MIT", 2155 + "engines": { 2156 + "node": ">= 0.6.0" 2157 + } 2158 + }, 2159 + "node_modules/process-warning": { 2160 + "version": "3.0.0", 2161 + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", 2162 + "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", 2163 + "license": "MIT" 2164 + }, 2165 + "node_modules/quick-format-unescaped": { 2166 + "version": "4.0.4", 2167 + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", 2168 + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", 2169 + "license": "MIT" 2170 + }, 2171 + "node_modules/readable-stream": { 2172 + "version": "4.7.0", 2173 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", 2174 + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", 2175 + "license": "MIT", 2176 + "dependencies": { 2177 + "abort-controller": "^3.0.0", 2178 + "buffer": "^6.0.3", 2179 + "events": "^3.3.0", 2180 + "process": "^0.11.10", 2181 + "string_decoder": "^1.3.0" 2182 + }, 2183 + "engines": { 2184 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 2185 + } 2186 + }, 2187 "node_modules/readdirp": { 2188 "version": "4.1.2", 2189 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", ··· 2196 "funding": { 2197 "type": "individual", 2198 "url": "https://paulmillr.com/funding/" 2199 + } 2200 + }, 2201 + "node_modules/real-require": { 2202 + "version": "0.2.0", 2203 + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", 2204 + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", 2205 + "license": "MIT", 2206 + "engines": { 2207 + "node": ">= 12.13.0" 2208 } 2209 }, 2210 "node_modules/rollup": { 2211 + "version": "4.53.3", 2212 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", 2213 + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", 2214 "license": "MIT", 2215 "dependencies": { 2216 "@types/estree": "1.0.8" ··· 2223 "npm": ">=8.0.0" 2224 }, 2225 "optionalDependencies": { 2226 + "@rollup/rollup-android-arm-eabi": "4.53.3", 2227 + "@rollup/rollup-android-arm64": "4.53.3", 2228 + "@rollup/rollup-darwin-arm64": "4.53.3", 2229 + "@rollup/rollup-darwin-x64": "4.53.3", 2230 + "@rollup/rollup-freebsd-arm64": "4.53.3", 2231 + "@rollup/rollup-freebsd-x64": "4.53.3", 2232 + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", 2233 + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", 2234 + "@rollup/rollup-linux-arm64-gnu": "4.53.3", 2235 + "@rollup/rollup-linux-arm64-musl": "4.53.3", 2236 + "@rollup/rollup-linux-loong64-gnu": "4.53.3", 2237 + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", 2238 + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", 2239 + "@rollup/rollup-linux-riscv64-musl": "4.53.3", 2240 + "@rollup/rollup-linux-s390x-gnu": "4.53.3", 2241 + "@rollup/rollup-linux-x64-gnu": "4.53.3", 2242 + "@rollup/rollup-linux-x64-musl": "4.53.3", 2243 + "@rollup/rollup-openharmony-arm64": "4.53.3", 2244 + "@rollup/rollup-win32-arm64-msvc": "4.53.3", 2245 + "@rollup/rollup-win32-ia32-msvc": "4.53.3", 2246 + "@rollup/rollup-win32-x64-gnu": "4.53.3", 2247 + "@rollup/rollup-win32-x64-msvc": "4.53.3", 2248 "fsevents": "~2.3.2" 2249 } 2250 }, ··· 2261 "node": ">=6" 2262 } 2263 }, 2264 + "node_modules/safe-buffer": { 2265 + "version": "5.2.1", 2266 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2267 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 2268 + "funding": [ 2269 + { 2270 + "type": "github", 2271 + "url": "https://github.com/sponsors/feross" 2272 + }, 2273 + { 2274 + "type": "patreon", 2275 + "url": "https://www.patreon.com/feross" 2276 + }, 2277 + { 2278 + "type": "consulting", 2279 + "url": "https://feross.org/support" 2280 + } 2281 + ], 2282 + "license": "MIT" 2283 + }, 2284 + "node_modules/safe-stable-stringify": { 2285 + "version": "2.5.0", 2286 + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", 2287 + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", 2288 + "license": "MIT", 2289 + "engines": { 2290 + "node": ">=10" 2291 + } 2292 + }, 2293 + "node_modules/sonic-boom": { 2294 + "version": "3.8.1", 2295 + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.8.1.tgz", 2296 + "integrity": "sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==", 2297 + "license": "MIT", 2298 + "dependencies": { 2299 + "atomic-sleep": "^1.0.0" 2300 + } 2301 + }, 2302 "node_modules/source-map-js": { 2303 "version": "1.2.1", 2304 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", ··· 2308 "node": ">=0.10.0" 2309 } 2310 }, 2311 + "node_modules/split2": { 2312 + "version": "4.2.0", 2313 + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", 2314 + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", 2315 + "license": "ISC", 2316 + "engines": { 2317 + "node": ">= 10.x" 2318 + } 2319 + }, 2320 + "node_modules/string_decoder": { 2321 + "version": "1.3.0", 2322 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 2323 + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 2324 + "license": "MIT", 2325 + "dependencies": { 2326 + "safe-buffer": "~5.2.0" 2327 + } 2328 + }, 2329 "node_modules/svelte": { 2330 + "version": "5.45.6", 2331 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.45.6.tgz", 2332 + "integrity": "sha512-V3aVXthzPyPt1UB1wLEoXnEXpwPsvs7NHrR0xkCor8c11v71VqBj477MClqPZYyrcXrAH21sNGhOj9FJvSwXfQ==", 2333 "dev": true, 2334 "license": "MIT", 2335 "peer": true, ··· 2342 "aria-query": "^5.3.1", 2343 "axobject-query": "^4.1.0", 2344 "clsx": "^2.1.1", 2345 + "devalue": "^5.5.0", 2346 "esm-env": "^1.2.1", 2347 + "esrap": "^2.2.1", 2348 "is-reference": "^3.0.3", 2349 "locate-character": "^3.0.0", 2350 "magic-string": "^0.30.11", ··· 2355 } 2356 }, 2357 "node_modules/svelte-check": { 2358 + "version": "4.3.4", 2359 + "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-4.3.4.tgz", 2360 + "integrity": "sha512-DVWvxhBrDsd+0hHWKfjP99lsSXASeOhHJYyuKOFYJcP7ThfSCKgjVarE8XfuMWpS5JV3AlDf+iK1YGGo2TACdw==", 2361 "dev": true, 2362 "license": "MIT", 2363 "dependencies": { ··· 2379 } 2380 }, 2381 "node_modules/tailwindcss": { 2382 + "version": "4.1.17", 2383 + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.17.tgz", 2384 + "integrity": "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==", 2385 "license": "MIT" 2386 }, 2387 "node_modules/tapable": { ··· 2397 "url": "https://opencollective.com/webpack" 2398 } 2399 }, 2400 + "node_modules/thread-stream": { 2401 + "version": "2.7.0", 2402 + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", 2403 + "integrity": "sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==", 2404 + "license": "MIT", 2405 "dependencies": { 2406 + "real-require": "^0.2.0" 2407 } 2408 }, 2409 "node_modules/tinyglobby": { ··· 2423 } 2424 }, 2425 "node_modules/tlds": { 2426 + "version": "1.261.0", 2427 + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz", 2428 + "integrity": "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==", 2429 "license": "MIT", 2430 "bin": { 2431 "tlds": "bin.js" 2432 } 2433 + }, 2434 + "node_modules/tslib": { 2435 + "version": "2.8.1", 2436 + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", 2437 + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", 2438 + "license": "0BSD" 2439 }, 2440 "node_modules/typescript": { 2441 "version": "5.9.3", ··· 2462 } 2463 }, 2464 "node_modules/undici-types": { 2465 + "version": "7.16.0", 2466 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", 2467 + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", 2468 "devOptional": true, 2469 "license": "MIT" 2470 }, 2471 + "node_modules/unicode-segmenter": { 2472 + "version": "0.14.1", 2473 + "resolved": "https://registry.npmjs.org/unicode-segmenter/-/unicode-segmenter-0.14.1.tgz", 2474 + "integrity": "sha512-yHedxlEpUyD+u1UE8qAuCMXVdMLn7yUdlmd8WN7FGmO1ICnpE7LJfnmuXBB+T0zkie3qHsy8fSucqceI/MylOg==", 2475 + "license": "MIT" 2476 + }, 2477 "node_modules/vite": { 2478 + "version": "7.2.7", 2479 + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz", 2480 + "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==", 2481 "license": "MIT", 2482 "peer": true, 2483 "dependencies": { ··· 2567 "vite": { 2568 "optional": true 2569 } 2570 } 2571 }, 2572 "node_modules/zimmerframe": {
+3 -1
package.json
··· 19 "vite": "^7.1.7" 20 }, 21 "dependencies": { 22 - "@atproto/api": "^0.17.3", 23 "@atproto/oauth-client-browser": "^0.3.33", 24 "@tailwindcss/vite": "^4.1.14", 25 "tailwindcss": "^4.1.14"
··· 19 "vite": "^7.1.7" 20 }, 21 "dependencies": { 22 + "@atproto/api": "^0.18.4", 23 + "@atproto/common": "^0.5.2", 24 + "@atproto/common-web": "^0.4.3", 25 "@atproto/oauth-client-browser": "^0.3.33", 26 "@tailwindcss/vite": "^4.1.14", 27 "tailwindcss": "^4.1.14"
-11
public/_client-metadata.json
··· 1 - { 2 - "client_id": "https://atvideo.bigaston.me/client-metadata.json", 3 - "client_name": "AT Video", 4 - "client_uri": "https://atvideo.bigaston.me", 5 - "redirect_uris": ["https://atvideo.bigaston.me/callback"], 6 - "scope": "atproto", 7 - "grant_types": ["authorization_code"], 8 - "response_types": ["code"], 9 - "token_endpoint_auth_method": "none", 10 - "application_type": "web" 11 - }
···
+12
public/client-metadata.json
···
··· 1 + { 2 + "client_id": "https://bigaston-comments.b-cdn.net/client-metadata.json", 3 + "client_name": "Comments", 4 + "client_uri": "https://bigaston-comments.b-cdn.net", 5 + "redirect_uris": ["https://bigaston-comments.b-cdn.net/oauth/callback"], 6 + "scope": "atproto repo:me.bigaston.comments?action=create", 7 + "grant_types": ["authorization_code"], 8 + "response_types": ["code"], 9 + "application_type": "native", 10 + "token_endpoint_auth_method": "none", 11 + "dpop_bound_access_tokens": true 12 + }
+16 -1
src/App.svelte
··· 7 import Route from "./components/Route.svelte"; 8 import { Router } from "./states/router.svelte"; 9 import Index from "./pages/Index.svelte"; 10 11 async function initClient() { 12 const result: undefined | { session: OAuthSession; state?: string | null } = ··· 34 Session.initialized = true; 35 36 if (Router.url === "/oauth/callback") { 37 - Router.go("/"); 38 } 39 } 40 ··· 47 <main> 48 <Route url="/login"> 49 <Login /> 50 </Route> 51 <Route url="/" auth={true}> 52 <Index />
··· 7 import Route from "./components/Route.svelte"; 8 import { Router } from "./states/router.svelte"; 9 import Index from "./pages/Index.svelte"; 10 + import Comment from "./pages/Comment.svelte"; 11 12 async function initClient() { 13 const result: undefined | { session: OAuthSession; state?: string | null } = ··· 35 Session.initialized = true; 36 37 if (Router.url === "/oauth/callback") { 38 + if (state != null) { 39 + let query = new URLSearchParams(state); 40 + let from = query.get("from"); 41 + 42 + if (from !== null) { 43 + Router.go(from); 44 + } else { 45 + Router.go("/"); 46 + } 47 + } else { 48 + Router.go("/"); 49 + } 50 } 51 } 52 ··· 59 <main> 60 <Route url="/login"> 61 <Login /> 62 + </Route> 63 + <Route url="/comment"> 64 + <Comment /> 65 </Route> 66 <Route url="/" auth={true}> 67 <Index />
+22 -6
src/at/client.ts
··· 2 3 const Client = new BrowserOAuthClient({ 4 clientMetadata: { 5 - client_name: "Test App", 6 - client_id: 7 - "http://localhost?redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Foauth%2Fcallback&scope=atproto%20transition%3Ageneric", 8 - redirect_uris: ["http://127.0.0.1:3000/oauth/callback"], 9 - scope: "atproto transition:generic", 10 - grant_types: ["authorization_code", "refresh_token"], 11 response_types: ["code"], 12 application_type: "native", 13 token_endpoint_auth_method: "none", ··· 15 }, 16 handleResolver: "https://bsky.social", 17 }); 18 19 export { Client };
··· 2 3 const Client = new BrowserOAuthClient({ 4 clientMetadata: { 5 + client_id: "https://bigaston-comments.b-cdn.net/client-metadata.json", 6 + client_name: "Comments", 7 + client_uri: "https://bigaston-comments.b-cdn.net", 8 + redirect_uris: ["https://bigaston-comments.b-cdn.net/oauth/callback"], 9 + scope: "atproto repo:me.bigaston.comments?action=create", 10 + grant_types: ["authorization_code"], 11 response_types: ["code"], 12 application_type: "native", 13 token_endpoint_auth_method: "none", ··· 15 }, 16 handleResolver: "https://bsky.social", 17 }); 18 + 19 + // const Client = new BrowserOAuthClient({ 20 + // clientMetadata: { 21 + // client_name: "Test App", 22 + // client_id: 23 + // "http://localhost?redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Foauth%2Fcallback&scope=atproto%20transition%3Ageneric", 24 + // redirect_uris: ["http://127.0.0.1:3000/oauth/callback"], 25 + // scope: "atproto transition:generic", 26 + // grant_types: ["authorization_code", "refresh_token"], 27 + // response_types: ["code"], 28 + // application_type: "native", 29 + // token_endpoint_auth_method: "none", 30 + // dpop_bound_access_tokens: true, 31 + // }, 32 + // handleResolver: "https://bsky.social", 33 + // }); 34 35 export { Client };
+28
src/components/Link.svelte
···
··· 1 + <script lang="ts"> 2 + import { Router } from "../states/router.svelte"; 3 + import type { Snippet } from "svelte"; 4 + import { Session } from "../states/session.svelte"; 5 + 6 + interface Props { 7 + url: string; 8 + children?: Snippet; 9 + auth?: boolean; 10 + } 11 + 12 + let props = $props(); 13 + </script> 14 + 15 + <a 16 + {...props} 17 + onclick={(e) => { 18 + e.preventDefault(); 19 + let url = props.href as string; 20 + if (url.startsWith("/")) { 21 + Router.go(url); 22 + } else { 23 + location.href = url; 24 + } 25 + }} 26 + > 27 + {@render props.children?.()} 28 + </a>
+9 -2
src/components/Route.svelte
··· 12 let { url = "/", children, auth = false } = $props(); 13 14 $effect(() => { 15 - if (Session.initialized && Session.value === undefined && auth) { 16 - Router.go("/login"); 17 } 18 }); 19 </script>
··· 12 let { url = "/", children, auth = false } = $props(); 13 14 $effect(() => { 15 + if ( 16 + auth && 17 + Router.url === url && 18 + Session.initialized && 19 + Session.value === undefined 20 + ) { 21 + let query = new URLSearchParams(); 22 + query.append("from", Router.url); 23 + Router.go("/login?" + query.toString()); 24 } 25 }); 26 </script>
+1 -1
src/components/TopBar.svelte
··· 7 <div 8 class="flex items-center mb-2 h-16 rounded-lg border-[0.5px] border-neutral-200 bg-white p-2 shadow-xs w-[600px] max-w-full transition-all ml-auto mr-auto mt-5" 9 > 10 - <p class="font-title">Videolia</p> 11 <div class="grow"></div> 12 13 {#if Session.value !== undefined && Session.profile !== undefined}
··· 7 <div 8 class="flex items-center mb-2 h-16 rounded-lg border-[0.5px] border-neutral-200 bg-white p-2 shadow-xs w-[600px] max-w-full transition-all ml-auto mr-auto mt-5" 9 > 10 + <p class="font-title">Comments</p> 11 <div class="grow"></div> 12 13 {#if Session.value !== undefined && Session.profile !== undefined}
+172
src/pages/Comment.svelte
···
··· 1 + <script lang="ts"> 2 + import { Agent, AtpAgent, CredentialSession } from "@atproto/api"; 3 + import { TID } from "@atproto/common-web"; 4 + import { Session } from "../states/session.svelte"; 5 + 6 + import Link from "../components/Link.svelte"; 7 + 8 + let newComment = $state(""); 9 + interface Comment { 10 + message: string; 11 + authorName: string; 12 + authorImage: string; 13 + createdAt: Date; 14 + } 15 + let comments: Comment[] = $state([]); 16 + 17 + let query = new URLSearchParams(window.location.search); 18 + let postUrl = query.get("postUrl"); 19 + let authorityDid = query.get("authorityDid"); 20 + 21 + async function submitForm(e: SubmitEvent) { 22 + e.preventDefault(); 23 + 24 + if (Session.value === undefined) { 25 + console.error("Session.value is undefined"); 26 + return; 27 + } 28 + 29 + if (!postUrl) { 30 + console.error("Comment widget malformed, need a postUrl"); 31 + return; 32 + } 33 + 34 + let agent = new Agent(Session.value); 35 + await agent.com.atproto.repo.putRecord({ 36 + repo: agent.assertDid, 37 + collection: "me.bigaston.comments", 38 + rkey: TID.nextStr(), 39 + record: { 40 + message: newComment, 41 + postUrl: postUrl, 42 + createdAt: new Date().toISOString(), 43 + }, 44 + }); 45 + } 46 + 47 + interface FetchCommentResponseRecords { 48 + did: string; 49 + collection: string; 50 + rkey: string; 51 + } 52 + 53 + interface FetchCommentResponse { 54 + cursor: string | null; 55 + total: number; 56 + records: FetchCommentResponseRecords[]; 57 + } 58 + 59 + fetchComments(null).then(async (records) => { 60 + console.log(records); 61 + 62 + let anonymSession = new CredentialSession(new URL("https://bsky.social")); 63 + 64 + let agent = new Agent(anonymSession); 65 + 66 + for (const record of records) { 67 + let res = await agent.com.atproto.repo.getRecord({ 68 + collection: record.collection, 69 + repo: record.did, 70 + rkey: record.rkey, 71 + }); 72 + 73 + let data = res.data as any; 74 + 75 + let com: Comment = { 76 + authorImage: "", 77 + authorName: "", 78 + createdAt: new Date(data.value.createdAt), 79 + message: data.value.message, 80 + }; 81 + 82 + comments = [...comments, com]; 83 + } 84 + }); 85 + 86 + async function fetchComments( 87 + cursor: string | null 88 + ): Promise<FetchCommentResponseRecords[]> { 89 + if (!postUrl) { 90 + return []; 91 + } 92 + 93 + let querySearchComments = new URLSearchParams(); 94 + querySearchComments.append("subject", postUrl); 95 + querySearchComments.append("source", "me.bigaston.comments:postUrl"); 96 + 97 + if (cursor) { 98 + querySearchComments.append("cursor", cursor); 99 + } 100 + 101 + let res = await fetch( 102 + "https://constellation.microcosm.blue/xrpc/blue.microcosm.links.getBacklinks?" + 103 + querySearchComments.toString(), 104 + { 105 + headers: { 106 + "User-Agent": "Comments by bigaston.me", 107 + }, 108 + } 109 + ); 110 + 111 + if (res.ok) { 112 + let data = (await res.json()) as FetchCommentResponse; 113 + 114 + let response = [...data.records]; 115 + if (data.cursor) { 116 + let nextRecords = await fetchComments(data.cursor); 117 + response = [...response, ...nextRecords]; 118 + } 119 + 120 + return response; 121 + } else { 122 + let body = await res.text(); 123 + 124 + console.error(body); 125 + 126 + return []; 127 + } 128 + } 129 + </script> 130 + 131 + <div class="flex justify-center"> 132 + <div class="w-[600px] mw-full mt-4"> 133 + {#if !postUrl} 134 + <div class="border-red-600 border-[0.5px] rounded-lg p-2 bg-red-100"> 135 + <p class="text-center text-red-900"> 136 + This comment widget is malformed! Need a postUrl 137 + </p> 138 + </div> 139 + {/if} 140 + 141 + {#each comments as com} 142 + <p>{com.message} by {com.authorName} at {com.createdAt}</p> 143 + {/each} 144 + 145 + {#if Session.initialized && Session.profile !== undefined} 146 + <label for="add-comment" class="text-neutral-600" 147 + >Add a comment as <span class="font-bold" 148 + >{Session.profile.displayName}</span 149 + >:</label 150 + > 151 + 152 + <form onsubmit={submitForm}> 153 + <textarea 154 + required 155 + bind:value={newComment} 156 + class="mb-2 rounded-lg border-[0.5px] border-neutral-300 bg-neutral-50 p-2 shadow-xs w-full block" 157 + ></textarea> 158 + <button 159 + class="mb-2 ml-auto rounded-lg border-[0.5px] border-blue-500 bg-blue-400 hover:bg-blue-500 p-2 pl-4 pr-4 shadow-xs transition-all block hover:cursor-pointer" 160 + >Post</button 161 + > 162 + </form> 163 + {:else} 164 + <p class="text-neutral-600 text-center"> 165 + To add a comment, please <Link 166 + href={"/login?from=" + "/comment"} 167 + class="underline hover:text-neutral-900 transition-all">login</Link 168 + > ! 169 + </p> 170 + {/if} 171 + </div> 172 + </div>
+5 -4
src/pages/Login.svelte
··· 3 import { Client } from "../at/client"; 4 import TopBar from "../components/TopBar.svelte"; 5 import Button from "../components/Button.svelte"; 6 let handle = $state(""); 7 8 async function submitForm(e: SubmitEvent) { 9 e.preventDefault(); 10 11 try { 12 - await Client.signIn(handle); 13 } catch (err) { 14 console.log(err); 15 } ··· 20 } 21 </script> 22 23 - <TopBar /> 24 - 25 <div class="flex justify-center items-center w-screen"> 26 <form onsubmit={submitForm} class="flex flex-col w-[300px]"> 27 <p class="text-center text-neutral-600 mb-2"> 28 - You will need to login manage your videos 29 </p> 30 <input 31 type="text"
··· 3 import { Client } from "../at/client"; 4 import TopBar from "../components/TopBar.svelte"; 5 import Button from "../components/Button.svelte"; 6 + 7 let handle = $state(""); 8 9 async function submitForm(e: SubmitEvent) { 10 e.preventDefault(); 11 12 try { 13 + await Client.signIn(handle, { 14 + state: window.location.search, 15 + }); 16 } catch (err) { 17 console.log(err); 18 } ··· 23 } 24 </script> 25 26 <div class="flex justify-center items-center w-screen"> 27 <form onsubmit={submitForm} class="flex flex-col w-[300px]"> 28 <p class="text-center text-neutral-600 mb-2"> 29 + Login with your BlueSky handle (or any other PDS) 30 </p> 31 <input 32 type="text"
+1
src/states/session.svelte.ts
··· 5 value?: OAuthSession = $state(undefined); 6 initialized: boolean = $state(false); 7 profile?: ProfileViewDetailed = $state(undefined); 8 } 9 10 export const Session = new SessionClass();
··· 5 value?: OAuthSession = $state(undefined); 6 initialized: boolean = $state(false); 7 profile?: ProfileViewDetailed = $state(undefined); 8 + isLogged: boolean = $derived(this.value !== undefined && this.initialized); 9 } 10 11 export const Session = new SessionClass();