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 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) 3 5 4 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> 1 + <!doctype html> 2 2 <html lang="en"> 3 3 <head> 4 4 <meta charset="UTF-8" /> 5 5 <link rel="icon" type="image/svg+xml" href="/vite.svg" /> 6 6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 7 - <title>at-video</title> 7 + <title>Comments</title> 8 8 </head> 9 9 <body class="h-screen bg-neutral-100"> 10 10 <div id="app"></div>
+767 -482
package-lock.json
··· 8 8 "name": "at-video", 9 9 "version": "0.0.0", 10 10 "dependencies": { 11 - "@atproto/api": "^0.17.3", 11 + "@atproto/api": "^0.18.4", 12 + "@atproto/common": "^0.5.2", 13 + "@atproto/common-web": "^0.4.3", 12 14 "@atproto/oauth-client-browser": "^0.3.33", 13 15 "@tailwindcss/vite": "^4.1.14", 14 16 "tailwindcss": "^4.1.14" ··· 24 26 } 25 27 }, 26 28 "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==", 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==", 30 32 "license": "MIT", 31 33 "dependencies": { 32 34 "@atproto-labs/fetch": "0.2.3", 33 35 "@atproto-labs/pipe": "0.1.1", 34 36 "@atproto-labs/simple-store": "0.3.0", 35 37 "@atproto-labs/simple-store-memory": "0.1.4", 36 - "@atproto/did": "0.2.1", 38 + "@atproto/did": "0.2.3", 37 39 "zod": "^3.23.8" 38 40 } 39 41 }, ··· 47 49 } 48 50 }, 49 51 "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==", 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==", 53 55 "license": "MIT", 54 56 "dependencies": { 55 57 "@atproto-labs/simple-store": "0.3.0", 56 58 "@atproto-labs/simple-store-memory": "0.1.4", 57 - "@atproto/did": "0.2.1", 59 + "@atproto/did": "0.2.3", 58 60 "zod": "^3.23.8" 59 61 } 60 62 }, 61 63 "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==", 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==", 65 67 "license": "MIT", 66 68 "dependencies": { 67 - "@atproto-labs/did-resolver": "0.2.2", 68 - "@atproto-labs/handle-resolver": "0.3.2" 69 + "@atproto-labs/did-resolver": "0.2.4", 70 + "@atproto-labs/handle-resolver": "0.3.4" 69 71 } 70 72 }, 71 73 "node_modules/@atproto-labs/pipe": { ··· 91 93 } 92 94 }, 93 95 "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==", 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==", 97 99 "license": "MIT", 98 100 "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", 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", 103 105 "await-lock": "^2.2.2", 104 106 "multiformats": "^9.9.0", 105 107 "tlds": "^1.234.0", 106 108 "zod": "^3.23.8" 107 109 } 108 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 + }, 109 128 "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==", 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==", 113 132 "license": "MIT", 114 133 "dependencies": { 115 - "graphemer": "^1.4.0", 116 - "multiformats": "^9.9.0", 117 - "uint8arrays": "3.0.0", 134 + "@atproto/lex-data": "0.0.2", 135 + "@atproto/lex-json": "0.0.2", 118 136 "zod": "^3.23.8" 119 137 } 120 138 }, 121 139 "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==", 140 + "version": "0.2.3", 141 + "resolved": "https://registry.npmjs.org/@atproto/did/-/did-0.2.3.tgz", 142 + "integrity": "sha512-VI8JJkSizvM2cHYJa37WlbzeCm5tWpojyc1/Zy8q8OOjyoy6X4S4BEfoP941oJcpxpMTObamibQIXQDo7tnIjg==", 125 143 "license": "MIT", 126 144 "dependencies": { 127 145 "zod": "^3.23.8" ··· 158 176 "zod": "^3.23.8" 159 177 } 160 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 + }, 161 213 "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==", 214 + "version": "0.5.2", 215 + "resolved": "https://registry.npmjs.org/@atproto/lexicon/-/lexicon-0.5.2.tgz", 216 + "integrity": "sha512-lRmJgMA8f5j7VB5Iu5cp188ald5FuI4FlmZ7nn6EBrk1dgOstWVrI5Ft6K3z2vjyLZRG6nzknlsw+tDP63p7bQ==", 165 217 "license": "MIT", 166 218 "dependencies": { 167 - "@atproto/common-web": "^0.4.3", 219 + "@atproto/common-web": "^0.4.4", 168 220 "@atproto/syntax": "^0.4.1", 169 221 "iso-datestring-validator": "^2.2.2", 170 222 "multiformats": "^9.9.0", ··· 172 224 } 173 225 }, 174 226 "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==", 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==", 178 230 "license": "MIT", 179 231 "dependencies": { 180 - "@atproto-labs/did-resolver": "0.2.2", 232 + "@atproto-labs/did-resolver": "0.2.4", 181 233 "@atproto-labs/fetch": "0.2.3", 182 - "@atproto-labs/handle-resolver": "0.3.2", 183 - "@atproto-labs/identity-resolver": "0.3.2", 234 + "@atproto-labs/handle-resolver": "0.3.4", 235 + "@atproto-labs/identity-resolver": "0.3.4", 184 236 "@atproto-labs/simple-store": "0.3.0", 185 237 "@atproto-labs/simple-store-memory": "0.1.4", 186 - "@atproto/did": "0.2.1", 238 + "@atproto/did": "0.2.3", 187 239 "@atproto/jwk": "0.6.0", 188 - "@atproto/oauth-types": "0.4.2", 189 - "@atproto/xrpc": "0.7.5", 240 + "@atproto/oauth-types": "0.5.2", 241 + "@atproto/xrpc": "0.7.6", 190 242 "core-js": "^3", 191 243 "multiformats": "^9.9.0", 192 244 "zod": "^3.23.8" 193 245 } 194 246 }, 195 247 "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==", 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==", 199 251 "license": "MIT", 200 252 "dependencies": { 201 - "@atproto-labs/did-resolver": "0.2.2", 202 - "@atproto-labs/handle-resolver": "0.3.2", 253 + "@atproto-labs/did-resolver": "0.2.4", 254 + "@atproto-labs/handle-resolver": "0.3.4", 203 255 "@atproto-labs/simple-store": "0.3.0", 204 - "@atproto/did": "0.2.1", 256 + "@atproto/did": "0.2.3", 205 257 "@atproto/jwk": "0.6.0", 206 258 "@atproto/jwk-webcrypto": "0.2.0", 207 - "@atproto/oauth-client": "0.5.7", 208 - "@atproto/oauth-types": "0.4.2", 259 + "@atproto/oauth-client": "0.5.10", 260 + "@atproto/oauth-types": "0.5.2", 209 261 "core-js": "^3" 210 262 } 211 263 }, 212 264 "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==", 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==", 216 268 "license": "MIT", 217 269 "dependencies": { 218 - "@atproto/did": "0.2.1", 270 + "@atproto/did": "0.2.3", 219 271 "@atproto/jwk": "0.6.0", 220 272 "zod": "^3.23.8" 221 273 } 222 274 }, 223 275 "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==", 276 + "version": "0.4.2", 277 + "resolved": "https://registry.npmjs.org/@atproto/syntax/-/syntax-0.4.2.tgz", 278 + "integrity": "sha512-X9XSRPinBy/0VQ677j8VXlBsYSsUXaiqxWVpGGxJYsAhugdQRb0jqaVKJFtm6RskeNkV6y9xclSUi9UYG/COrA==", 227 279 "license": "MIT" 228 280 }, 229 281 "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==", 282 + "version": "0.7.6", 283 + "resolved": "https://registry.npmjs.org/@atproto/xrpc/-/xrpc-0.7.6.tgz", 284 + "integrity": "sha512-RvCf4j0JnKYWuz3QzsYCntJi3VuiAAybQsMIUw2wLWcHhchO9F7UaBZINLL2z0qc/cYWPv5NSwcVydMseoCZLA==", 233 285 "license": "MIT", 234 286 "dependencies": { 235 - "@atproto/lexicon": "^0.5.1", 287 + "@atproto/lexicon": "^0.5.2", 236 288 "zod": "^3.23.8" 237 289 } 238 290 }, 239 291 "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==", 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==", 243 295 "cpu": [ 244 296 "ppc64" 245 297 ], ··· 253 305 } 254 306 }, 255 307 "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==", 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==", 259 311 "cpu": [ 260 312 "arm" 261 313 ], ··· 269 321 } 270 322 }, 271 323 "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==", 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==", 275 327 "cpu": [ 276 328 "arm64" 277 329 ], ··· 285 337 } 286 338 }, 287 339 "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==", 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==", 291 343 "cpu": [ 292 344 "x64" 293 345 ], ··· 301 353 } 302 354 }, 303 355 "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==", 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==", 307 359 "cpu": [ 308 360 "arm64" 309 361 ], ··· 317 369 } 318 370 }, 319 371 "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==", 372 + "version": "0.25.12", 373 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", 374 + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", 323 375 "cpu": [ 324 376 "x64" 325 377 ], ··· 333 385 } 334 386 }, 335 387 "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==", 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==", 339 391 "cpu": [ 340 392 "arm64" 341 393 ], ··· 349 401 } 350 402 }, 351 403 "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==", 404 + "version": "0.25.12", 405 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", 406 + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", 355 407 "cpu": [ 356 408 "x64" 357 409 ], ··· 365 417 } 366 418 }, 367 419 "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==", 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==", 371 423 "cpu": [ 372 424 "arm" 373 425 ], ··· 381 433 } 382 434 }, 383 435 "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==", 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==", 387 439 "cpu": [ 388 440 "arm64" 389 441 ], ··· 397 449 } 398 450 }, 399 451 "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==", 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==", 403 455 "cpu": [ 404 456 "ia32" 405 457 ], ··· 413 465 } 414 466 }, 415 467 "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==", 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==", 419 471 "cpu": [ 420 472 "loong64" 421 473 ], ··· 429 481 } 430 482 }, 431 483 "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==", 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==", 435 487 "cpu": [ 436 488 "mips64el" 437 489 ], ··· 445 497 } 446 498 }, 447 499 "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==", 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==", 451 503 "cpu": [ 452 504 "ppc64" 453 505 ], ··· 461 513 } 462 514 }, 463 515 "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==", 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==", 467 519 "cpu": [ 468 520 "riscv64" 469 521 ], ··· 477 529 } 478 530 }, 479 531 "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==", 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==", 483 535 "cpu": [ 484 536 "s390x" 485 537 ], ··· 493 545 } 494 546 }, 495 547 "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==", 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==", 499 551 "cpu": [ 500 552 "x64" 501 553 ], ··· 509 561 } 510 562 }, 511 563 "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==", 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==", 515 567 "cpu": [ 516 568 "arm64" 517 569 ], ··· 525 577 } 526 578 }, 527 579 "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==", 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==", 531 583 "cpu": [ 532 584 "x64" 533 585 ], ··· 541 593 } 542 594 }, 543 595 "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==", 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==", 547 599 "cpu": [ 548 600 "arm64" 549 601 ], ··· 557 609 } 558 610 }, 559 611 "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==", 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==", 563 615 "cpu": [ 564 616 "x64" 565 617 ], ··· 573 625 } 574 626 }, 575 627 "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==", 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==", 579 631 "cpu": [ 580 632 "arm64" 581 633 ], ··· 589 641 } 590 642 }, 591 643 "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==", 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==", 595 647 "cpu": [ 596 648 "x64" 597 649 ], ··· 605 657 } 606 658 }, 607 659 "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==", 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==", 611 663 "cpu": [ 612 664 "arm64" 613 665 ], ··· 621 673 } 622 674 }, 623 675 "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==", 676 + "version": "0.25.12", 677 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", 678 + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", 627 679 "cpu": [ 628 680 "ia32" 629 681 ], ··· 637 689 } 638 690 }, 639 691 "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==", 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==", 643 695 "cpu": [ 644 696 "x64" 645 697 ], ··· 652 704 "node": ">=18" 653 705 } 654 706 }, 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 707 "node_modules/@jridgewell/gen-mapping": { 668 708 "version": "0.3.13", 669 709 "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", ··· 710 750 } 711 751 }, 712 752 "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==", 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==", 716 756 "cpu": [ 717 757 "arm" 718 758 ], ··· 723 763 ] 724 764 }, 725 765 "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==", 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==", 729 769 "cpu": [ 730 770 "arm64" 731 771 ], ··· 736 776 ] 737 777 }, 738 778 "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==", 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==", 742 782 "cpu": [ 743 783 "arm64" 744 784 ], ··· 749 789 ] 750 790 }, 751 791 "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==", 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==", 755 795 "cpu": [ 756 796 "x64" 757 797 ], ··· 762 802 ] 763 803 }, 764 804 "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==", 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==", 768 808 "cpu": [ 769 809 "arm64" 770 810 ], ··· 775 815 ] 776 816 }, 777 817 "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==", 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==", 781 821 "cpu": [ 782 822 "x64" 783 823 ], ··· 788 828 ] 789 829 }, 790 830 "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==", 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==", 794 834 "cpu": [ 795 835 "arm" 796 836 ], ··· 801 841 ] 802 842 }, 803 843 "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==", 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==", 807 847 "cpu": [ 808 848 "arm" 809 849 ], ··· 814 854 ] 815 855 }, 816 856 "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==", 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==", 820 860 "cpu": [ 821 861 "arm64" 822 862 ], ··· 827 867 ] 828 868 }, 829 869 "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==", 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==", 833 873 "cpu": [ 834 874 "arm64" 835 875 ], ··· 840 880 ] 841 881 }, 842 882 "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==", 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==", 846 886 "cpu": [ 847 887 "loong64" 848 888 ], ··· 853 893 ] 854 894 }, 855 895 "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==", 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==", 859 899 "cpu": [ 860 900 "ppc64" 861 901 ], ··· 866 906 ] 867 907 }, 868 908 "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==", 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==", 872 912 "cpu": [ 873 913 "riscv64" 874 914 ], ··· 879 919 ] 880 920 }, 881 921 "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==", 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==", 885 925 "cpu": [ 886 926 "riscv64" 887 927 ], ··· 892 932 ] 893 933 }, 894 934 "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==", 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==", 898 938 "cpu": [ 899 939 "s390x" 900 940 ], ··· 905 945 ] 906 946 }, 907 947 "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==", 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==", 911 951 "cpu": [ 912 952 "x64" 913 953 ], ··· 918 958 ] 919 959 }, 920 960 "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==", 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==", 924 964 "cpu": [ 925 965 "x64" 926 966 ], ··· 931 971 ] 932 972 }, 933 973 "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==", 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==", 937 977 "cpu": [ 938 978 "arm64" 939 979 ], ··· 944 984 ] 945 985 }, 946 986 "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==", 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==", 950 990 "cpu": [ 951 991 "arm64" 952 992 ], ··· 957 997 ] 958 998 }, 959 999 "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==", 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==", 963 1003 "cpu": [ 964 1004 "ia32" 965 1005 ], ··· 970 1010 ] 971 1011 }, 972 1012 "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==", 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==", 976 1016 "cpu": [ 977 1017 "x64" 978 1018 ], ··· 983 1023 ] 984 1024 }, 985 1025 "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==", 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==", 989 1029 "cpu": [ 990 1030 "x64" 991 1031 ], ··· 996 1036 ] 997 1037 }, 998 1038 "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==", 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==", 1002 1042 "dev": true, 1003 1043 "license": "MIT", 1004 1044 "peerDependencies": { ··· 1046 1086 } 1047 1087 }, 1048 1088 "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==", 1089 + "version": "4.1.17", 1090 + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.17.tgz", 1091 + "integrity": "sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==", 1052 1092 "license": "MIT", 1053 1093 "dependencies": { 1054 1094 "@jridgewell/remapping": "^2.3.4", 1055 1095 "enhanced-resolve": "^5.18.3", 1056 - "jiti": "^2.6.0", 1057 - "lightningcss": "1.30.1", 1058 - "magic-string": "^0.30.19", 1096 + "jiti": "^2.6.1", 1097 + "lightningcss": "1.30.2", 1098 + "magic-string": "^0.30.21", 1059 1099 "source-map-js": "^1.2.1", 1060 - "tailwindcss": "4.1.14" 1100 + "tailwindcss": "4.1.17" 1061 1101 } 1062 1102 }, 1063 1103 "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, 1104 + "version": "4.1.17", 1105 + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.17.tgz", 1106 + "integrity": "sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==", 1068 1107 "license": "MIT", 1069 - "dependencies": { 1070 - "detect-libc": "^2.0.4", 1071 - "tar": "^7.5.1" 1072 - }, 1073 1108 "engines": { 1074 1109 "node": ">= 10" 1075 1110 }, 1076 1111 "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" 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" 1089 1124 } 1090 1125 }, 1091 1126 "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==", 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==", 1095 1130 "cpu": [ 1096 1131 "arm64" 1097 1132 ], ··· 1105 1140 } 1106 1141 }, 1107 1142 "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==", 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==", 1111 1146 "cpu": [ 1112 1147 "arm64" 1113 1148 ], ··· 1121 1156 } 1122 1157 }, 1123 1158 "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==", 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==", 1127 1162 "cpu": [ 1128 1163 "x64" 1129 1164 ], ··· 1137 1172 } 1138 1173 }, 1139 1174 "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==", 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==", 1143 1178 "cpu": [ 1144 1179 "x64" 1145 1180 ], ··· 1153 1188 } 1154 1189 }, 1155 1190 "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==", 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==", 1159 1194 "cpu": [ 1160 1195 "arm" 1161 1196 ], ··· 1169 1204 } 1170 1205 }, 1171 1206 "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==", 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==", 1175 1210 "cpu": [ 1176 1211 "arm64" 1177 1212 ], ··· 1185 1220 } 1186 1221 }, 1187 1222 "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==", 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==", 1191 1226 "cpu": [ 1192 1227 "arm64" 1193 1228 ], ··· 1201 1236 } 1202 1237 }, 1203 1238 "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==", 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==", 1207 1242 "cpu": [ 1208 1243 "x64" 1209 1244 ], ··· 1217 1252 } 1218 1253 }, 1219 1254 "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==", 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==", 1223 1258 "cpu": [ 1224 1259 "x64" 1225 1260 ], ··· 1233 1268 } 1234 1269 }, 1235 1270 "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==", 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==", 1239 1274 "bundleDependencies": [ 1240 1275 "@napi-rs/wasm-runtime", 1241 1276 "@emnapi/core", ··· 1250 1285 "license": "MIT", 1251 1286 "optional": true, 1252 1287 "dependencies": { 1253 - "@emnapi/core": "^1.5.0", 1254 - "@emnapi/runtime": "^1.5.0", 1288 + "@emnapi/core": "^1.6.0", 1289 + "@emnapi/runtime": "^1.6.0", 1255 1290 "@emnapi/wasi-threads": "^1.1.0", 1256 - "@napi-rs/wasm-runtime": "^1.0.5", 1291 + "@napi-rs/wasm-runtime": "^1.0.7", 1257 1292 "@tybys/wasm-util": "^0.10.1", 1258 1293 "tslib": "^2.4.0" 1259 1294 }, ··· 1262 1297 } 1263 1298 }, 1264 1299 "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==", 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==", 1268 1303 "cpu": [ 1269 1304 "arm64" 1270 1305 ], ··· 1278 1313 } 1279 1314 }, 1280 1315 "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==", 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==", 1284 1319 "cpu": [ 1285 1320 "x64" 1286 1321 ], ··· 1294 1329 } 1295 1330 }, 1296 1331 "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==", 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==", 1300 1335 "license": "MIT", 1301 1336 "dependencies": { 1302 - "@tailwindcss/node": "4.1.14", 1303 - "@tailwindcss/oxide": "4.1.14", 1304 - "tailwindcss": "4.1.14" 1337 + "@tailwindcss/node": "4.1.17", 1338 + "@tailwindcss/oxide": "4.1.17", 1339 + "tailwindcss": "4.1.17" 1305 1340 }, 1306 1341 "peerDependencies": { 1307 1342 "vite": "^5.2.0 || ^6 || ^7" 1308 1343 } 1309 1344 }, 1310 1345 "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==", 1346 + "version": "5.0.6", 1347 + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-5.0.6.tgz", 1348 + "integrity": "sha512-yGxYL0I9eETH1/DR9qVJey4DAsCdeau4a9wYPKuXfEhm8lFO8wg+LLYJjIpAm6Fw7HSlhepPhYPDop75485yWQ==", 1314 1349 "dev": true, 1315 1350 "license": "MIT" 1316 1351 }, ··· 1321 1356 "license": "MIT" 1322 1357 }, 1323 1358 "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==", 1359 + "version": "24.10.1", 1360 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", 1361 + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", 1327 1362 "devOptional": true, 1328 1363 "license": "MIT", 1329 1364 "peer": true, 1330 1365 "dependencies": { 1331 - "undici-types": "~7.14.0" 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" 1332 1379 } 1333 1380 }, 1334 1381 "node_modules/acorn": { ··· 1355 1402 "node": ">= 0.4" 1356 1403 } 1357 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 + }, 1358 1414 "node_modules/await-lock": { 1359 1415 "version": "2.2.2", 1360 1416 "resolved": "https://registry.npmjs.org/await-lock/-/await-lock-2.2.2.tgz", ··· 1371 1427 "node": ">= 0.4" 1372 1428 } 1373 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 + }, 1374 1474 "node_modules/chokidar": { 1375 1475 "version": "4.0.3", 1376 1476 "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", ··· 1387 1487 "url": "https://paulmillr.com/funding/" 1388 1488 } 1389 1489 }, 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 1490 "node_modules/clsx": { 1400 1491 "version": "2.1.1", 1401 1492 "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", ··· 1407 1498 } 1408 1499 }, 1409 1500 "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==", 1501 + "version": "3.47.0", 1502 + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", 1503 + "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", 1413 1504 "hasInstallScript": true, 1414 1505 "license": "MIT", 1415 1506 "funding": { ··· 1454 1545 "node": ">=8" 1455 1546 } 1456 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 + }, 1457 1555 "node_modules/enhanced-resolve": { 1458 1556 "version": "5.18.3", 1459 1557 "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", ··· 1468 1566 } 1469 1567 }, 1470 1568 "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==", 1569 + "version": "0.25.12", 1570 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", 1571 + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", 1474 1572 "hasInstallScript": true, 1475 1573 "license": "MIT", 1476 1574 "bin": { ··· 1480 1578 "node": ">=18" 1481 1579 }, 1482 1580 "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" 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" 1509 1607 } 1510 1608 }, 1511 1609 "node_modules/esm-env": { ··· 1516 1614 "license": "MIT" 1517 1615 }, 1518 1616 "node_modules/esrap": { 1519 - "version": "2.1.0", 1520 - "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.1.0.tgz", 1521 - "integrity": "sha512-yzmPNpl7TBbMRC5Lj2JlJZNPml0tzqoqP5B1JXycNUwtqma9AKCO0M2wHrdgsHcy1WRW7S9rJknAMtByg3usgA==", 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==", 1522 1620 "dev": true, 1523 1621 "license": "MIT", 1524 1622 "dependencies": { 1525 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" 1526 1651 } 1527 1652 }, 1528 1653 "node_modules/fdir": { ··· 1562 1687 "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", 1563 1688 "license": "ISC" 1564 1689 }, 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" 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" 1570 1709 }, 1571 1710 "node_modules/is-reference": { 1572 1711 "version": "3.0.3", ··· 1603 1742 } 1604 1743 }, 1605 1744 "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==", 1745 + "version": "1.30.2", 1746 + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", 1747 + "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", 1609 1748 "license": "MPL-2.0", 1610 1749 "dependencies": { 1611 1750 "detect-libc": "^2.0.3" ··· 1618 1757 "url": "https://opencollective.com/parcel" 1619 1758 }, 1620 1759 "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" 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" 1631 1791 } 1632 1792 }, 1633 1793 "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==", 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==", 1637 1797 "cpu": [ 1638 1798 "arm64" 1639 1799 ], ··· 1651 1811 } 1652 1812 }, 1653 1813 "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==", 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==", 1657 1817 "cpu": [ 1658 1818 "x64" 1659 1819 ], ··· 1671 1831 } 1672 1832 }, 1673 1833 "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==", 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==", 1677 1837 "cpu": [ 1678 1838 "x64" 1679 1839 ], ··· 1691 1851 } 1692 1852 }, 1693 1853 "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==", 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==", 1697 1857 "cpu": [ 1698 1858 "arm" 1699 1859 ], ··· 1711 1871 } 1712 1872 }, 1713 1873 "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==", 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==", 1717 1877 "cpu": [ 1718 1878 "arm64" 1719 1879 ], ··· 1731 1891 } 1732 1892 }, 1733 1893 "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==", 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==", 1737 1897 "cpu": [ 1738 1898 "arm64" 1739 1899 ], ··· 1751 1911 } 1752 1912 }, 1753 1913 "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==", 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==", 1757 1917 "cpu": [ 1758 1918 "x64" 1759 1919 ], ··· 1771 1931 } 1772 1932 }, 1773 1933 "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==", 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==", 1777 1937 "cpu": [ 1778 1938 "x64" 1779 1939 ], ··· 1791 1951 } 1792 1952 }, 1793 1953 "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==", 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==", 1797 1957 "cpu": [ 1798 1958 "arm64" 1799 1959 ], ··· 1811 1971 } 1812 1972 }, 1813 1973 "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==", 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==", 1817 1977 "cpu": [ 1818 1978 "x64" 1819 1979 ], ··· 1844 2004 "license": "ISC" 1845 2005 }, 1846 2006 "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==", 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==", 1850 2010 "license": "MIT", 1851 2011 "dependencies": { 1852 2012 "@jridgewell/sourcemap-codec": "^1.5.5" 1853 2013 } 1854 2014 }, 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 2015 "node_modules/mri": { 1877 2016 "version": "1.2.0", 1878 2017 "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", ··· 1914 2053 "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 1915 2054 } 1916 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 + }, 1917 2065 "node_modules/picocolors": { 1918 2066 "version": "1.1.1", 1919 2067 "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", ··· 1933 2081 "url": "https://github.com/sponsors/jonschlinkert" 1934 2082 } 1935 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 + }, 1936 2122 "node_modules/postcss": { 1937 2123 "version": "8.5.6", 1938 2124 "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", ··· 1961 2147 "node": "^10 || ^12 || >=14" 1962 2148 } 1963 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 + }, 1964 2187 "node_modules/readdirp": { 1965 2188 "version": "4.1.2", 1966 2189 "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", ··· 1973 2196 "funding": { 1974 2197 "type": "individual", 1975 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" 1976 2208 } 1977 2209 }, 1978 2210 "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==", 2211 + "version": "4.53.3", 2212 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", 2213 + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", 1982 2214 "license": "MIT", 1983 2215 "dependencies": { 1984 2216 "@types/estree": "1.0.8" ··· 1991 2223 "npm": ">=8.0.0" 1992 2224 }, 1993 2225 "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", 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", 2016 2248 "fsevents": "~2.3.2" 2017 2249 } 2018 2250 }, ··· 2029 2261 "node": ">=6" 2030 2262 } 2031 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 + }, 2032 2302 "node_modules/source-map-js": { 2033 2303 "version": "1.2.1", 2034 2304 "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", ··· 2038 2308 "node": ">=0.10.0" 2039 2309 } 2040 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 + }, 2041 2329 "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==", 2330 + "version": "5.45.6", 2331 + "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.45.6.tgz", 2332 + "integrity": "sha512-V3aVXthzPyPt1UB1wLEoXnEXpwPsvs7NHrR0xkCor8c11v71VqBj477MClqPZYyrcXrAH21sNGhOj9FJvSwXfQ==", 2045 2333 "dev": true, 2046 2334 "license": "MIT", 2047 2335 "peer": true, ··· 2054 2342 "aria-query": "^5.3.1", 2055 2343 "axobject-query": "^4.1.0", 2056 2344 "clsx": "^2.1.1", 2345 + "devalue": "^5.5.0", 2057 2346 "esm-env": "^1.2.1", 2058 - "esrap": "^2.1.0", 2347 + "esrap": "^2.2.1", 2059 2348 "is-reference": "^3.0.3", 2060 2349 "locate-character": "^3.0.0", 2061 2350 "magic-string": "^0.30.11", ··· 2066 2355 } 2067 2356 }, 2068 2357 "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==", 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==", 2072 2361 "dev": true, 2073 2362 "license": "MIT", 2074 2363 "dependencies": { ··· 2090 2379 } 2091 2380 }, 2092 2381 "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==", 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==", 2096 2385 "license": "MIT" 2097 2386 }, 2098 2387 "node_modules/tapable": { ··· 2108 2397 "url": "https://opencollective.com/webpack" 2109 2398 } 2110 2399 }, 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", 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", 2116 2405 "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" 2406 + "real-require": "^0.2.0" 2125 2407 } 2126 2408 }, 2127 2409 "node_modules/tinyglobby": { ··· 2141 2423 } 2142 2424 }, 2143 2425 "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==", 2426 + "version": "1.261.0", 2427 + "resolved": "https://registry.npmjs.org/tlds/-/tlds-1.261.0.tgz", 2428 + "integrity": "sha512-QXqwfEl9ddlGBaRFXIvNKK6OhipSiLXuRuLJX5DErz0o0Q0rYxulWLdFryTkV5PkdZct5iMInwYEGe/eR++1AA==", 2147 2429 "license": "MIT", 2148 2430 "bin": { 2149 2431 "tlds": "bin.js" 2150 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" 2151 2439 }, 2152 2440 "node_modules/typescript": { 2153 2441 "version": "5.9.3", ··· 2174 2462 } 2175 2463 }, 2176 2464 "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==", 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==", 2180 2468 "devOptional": true, 2181 2469 "license": "MIT" 2182 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 + }, 2183 2477 "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==", 2478 + "version": "7.2.7", 2479 + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.7.tgz", 2480 + "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==", 2187 2481 "license": "MIT", 2188 2482 "peer": true, 2189 2483 "dependencies": { ··· 2273 2567 "vite": { 2274 2568 "optional": true 2275 2569 } 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 2570 } 2286 2571 }, 2287 2572 "node_modules/zimmerframe": {
+3 -1
package.json
··· 19 19 "vite": "^7.1.7" 20 20 }, 21 21 "dependencies": { 22 - "@atproto/api": "^0.17.3", 22 + "@atproto/api": "^0.18.4", 23 + "@atproto/common": "^0.5.2", 24 + "@atproto/common-web": "^0.4.3", 23 25 "@atproto/oauth-client-browser": "^0.3.33", 24 26 "@tailwindcss/vite": "^4.1.14", 25 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 7 import Route from "./components/Route.svelte"; 8 8 import { Router } from "./states/router.svelte"; 9 9 import Index from "./pages/Index.svelte"; 10 + import Comment from "./pages/Comment.svelte"; 10 11 11 12 async function initClient() { 12 13 const result: undefined | { session: OAuthSession; state?: string | null } = ··· 34 35 Session.initialized = true; 35 36 36 37 if (Router.url === "/oauth/callback") { 37 - Router.go("/"); 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 + } 38 50 } 39 51 } 40 52 ··· 47 59 <main> 48 60 <Route url="/login"> 49 61 <Login /> 62 + </Route> 63 + <Route url="/comment"> 64 + <Comment /> 50 65 </Route> 51 66 <Route url="/" auth={true}> 52 67 <Index />
+22 -6
src/at/client.ts
··· 2 2 3 3 const Client = new BrowserOAuthClient({ 4 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"], 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 11 response_types: ["code"], 12 12 application_type: "native", 13 13 token_endpoint_auth_method: "none", ··· 15 15 }, 16 16 handleResolver: "https://bsky.social", 17 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 + // }); 18 34 19 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 12 let { url = "/", children, auth = false } = $props(); 13 13 14 14 $effect(() => { 15 - if (Session.initialized && Session.value === undefined && auth) { 16 - Router.go("/login"); 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()); 17 24 } 18 25 }); 19 26 </script>
+1 -1
src/components/TopBar.svelte
··· 7 7 <div 8 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 9 > 10 - <p class="font-title">Videolia</p> 10 + <p class="font-title">Comments</p> 11 11 <div class="grow"></div> 12 12 13 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 3 import { Client } from "../at/client"; 4 4 import TopBar from "../components/TopBar.svelte"; 5 5 import Button from "../components/Button.svelte"; 6 + 6 7 let handle = $state(""); 7 8 8 9 async function submitForm(e: SubmitEvent) { 9 10 e.preventDefault(); 10 11 11 12 try { 12 - await Client.signIn(handle); 13 + await Client.signIn(handle, { 14 + state: window.location.search, 15 + }); 13 16 } catch (err) { 14 17 console.log(err); 15 18 } ··· 20 23 } 21 24 </script> 22 25 23 - <TopBar /> 24 - 25 26 <div class="flex justify-center items-center w-screen"> 26 27 <form onsubmit={submitForm} class="flex flex-col w-[300px]"> 27 28 <p class="text-center text-neutral-600 mb-2"> 28 - You will need to login manage your videos 29 + Login with your BlueSky handle (or any other PDS) 29 30 </p> 30 31 <input 31 32 type="text"
+1
src/states/session.svelte.ts
··· 5 5 value?: OAuthSession = $state(undefined); 6 6 initialized: boolean = $state(false); 7 7 profile?: ProfileViewDetailed = $state(undefined); 8 + isLogged: boolean = $derived(this.value !== undefined && this.initialized); 8 9 } 9 10 10 11 export const Session = new SessionClass();