diff --git a/bun.lock b/bun.lock index 965188c..e9ae394 100644 --- a/bun.lock +++ b/bun.lock @@ -20,1303 +20,1135 @@ "@tsconfig/node22": "^22.0.0", "@types/markdown-it": "^14.1.2", "@types/node": "^22.13.10", - "electron": "^34.3.2", + "electron": "^34.3.3", "electron-builder": "^25.1.8", "electron-vite": "^3.0.0", - "lightningcss": "^1.29.2", - "sass-embedded": "^1.85.1", + "lightningcss": "^1.29.3", + "sass-embedded": "^1.86.0", "typescript": "~5.6.3", - "vite": "^6.2.1", + "vite": "^6.2.2", }, }, }, "packages": { - "7zip-bin": ["7zip-bin@5.2.0", "", {}, "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A=="], + "7zip-bin": ["7zip-bin@5.2.0", "", {}, ""], - "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], + "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, ""], - "@babel/code-frame": ["@babel/code-frame@7.26.2", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ=="], + "@babel/code-frame": ["@babel/code-frame@7.26.2", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" } }, ""], - "@babel/compat-data": ["@babel/compat-data@7.26.8", "", {}, "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ=="], + "@babel/compat-data": ["@babel/compat-data@7.26.8", "", {}, ""], - "@babel/core": ["@babel/core@7.26.9", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.9", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", "@babel/helpers": "^7.26.9", "@babel/parser": "^7.26.9", "@babel/template": "^7.26.9", "@babel/traverse": "^7.26.9", "@babel/types": "^7.26.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw=="], + "@babel/core": ["@babel/core@7.26.9", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.9", "@babel/helper-compilation-targets": "^7.26.5", "@babel/helper-module-transforms": "^7.26.0", "@babel/helpers": "^7.26.9", "@babel/parser": "^7.26.9", "@babel/template": "^7.26.9", "@babel/traverse": "^7.26.9", "@babel/types": "^7.26.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, ""], - "@babel/generator": ["@babel/generator@7.26.9", "", { "dependencies": { "@babel/parser": "^7.26.9", "@babel/types": "^7.26.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg=="], + "@babel/generator": ["@babel/generator@7.26.9", "", { "dependencies": { "@babel/parser": "^7.26.9", "@babel/types": "^7.26.9", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" } }, ""], - "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.26.5", "", { "dependencies": { "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA=="], + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.26.5", "", { "dependencies": { "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, ""], - "@babel/helper-module-imports": ["@babel/helper-module-imports@7.25.9", "", { "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" } }, "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw=="], + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.25.9", "", { "dependencies": { "@babel/traverse": "^7.25.9", "@babel/types": "^7.25.9" } }, ""], - "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.26.0", "", { "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9", "@babel/traverse": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw=="], + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.26.0", "", { "dependencies": { "@babel/helper-module-imports": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9", "@babel/traverse": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, ""], - "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.26.5", "", {}, "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg=="], + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.26.5", "", {}, ""], - "@babel/helper-string-parser": ["@babel/helper-string-parser@7.25.9", "", {}, "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA=="], + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.25.9", "", {}, ""], - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.25.9", "", {}, "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ=="], + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.25.9", "", {}, ""], - "@babel/helper-validator-option": ["@babel/helper-validator-option@7.25.9", "", {}, "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw=="], + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.25.9", "", {}, ""], - "@babel/helpers": ["@babel/helpers@7.26.9", "", { "dependencies": { "@babel/template": "^7.26.9", "@babel/types": "^7.26.9" } }, "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA=="], + "@babel/helpers": ["@babel/helpers@7.26.9", "", { "dependencies": { "@babel/template": "^7.26.9", "@babel/types": "^7.26.9" } }, ""], - "@babel/parser": ["@babel/parser@7.26.9", "", { "dependencies": { "@babel/types": "^7.26.9" }, "bin": "./bin/babel-parser.js" }, "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A=="], + "@babel/parser": ["@babel/parser@7.26.9", "", { "dependencies": { "@babel/types": "^7.26.9" }, "bin": { "parser": "bin/babel-parser.js" } }, ""], - "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg=="], + "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.25.9", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.25.9" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, ""], - "@babel/template": ["@babel/template@7.26.9", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/parser": "^7.26.9", "@babel/types": "^7.26.9" } }, "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA=="], + "@babel/template": ["@babel/template@7.26.9", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/parser": "^7.26.9", "@babel/types": "^7.26.9" } }, ""], - "@babel/traverse": ["@babel/traverse@7.26.9", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.9", "@babel/parser": "^7.26.9", "@babel/template": "^7.26.9", "@babel/types": "^7.26.9", "debug": "^4.3.1", "globals": "^11.1.0" } }, "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg=="], + "@babel/traverse": ["@babel/traverse@7.26.9", "", { "dependencies": { "@babel/code-frame": "^7.26.2", "@babel/generator": "^7.26.9", "@babel/parser": "^7.26.9", "@babel/template": "^7.26.9", "@babel/types": "^7.26.9", "debug": "^4.3.1", "globals": "^11.1.0" } }, ""], - "@babel/types": ["@babel/types@7.26.9", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw=="], + "@babel/types": ["@babel/types@7.26.9", "", { "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" } }, ""], - "@biomejs/biome": ["@biomejs/biome@1.9.4", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "1.9.4", "@biomejs/cli-darwin-x64": "1.9.4", "@biomejs/cli-linux-arm64": "1.9.4", "@biomejs/cli-linux-arm64-musl": "1.9.4", "@biomejs/cli-linux-x64": "1.9.4", "@biomejs/cli-linux-x64-musl": "1.9.4", "@biomejs/cli-win32-arm64": "1.9.4", "@biomejs/cli-win32-x64": "1.9.4" }, "bin": { "biome": "bin/biome" } }, "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog=="], + "@biomejs/biome": ["@biomejs/biome@1.9.4", "", { "optionalDependencies": { "@biomejs/cli-linux-x64": "1.9.4", "@biomejs/cli-linux-x64-musl": "1.9.4" }, "bin": { "biome": "bin/biome" } }, ""], - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@1.9.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw=="], + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@1.9.4", "", { "os": "linux", "cpu": "x64" }, ""], - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@1.9.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg=="], + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@1.9.4", "", { "os": "linux", "cpu": "x64" }, ""], - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@1.9.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g=="], + "@bufbuild/protobuf": ["@bufbuild/protobuf@2.2.3", "", {}, ""], - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@1.9.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA=="], + "@develar/schema-utils": ["@develar/schema-utils@2.6.5", "", { "dependencies": { "ajv": "^6.12.0", "ajv-keywords": "^3.4.1" } }, ""], - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@1.9.4", "", { "os": "linux", "cpu": "x64" }, "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg=="], + "@electron-toolkit/preload": ["@electron-toolkit/preload@3.0.1", "", { "peerDependencies": { "electron": ">=13.0.0" } }, ""], - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@1.9.4", "", { "os": "linux", "cpu": "x64" }, "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg=="], + "@electron-toolkit/utils": ["@electron-toolkit/utils@4.0.0", "", { "peerDependencies": { "electron": ">=13.0.0" } }, ""], - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@1.9.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg=="], + "@electron/asar": ["@electron/asar@3.3.1", "", { "dependencies": { "commander": "^5.0.0", "glob": "^7.1.6", "minimatch": "^3.0.4" }, "bin": { "asar": "bin/asar.js" } }, ""], - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@1.9.4", "", { "os": "win32", "cpu": "x64" }, "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA=="], + "@electron/get": ["@electron/get@2.0.3", "", { "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", "fs-extra": "^8.1.0", "got": "^11.8.5", "progress": "^2.0.3", "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "optionalDependencies": { "global-agent": "^3.0.0" } }, ""], - "@bufbuild/protobuf": ["@bufbuild/protobuf@2.2.3", "", {}, "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg=="], + "@electron/notarize": ["@electron/notarize@2.5.0", "", { "dependencies": { "debug": "^4.1.1", "fs-extra": "^9.0.1", "promise-retry": "^2.0.1" } }, ""], - "@develar/schema-utils": ["@develar/schema-utils@2.6.5", "", { "dependencies": { "ajv": "^6.12.0", "ajv-keywords": "^3.4.1" } }, "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig=="], + "@electron/osx-sign": ["@electron/osx-sign@1.3.1", "", { "dependencies": { "compare-version": "^0.1.2", "debug": "^4.3.4", "fs-extra": "^10.0.0", "isbinaryfile": "^4.0.8", "minimist": "^1.2.6", "plist": "^3.0.5" }, "bin": { "electron-osx-flat": "bin/electron-osx-flat.js", "electron-osx-sign": "bin/electron-osx-sign.js" } }, ""], - "@electron-toolkit/preload": ["@electron-toolkit/preload@3.0.1", "", { "peerDependencies": { "electron": ">=13.0.0" } }, "sha512-EzoQmpK8jqqU8YnM5jRe0GJjGVJPke2KtANqz8QtN2JPT96ViOvProBdK5C6riCm0j1T8jjAGVQCZLQy9OVoIA=="], + "@electron/rebuild": ["@electron/rebuild@3.6.1", "", { "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", "debug": "^4.1.1", "detect-libc": "^2.0.1", "fs-extra": "^10.0.0", "got": "^11.7.0", "node-abi": "^3.45.0", "node-api-version": "^0.2.0", "node-gyp": "^9.0.0", "ora": "^5.1.0", "read-binary-file-arch": "^1.0.6", "semver": "^7.3.5", "tar": "^6.0.5", "yargs": "^17.0.1" }, "bin": { "electron-rebuild": "lib/cli.js" } }, ""], - "@electron-toolkit/utils": ["@electron-toolkit/utils@4.0.0", "", { "peerDependencies": { "electron": ">=13.0.0" } }, "sha512-qXSntwEzluSzKl4z5yFNBknmPGjPa3zFhE4mp9+h0cgokY5ornAeP+CJQDBhKsL1S58aOQfcwkD3NwLZCl+64g=="], + "@electron/universal": ["@electron/universal@2.0.1", "", { "dependencies": { "@electron/asar": "^3.2.7", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "dir-compare": "^4.2.0", "fs-extra": "^11.1.1", "minimatch": "^9.0.3", "plist": "^3.1.0" } }, ""], - "@electron/asar": ["@electron/asar@3.3.1", "", { "dependencies": { "commander": "^5.0.0", "glob": "^7.1.6", "minimatch": "^3.0.4" }, "bin": { "asar": "bin/asar.js" } }, "sha512-WtpC/+34p0skWZiarRjLAyqaAX78DofhDxnREy/V5XHfu1XEXbFCSSMcDQ6hNCPJFaPy8/NnUgYuf9uiCkvKPg=="], + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.24.2", "", { "os": "linux", "cpu": "x64" }, ""], - "@electron/get": ["@electron/get@2.0.3", "", { "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", "fs-extra": "^8.1.0", "got": "^11.8.5", "progress": "^2.0.3", "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "optionalDependencies": { "global-agent": "^3.0.0" } }, "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ=="], + "@gar/promisify": ["@gar/promisify@1.1.3", "", {}, ""], - "@electron/notarize": ["@electron/notarize@2.5.0", "", { "dependencies": { "debug": "^4.1.1", "fs-extra": "^9.0.1", "promise-retry": "^2.0.1" } }, "sha512-jNT8nwH1f9X5GEITXaQ8IF/KdskvIkOFfB2CvwumsveVidzpSc+mvhhTMdAGSYF3O+Nq49lJ7y+ssODRXu06+A=="], + "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, ""], - "@electron/osx-sign": ["@electron/osx-sign@1.3.1", "", { "dependencies": { "compare-version": "^0.1.2", "debug": "^4.3.4", "fs-extra": "^10.0.0", "isbinaryfile": "^4.0.8", "minimist": "^1.2.6", "plist": "^3.0.5" }, "bin": { "electron-osx-flat": "bin/electron-osx-flat.js", "electron-osx-sign": "bin/electron-osx-sign.js" } }, "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw=="], + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, ""], - "@electron/rebuild": ["@electron/rebuild@3.6.1", "", { "dependencies": { "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", "debug": "^4.1.1", "detect-libc": "^2.0.1", "fs-extra": "^10.0.0", "got": "^11.7.0", "node-abi": "^3.45.0", "node-api-version": "^0.2.0", "node-gyp": "^9.0.0", "ora": "^5.1.0", "read-binary-file-arch": "^1.0.6", "semver": "^7.3.5", "tar": "^6.0.5", "yargs": "^17.0.1" }, "bin": { "electron-rebuild": "lib/cli.js" } }, "sha512-f6596ZHpEq/YskUd8emYvOUne89ij8mQgjYFA5ru25QwbrRO+t1SImofdDv7kKOuWCmVOuU5tvfkbgGxIl3E/w=="], + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, ""], - "@electron/universal": ["@electron/universal@2.0.1", "", { "dependencies": { "@electron/asar": "^3.2.7", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "dir-compare": "^4.2.0", "fs-extra": "^11.1.1", "minimatch": "^9.0.3", "plist": "^3.1.0" } }, "sha512-fKpv9kg4SPmt+hY7SVBnIYULE9QJl8L3sCfcBsnqbJwwBwAeTLokJ9TRt9y7bK0JAzIW2y78TVVjvnQEms/yyA=="], + "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, ""], - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.24.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA=="], + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, ""], - "@esbuild/android-arm": ["@esbuild/android-arm@0.24.2", "", { "os": "android", "cpu": "arm" }, "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q=="], + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, ""], - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.24.2", "", { "os": "android", "cpu": "arm64" }, "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg=="], + "@lit-labs/motion": ["@lit-labs/motion@1.0.8", "", { "dependencies": { "lit": "^3.1.2" } }, ""], - "@esbuild/android-x64": ["@esbuild/android-x64@0.24.2", "", { "os": "android", "cpu": "x64" }, "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw=="], + "@lit-labs/ssr-dom-shim": ["@lit-labs/ssr-dom-shim@1.3.0", "", {}, ""], - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.24.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA=="], + "@lit/reactive-element": ["@lit/reactive-element@2.0.4", "", { "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0" } }, ""], - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.24.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA=="], + "@malept/cross-spawn-promise": ["@malept/cross-spawn-promise@2.0.0", "", { "dependencies": { "cross-spawn": "^7.0.1" } }, ""], - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.24.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg=="], + "@malept/flatpak-bundler": ["@malept/flatpak-bundler@0.4.0", "", { "dependencies": { "debug": "^4.1.1", "fs-extra": "^9.0.0", "lodash": "^4.17.15", "tmp-promise": "^3.0.2" } }, ""], - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.24.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q=="], + "@noble/ciphers": ["@noble/ciphers@1.2.1", "", {}, ""], - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.24.2", "", { "os": "linux", "cpu": "arm" }, "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA=="], + "@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, ""], - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.24.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg=="], + "@noble/hashes": ["@noble/hashes@1.7.1", "", {}, ""], - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.24.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw=="], + "@noble/secp256k1": ["@noble/secp256k1@2.2.3", "", {}, ""], - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ=="], + "@nostr-dev-kit/ndk": ["@nostr-dev-kit/ndk@2.12.2", "", { "dependencies": { "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@noble/secp256k1": "^2.1.0", "@scure/base": "^1.1.9", "debug": "^4.3.6", "light-bolt11-decoder": "^3.2.0", "nostr-tools": "^2.7.1", "tseep": "^1.2.2", "typescript-lru-cache": "^2.0.0", "utf8-buffer": "^1.0.0", "websocket-polyfill": "^0.0.3" } }, ""], - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw=="], + "@nostr/tools": ["@jsr/nostr__tools@2.11.0", "https://npm.jsr.io/~/11/@jsr/nostr__tools/2.11.0.tgz", { "dependencies": { "@noble/ciphers": "^0.5.1", "@noble/curves": "1.2.0", "@noble/hashes": "1.3.1", "@scure/base": "1.1.1", "@scure/bip32": "1.3.1", "@scure/bip39": "1.2.1", "nostr-wasm": "0.1.0" } }, "sha512-0iH7ctKv1clvaI+XyxQrtBBRH+yHh3AC7tse28+L0oRp6tetbZj847bExNMJNjjS6hRsIxHxr1gwWVftPd5WrQ=="], - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.24.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw=="], + "@npmcli/fs": ["@npmcli/fs@2.1.2", "", { "dependencies": { "@gar/promisify": "^1.1.3", "semver": "^7.3.5" } }, ""], - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.24.2", "", { "os": "linux", "cpu": "none" }, "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q=="], + "@npmcli/move-file": ["@npmcli/move-file@2.0.1", "", { "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, ""], - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.24.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw=="], + "@open-wc/lit-helpers": ["@open-wc/lit-helpers@0.7.0", "", { "peerDependencies": { "lit": "^2.0.0 || ^3.0.0" } }, ""], - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.24.2", "", { "os": "linux", "cpu": "x64" }, "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q=="], + "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, ""], - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.24.2", "", { "os": "none", "cpu": "arm64" }, "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw=="], + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.34.8", "", { "os": "linux", "cpu": "x64" }, ""], - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.24.2", "", { "os": "none", "cpu": "x64" }, "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw=="], + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.34.8", "", { "os": "linux", "cpu": "x64" }, ""], - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.24.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A=="], + "@scure/base": ["@scure/base@1.2.4", "", {}, ""], - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.24.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA=="], + "@scure/bip32": ["@scure/bip32@1.3.1", "", { "dependencies": { "@noble/curves": "~1.1.0", "@noble/hashes": "~1.3.1", "@scure/base": "~1.1.0" } }, ""], - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.24.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig=="], + "@scure/bip39": ["@scure/bip39@1.2.1", "", { "dependencies": { "@noble/hashes": "~1.3.0", "@scure/base": "~1.1.0" } }, ""], - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.24.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ=="], + "@sindresorhus/is": ["@sindresorhus/is@4.6.0", "", {}, ""], - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.24.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA=="], + "@std/encoding": ["@jsr/std__encoding@1.0.7", "", {}, ""], - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.24.2", "", { "os": "win32", "cpu": "x64" }, "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg=="], + "@szmarczak/http-timer": ["@szmarczak/http-timer@4.0.6", "", { "dependencies": { "defer-to-connect": "^2.0.0" } }, ""], - "@gar/promisify": ["@gar/promisify@1.1.3", "", {}, "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw=="], + "@tootallnate/once": ["@tootallnate/once@2.0.0", "", {}, ""], - "@isaacs/cliui": ["@isaacs/cliui@8.0.2", "", { "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" } }, "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA=="], + "@tsconfig/node22": ["@tsconfig/node22@22.0.0", "", {}, ""], - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="], + "@types/cacheable-request": ["@types/cacheable-request@6.0.3", "", { "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", "@types/node": "*", "@types/responselike": "^1.0.0" } }, ""], - "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, ""], - "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="], + "@types/estree": ["@types/estree@1.0.6", "", {}, ""], - "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], + "@types/fs-extra": ["@types/fs-extra@9.0.13", "", { "dependencies": { "@types/node": "*" } }, ""], - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], + "@types/http-cache-semantics": ["@types/http-cache-semantics@4.0.4", "", {}, ""], - "@lit-labs/motion": ["@lit-labs/motion@1.0.8", "", { "dependencies": { "lit": "^3.1.2" } }, "sha512-sVwbJtkndmxre7RBKH+kWfHmYpqq2PJQ98RXgSxBAVUaKSLXvXTv9X5m4dhks2R50MUbpSygjEB14KO4tOn48A=="], + "@types/keyv": ["@types/keyv@3.1.4", "", { "dependencies": { "@types/node": "*" } }, ""], - "@lit-labs/ssr-dom-shim": ["@lit-labs/ssr-dom-shim@1.3.0", "", {}, "sha512-nQIWonJ6eFAvUUrSlwyHDm/aE8PBDu5kRpL0vHMg6K8fK3Diq1xdPjTnsJSwxABhaZ+5eBi1btQB5ShUTKo4nQ=="], + "@types/linkify-it": ["@types/linkify-it@5.0.0", "", {}, ""], - "@lit/reactive-element": ["@lit/reactive-element@2.0.4", "", { "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0" } }, "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ=="], + "@types/markdown-it": ["@types/markdown-it@14.1.2", "", { "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" } }, ""], - "@malept/cross-spawn-promise": ["@malept/cross-spawn-promise@2.0.0", "", { "dependencies": { "cross-spawn": "^7.0.1" } }, "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg=="], + "@types/mdurl": ["@types/mdurl@2.0.0", "", {}, ""], - "@malept/flatpak-bundler": ["@malept/flatpak-bundler@0.4.0", "", { "dependencies": { "debug": "^4.1.1", "fs-extra": "^9.0.0", "lodash": "^4.17.15", "tmp-promise": "^3.0.2" } }, "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q=="], + "@types/ms": ["@types/ms@2.1.0", "", {}, ""], - "@noble/ciphers": ["@noble/ciphers@1.2.1", "", {}, "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA=="], + "@types/node": ["@types/node@22.13.10", "", { "dependencies": { "undici-types": "~6.20.0" } }, ""], - "@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + "@types/responselike": ["@types/responselike@1.0.3", "", { "dependencies": { "@types/node": "*" } }, ""], - "@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, ""], - "@noble/secp256k1": ["@noble/secp256k1@2.2.3", "", {}, "sha512-l7r5oEQym9Us7EAigzg30/PQAvynhMt2uoYtT3t26eGDVm9Yii5mZ5jWSWmZ/oSIR2Et0xfc6DXrG0bZ787V3w=="], + "@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, ""], - "@nostr-dev-kit/ndk": ["@nostr-dev-kit/ndk@2.12.2", "", { "dependencies": { "@noble/curves": "^1.6.0", "@noble/hashes": "^1.5.0", "@noble/secp256k1": "^2.1.0", "@scure/base": "^1.1.9", "debug": "^4.3.6", "light-bolt11-decoder": "^3.2.0", "nostr-tools": "^2.7.1", "tseep": "^1.2.2", "typescript-lru-cache": "^2.0.0", "utf8-buffer": "^1.0.0", "websocket-polyfill": "^0.0.3" } }, "sha512-uvautgwbpk3AgddoFpew67/FiaV/zpKwwvSnjCvbE/tAdJBpUUS+VjWR5WfUnJvxTy/ZZpPW+X2TkwVFHhUdvA=="], + "@xmldom/xmldom": ["@xmldom/xmldom@0.8.10", "", {}, ""], - "@nostr/tools": ["@jsr/nostr__tools@2.10.4", "https://npm.jsr.io/~/11/@jsr/nostr__tools/2.10.4.tgz", { "dependencies": { "@noble/ciphers": "^0.5.1", "@noble/curves": "1.2.0", "@noble/hashes": "1.3.1", "@scure/base": "1.1.1", "@scure/bip32": "1.3.1", "@scure/bip39": "1.2.1", "nostr-wasm": "0.1.0" } }, "sha512-vjgefYXVtr6+m+VEBRc1fxnYoL8iVYOSETsWUQNjLn8BA2v8kgQxEvMHHXMLl9cq4/vZXwGpG352rQoF7KqKxw=="], + "abbrev": ["abbrev@1.1.1", "", {}, ""], - "@npmcli/fs": ["@npmcli/fs@2.1.2", "", { "dependencies": { "@gar/promisify": "^1.1.3", "semver": "^7.3.5" } }, "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ=="], + "agent-base": ["agent-base@7.1.3", "", {}, ""], - "@npmcli/move-file": ["@npmcli/move-file@2.0.1", "", { "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" } }, "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ=="], + "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "^1.2.1" } }, ""], - "@open-wc/lit-helpers": ["@open-wc/lit-helpers@0.7.0", "", { "peerDependencies": { "lit": "^2.0.0 || ^3.0.0" } }, "sha512-4NBlx5ve0EvZplCRJbESm0MdMbRCw16alP2y76KAAAwzmFFXXrUj5hFwhw55+sSg5qaRRx6sY+s7usKgnNo3TQ=="], + "aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, ""], - "@pkgjs/parseargs": ["@pkgjs/parseargs@0.11.0", "", {}, "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg=="], + "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, ""], - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.34.8", "", { "os": "android", "cpu": "arm" }, "sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw=="], + "ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, ""], - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.34.8", "", { "os": "android", "cpu": "arm64" }, "sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q=="], + "ansi-regex": ["ansi-regex@5.0.1", "", {}, ""], - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.34.8", "", { "os": "darwin", "cpu": "arm64" }, "sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q=="], + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, ""], - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.34.8", "", { "os": "darwin", "cpu": "x64" }, "sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw=="], + "app-builder-bin": ["app-builder-bin@5.0.0-alpha.10", "", {}, ""], - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.34.8", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA=="], + "app-builder-lib": ["app-builder-lib@25.1.8", "", { "dependencies": { "@develar/schema-utils": "~2.6.5", "@electron/notarize": "2.5.0", "@electron/osx-sign": "1.3.1", "@electron/rebuild": "3.6.1", "@electron/universal": "2.0.1", "@malept/flatpak-bundler": "^0.4.0", "@types/fs-extra": "9.0.13", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", "builder-util": "25.1.7", "builder-util-runtime": "9.2.10", "chromium-pickle-js": "^0.2.0", "config-file-ts": "0.2.8-rc1", "debug": "^4.3.4", "dotenv": "^16.4.5", "dotenv-expand": "^11.0.6", "ejs": "^3.1.8", "electron-publish": "25.1.7", "form-data": "^4.0.0", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", "is-ci": "^3.0.0", "isbinaryfile": "^5.0.0", "js-yaml": "^4.1.0", "json5": "^2.2.3", "lazy-val": "^1.0.5", "minimatch": "^10.0.0", "resedit": "^1.7.0", "sanitize-filename": "^1.6.3", "semver": "^7.3.8", "tar": "^6.1.12", "temp-file": "^3.4.0" }, "peerDependencies": { "dmg-builder": "25.1.8", "electron-builder-squirrel-windows": "25.1.8" } }, ""], - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.34.8", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q=="], + "aproba": ["aproba@2.0.0", "", {}, ""], - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.34.8", "", { "os": "linux", "cpu": "arm" }, "sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g=="], + "archiver": ["archiver@5.3.2", "", { "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.4", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" } }, ""], - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.34.8", "", { "os": "linux", "cpu": "arm" }, "sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA=="], + "archiver-utils": ["archiver-utils@2.1.0", "", { "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", "lodash.difference": "^4.5.0", "lodash.flatten": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" } }, ""], - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.34.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A=="], + "are-we-there-yet": ["are-we-there-yet@3.0.1", "", { "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" } }, ""], - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.34.8", "", { "os": "linux", "cpu": "arm64" }, "sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q=="], + "argparse": ["argparse@2.0.1", "", {}, ""], - "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.34.8", "", { "os": "linux", "cpu": "none" }, "sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ=="], + "async": ["async@3.2.6", "", {}, ""], - "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.34.8", "", { "os": "linux", "cpu": "ppc64" }, "sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw=="], + "async-exit-hook": ["async-exit-hook@2.0.1", "", {}, ""], - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.34.8", "", { "os": "linux", "cpu": "none" }, "sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw=="], + "asynckit": ["asynckit@0.4.0", "", {}, ""], - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.34.8", "", { "os": "linux", "cpu": "s390x" }, "sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA=="], + "at-least-node": ["at-least-node@1.0.0", "", {}, ""], - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.34.8", "", { "os": "linux", "cpu": "x64" }, "sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA=="], + "balanced-match": ["balanced-match@1.0.2", "", {}, ""], - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.34.8", "", { "os": "linux", "cpu": "x64" }, "sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ=="], + "base64-js": ["base64-js@1.5.1", "", {}, ""], - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.34.8", "", { "os": "win32", "cpu": "arm64" }, "sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ=="], + "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, ""], - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.34.8", "", { "os": "win32", "cpu": "ia32" }, "sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w=="], + "bluebird": ["bluebird@3.7.2", "", {}, ""], - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.34.8", "", { "os": "win32", "cpu": "x64" }, "sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g=="], + "bluebird-lst": ["bluebird-lst@1.0.9", "", { "dependencies": { "bluebird": "^3.5.5" } }, ""], - "@scure/base": ["@scure/base@1.2.4", "", {}, "sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ=="], + "boolean": ["boolean@3.2.0", "", {}, ""], - "@scure/bip32": ["@scure/bip32@1.3.1", "", { "dependencies": { "@noble/curves": "~1.1.0", "@noble/hashes": "~1.3.1", "@scure/base": "~1.1.0" } }, "sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A=="], + "brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, ""], - "@scure/bip39": ["@scure/bip39@1.2.1", "", { "dependencies": { "@noble/hashes": "~1.3.0", "@scure/base": "~1.1.0" } }, "sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg=="], + "browserslist": ["browserslist@4.24.4", "", { "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": "cli.js" }, ""], - "@sindresorhus/is": ["@sindresorhus/is@4.6.0", "", {}, "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw=="], + "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, ""], - "@std/encoding": ["@jsr/std__encoding@1.0.7", "https://npm.jsr.io/~/11/@jsr/std__encoding/1.0.7.tgz", {}, "sha512-eySTZkCAHjiKGgOMvhUyTL4aT22svaCO0eO6CAbz48kRECMtRGEfe3KWXkVy4fhlZ/4OTw/RQLrTYyEqpGQp/Q=="], + "buffer-builder": ["buffer-builder@0.2.0", "", {}, ""], - "@szmarczak/http-timer": ["@szmarczak/http-timer@4.0.6", "", { "dependencies": { "defer-to-connect": "^2.0.0" } }, "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w=="], + "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, ""], - "@tootallnate/once": ["@tootallnate/once@2.0.0", "", {}, "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A=="], + "buffer-from": ["buffer-from@1.1.2", "", {}, ""], - "@tsconfig/node22": ["@tsconfig/node22@22.0.0", "", {}, "sha512-twLQ77zevtxobBOD4ToAtVmuYrpeYUh3qh+TEp+08IWhpsrIflVHqQ1F1CiPxQGL7doCdBIOOCF+1Tm833faNg=="], + "bufferutil": ["bufferutil@4.0.9", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, ""], - "@types/cacheable-request": ["@types/cacheable-request@6.0.3", "", { "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", "@types/node": "*", "@types/responselike": "^1.0.0" } }, "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw=="], + "builder-util": ["builder-util@25.1.7", "", { "dependencies": { "7zip-bin": "~5.2.0", "@types/debug": "^4.1.6", "app-builder-bin": "5.0.0-alpha.10", "bluebird-lst": "^1.0.9", "builder-util-runtime": "9.2.10", "chalk": "^4.1.2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "fs-extra": "^10.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", "is-ci": "^3.0.0", "js-yaml": "^4.1.0", "source-map-support": "^0.5.19", "stat-mode": "^1.0.0", "temp-file": "^3.4.0" } }, ""], - "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], + "builder-util-runtime": ["builder-util-runtime@9.2.10", "", { "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" } }, ""], - "@types/estree": ["@types/estree@1.0.6", "", {}, "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw=="], + "cac": ["cac@6.7.14", "", {}, ""], - "@types/fs-extra": ["@types/fs-extra@9.0.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA=="], + "cacache": ["cacache@16.1.3", "", { "dependencies": { "@npmcli/fs": "^2.1.0", "@npmcli/move-file": "^2.0.0", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", "glob": "^8.0.1", "infer-owner": "^1.0.4", "lru-cache": "^7.7.1", "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", "ssri": "^9.0.0", "tar": "^6.1.11", "unique-filename": "^2.0.0" } }, ""], - "@types/http-cache-semantics": ["@types/http-cache-semantics@4.0.4", "", {}, "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA=="], + "cacheable-lookup": ["cacheable-lookup@5.0.4", "", {}, ""], - "@types/keyv": ["@types/keyv@3.1.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg=="], + "cacheable-request": ["cacheable-request@7.0.4", "", { "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", "keyv": "^4.0.0", "lowercase-keys": "^2.0.0", "normalize-url": "^6.0.1", "responselike": "^2.0.0" } }, ""], - "@types/linkify-it": ["@types/linkify-it@5.0.0", "", {}, "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="], + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, ""], - "@types/markdown-it": ["@types/markdown-it@14.1.2", "", { "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" } }, "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog=="], + "caniuse-lite": ["caniuse-lite@1.0.30001700", "", {}, ""], - "@types/mdurl": ["@types/mdurl@2.0.0", "", {}, "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg=="], + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, ""], - "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], + "chownr": ["chownr@2.0.0", "", {}, ""], - "@types/node": ["@types/node@22.13.10", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw=="], + "chromium-pickle-js": ["chromium-pickle-js@0.2.0", "", {}, ""], - "@types/plist": ["@types/plist@3.0.5", "", { "dependencies": { "@types/node": "*", "xmlbuilder": ">=11.0.1" } }, "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA=="], + "ci-info": ["ci-info@3.9.0", "", {}, ""], - "@types/responselike": ["@types/responselike@1.0.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw=="], + "clean-stack": ["clean-stack@2.2.0", "", {}, ""], - "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + "cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, ""], - "@types/verror": ["@types/verror@1.10.10", "", {}, "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg=="], + "cli-spinners": ["cli-spinners@2.9.2", "", {}, ""], - "@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="], + "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, ""], - "@xmldom/xmldom": ["@xmldom/xmldom@0.8.10", "", {}, "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="], + "clone": ["clone@1.0.4", "", {}, ""], - "abbrev": ["abbrev@1.1.1", "", {}, "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="], + "clone-response": ["clone-response@1.0.3", "", { "dependencies": { "mimic-response": "^1.0.0" } }, ""], - "agent-base": ["agent-base@7.1.3", "", {}, "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw=="], + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, ""], - "agentkeepalive": ["agentkeepalive@4.6.0", "", { "dependencies": { "humanize-ms": "^1.2.1" } }, "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ=="], + "color-name": ["color-name@1.1.4", "", {}, ""], - "aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="], + "color-support": ["color-support@1.1.3", "", { "bin": "bin.js" }, ""], - "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + "colorjs.io": ["colorjs.io@0.5.2", "", {}, ""], - "ajv-keywords": ["ajv-keywords@3.5.2", "", { "peerDependencies": { "ajv": "^6.9.1" } }, "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="], + "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, ""], - "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + "commander": ["commander@5.1.0", "", {}, ""], - "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + "compare-version": ["compare-version@0.1.2", "", {}, ""], - "app-builder-bin": ["app-builder-bin@5.0.0-alpha.10", "", {}, "sha512-Ev4jj3D7Bo+O0GPD2NMvJl+PGiBAfS7pUGawntBNpCbxtpncfUixqFj9z9Jme7V7s3LBGqsWZZP54fxBX3JKJw=="], + "compress-commons": ["compress-commons@4.1.2", "", { "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" } }, ""], - "app-builder-lib": ["app-builder-lib@25.1.8", "", { "dependencies": { "@develar/schema-utils": "~2.6.5", "@electron/notarize": "2.5.0", "@electron/osx-sign": "1.3.1", "@electron/rebuild": "3.6.1", "@electron/universal": "2.0.1", "@malept/flatpak-bundler": "^0.4.0", "@types/fs-extra": "9.0.13", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", "builder-util": "25.1.7", "builder-util-runtime": "9.2.10", "chromium-pickle-js": "^0.2.0", "config-file-ts": "0.2.8-rc1", "debug": "^4.3.4", "dotenv": "^16.4.5", "dotenv-expand": "^11.0.6", "ejs": "^3.1.8", "electron-publish": "25.1.7", "form-data": "^4.0.0", "fs-extra": "^10.1.0", "hosted-git-info": "^4.1.0", "is-ci": "^3.0.0", "isbinaryfile": "^5.0.0", "js-yaml": "^4.1.0", "json5": "^2.2.3", "lazy-val": "^1.0.5", "minimatch": "^10.0.0", "resedit": "^1.7.0", "sanitize-filename": "^1.6.3", "semver": "^7.3.8", "tar": "^6.1.12", "temp-file": "^3.4.0" }, "peerDependencies": { "dmg-builder": "25.1.8", "electron-builder-squirrel-windows": "25.1.8" } }, "sha512-pCqe7dfsQFBABC1jeKZXQWhGcCPF3rPCXDdfqVKjIeWBcXzyC1iOWZdfFhGl+S9MyE/k//DFmC6FzuGAUudNDg=="], + "concat-map": ["concat-map@0.0.1", "", {}, ""], - "aproba": ["aproba@2.0.0", "", {}, "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="], + "config-file-ts": ["config-file-ts@0.2.8-rc1", "", { "dependencies": { "glob": "^10.3.12", "typescript": "^5.4.3" } }, ""], - "archiver": ["archiver@5.3.2", "", { "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.4", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", "readdir-glob": "^1.1.2", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" } }, "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw=="], + "console-control-strings": ["console-control-strings@1.1.0", "", {}, ""], - "archiver-utils": ["archiver-utils@2.1.0", "", { "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", "lodash.difference": "^4.5.0", "lodash.flatten": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" } }, "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw=="], + "convert-source-map": ["convert-source-map@2.0.0", "", {}, ""], - "are-we-there-yet": ["are-we-there-yet@3.0.1", "", { "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" } }, "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg=="], + "core-util-is": ["core-util-is@1.0.2", "", {}, ""], - "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + "crc-32": ["crc-32@1.2.2", "", { "bin": { "crc32": "bin/crc32.njs" } }, ""], - "assert-plus": ["assert-plus@1.0.0", "", {}, "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="], + "crc32-stream": ["crc32-stream@4.0.3", "", { "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" } }, ""], - "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="], + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, ""], - "async": ["async@3.2.6", "", {}, "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="], + "d": ["d@1.0.2", "", { "dependencies": { "es5-ext": "^0.10.64", "type": "^2.7.2" } }, ""], - "async-exit-hook": ["async-exit-hook@2.0.1", "", {}, "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw=="], + "debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, ""], - "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], + "decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, ""], - "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], + "defaults": ["defaults@1.0.4", "", { "dependencies": { "clone": "^1.0.2" } }, ""], - "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + "defer-to-connect": ["defer-to-connect@2.0.1", "", {}, ""], - "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, ""], - "bl": ["bl@4.1.0", "", { "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="], + "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, ""], - "bluebird": ["bluebird@3.7.2", "", {}, "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="], + "delayed-stream": ["delayed-stream@1.0.0", "", {}, ""], - "bluebird-lst": ["bluebird-lst@1.0.9", "", { "dependencies": { "bluebird": "^3.5.5" } }, "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw=="], + "delegates": ["delegates@1.0.0", "", {}, ""], - "boolean": ["boolean@3.2.0", "", {}, "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw=="], + "detect-libc": ["detect-libc@2.0.3", "", {}, ""], - "brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="], + "detect-node": ["detect-node@2.1.0", "", {}, ""], - "browserslist": ["browserslist@4.24.4", "", { "dependencies": { "caniuse-lite": "^1.0.30001688", "electron-to-chromium": "^1.5.73", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" } }, "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A=="], + "dir-compare": ["dir-compare@4.2.0", "", { "dependencies": { "minimatch": "^3.0.5", "p-limit": "^3.1.0 " } }, ""], - "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + "dmg-builder": ["dmg-builder@25.1.8", "", { "dependencies": { "app-builder-lib": "25.1.8", "builder-util": "25.1.7", "builder-util-runtime": "9.2.10", "fs-extra": "^10.1.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" } }, ""], - "buffer-builder": ["buffer-builder@0.2.0", "", {}, "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg=="], + "dotenv": ["dotenv@16.4.7", "", {}, ""], - "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], + "dotenv-expand": ["dotenv-expand@11.0.7", "", { "dependencies": { "dotenv": "^16.4.5" } }, ""], - "buffer-from": ["buffer-from@1.1.2", "", {}, "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="], + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, ""], - "bufferutil": ["bufferutil@4.0.9", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw=="], + "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, ""], - "builder-util": ["builder-util@25.1.7", "", { "dependencies": { "7zip-bin": "~5.2.0", "@types/debug": "^4.1.6", "app-builder-bin": "5.0.0-alpha.10", "bluebird-lst": "^1.0.9", "builder-util-runtime": "9.2.10", "chalk": "^4.1.2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "fs-extra": "^10.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.0", "is-ci": "^3.0.0", "js-yaml": "^4.1.0", "source-map-support": "^0.5.19", "stat-mode": "^1.0.0", "temp-file": "^3.4.0" } }, "sha512-7jPjzBwEGRbwNcep0gGNpLXG9P94VA3CPAZQCzxkFXiV2GMQKlziMbY//rXPI7WKfhsvGgFXjTcXdBEwgXw9ww=="], + "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": "bin/cli.js" }, ""], - "builder-util-runtime": ["builder-util-runtime@9.2.10", "", { "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" } }, "sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw=="], + "electron": ["electron@34.3.3", "", { "dependencies": { "@electron/get": "^2.0.0", "@types/node": "^20.9.0", "extract-zip": "^2.0.1" }, "bin": { "electron": "cli.js" } }, "sha512-7m1FiO1mwc1K/UqqnnkG7Ik/kAngDzmLfHwcl+xaWgCQ+Sts9rlEqzOh6g1GHhDqebrbs4bO/aU+NDi32fCciQ=="], - "cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="], + "electron-builder": ["electron-builder@25.1.8", "", { "dependencies": { "app-builder-lib": "25.1.8", "builder-util": "25.1.7", "builder-util-runtime": "9.2.10", "chalk": "^4.1.2", "dmg-builder": "25.1.8", "fs-extra": "^10.1.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", "simple-update-notifier": "2.0.0", "yargs": "^17.6.2" }, "bin": { "electron-builder": "cli.js", "install-app-deps": "install-app-deps.js" } }, ""], - "cacache": ["cacache@16.1.3", "", { "dependencies": { "@npmcli/fs": "^2.1.0", "@npmcli/move-file": "^2.0.0", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", "glob": "^8.0.1", "infer-owner": "^1.0.4", "lru-cache": "^7.7.1", "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "mkdirp": "^1.0.4", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", "ssri": "^9.0.0", "tar": "^6.1.11", "unique-filename": "^2.0.0" } }, "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ=="], + "electron-builder-squirrel-windows": ["electron-builder-squirrel-windows@25.1.8", "", { "dependencies": { "app-builder-lib": "25.1.8", "archiver": "^5.3.1", "builder-util": "25.1.7", "fs-extra": "^10.1.0" } }, ""], - "cacheable-lookup": ["cacheable-lookup@5.0.4", "", {}, "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA=="], + "electron-publish": ["electron-publish@25.1.7", "", { "dependencies": { "@types/fs-extra": "^9.0.11", "builder-util": "25.1.7", "builder-util-runtime": "9.2.10", "chalk": "^4.1.2", "fs-extra": "^10.1.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" } }, ""], - "cacheable-request": ["cacheable-request@7.0.4", "", { "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", "keyv": "^4.0.0", "lowercase-keys": "^2.0.0", "normalize-url": "^6.0.1", "responselike": "^2.0.0" } }, "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg=="], + "electron-to-chromium": ["electron-to-chromium@1.5.103", "", {}, ""], - "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + "electron-vite": ["electron-vite@3.0.0", "", { "dependencies": { "@babel/core": "^7.26.0", "@babel/plugin-transform-arrow-functions": "^7.25.9", "cac": "^6.7.14", "esbuild": "^0.24.2", "magic-string": "^0.30.17", "picocolors": "^1.1.1" }, "peerDependencies": { "@swc/core": "^1.0.0", "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["@swc/core"], "bin": "bin/electron-vite.js" }, ""], - "caniuse-lite": ["caniuse-lite@1.0.30001700", "", {}, "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ=="], + "emoji-regex": ["emoji-regex@8.0.0", "", {}, ""], - "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + "encoding": ["encoding@0.1.13", "", { "dependencies": { "iconv-lite": "^0.6.2" } }, ""], - "chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], + "end-of-stream": ["end-of-stream@1.4.4", "", { "dependencies": { "once": "^1.4.0" } }, ""], - "chromium-pickle-js": ["chromium-pickle-js@0.2.0", "", {}, "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw=="], + "entities": ["entities@4.5.0", "", {}, ""], - "ci-info": ["ci-info@3.9.0", "", {}, "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ=="], + "env-paths": ["env-paths@2.2.1", "", {}, ""], - "clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="], + "err-code": ["err-code@2.0.3", "", {}, ""], - "cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], + "es-define-property": ["es-define-property@1.0.1", "", {}, ""], - "cli-spinners": ["cli-spinners@2.9.2", "", {}, "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg=="], + "es-errors": ["es-errors@1.3.0", "", {}, ""], - "cli-truncate": ["cli-truncate@2.1.0", "", { "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" } }, "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg=="], + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, ""], - "cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="], + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, ""], - "clone": ["clone@1.0.4", "", {}, "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg=="], + "es5-ext": ["es5-ext@0.10.64", "", { "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", "esniff": "^2.0.1", "next-tick": "^1.1.0" } }, ""], - "clone-response": ["clone-response@1.0.3", "", { "dependencies": { "mimic-response": "^1.0.0" } }, "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA=="], + "es6-error": ["es6-error@4.1.1", "", {}, ""], - "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + "es6-iterator": ["es6-iterator@2.0.3", "", { "dependencies": { "d": "1", "es5-ext": "^0.10.35", "es6-symbol": "^3.1.1" } }, ""], - "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + "es6-symbol": ["es6-symbol@3.1.4", "", { "dependencies": { "d": "^1.0.2", "ext": "^1.7.0" } }, ""], - "color-support": ["color-support@1.1.3", "", { "bin": { "color-support": "bin.js" } }, "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="], + "esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/linux-x64": "0.24.2" }, "bin": "bin/esbuild" }, ""], - "colorjs.io": ["colorjs.io@0.5.2", "", {}, "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw=="], + "escalade": ["escalade@3.2.0", "", {}, ""], - "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, ""], - "commander": ["commander@5.1.0", "", {}, "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="], + "esniff": ["esniff@2.0.1", "", { "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", "event-emitter": "^0.3.5", "type": "^2.7.2" } }, ""], - "compare-version": ["compare-version@0.1.2", "", {}, "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A=="], + "event-emitter": ["event-emitter@0.3.5", "", { "dependencies": { "d": "1", "es5-ext": "~0.10.14" } }, ""], - "compress-commons": ["compress-commons@4.1.2", "", { "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" } }, "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg=="], + "exponential-backoff": ["exponential-backoff@3.1.2", "", {}, ""], - "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + "ext": ["ext@1.7.0", "", { "dependencies": { "type": "^2.7.2" } }, ""], - "config-file-ts": ["config-file-ts@0.2.8-rc1", "", { "dependencies": { "glob": "^10.3.12", "typescript": "^5.4.3" } }, "sha512-GtNECbVI82bT4RiDIzBSVuTKoSHufnU7Ce7/42bkWZJZFLjmDF2WBpVsvRkhKCfKBnTBb3qZrBwPpFBU/Myvhg=="], + "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": "cli.js" }, ""], - "console-control-strings": ["console-control-strings@1.1.0", "", {}, "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="], + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, ""], - "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, ""], - "core-util-is": ["core-util-is@1.0.2", "", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="], + "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, ""], - "crc": ["crc@3.8.0", "", { "dependencies": { "buffer": "^5.1.0" } }, "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ=="], + "filelist": ["filelist@1.0.4", "", { "dependencies": { "minimatch": "^5.0.1" } }, ""], - "crc-32": ["crc-32@1.2.2", "", { "bin": { "crc32": "bin/crc32.njs" } }, "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="], + "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, ""], - "crc32-stream": ["crc32-stream@4.0.3", "", { "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" } }, "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw=="], + "form-data": ["form-data@4.0.2", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" } }, ""], - "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + "fs-constants": ["fs-constants@1.0.0", "", {}, ""], - "d": ["d@1.0.2", "", { "dependencies": { "es5-ext": "^0.10.64", "type": "^2.7.2" } }, "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw=="], + "fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, ""], - "debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], + "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, ""], - "decompress-response": ["decompress-response@6.0.0", "", { "dependencies": { "mimic-response": "^3.1.0" } }, "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="], - - "defaults": ["defaults@1.0.4", "", { "dependencies": { "clone": "^1.0.2" } }, "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A=="], - - "defer-to-connect": ["defer-to-connect@2.0.1", "", {}, "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="], - - "define-data-property": ["define-data-property@1.1.4", "", { "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" } }, "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A=="], - - "define-properties": ["define-properties@1.2.1", "", { "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" } }, "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg=="], - - "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], - - "delegates": ["delegates@1.0.0", "", {}, "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="], - - "detect-libc": ["detect-libc@2.0.3", "", {}, "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw=="], - - "detect-node": ["detect-node@2.1.0", "", {}, "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="], - - "dir-compare": ["dir-compare@4.2.0", "", { "dependencies": { "minimatch": "^3.0.5", "p-limit": "^3.1.0 " } }, "sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ=="], - - "dmg-builder": ["dmg-builder@25.1.8", "", { "dependencies": { "app-builder-lib": "25.1.8", "builder-util": "25.1.7", "builder-util-runtime": "9.2.10", "fs-extra": "^10.1.0", "iconv-lite": "^0.6.2", "js-yaml": "^4.1.0" }, "optionalDependencies": { "dmg-license": "^1.0.11" } }, "sha512-NoXo6Liy2heSklTI5OIZbCgXC1RzrDQsZkeEwXhdOro3FT1VBOvbubvscdPnjVuQ4AMwwv61oaH96AbiYg9EnQ=="], - - "dmg-license": ["dmg-license@1.0.11", "", { "dependencies": { "@types/plist": "^3.0.1", "@types/verror": "^1.10.3", "ajv": "^6.10.0", "crc": "^3.8.0", "iconv-corefoundation": "^1.1.7", "plist": "^3.0.4", "smart-buffer": "^4.0.2", "verror": "^1.10.0" }, "os": "darwin", "bin": { "dmg-license": "bin/dmg-license.js" } }, "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q=="], - - "dotenv": ["dotenv@16.4.7", "", {}, "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ=="], - - "dotenv-expand": ["dotenv-expand@11.0.7", "", { "dependencies": { "dotenv": "^16.4.5" } }, "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA=="], - - "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], - - "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="], - - "ejs": ["ejs@3.1.10", "", { "dependencies": { "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" } }, "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA=="], - - "electron": ["electron@34.3.2", "", { "dependencies": { "@electron/get": "^2.0.0", "@types/node": "^20.9.0", "extract-zip": "^2.0.1" }, "bin": { "electron": "cli.js" } }, "sha512-n9tzmFexVLxipZXwMTY30H10f0X9k2OP0SkpSwL5VvnDZi0l/Hc+8CEArKkQPbbSf/IS7nxgc96gtTaR+XoSBg=="], - - "electron-builder": ["electron-builder@25.1.8", "", { "dependencies": { "app-builder-lib": "25.1.8", "builder-util": "25.1.7", "builder-util-runtime": "9.2.10", "chalk": "^4.1.2", "dmg-builder": "25.1.8", "fs-extra": "^10.1.0", "is-ci": "^3.0.0", "lazy-val": "^1.0.5", "simple-update-notifier": "2.0.0", "yargs": "^17.6.2" }, "bin": { "electron-builder": "cli.js", "install-app-deps": "install-app-deps.js" } }, "sha512-poRgAtUHHOnlzZnc9PK4nzG53xh74wj2Jy7jkTrqZ0MWPoHGh1M2+C//hGeYdA+4K8w4yiVCNYoLXF7ySj2Wig=="], - - "electron-builder-squirrel-windows": ["electron-builder-squirrel-windows@25.1.8", "", { "dependencies": { "app-builder-lib": "25.1.8", "archiver": "^5.3.1", "builder-util": "25.1.7", "fs-extra": "^10.1.0" } }, "sha512-2ntkJ+9+0GFP6nAISiMabKt6eqBB0kX1QqHNWFWAXgi0VULKGisM46luRFpIBiU3u/TDmhZMM8tzvo2Abn3ayg=="], - - "electron-publish": ["electron-publish@25.1.7", "", { "dependencies": { "@types/fs-extra": "^9.0.11", "builder-util": "25.1.7", "builder-util-runtime": "9.2.10", "chalk": "^4.1.2", "fs-extra": "^10.1.0", "lazy-val": "^1.0.5", "mime": "^2.5.2" } }, "sha512-+jbTkR9m39eDBMP4gfbqglDd6UvBC7RLh5Y0MhFSsc6UkGHj9Vj9TWobxevHYMMqmoujL11ZLjfPpMX+Pt6YEg=="], - - "electron-to-chromium": ["electron-to-chromium@1.5.103", "", {}, "sha512-P6+XzIkfndgsrjROJWfSvVEgNHtPgbhVyTkwLjUM2HU/h7pZRORgaTlHqfAikqxKmdJMLW8fftrdGWbd/Ds0FA=="], - - "electron-vite": ["electron-vite@3.0.0", "", { "dependencies": { "@babel/core": "^7.26.0", "@babel/plugin-transform-arrow-functions": "^7.25.9", "cac": "^6.7.14", "esbuild": "^0.24.2", "magic-string": "^0.30.17", "picocolors": "^1.1.1" }, "peerDependencies": { "@swc/core": "^1.0.0", "vite": "^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["@swc/core"], "bin": { "electron-vite": "bin/electron-vite.js" } }, "sha512-Uf8NpF4OB2Juo1Vq8pobkLVp9BZTO70VwkW7fKXSCkod0SRkc7Dkw7ddR6b1fbsgT7lcZ0HD29WRxsCcbkHXUw=="], - - "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], - - "encoding": ["encoding@0.1.13", "", { "dependencies": { "iconv-lite": "^0.6.2" } }, "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A=="], - - "end-of-stream": ["end-of-stream@1.4.4", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="], - - "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], - - "env-paths": ["env-paths@2.2.1", "", {}, "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A=="], - - "err-code": ["err-code@2.0.3", "", {}, "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA=="], - - "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], - - "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], - - "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], - - "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], - - "es5-ext": ["es5-ext@0.10.64", "", { "dependencies": { "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.3", "esniff": "^2.0.1", "next-tick": "^1.1.0" } }, "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg=="], - - "es6-error": ["es6-error@4.1.1", "", {}, "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg=="], - - "es6-iterator": ["es6-iterator@2.0.3", "", { "dependencies": { "d": "1", "es5-ext": "^0.10.35", "es6-symbol": "^3.1.1" } }, "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g=="], - - "es6-symbol": ["es6-symbol@3.1.4", "", { "dependencies": { "d": "^1.0.2", "ext": "^1.7.0" } }, "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg=="], - - "esbuild": ["esbuild@0.24.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.24.2", "@esbuild/android-arm": "0.24.2", "@esbuild/android-arm64": "0.24.2", "@esbuild/android-x64": "0.24.2", "@esbuild/darwin-arm64": "0.24.2", "@esbuild/darwin-x64": "0.24.2", "@esbuild/freebsd-arm64": "0.24.2", "@esbuild/freebsd-x64": "0.24.2", "@esbuild/linux-arm": "0.24.2", "@esbuild/linux-arm64": "0.24.2", "@esbuild/linux-ia32": "0.24.2", "@esbuild/linux-loong64": "0.24.2", "@esbuild/linux-mips64el": "0.24.2", "@esbuild/linux-ppc64": "0.24.2", "@esbuild/linux-riscv64": "0.24.2", "@esbuild/linux-s390x": "0.24.2", "@esbuild/linux-x64": "0.24.2", "@esbuild/netbsd-arm64": "0.24.2", "@esbuild/netbsd-x64": "0.24.2", "@esbuild/openbsd-arm64": "0.24.2", "@esbuild/openbsd-x64": "0.24.2", "@esbuild/sunos-x64": "0.24.2", "@esbuild/win32-arm64": "0.24.2", "@esbuild/win32-ia32": "0.24.2", "@esbuild/win32-x64": "0.24.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA=="], - - "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], - - "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], - - "esniff": ["esniff@2.0.1", "", { "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.62", "event-emitter": "^0.3.5", "type": "^2.7.2" } }, "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg=="], - - "event-emitter": ["event-emitter@0.3.5", "", { "dependencies": { "d": "1", "es5-ext": "~0.10.14" } }, "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA=="], - - "exponential-backoff": ["exponential-backoff@3.1.2", "", {}, "sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA=="], - - "ext": ["ext@1.7.0", "", { "dependencies": { "type": "^2.7.2" } }, "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw=="], - - "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], - - "extsprintf": ["extsprintf@1.4.1", "", {}, "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA=="], - - "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], - - "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], - - "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], - - "filelist": ["filelist@1.0.4", "", { "dependencies": { "minimatch": "^5.0.1" } }, "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q=="], - - "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], - - "form-data": ["form-data@4.0.2", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "mime-types": "^2.1.12" } }, "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w=="], - - "fs-constants": ["fs-constants@1.0.0", "", {}, "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="], - - "fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], - - "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="], - - "fs.realpath": ["fs.realpath@1.0.0", "", {}, "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="], + "fs.realpath": ["fs.realpath@1.0.0", "", {}, ""], "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], - "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + "function-bind": ["function-bind@1.1.2", "", {}, ""], - "gauge": ["gauge@4.0.4", "", { "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", "has-unicode": "^2.0.1", "signal-exit": "^3.0.7", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" } }, "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg=="], + "gauge": ["gauge@4.0.4", "", { "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", "has-unicode": "^2.0.1", "signal-exit": "^3.0.7", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" } }, ""], - "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], + "gensync": ["gensync@1.0.0-beta.2", "", {}, ""], - "get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="], + "get-caller-file": ["get-caller-file@2.0.5", "", {}, ""], - "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, ""], - "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, ""], - "get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], + "get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, ""], - "glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" } }, "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg=="], + "glob": ["glob@10.4.5", "", { "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", "minimatch": "^9.0.4", "minipass": "^7.1.2", "package-json-from-dist": "^1.0.0", "path-scurry": "^1.11.1" }, "bin": "dist/esm/bin.mjs" }, ""], - "global-agent": ["global-agent@3.0.0", "", { "dependencies": { "boolean": "^3.0.1", "es6-error": "^4.1.1", "matcher": "^3.0.0", "roarr": "^2.15.3", "semver": "^7.3.2", "serialize-error": "^7.0.1" } }, "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q=="], + "global-agent": ["global-agent@3.0.0", "", { "dependencies": { "boolean": "^3.0.1", "es6-error": "^4.1.1", "matcher": "^3.0.0", "roarr": "^2.15.3", "semver": "^7.3.2", "serialize-error": "^7.0.1" } }, ""], - "globals": ["globals@11.12.0", "", {}, "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="], + "globals": ["globals@11.12.0", "", {}, ""], - "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], + "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, ""], - "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + "gopd": ["gopd@1.2.0", "", {}, ""], - "got": ["got@11.8.6", "", { "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", "p-cancelable": "^2.0.0", "responselike": "^2.0.0" } }, "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g=="], + "got": ["got@11.8.6", "", { "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", "@types/cacheable-request": "^6.0.1", "@types/responselike": "^1.0.0", "cacheable-lookup": "^5.0.3", "cacheable-request": "^7.0.2", "decompress-response": "^6.0.0", "http2-wrapper": "^1.0.0-beta.5.2", "lowercase-keys": "^2.0.0", "p-cancelable": "^2.0.0", "responselike": "^2.0.0" } }, ""], - "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + "graceful-fs": ["graceful-fs@4.2.11", "", {}, ""], - "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + "has-flag": ["has-flag@4.0.0", "", {}, ""], - "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg=="], + "has-property-descriptors": ["has-property-descriptors@1.0.2", "", { "dependencies": { "es-define-property": "^1.0.0" } }, ""], - "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + "has-symbols": ["has-symbols@1.1.0", "", {}, ""], - "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, ""], - "has-unicode": ["has-unicode@2.0.1", "", {}, "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="], + "has-unicode": ["has-unicode@2.0.1", "", {}, ""], - "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, ""], - "hosted-git-info": ["hosted-git-info@4.1.0", "", { "dependencies": { "lru-cache": "^6.0.0" } }, "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA=="], + "hosted-git-info": ["hosted-git-info@4.1.0", "", { "dependencies": { "lru-cache": "^6.0.0" } }, ""], - "http-cache-semantics": ["http-cache-semantics@4.1.1", "", {}, "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="], + "http-cache-semantics": ["http-cache-semantics@4.1.1", "", {}, ""], - "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig=="], + "http-proxy-agent": ["http-proxy-agent@7.0.2", "", { "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" } }, ""], - "http2-wrapper": ["http2-wrapper@1.0.3", "", { "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" } }, "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg=="], + "http2-wrapper": ["http2-wrapper@1.0.3", "", { "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" } }, ""], - "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], + "https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, ""], - "humanize-ms": ["humanize-ms@1.2.1", "", { "dependencies": { "ms": "^2.0.0" } }, "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ=="], + "humanize-ms": ["humanize-ms@1.2.1", "", { "dependencies": { "ms": "^2.0.0" } }, ""], - "iconv-corefoundation": ["iconv-corefoundation@1.1.7", "", { "dependencies": { "cli-truncate": "^2.1.0", "node-addon-api": "^1.6.3" }, "os": "darwin" }, "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ=="], + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, ""], - "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], + "ieee754": ["ieee754@1.2.1", "", {}, ""], - "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + "immutable": ["immutable@5.0.3", "", {}, ""], - "immutable": ["immutable@5.0.3", "", {}, "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw=="], + "imurmurhash": ["imurmurhash@0.1.4", "", {}, ""], - "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + "indent-string": ["indent-string@4.0.0", "", {}, ""], - "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], + "infer-owner": ["infer-owner@1.0.4", "", {}, ""], - "infer-owner": ["infer-owner@1.0.4", "", {}, "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A=="], + "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, ""], - "inflight": ["inflight@1.0.6", "", { "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="], + "inherits": ["inherits@2.0.4", "", {}, ""], - "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="], + "ip-address": ["ip-address@9.0.5", "", { "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" } }, ""], - "ip-address": ["ip-address@9.0.5", "", { "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" } }, "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g=="], + "is-ci": ["is-ci@3.0.1", "", { "dependencies": { "ci-info": "^3.2.0" }, "bin": "bin.js" }, ""], - "is-ci": ["is-ci@3.0.1", "", { "dependencies": { "ci-info": "^3.2.0" }, "bin": { "is-ci": "bin.js" } }, "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ=="], + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, ""], - "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + "is-interactive": ["is-interactive@1.0.0", "", {}, ""], - "is-interactive": ["is-interactive@1.0.0", "", {}, "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="], + "is-lambda": ["is-lambda@1.0.1", "", {}, ""], - "is-lambda": ["is-lambda@1.0.1", "", {}, "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ=="], + "is-typedarray": ["is-typedarray@1.0.0", "", {}, ""], - "is-typedarray": ["is-typedarray@1.0.0", "", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="], + "is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, ""], - "is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], + "isarray": ["isarray@1.0.0", "", {}, ""], - "isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="], + "isbinaryfile": ["isbinaryfile@5.0.4", "", {}, ""], - "isbinaryfile": ["isbinaryfile@5.0.4", "", {}, "sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ=="], + "isexe": ["isexe@2.0.0", "", {}, ""], - "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, ""], - "jackspeak": ["jackspeak@3.4.3", "", { "dependencies": { "@isaacs/cliui": "^8.0.2" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw=="], + "jake": ["jake@10.9.2", "", { "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", "filelist": "^1.0.4", "minimatch": "^3.1.2" }, "bin": "bin/cli.js" }, ""], - "jake": ["jake@10.9.2", "", { "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", "filelist": "^1.0.4", "minimatch": "^3.1.2" }, "bin": { "jake": "bin/cli.js" } }, "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA=="], + "js-tokens": ["js-tokens@4.0.0", "", {}, ""], - "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], + "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": "bin/js-yaml.js" }, ""], - "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + "jsbn": ["jsbn@1.1.0", "", {}, ""], - "jsbn": ["jsbn@1.1.0", "", {}, "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="], + "jsesc": ["jsesc@3.1.0", "", { "bin": "bin/jsesc" }, ""], - "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], + "json-buffer": ["json-buffer@3.0.1", "", {}, ""], - "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, ""], - "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, ""], - "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="], + "json5": ["json5@2.2.3", "", { "bin": "lib/cli.js" }, ""], - "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], + "jsonfile": ["jsonfile@6.1.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, ""], - "jsonfile": ["jsonfile@6.1.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ=="], + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, ""], - "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + "lazy-val": ["lazy-val@1.0.5", "", {}, ""], - "lazy-val": ["lazy-val@1.0.5", "", {}, "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q=="], + "lazystream": ["lazystream@1.0.1", "", { "dependencies": { "readable-stream": "^2.0.5" } }, ""], - "lazystream": ["lazystream@1.0.1", "", { "dependencies": { "readable-stream": "^2.0.5" } }, "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw=="], + "light-bolt11-decoder": ["light-bolt11-decoder@3.2.0", "", { "dependencies": { "@scure/base": "1.1.1" } }, ""], - "light-bolt11-decoder": ["light-bolt11-decoder@3.2.0", "", { "dependencies": { "@scure/base": "1.1.1" } }, "sha512-3QEofgiBOP4Ehs9BI+RkZdXZNtSys0nsJ6fyGeSiAGCBsMwHGUDS/JQlY/sTnWs91A2Nh0S9XXfA8Sy9g6QpuQ=="], + "lightningcss": ["lightningcss@1.29.3", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.29.3", "lightningcss-darwin-x64": "1.29.3", "lightningcss-freebsd-x64": "1.29.3", "lightningcss-linux-arm-gnueabihf": "1.29.3", "lightningcss-linux-arm64-gnu": "1.29.3", "lightningcss-linux-arm64-musl": "1.29.3", "lightningcss-linux-x64-gnu": "1.29.3", "lightningcss-linux-x64-musl": "1.29.3", "lightningcss-win32-arm64-msvc": "1.29.3", "lightningcss-win32-x64-msvc": "1.29.3" } }, "sha512-GlOJwTIP6TMIlrTFsxTerwC0W6OpQpCGuX1ECRLBUVRh6fpJH3xTqjCjRgQHTb4ZXexH9rtHou1Lf03GKzmhhQ=="], - "lightningcss": ["lightningcss@1.29.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.29.2", "lightningcss-darwin-x64": "1.29.2", "lightningcss-freebsd-x64": "1.29.2", "lightningcss-linux-arm-gnueabihf": "1.29.2", "lightningcss-linux-arm64-gnu": "1.29.2", "lightningcss-linux-arm64-musl": "1.29.2", "lightningcss-linux-x64-gnu": "1.29.2", "lightningcss-linux-x64-musl": "1.29.2", "lightningcss-win32-arm64-msvc": "1.29.2", "lightningcss-win32-x64-msvc": "1.29.2" } }, "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA=="], + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.29.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-fb7raKO3pXtlNbQbiMeEu8RbBVHnpyqAoxTyTRMEWFQWmscGC2wZxoHzZ+YKAepUuKT9uIW5vL2QbFivTgprZg=="], - "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.29.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA=="], + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.29.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-KF2XZ4ZdmDGGtEYmx5wpzn6u8vg7AdBHaEOvDKu8GOs7xDL/vcU2vMKtTeNe1d4dogkDdi3B9zC77jkatWBwEQ=="], - "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.29.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w=="], + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.29.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-VUWeVf+V1UM54jv9M4wen9vMlIAyT69Krl9XjI8SsRxz4tdNV/7QEPlW6JASev/pYdiynUCW0pwaFquDRYdxMw=="], - "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.29.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg=="], + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.29.3", "", { "os": "linux", "cpu": "arm" }, "sha512-UhgZ/XVNfXQVEJrMIWeK1Laj8KbhjbIz7F4znUk7G4zeGw7TRoJxhb66uWrEsonn1+O45w//0i0Fu0wIovYdYg=="], - "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.29.2", "", { "os": "linux", "cpu": "arm" }, "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg=="], + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.29.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-Pqau7jtgJNmQ/esugfmAT1aCFy/Gxc92FOxI+3n+LbMHBheBnk41xHDhc0HeYlx9G0xP5tK4t0Koy3QGGNqypw=="], - "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.29.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ=="], + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.29.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-dxakOk66pf7KLS7VRYFO7B8WOJLecE5OPL2YOk52eriFd/yeyxt2Km5H0BjLfElokIaR+qWi33gB8MQLrdAY3A=="], - "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.29.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ=="], + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.29.3", "", { "os": "linux", "cpu": "x64" }, "sha512-ySZTNCpbfbK8rqpKJeJR2S0g/8UqqV3QnzcuWvpI60LWxnFN91nxpSSwCbzfOXkzKfar9j5eOuOplf+klKtINg=="], - "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.29.2", "", { "os": "linux", "cpu": "x64" }, "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg=="], + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.29.3", "", { "os": "linux", "cpu": "x64" }, "sha512-3pVZhIzW09nzi10usAXfIGTTSTYQ141dk88vGFNCgawIzayiIzZQxEcxVtIkdvlEq2YuFsL9Wcj/h61JHHzuFQ=="], - "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.29.2", "", { "os": "linux", "cpu": "x64" }, "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w=="], + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.29.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-VRnkAvtIkeWuoBJeGOTrZxsNp4HogXtcaaLm8agmbYtLDOhQdpgxW6NjZZjDXbvGF+eOehGulXZ3C1TiwHY4QQ=="], - "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.29.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw=="], + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.29.3", "", { "os": "win32", "cpu": "x64" }, "sha512-IszwRPu2cPnDQsZpd7/EAr0x2W7jkaWqQ1SwCVIZ/tSbZVXPLt6k8s6FkcyBjViCzvB5CW0We0QbbP7zp2aBjQ=="], - "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.29.2", "", { "os": "win32", "cpu": "x64" }, "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA=="], + "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, ""], - "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="], + "lit": ["lit@3.2.1", "", { "dependencies": { "@lit/reactive-element": "^2.0.4", "lit-element": "^4.1.0", "lit-html": "^3.2.0" } }, ""], - "lit": ["lit@3.2.1", "", { "dependencies": { "@lit/reactive-element": "^2.0.4", "lit-element": "^4.1.0", "lit-html": "^3.2.0" } }, "sha512-1BBa1E/z0O9ye5fZprPtdqnc0BFzxIxTTOO/tQFmyC/hj1O3jL4TfmLBw0WEwjAokdLwpclkvGgDJwTIh0/22w=="], + "lit-element": ["lit-element@4.1.1", "", { "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", "lit-html": "^3.2.0" } }, ""], - "lit-element": ["lit-element@4.1.1", "", { "dependencies": { "@lit-labs/ssr-dom-shim": "^1.2.0", "@lit/reactive-element": "^2.0.4", "lit-html": "^3.2.0" } }, "sha512-HO9Tkkh34QkTeUmEdNYhMT8hzLid7YlMlATSi1q4q17HE5d9mrrEHJ/o8O2D0cMi182zK1F3v7x0PWFjrhXFew=="], + "lit-html": ["lit-html@3.2.1", "", { "dependencies": { "@types/trusted-types": "^2.0.2" } }, ""], - "lit-html": ["lit-html@3.2.1", "", { "dependencies": { "@types/trusted-types": "^2.0.2" } }, "sha512-qI/3lziaPMSKsrwlxH/xMgikhQ0EGOX2ICU73Bi/YHFvz2j/yMCIrw4+puF2IpQ4+upd3EWbvnHM9+PnJn48YA=="], + "lodash": ["lodash@4.17.21", "", {}, ""], - "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + "lodash.defaults": ["lodash.defaults@4.2.0", "", {}, ""], - "lodash.defaults": ["lodash.defaults@4.2.0", "", {}, "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ=="], + "lodash.difference": ["lodash.difference@4.5.0", "", {}, ""], - "lodash.difference": ["lodash.difference@4.5.0", "", {}, "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA=="], + "lodash.flatten": ["lodash.flatten@4.4.0", "", {}, ""], - "lodash.flatten": ["lodash.flatten@4.4.0", "", {}, "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g=="], + "lodash.isplainobject": ["lodash.isplainobject@4.0.6", "", {}, ""], - "lodash.isplainobject": ["lodash.isplainobject@4.0.6", "", {}, "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="], + "lodash.union": ["lodash.union@4.6.0", "", {}, ""], - "lodash.union": ["lodash.union@4.6.0", "", {}, "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw=="], + "log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, ""], - "log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], + "lowercase-keys": ["lowercase-keys@2.0.0", "", {}, ""], - "lowercase-keys": ["lowercase-keys@2.0.0", "", {}, "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="], + "lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "lru-cache": ["lru-cache@6.0.0", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="], + "magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, ""], - "magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], + "make-fetch-happen": ["make-fetch-happen@10.2.1", "", { "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", "ssri": "^9.0.0" } }, ""], - "make-fetch-happen": ["make-fetch-happen@10.2.1", "", { "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", "minipass": "^3.1.6", "minipass-collect": "^1.0.2", "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", "ssri": "^9.0.0" } }, "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w=="], + "markdown-it": ["markdown-it@14.1.0", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": "bin/markdown-it.mjs" }, ""], - "markdown-it": ["markdown-it@14.1.0", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg=="], + "matcher": ["matcher@3.0.0", "", { "dependencies": { "escape-string-regexp": "^4.0.0" } }, ""], - "matcher": ["matcher@3.0.0", "", { "dependencies": { "escape-string-regexp": "^4.0.0" } }, "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng=="], + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, ""], - "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + "mdurl": ["mdurl@2.0.0", "", {}, ""], - "mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="], + "mime": ["mime@2.6.0", "", { "bin": "cli.js" }, ""], - "mime": ["mime@2.6.0", "", { "bin": { "mime": "cli.js" } }, "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg=="], + "mime-db": ["mime-db@1.52.0", "", {}, ""], - "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, ""], - "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + "mimic-fn": ["mimic-fn@2.1.0", "", {}, ""], - "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + "mimic-response": ["mimic-response@3.1.0", "", {}, ""], - "mimic-response": ["mimic-response@3.1.0", "", {}, "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="], + "minimatch": ["minimatch@10.0.1", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, ""], - "minimatch": ["minimatch@10.0.1", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ=="], + "minimist": ["minimist@1.2.8", "", {}, ""], - "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + "minipass": ["minipass@5.0.0", "", {}, ""], - "minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], + "minipass-collect": ["minipass-collect@1.0.2", "", { "dependencies": { "minipass": "^3.0.0" } }, ""], - "minipass-collect": ["minipass-collect@1.0.2", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA=="], + "minipass-fetch": ["minipass-fetch@2.1.2", "", { "dependencies": { "minipass": "^3.1.6", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "optionalDependencies": { "encoding": "^0.1.13" } }, ""], - "minipass-fetch": ["minipass-fetch@2.1.2", "", { "dependencies": { "minipass": "^3.1.6", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "optionalDependencies": { "encoding": "^0.1.13" } }, "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA=="], + "minipass-flush": ["minipass-flush@1.0.5", "", { "dependencies": { "minipass": "^3.0.0" } }, ""], - "minipass-flush": ["minipass-flush@1.0.5", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw=="], + "minipass-pipeline": ["minipass-pipeline@1.2.4", "", { "dependencies": { "minipass": "^3.0.0" } }, ""], - "minipass-pipeline": ["minipass-pipeline@1.2.4", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A=="], + "minipass-sized": ["minipass-sized@1.0.3", "", { "dependencies": { "minipass": "^3.0.0" } }, ""], - "minipass-sized": ["minipass-sized@1.0.3", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g=="], + "minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, ""], - "minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], + "mkdirp": ["mkdirp@1.0.4", "", { "bin": "bin/cmd.js" }, ""], - "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], + "ms": ["ms@2.1.3", "", {}, ""], - "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + "nanoid": ["nanoid@3.3.8", "", { "bin": "bin/nanoid.cjs" }, ""], - "nanoid": ["nanoid@3.3.8", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w=="], + "negotiator": ["negotiator@0.6.4", "", {}, ""], - "negotiator": ["negotiator@0.6.4", "", {}, "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w=="], + "next-tick": ["next-tick@1.1.0", "", {}, ""], - "next-tick": ["next-tick@1.1.0", "", {}, "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="], + "node-abi": ["node-abi@3.74.0", "", { "dependencies": { "semver": "^7.3.5" } }, ""], - "node-abi": ["node-abi@3.74.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w=="], + "node-api-version": ["node-api-version@0.2.0", "", { "dependencies": { "semver": "^7.3.5" } }, ""], - "node-addon-api": ["node-addon-api@1.7.2", "", {}, "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg=="], + "node-gyp": ["node-gyp@9.4.1", "", { "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^10.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.2", "which": "^2.0.2" }, "bin": "bin/node-gyp.js" }, ""], - "node-api-version": ["node-api-version@0.2.0", "", { "dependencies": { "semver": "^7.3.5" } }, "sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg=="], + "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, ""], - "node-gyp": ["node-gyp@9.4.1", "", { "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^10.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.2", "which": "^2.0.2" }, "bin": { "node-gyp": "bin/node-gyp.js" } }, "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ=="], + "node-releases": ["node-releases@2.0.19", "", {}, ""], - "node-gyp-build": ["node-gyp-build@4.8.4", "", { "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ=="], + "nopt": ["nopt@6.0.0", "", { "dependencies": { "abbrev": "^1.0.0" }, "bin": "bin/nopt.js" }, ""], - "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="], + "normalize-path": ["normalize-path@3.0.0", "", {}, ""], - "nopt": ["nopt@6.0.0", "", { "dependencies": { "abbrev": "^1.0.0" }, "bin": { "nopt": "bin/nopt.js" } }, "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g=="], + "normalize-url": ["normalize-url@6.1.0", "", {}, ""], - "normalize-path": ["normalize-path@3.0.0", "", {}, "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="], + "nostr-tools": ["nostr-tools@2.10.4", "", { "dependencies": { "@noble/ciphers": "^0.5.1", "@noble/curves": "1.2.0", "@noble/hashes": "1.3.1", "@scure/base": "1.1.1", "@scure/bip32": "1.3.1", "@scure/bip39": "1.2.1" }, "optionalDependencies": { "nostr-wasm": "0.1.0" }, "peerDependencies": { "typescript": ">=5.0.0" } }, ""], - "normalize-url": ["normalize-url@6.1.0", "", {}, "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="], + "nostr-wasm": ["nostr-wasm@0.1.0", "", {}, ""], - "nostr-tools": ["nostr-tools@2.10.4", "", { "dependencies": { "@noble/ciphers": "^0.5.1", "@noble/curves": "1.2.0", "@noble/hashes": "1.3.1", "@scure/base": "1.1.1", "@scure/bip32": "1.3.1", "@scure/bip39": "1.2.1" }, "optionalDependencies": { "nostr-wasm": "0.1.0" }, "peerDependencies": { "typescript": ">=5.0.0" }, "optionalPeers": ["typescript"] }, "sha512-biU7sk+jxHgVASfobg2T5ttxOGGSt69wEVBC51sHHOEaKAAdzHBLV/I2l9Rf61UzClhliZwNouYhqIso4a3HYg=="], + "npmlog": ["npmlog@6.0.2", "", { "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.3", "set-blocking": "^2.0.0" } }, ""], - "nostr-wasm": ["nostr-wasm@0.1.0", "", {}, "sha512-78BTryCLcLYv96ONU8Ws3Q1JzjlAt+43pWQhIl86xZmWeegYCNLPml7yQ+gG3vR6V5h4XGj+TxO+SS5dsThQIA=="], + "object-keys": ["object-keys@1.1.1", "", {}, ""], - "npmlog": ["npmlog@6.0.2", "", { "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.3", "set-blocking": "^2.0.0" } }, "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg=="], + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, ""], - "object-keys": ["object-keys@1.1.1", "", {}, "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="], + "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, ""], - "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + "ora": ["ora@5.4.1", "", { "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, ""], - "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], + "p-cancelable": ["p-cancelable@2.1.1", "", {}, ""], - "ora": ["ora@5.4.1", "", { "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" } }, "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ=="], + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, ""], - "p-cancelable": ["p-cancelable@2.1.1", "", {}, "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg=="], + "p-map": ["p-map@4.0.0", "", { "dependencies": { "aggregate-error": "^3.0.0" } }, ""], - "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, ""], - "p-map": ["p-map@4.0.0", "", { "dependencies": { "aggregate-error": "^3.0.0" } }, "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ=="], + "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, ""], - "package-json-from-dist": ["package-json-from-dist@1.0.1", "", {}, "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw=="], + "path-key": ["path-key@3.1.1", "", {}, ""], - "path-is-absolute": ["path-is-absolute@1.0.1", "", {}, "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="], + "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, ""], - "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + "pe-library": ["pe-library@0.4.1", "", {}, ""], - "path-scurry": ["path-scurry@1.11.1", "", { "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" } }, "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA=="], + "pend": ["pend@1.2.0", "", {}, ""], - "pe-library": ["pe-library@0.4.1", "", {}, "sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw=="], + "picocolors": ["picocolors@1.1.1", "", {}, ""], - "pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="], + "plist": ["plist@3.1.0", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, ""], - "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, ""], - "plist": ["plist@3.1.0", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ=="], + "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, ""], - "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], + "progress": ["progress@2.0.3", "", {}, ""], - "process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="], + "promise-inflight": ["promise-inflight@1.0.1", "", {}, ""], - "progress": ["progress@2.0.3", "", {}, "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="], + "promise-retry": ["promise-retry@2.0.1", "", { "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" } }, ""], - "promise-inflight": ["promise-inflight@1.0.1", "", {}, "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g=="], + "pump": ["pump@3.0.2", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, ""], - "promise-retry": ["promise-retry@2.0.1", "", { "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" } }, "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g=="], + "punycode": ["punycode@2.3.1", "", {}, ""], - "pump": ["pump@3.0.2", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw=="], + "punycode.js": ["punycode.js@2.3.1", "", {}, ""], - "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + "quick-lru": ["quick-lru@5.1.1", "", {}, ""], - "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="], + "read-binary-file-arch": ["read-binary-file-arch@1.0.6", "", { "dependencies": { "debug": "^4.3.4" }, "bin": "cli.js" }, ""], - "quick-lru": ["quick-lru@5.1.1", "", {}, "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="], + "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, ""], - "read-binary-file-arch": ["read-binary-file-arch@1.0.6", "", { "dependencies": { "debug": "^4.3.4" }, "bin": { "read-binary-file-arch": "cli.js" } }, "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg=="], + "readdir-glob": ["readdir-glob@1.1.3", "", { "dependencies": { "minimatch": "^5.1.0" } }, ""], - "readable-stream": ["readable-stream@3.6.2", "", { "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="], + "require-directory": ["require-directory@2.1.1", "", {}, ""], - "readdir-glob": ["readdir-glob@1.1.3", "", { "dependencies": { "minimatch": "^5.1.0" } }, "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA=="], + "resedit": ["resedit@1.7.2", "", { "dependencies": { "pe-library": "^0.4.1" } }, ""], - "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], + "resolve-alpn": ["resolve-alpn@1.2.1", "", {}, ""], - "resedit": ["resedit@1.7.2", "", { "dependencies": { "pe-library": "^0.4.1" } }, "sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA=="], + "responselike": ["responselike@2.0.1", "", { "dependencies": { "lowercase-keys": "^2.0.0" } }, ""], - "resolve-alpn": ["resolve-alpn@1.2.1", "", {}, "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="], + "restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, ""], - "responselike": ["responselike@2.0.1", "", { "dependencies": { "lowercase-keys": "^2.0.0" } }, "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw=="], + "retry": ["retry@0.12.0", "", {}, ""], - "restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], + "rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": "bin.js" }, ""], - "retry": ["retry@0.12.0", "", {}, "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow=="], + "roarr": ["roarr@2.15.4", "", { "dependencies": { "boolean": "^3.0.1", "detect-node": "^2.0.4", "globalthis": "^1.0.1", "json-stringify-safe": "^5.0.1", "semver-compare": "^1.0.0", "sprintf-js": "^1.1.2" } }, ""], - "rimraf": ["rimraf@3.0.2", "", { "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="], + "rollup": ["rollup@4.34.8", "", { "dependencies": { "@types/estree": "1.0.6" }, "optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "4.34.8", "@rollup/rollup-linux-x64-musl": "4.34.8" }, "bin": "dist/bin/rollup" }, ""], - "roarr": ["roarr@2.15.4", "", { "dependencies": { "boolean": "^3.0.1", "detect-node": "^2.0.4", "globalthis": "^1.0.1", "json-stringify-safe": "^5.0.1", "semver-compare": "^1.0.0", "sprintf-js": "^1.1.2" } }, "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A=="], + "rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, ""], - "rollup": ["rollup@4.34.8", "", { "dependencies": { "@types/estree": "1.0.6" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.34.8", "@rollup/rollup-android-arm64": "4.34.8", "@rollup/rollup-darwin-arm64": "4.34.8", "@rollup/rollup-darwin-x64": "4.34.8", "@rollup/rollup-freebsd-arm64": "4.34.8", "@rollup/rollup-freebsd-x64": "4.34.8", "@rollup/rollup-linux-arm-gnueabihf": "4.34.8", "@rollup/rollup-linux-arm-musleabihf": "4.34.8", "@rollup/rollup-linux-arm64-gnu": "4.34.8", "@rollup/rollup-linux-arm64-musl": "4.34.8", "@rollup/rollup-linux-loongarch64-gnu": "4.34.8", "@rollup/rollup-linux-powerpc64le-gnu": "4.34.8", "@rollup/rollup-linux-riscv64-gnu": "4.34.8", "@rollup/rollup-linux-s390x-gnu": "4.34.8", "@rollup/rollup-linux-x64-gnu": "4.34.8", "@rollup/rollup-linux-x64-musl": "4.34.8", "@rollup/rollup-win32-arm64-msvc": "4.34.8", "@rollup/rollup-win32-ia32-msvc": "4.34.8", "@rollup/rollup-win32-x64-msvc": "4.34.8", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ=="], + "safe-buffer": ["safe-buffer@5.1.2", "", {}, ""], - "rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="], + "safer-buffer": ["safer-buffer@2.1.2", "", {}, ""], - "safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="], + "sanitize-filename": ["sanitize-filename@1.6.3", "", { "dependencies": { "truncate-utf8-bytes": "^1.0.0" } }, ""], - "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + "sass-embedded": ["sass-embedded@1.86.0", "", { "dependencies": { "@bufbuild/protobuf": "^2.0.0", "buffer-builder": "^0.2.0", "colorjs.io": "^0.5.0", "immutable": "^5.0.2", "rxjs": "^7.4.0", "supports-color": "^8.1.1", "sync-child-process": "^1.0.2", "varint": "^6.0.0" }, "optionalDependencies": { "sass-embedded-android-arm": "1.86.0", "sass-embedded-android-arm64": "1.86.0", "sass-embedded-android-ia32": "1.86.0", "sass-embedded-android-riscv64": "1.86.0", "sass-embedded-android-x64": "1.86.0", "sass-embedded-darwin-arm64": "1.86.0", "sass-embedded-darwin-x64": "1.86.0", "sass-embedded-linux-arm": "1.86.0", "sass-embedded-linux-arm64": "1.86.0", "sass-embedded-linux-ia32": "1.86.0", "sass-embedded-linux-musl-arm": "1.86.0", "sass-embedded-linux-musl-arm64": "1.86.0", "sass-embedded-linux-musl-ia32": "1.86.0", "sass-embedded-linux-musl-riscv64": "1.86.0", "sass-embedded-linux-musl-x64": "1.86.0", "sass-embedded-linux-riscv64": "1.86.0", "sass-embedded-linux-x64": "1.86.0", "sass-embedded-win32-arm64": "1.86.0", "sass-embedded-win32-ia32": "1.86.0", "sass-embedded-win32-x64": "1.86.0" }, "bin": { "sass": "dist/bin/sass.js" } }, "sha512-Ibq5DzxjSf9f/IJmKeHVeXlVqiZWdRJF+RXy6v6UupvMYVMU5Ei+teSFBvvpPD5bB2QhhnU/OJlSM0EBCtfr9g=="], - "sanitize-filename": ["sanitize-filename@1.6.3", "", { "dependencies": { "truncate-utf8-bytes": "^1.0.0" } }, "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg=="], + "sass-embedded-android-arm": ["sass-embedded-android-arm@1.86.0", "", { "os": "android", "cpu": "arm" }, "sha512-NS8v6BCbzskXUMBtzfuB+j2yQMgiwg5edKHTYfQU7gAWai2hkRhS06YNEMff3aRxV0IFInxPRHOobd8xWPHqeA=="], - "sass-embedded": ["sass-embedded@1.85.1", "", { "dependencies": { "@bufbuild/protobuf": "^2.0.0", "buffer-builder": "^0.2.0", "colorjs.io": "^0.5.0", "immutable": "^5.0.2", "rxjs": "^7.4.0", "supports-color": "^8.1.1", "sync-child-process": "^1.0.2", "varint": "^6.0.0" }, "optionalDependencies": { "sass-embedded-android-arm": "1.85.1", "sass-embedded-android-arm64": "1.85.1", "sass-embedded-android-ia32": "1.85.1", "sass-embedded-android-riscv64": "1.85.1", "sass-embedded-android-x64": "1.85.1", "sass-embedded-darwin-arm64": "1.85.1", "sass-embedded-darwin-x64": "1.85.1", "sass-embedded-linux-arm": "1.85.1", "sass-embedded-linux-arm64": "1.85.1", "sass-embedded-linux-ia32": "1.85.1", "sass-embedded-linux-musl-arm": "1.85.1", "sass-embedded-linux-musl-arm64": "1.85.1", "sass-embedded-linux-musl-ia32": "1.85.1", "sass-embedded-linux-musl-riscv64": "1.85.1", "sass-embedded-linux-musl-x64": "1.85.1", "sass-embedded-linux-riscv64": "1.85.1", "sass-embedded-linux-x64": "1.85.1", "sass-embedded-win32-arm64": "1.85.1", "sass-embedded-win32-ia32": "1.85.1", "sass-embedded-win32-x64": "1.85.1" }, "bin": { "sass": "dist/bin/sass.js" } }, "sha512-0i+3h2Df/c71afluxC1SXqyyMmJlnKWfu9ZGdzwuKRM1OftEa2XM2myt5tR36CF3PanYrMjFKtRIj8PfSf838w=="], + "sass-embedded-android-arm64": ["sass-embedded-android-arm64@1.86.0", "", { "os": "android", "cpu": "arm64" }, "sha512-r7MZtlAI2VFUnKE8B5UOrpoE6OGpdf1dIB6ndoxb3oiURgMyfTVU7yvJcL12GGvtVwQ2boCj6dq//Lqq9CXPlQ=="], - "sass-embedded-android-arm": ["sass-embedded-android-arm@1.85.1", "", { "os": "android", "cpu": "arm" }, "sha512-GkcgUGMZtEF9gheuE1dxCU0ZSAifuaFXi/aX7ZXvjtdwmTl9Zc/OHR9oiUJkc8IW9UI7H8TuwlTAA8+SwgwIeQ=="], + "sass-embedded-android-ia32": ["sass-embedded-android-ia32@1.86.0", "", { "os": "android", "cpu": "ia32" }, "sha512-UjfElrGaOTNOnxLZLxf6MFndFIe7zyK+81f83BioZ7/jcoAd6iCHZT8yQMvu8wINyVodPcaXZl8KxlKcl62VAA=="], - "sass-embedded-android-arm64": ["sass-embedded-android-arm64@1.85.1", "", { "os": "android", "cpu": "arm64" }, "sha512-27oRheqNA3SJM2hAxpVbs7mCKUwKPWmEEhyiNFpBINb5ELVLg+Ck5RsGg+SJmo130ul5YX0vinmVB5uPWc8X5w=="], + "sass-embedded-android-riscv64": ["sass-embedded-android-riscv64@1.86.0", "", { "os": "android", "cpu": "none" }, "sha512-TsqCLxHWLFS2mbpUkL/nge3jSkaPK2VmLkkoi5iO/EQT4SFvm1lNUgPwlLXu9DplZ+aqGVzRS9Y6Psjv+qW7kw=="], - "sass-embedded-android-ia32": ["sass-embedded-android-ia32@1.85.1", "", { "os": "android", "cpu": "ia32" }, "sha512-f3x16NyRgtXFksIaO/xXKrUhttUBv8V0XsAR2Dhdb/yz4yrDrhzw9Wh8fmw7PlQqECcQvFaoDr3XIIM6lKzasw=="], + "sass-embedded-android-x64": ["sass-embedded-android-x64@1.86.0", "", { "os": "android", "cpu": "x64" }, "sha512-8Q263GgwGjz7Jkf7Eghp7NrwqskDL95WO9sKrNm9iOd2re/M48W7RN/lpdcZwrUnEOhueks0RRyYyZYBNRz8Tg=="], - "sass-embedded-android-riscv64": ["sass-embedded-android-riscv64@1.85.1", "", { "os": "android", "cpu": "none" }, "sha512-IP6OijpJ8Mqo7XqCe0LsuZVbAxEFVboa0kXqqR5K55LebEplsTIA2GnmRyMay3Yr/2FVGsZbCb6Wlgkw23eCiA=="], + "sass-embedded-darwin-arm64": ["sass-embedded-darwin-arm64@1.86.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-d8oMEaIweq1tjrb/BT43igDviOMS1TeDpc51QF7vAHkt9drSjPmqEmbqStdFYPAGZj1j0RA4WCRoVl6jVixi/w=="], - "sass-embedded-android-x64": ["sass-embedded-android-x64@1.85.1", "", { "os": "android", "cpu": "x64" }, "sha512-Mh7CA53wR3ADvXAYipFc/R3vV4PVOzoKwWzPxmq+7i8UZrtsVjKONxGtqWe9JG1mna0C9CRZAx0sv/BzbOJxWg=="], + "sass-embedded-darwin-x64": ["sass-embedded-darwin-x64@1.86.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-5NLRtn0ZUDBkfpKOsgLGl9B34po4Qui8Nff/lXTO+YkxBQFX4GoMkYNk9EJqHwoLLzICsxIhNDMMDiPGz7Fdrw=="], - "sass-embedded-darwin-arm64": ["sass-embedded-darwin-arm64@1.85.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-msWxzhvcP9hqGVegxVePVEfv9mVNTlUgGr6k7O7Ihji702mbtrH/lKwF4aRkkt4g1j7tv10+JtQXmTNi/pi9kA=="], + "sass-embedded-linux-arm": ["sass-embedded-linux-arm@1.86.0", "", { "os": "linux", "cpu": "arm" }, "sha512-b6wm0+Il+blJDleRXAqA6JISGMjRb0/thTEg4NWgmiJwUoZjDycj5FTbfYPnLXjCEIMGaYmW3patrJ3JMJcT3Q=="], - "sass-embedded-darwin-x64": ["sass-embedded-darwin-x64@1.85.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-J4UFHUiyI9Z+mwYMwz11Ky9TYr3hY1fCxeQddjNGL/+ovldtb0yAIHvoVM0BGprQDm5JqhtUk8KyJ3RMJqpaAA=="], + "sass-embedded-linux-arm64": ["sass-embedded-linux-arm64@1.86.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-50A+0rhahRDRkKkv+qS7GDAAkW1VPm2RCX4zY4JWydhV4NwMXr6HbkLnsJ2MGixCyibPh59iflMpNBhe7SEMNg=="], - "sass-embedded-linux-arm": ["sass-embedded-linux-arm@1.85.1", "", { "os": "linux", "cpu": "arm" }, "sha512-X0fDh95nNSw1wfRlnkE4oscoEA5Au4nnk785s9jghPFkTBg+A+5uB6trCjf0fM22+Iw6kiP4YYmDdw3BqxAKLQ=="], + "sass-embedded-linux-ia32": ["sass-embedded-linux-ia32@1.86.0", "", { "os": "linux", "cpu": "ia32" }, "sha512-h0mr9w71TV3BRPk9JHr0flnRCznhkraY14gaj5T+t78vUFByOUMxp4hTr+JpZAR5mv0mIeoMwrQYwWJoqKI0mw=="], - "sass-embedded-linux-arm64": ["sass-embedded-linux-arm64@1.85.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jGadetB03BMFG2rq3OXub/uvC/lGpbQOiLGEz3NLb2nRZWyauRhzDtvZqkr6BEhxgIWtMtz2020yD8ZJSw/r2w=="], + "sass-embedded-linux-musl-arm": ["sass-embedded-linux-musl-arm@1.86.0", "", { "os": "linux", "cpu": "arm" }, "sha512-KZU70jBMVykC9HzS+o2FhrJaprFLDk3LWXVPtBFxgLlkcQ/apCkUCh2WVNViLhI2U4NrMSnTvd4kDnC/0m8qIw=="], - "sass-embedded-linux-ia32": ["sass-embedded-linux-ia32@1.85.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-7HlYY90d9mitDtNi5s+S+5wYZrTVbkBH2/kf7ixrzh2BFfT0YM81UHLJRnGX93y9aOMBL6DSZAIfkt1RsV9bkQ=="], + "sass-embedded-linux-musl-arm64": ["sass-embedded-linux-musl-arm64@1.86.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-5OZjiJIUyhvKJIGNDEjyRUWDe+W91hq4Bji27sy8gdEuDzPWLx4NzwpKwsBUALUfyW/J5dxgi0ZAQnI3HieyQg=="], - "sass-embedded-linux-musl-arm": ["sass-embedded-linux-musl-arm@1.85.1", "", { "os": "linux", "cpu": "arm" }, "sha512-5vcdEqE8QZnu6i6shZo7x2N36V7YUoFotWj2rGekII5ty7Nkaj+VtZhUEOp9tAzEOlaFuDp5CyO1kUCvweT64A=="], + "sass-embedded-linux-musl-ia32": ["sass-embedded-linux-musl-ia32@1.86.0", "", { "os": "linux", "cpu": "ia32" }, "sha512-vq9wJ7kaELrsNU6Ld6kvrIHxoIUWaD+5T6TQVj4SJP/iw1NjonyCDMQGGs6UgsIEzvaIwtlSlDbRewAq+4PchA=="], - "sass-embedded-linux-musl-arm64": ["sass-embedded-linux-musl-arm64@1.85.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-FLkIT0p18XOkR6wryJ13LqGBDsrYev2dRk9dtiU18NCpNXruKsdBQ1ZnWHVKB3h1dA9lFyEEisC0sooKdNfeOQ=="], + "sass-embedded-linux-musl-riscv64": ["sass-embedded-linux-musl-riscv64@1.86.0", "", { "os": "linux", "cpu": "none" }, "sha512-UZJPu4zKe3phEzoSVRh5jcSicBBPe+jEbVNALHSSz881iOAYnDQXHITGeQ4mM1/7e/LTyryHk6EPBoaLOv6JrA=="], - "sass-embedded-linux-musl-ia32": ["sass-embedded-linux-musl-ia32@1.85.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-N1093T84zQJor1yyIAdYScB5eAuQarGK1tKgZ4uTnxVlgA7Xi1lXV8Eh7ox9sDqKCaWkVQ3MjqU26vYRBeRWyw=="], + "sass-embedded-linux-musl-x64": ["sass-embedded-linux-musl-x64@1.86.0", "", { "os": "linux", "cpu": "x64" }, "sha512-8taAgbWMk4QHneJcouWmWZJlmKa2O03g4I/CFo4bfMPL87bibY90pAsSDd+C+t81g0+2aK0/lY/BoB0r3qXLiA=="], - "sass-embedded-linux-musl-riscv64": ["sass-embedded-linux-musl-riscv64@1.85.1", "", { "os": "linux", "cpu": "none" }, "sha512-WRsZS/7qlfYXsa93FBpSruieuURIu7ySfFhzYfF1IbKrNAGwmbduutkHZh2ddm5/vQMvQ0Rdosgv+CslaQHMcw=="], + "sass-embedded-linux-riscv64": ["sass-embedded-linux-riscv64@1.86.0", "", { "os": "linux", "cpu": "none" }, "sha512-yREY6o2sLwiiA03MWHVpnUliLscz0flEmFW/wzxYZJDqg9eZteB3hUWgZD63eLm2PTZsYxDQpjAHpa48nnIEmA=="], - "sass-embedded-linux-musl-x64": ["sass-embedded-linux-musl-x64@1.85.1", "", { "os": "linux", "cpu": "x64" }, "sha512-+OlLIilA5TnP0YEqTQ8yZtkW+bJIQYvzoGoNLUEskeyeGuOiIyn2CwL6G4JQB4xZQFaxPHb7JD3EueFkQbH0Pw=="], + "sass-embedded-linux-x64": ["sass-embedded-linux-x64@1.86.0", "", { "os": "linux", "cpu": "x64" }, "sha512-sH0F8np9PTgTbFcJWxfr1NzPkL5ID2NcpMtZyKPTdnn9NkE/L2UwXSo6xOvY0Duc4Hg+58wSrDnj6KbvdeHCPg=="], - "sass-embedded-linux-riscv64": ["sass-embedded-linux-riscv64@1.85.1", "", { "os": "linux", "cpu": "none" }, "sha512-mKKlOwMGLN7yP1p0gB5yG/HX4fYLnpWaqstNuOOXH+fOzTaNg0+1hALg0H0CDIqypPO74M5MS9T6FAJZGdT6dQ=="], + "sass-embedded-win32-arm64": ["sass-embedded-win32-arm64@1.86.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-4O1XVUxLTIjMOvrziYwEZgvFqC5sF6t0hTAPJ+h2uiAUZg9Joo0PvuEedXurjISgDBsb5W5DTL9hH9q1BbP4cQ=="], - "sass-embedded-linux-x64": ["sass-embedded-linux-x64@1.85.1", "", { "os": "linux", "cpu": "x64" }, "sha512-uKRTv0z8NgtHV7xSren78+yoWB79sNi7TMqI7Bxd8fcRNIgHQSA8QBdF8led2ETC004hr8h71BrY60RPO+SSvA=="], + "sass-embedded-win32-ia32": ["sass-embedded-win32-ia32@1.86.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-zuSP2axkGm4VaJWt38P464H+4424Swr9bzFNfbbznxe3Ue4RuqSBqwiLiYdg9Q1cecTQ2WGH7G7WO56KK7WLwg=="], - "sass-embedded-win32-arm64": ["sass-embedded-win32-arm64@1.85.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-/GMiZXBOc6AEMBC3g25Rp+x8fq9Z6Ql7037l5rajBPhZ+DdFwtdHY0Ou3oIU6XuWUwD06U3ii4XufXVFhsP6PA=="], + "sass-embedded-win32-x64": ["sass-embedded-win32-x64@1.86.0", "", { "os": "win32", "cpu": "x64" }, "sha512-GVX0CHtukr3kjqfqretSlPiJzV7V4JxUjpRZV+yC9gUMTiDErilJh2Chw1r0+MYiYvumCDUSDlticmvJs7v0tA=="], - "sass-embedded-win32-ia32": ["sass-embedded-win32-ia32@1.85.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-L+4BWkKKBGFOKVQ2PQ5HwFfkM5FvTf1Xx2VSRvEWt9HxPXp6SPDho6zC8fqNQ3hSjoaoASEIJcSvgfdQYO0gdg=="], + "sax": ["sax@1.4.1", "", {}, ""], - "sass-embedded-win32-x64": ["sass-embedded-win32-x64@1.85.1", "", { "os": "win32", "cpu": "x64" }, "sha512-/FO0AGKWxVfCk4GKsC0yXWBpUZdySe3YAAbQQL0lL6xUd1OiUY8Kow6g4Kc1TB/+z0iuQKKTqI/acJMEYl4iTQ=="], + "semver": ["semver@6.3.1", "", { "bin": "bin/semver.js" }, ""], - "sax": ["sax@1.4.1", "", {}, "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg=="], + "semver-compare": ["semver-compare@1.0.0", "", {}, ""], - "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], + "serialize-error": ["serialize-error@7.0.1", "", { "dependencies": { "type-fest": "^0.13.1" } }, ""], - "semver-compare": ["semver-compare@1.0.0", "", {}, "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow=="], + "set-blocking": ["set-blocking@2.0.0", "", {}, ""], - "serialize-error": ["serialize-error@7.0.1", "", { "dependencies": { "type-fest": "^0.13.1" } }, "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw=="], + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, ""], - "set-blocking": ["set-blocking@2.0.0", "", {}, "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="], + "shebang-regex": ["shebang-regex@3.0.0", "", {}, ""], - "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + "signal-exit": ["signal-exit@4.1.0", "", {}, ""], - "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + "simple-update-notifier": ["simple-update-notifier@2.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, ""], - "signal-exit": ["signal-exit@4.1.0", "", {}, "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="], + "smart-buffer": ["smart-buffer@4.2.0", "", {}, ""], - "simple-update-notifier": ["simple-update-notifier@2.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w=="], + "socks": ["socks@2.8.4", "", { "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" } }, ""], - "slice-ansi": ["slice-ansi@3.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ=="], + "socks-proxy-agent": ["socks-proxy-agent@7.0.0", "", { "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", "socks": "^2.6.2" } }, ""], - "smart-buffer": ["smart-buffer@4.2.0", "", {}, "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="], + "source-map": ["source-map@0.6.1", "", {}, ""], - "socks": ["socks@2.8.4", "", { "dependencies": { "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" } }, "sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ=="], + "source-map-js": ["source-map-js@1.2.1", "", {}, ""], - "socks-proxy-agent": ["socks-proxy-agent@7.0.0", "", { "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", "socks": "^2.6.2" } }, "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww=="], + "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, ""], - "source-map": ["source-map@0.6.1", "", {}, "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="], + "sprintf-js": ["sprintf-js@1.1.3", "", {}, ""], - "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + "ssri": ["ssri@9.0.1", "", { "dependencies": { "minipass": "^3.1.1" } }, ""], - "source-map-support": ["source-map-support@0.5.21", "", { "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w=="], + "stat-mode": ["stat-mode@1.0.0", "", {}, ""], - "sprintf-js": ["sprintf-js@1.1.3", "", {}, "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA=="], + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, ""], - "ssri": ["ssri@9.0.1", "", { "dependencies": { "minipass": "^3.1.1" } }, "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q=="], + "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, ""], - "stat-mode": ["stat-mode@1.0.0", "", {}, "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg=="], + "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, ""], - "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, ""], - "string-width-cjs": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, ""], - "string_decoder": ["string_decoder@1.3.0", "", { "dependencies": { "safe-buffer": "~5.2.0" } }, "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA=="], + "sumchecker": ["sumchecker@3.0.1", "", { "dependencies": { "debug": "^4.1.0" } }, ""], - "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, ""], - "strip-ansi-cjs": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + "sync-child-process": ["sync-child-process@1.0.2", "", { "dependencies": { "sync-message-port": "^1.0.0" } }, ""], - "sumchecker": ["sumchecker@3.0.1", "", { "dependencies": { "debug": "^4.1.0" } }, "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg=="], + "sync-message-port": ["sync-message-port@1.1.3", "", {}, ""], - "supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + "tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, ""], - "sync-child-process": ["sync-child-process@1.0.2", "", { "dependencies": { "sync-message-port": "^1.0.0" } }, "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA=="], + "tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, ""], - "sync-message-port": ["sync-message-port@1.1.3", "", {}, "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg=="], + "temp-file": ["temp-file@3.4.0", "", { "dependencies": { "async-exit-hook": "^2.0.1", "fs-extra": "^10.0.0" } }, ""], - "tar": ["tar@6.2.1", "", { "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" } }, "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A=="], + "tmp": ["tmp@0.2.3", "", {}, ""], - "tar-stream": ["tar-stream@2.2.0", "", { "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" } }, "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="], + "tmp-promise": ["tmp-promise@3.0.3", "", { "dependencies": { "tmp": "^0.2.0" } }, ""], - "temp-file": ["temp-file@3.4.0", "", { "dependencies": { "async-exit-hook": "^2.0.1", "fs-extra": "^10.0.0" } }, "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg=="], + "truncate-utf8-bytes": ["truncate-utf8-bytes@1.0.2", "", { "dependencies": { "utf8-byte-length": "^1.0.1" } }, ""], - "tmp": ["tmp@0.2.3", "", {}, "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w=="], + "tseep": ["tseep@1.3.1", "", {}, ""], - "tmp-promise": ["tmp-promise@3.0.3", "", { "dependencies": { "tmp": "^0.2.0" } }, "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ=="], + "tslib": ["tslib@2.8.1", "", {}, ""], - "truncate-utf8-bytes": ["truncate-utf8-bytes@1.0.2", "", { "dependencies": { "utf8-byte-length": "^1.0.1" } }, "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ=="], + "tstl": ["tstl@2.5.16", "", {}, ""], - "tseep": ["tseep@1.3.1", "", {}, "sha512-ZPtfk1tQnZVyr7BPtbJ93qaAh2lZuIOpTMjhrYa4XctT8xe7t4SAW9LIxrySDuYMsfNNayE51E/WNGrNVgVicQ=="], + "type": ["type@2.7.3", "", {}, ""], - "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + "type-fest": ["type-fest@0.13.1", "", {}, ""], - "tstl": ["tstl@2.5.16", "", {}, "sha512-+O2ybLVLKcBwKm4HymCEwZIT0PpwS3gCYnxfSDEjJEKADvIFruaQjd3m7CAKNU1c7N3X3WjVz87re7TA2A5FUw=="], + "typedarray-to-buffer": ["typedarray-to-buffer@3.1.5", "", { "dependencies": { "is-typedarray": "^1.0.0" } }, ""], - "type": ["type@2.7.3", "", {}, "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="], + "typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, ""], - "type-fest": ["type-fest@0.13.1", "", {}, "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg=="], + "typescript-lru-cache": ["typescript-lru-cache@2.0.0", "", {}, ""], - "typedarray-to-buffer": ["typedarray-to-buffer@3.1.5", "", { "dependencies": { "is-typedarray": "^1.0.0" } }, "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q=="], + "uc.micro": ["uc.micro@2.1.0", "", {}, ""], - "typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="], + "undici-types": ["undici-types@6.20.0", "", {}, ""], - "typescript-lru-cache": ["typescript-lru-cache@2.0.0", "", {}, "sha512-Jp57Qyy8wXeMkdNuZiglE6v2Cypg13eDA1chHwDG6kq51X7gk4K7P7HaDdzZKCxkegXkVHNcPD0n5aW6OZH3aA=="], + "unique-filename": ["unique-filename@2.0.1", "", { "dependencies": { "unique-slug": "^3.0.0" } }, ""], - "uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="], + "unique-slug": ["unique-slug@3.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4" } }, ""], - "undici-types": ["undici-types@6.20.0", "", {}, "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="], + "universalify": ["universalify@2.0.1", "", {}, ""], - "unique-filename": ["unique-filename@2.0.1", "", { "dependencies": { "unique-slug": "^3.0.0" } }, "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A=="], + "update-browserslist-db": ["update-browserslist-db@1.1.2", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": "cli.js" }, ""], - "unique-slug": ["unique-slug@3.0.0", "", { "dependencies": { "imurmurhash": "^0.1.4" } }, "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w=="], + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, ""], - "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + "utf-8-validate": ["utf-8-validate@5.0.10", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, ""], - "update-browserslist-db": ["update-browserslist-db@1.1.2", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg=="], + "utf8-buffer": ["utf8-buffer@1.0.0", "", {}, ""], - "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + "utf8-byte-length": ["utf8-byte-length@1.0.5", "", {}, ""], - "utf-8-validate": ["utf-8-validate@5.0.10", "", { "dependencies": { "node-gyp-build": "^4.3.0" } }, "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ=="], + "util-deprecate": ["util-deprecate@1.0.2", "", {}, ""], - "utf8-buffer": ["utf8-buffer@1.0.0", "", {}, "sha512-ueuhzvWnp5JU5CiGSY4WdKbiN/PO2AZ/lpeLiz2l38qwdLy/cW40XobgyuIWucNyum0B33bVB0owjFCeGBSLqg=="], + "varint": ["varint@6.0.0", "", {}, ""], - "utf8-byte-length": ["utf8-byte-length@1.0.5", "", {}, "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA=="], + "vite": ["vite@6.2.2", "", { "dependencies": { "esbuild": "^0.25.0", "postcss": "^8.5.3", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ=="], - "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="], + "wcwidth": ["wcwidth@1.0.1", "", { "dependencies": { "defaults": "^1.0.3" } }, ""], - "varint": ["varint@6.0.0", "", {}, "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="], + "websocket": ["websocket@1.0.35", "", { "dependencies": { "bufferutil": "^4.0.1", "debug": "^2.2.0", "es5-ext": "^0.10.63", "typedarray-to-buffer": "^3.1.5", "utf-8-validate": "^5.0.2", "yaeti": "^0.0.6" } }, ""], - "verror": ["verror@1.10.1", "", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg=="], + "websocket-polyfill": ["websocket-polyfill@0.0.3", "", { "dependencies": { "tstl": "^2.0.7", "websocket": "^1.0.28" } }, ""], - "vite": ["vite@6.2.1", "", { "dependencies": { "esbuild": "^0.25.0", "postcss": "^8.5.3", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q=="], + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" } }, ""], - "wcwidth": ["wcwidth@1.0.1", "", { "dependencies": { "defaults": "^1.0.3" } }, "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg=="], + "wide-align": ["wide-align@1.1.5", "", { "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, ""], - "websocket": ["websocket@1.0.35", "", { "dependencies": { "bufferutil": "^4.0.1", "debug": "^2.2.0", "es5-ext": "^0.10.63", "typedarray-to-buffer": "^3.1.5", "utf-8-validate": "^5.0.2", "yaeti": "^0.0.6" } }, "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q=="], + "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, ""], - "websocket-polyfill": ["websocket-polyfill@0.0.3", "", { "dependencies": { "tstl": "^2.0.7", "websocket": "^1.0.28" } }, "sha512-pF3kR8Uaoau78MpUmFfzbIRxXj9PeQrCuPepGE6JIsfsJ/o/iXr07Q2iQNzKSSblQJ0FiGWlS64N4pVSm+O3Dg=="], + "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, ""], - "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + "wrappy": ["wrappy@1.0.2", "", {}, ""], - "wide-align": ["wide-align@1.1.5", "", { "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg=="], + "xmlbuilder": ["xmlbuilder@15.1.1", "", {}, ""], - "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "y18n": ["y18n@5.0.8", "", {}, ""], - "wrap-ansi-cjs": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "yaeti": ["yaeti@0.0.6", "", {}, ""], - "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + "yallist": ["yallist@4.0.0", "", {}, ""], - "xmlbuilder": ["xmlbuilder@15.1.1", "", {}, "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg=="], + "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, ""], - "y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="], + "yargs-parser": ["yargs-parser@21.1.1", "", {}, ""], - "yaeti": ["yaeti@0.0.6", "", {}, "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug=="], + "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, ""], - "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], + "yocto-queue": ["yocto-queue@0.1.0", "", {}, ""], - "yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="], + "zip-stream": ["zip-stream@4.1.1", "", { "dependencies": { "archiver-utils": "^3.0.4", "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" } }, ""], - "yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="], + "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, ""], - "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], + "@electron/asar/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, ""], - "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + "@electron/asar/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, ""], - "zip-stream": ["zip-stream@4.1.1", "", { "dependencies": { "archiver-utils": "^3.0.4", "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" } }, "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ=="], + "@electron/get/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, ""], - "@babel/helper-compilation-targets/lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], + "@electron/notarize/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, ""], - "@electron/asar/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "@electron/osx-sign/isbinaryfile": ["isbinaryfile@4.0.10", "", {}, ""], - "@electron/asar/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "@electron/rebuild/semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, ""], - "@electron/get/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], + "@electron/universal/fs-extra": ["fs-extra@11.3.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, ""], - "@electron/notarize/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], + "@electron/universal/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, ""], - "@electron/osx-sign/isbinaryfile": ["isbinaryfile@4.0.10", "", {}, "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw=="], + "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, ""], - "@electron/rebuild/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, ""], - "@electron/universal/fs-extra": ["fs-extra@11.3.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew=="], + "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, ""], - "@electron/universal/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "@malept/flatpak-bundler/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, ""], - "@isaacs/cliui/string-width": ["string-width@5.1.2", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="], + "@nostr/tools/@noble/ciphers": ["@noble/ciphers@0.5.3", "", {}, ""], - "@isaacs/cliui/strip-ansi": ["strip-ansi@7.1.0", "", { "dependencies": { "ansi-regex": "^6.0.1" } }, "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ=="], + "@nostr/tools/@noble/curves": ["@noble/curves@1.2.0", "", { "dependencies": { "@noble/hashes": "1.3.2" } }, ""], - "@isaacs/cliui/wrap-ansi": ["wrap-ansi@8.1.0", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="], + "@nostr/tools/@noble/hashes": ["@noble/hashes@1.3.1", "", {}, ""], - "@malept/flatpak-bundler/fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], + "@nostr/tools/@scure/base": ["@scure/base@1.1.1", "", {}, ""], - "@nostr/tools/@noble/ciphers": ["@noble/ciphers@0.5.3", "", {}, "sha512-B0+6IIHiqEs3BPMT0hcRmHvEj2QHOLu+uwt+tqDDeVd0oyVzh7BPrDcPjRnV1PV/5LaknXJJQvOuRGR0zQJz+w=="], + "@npmcli/fs/semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, ""], - "@nostr/tools/@noble/curves": ["@noble/curves@1.2.0", "", { "dependencies": { "@noble/hashes": "1.3.2" } }, "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw=="], + "@scure/bip32/@noble/curves": ["@noble/curves@1.1.0", "", { "dependencies": { "@noble/hashes": "1.3.1" } }, ""], - "@nostr/tools/@noble/hashes": ["@noble/hashes@1.3.1", "", {}, "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA=="], + "@scure/bip32/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, ""], - "@nostr/tools/@scure/base": ["@scure/base@1.1.1", "", {}, "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA=="], + "@scure/bip32/@scure/base": ["@scure/base@1.1.1", "", {}, ""], - "@npmcli/fs/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "@scure/bip39/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, ""], - "@scure/bip32/@noble/curves": ["@noble/curves@1.1.0", "", { "dependencies": { "@noble/hashes": "1.3.1" } }, "sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA=="], + "@scure/bip39/@scure/base": ["@scure/base@1.1.1", "", {}, ""], - "@scure/bip32/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ=="], + "@types/cacheable-request/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, ""], - "@scure/bip32/@scure/base": ["@scure/base@1.1.1", "", {}, "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA=="], + "@types/fs-extra/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, ""], - "@scure/bip39/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ=="], + "@types/keyv/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, ""], - "@scure/bip39/@scure/base": ["@scure/base@1.1.1", "", {}, "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA=="], + "@types/responselike/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, ""], - "@types/cacheable-request/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg=="], + "@types/yauzl/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, ""], - "@types/fs-extra/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg=="], + "app-builder-lib/semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, ""], - "@types/keyv/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg=="], + "archiver-utils/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, ""], - "@types/plist/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg=="], + "archiver-utils/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, ""], - "@types/responselike/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg=="], + "cacache/glob": ["glob@8.1.0", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", "once": "^1.3.0" } }, ""], - "@types/yauzl/@types/node": ["@types/node@22.13.5", "", { "dependencies": { "undici-types": "~6.20.0" } }, "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg=="], + "cacache/lru-cache": ["lru-cache@7.18.3", "", {}, ""], - "app-builder-lib/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "cacache/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "archiver-utils/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, ""], - "archiver-utils/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + "clone-response/mimic-response": ["mimic-response@1.0.1", "", {}, ""], - "cacache/glob": ["glob@8.1.0", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^5.0.1", "once": "^1.3.0" } }, "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ=="], + "dir-compare/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, ""], - "cacache/lru-cache": ["lru-cache@7.18.3", "", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="], + "electron/@types/node": ["@types/node@20.17.19", "", { "dependencies": { "undici-types": "~6.19.2" } }, ""], - "cacache/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "filelist/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, ""], - "chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "clone-response/mimic-response": ["mimic-response@1.0.1", "", {}, "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="], + "gauge/signal-exit": ["signal-exit@3.0.7", "", {}, ""], - "dir-compare/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, ""], - "electron/@types/node": ["@types/node@20.17.19", "", { "dependencies": { "undici-types": "~6.19.2" } }, "sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A=="], + "glob/minipass": ["minipass@7.1.2", "", {}, ""], - "filelist/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], + "global-agent/semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, ""], - "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "jake/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, ""], - "gauge/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], + "lazystream/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, ""], - "glob/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + "light-bolt11-decoder/@scure/base": ["@scure/base@1.1.1", "", {}, ""], - "glob/minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + "make-fetch-happen/http-proxy-agent": ["http-proxy-agent@5.0.0", "", { "dependencies": { "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } }, ""], - "global-agent/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "make-fetch-happen/https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, ""], - "jake/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "make-fetch-happen/lru-cache": ["lru-cache@7.18.3", "", {}, ""], - "lazystream/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], + "make-fetch-happen/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "light-bolt11-decoder/@scure/base": ["@scure/base@1.1.1", "", {}, "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA=="], + "minipass-collect/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "make-fetch-happen/http-proxy-agent": ["http-proxy-agent@5.0.0", "", { "dependencies": { "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } }, "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w=="], + "minipass-fetch/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "make-fetch-happen/https-proxy-agent": ["https-proxy-agent@5.0.1", "", { "dependencies": { "agent-base": "6", "debug": "4" } }, "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="], + "minipass-flush/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "make-fetch-happen/lru-cache": ["lru-cache@7.18.3", "", {}, "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA=="], + "minipass-pipeline/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "make-fetch-happen/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "minipass-sized/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "minipass-collect/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "minipass-fetch/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "node-abi/semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, ""], - "minipass-flush/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "node-api-version/semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, ""], - "minipass-pipeline/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "node-gyp/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, ""], - "minipass-sized/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "node-gyp/semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, ""], - "minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "nostr-tools/@noble/ciphers": ["@noble/ciphers@0.5.3", "", {}, ""], - "node-abi/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "nostr-tools/@noble/curves": ["@noble/curves@1.2.0", "", { "dependencies": { "@noble/hashes": "1.3.2" } }, ""], - "node-api-version/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "nostr-tools/@noble/hashes": ["@noble/hashes@1.3.1", "", {}, ""], - "node-gyp/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "nostr-tools/@scure/base": ["@scure/base@1.1.1", "", {}, ""], - "node-gyp/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, ""], - "nostr-tools/@noble/ciphers": ["@noble/ciphers@0.5.3", "", {}, "sha512-B0+6IIHiqEs3BPMT0hcRmHvEj2QHOLu+uwt+tqDDeVd0oyVzh7BPrDcPjRnV1PV/5LaknXJJQvOuRGR0zQJz+w=="], + "path-scurry/minipass": ["minipass@7.1.2", "", {}, ""], - "nostr-tools/@noble/curves": ["@noble/curves@1.2.0", "", { "dependencies": { "@noble/hashes": "1.3.2" } }, "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw=="], + "readdir-glob/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, ""], - "nostr-tools/@noble/hashes": ["@noble/hashes@1.3.1", "", {}, "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA=="], + "restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, ""], - "nostr-tools/@scure/base": ["@scure/base@1.1.1", "", {}, "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA=="], + "rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, ""], - "path-scurry/lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="], + "simple-update-notifier/semver": ["semver@7.7.1", "", { "bin": "bin/semver.js" }, ""], - "path-scurry/minipass": ["minipass@7.1.2", "", {}, "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="], + "socks-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, ""], - "readdir-glob/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], + "ssri/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, ""], - "restore-cursor/signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], + "string_decoder/safe-buffer": ["safe-buffer@5.2.1", "", {}, ""], - "rimraf/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], + "vite/esbuild": ["esbuild@0.25.1", "", { "optionalDependencies": { "@esbuild/linux-x64": "0.25.1" }, "bin": "bin/esbuild" }, ""], - "simple-update-notifier/semver": ["semver@7.7.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA=="], + "websocket/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, ""], - "socks-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], + "zip-stream/archiver-utils": ["archiver-utils@3.0.4", "", { "dependencies": { "glob": "^7.2.3", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", "lodash.difference": "^4.5.0", "lodash.flatten": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" } }, ""], - "ssri/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], + "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, ""], - "string_decoder/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + "@electron/asar/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, ""], - "vite/esbuild": ["esbuild@0.25.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.1", "@esbuild/android-arm": "0.25.1", "@esbuild/android-arm64": "0.25.1", "@esbuild/android-x64": "0.25.1", "@esbuild/darwin-arm64": "0.25.1", "@esbuild/darwin-x64": "0.25.1", "@esbuild/freebsd-arm64": "0.25.1", "@esbuild/freebsd-x64": "0.25.1", "@esbuild/linux-arm": "0.25.1", "@esbuild/linux-arm64": "0.25.1", "@esbuild/linux-ia32": "0.25.1", "@esbuild/linux-loong64": "0.25.1", "@esbuild/linux-mips64el": "0.25.1", "@esbuild/linux-ppc64": "0.25.1", "@esbuild/linux-riscv64": "0.25.1", "@esbuild/linux-s390x": "0.25.1", "@esbuild/linux-x64": "0.25.1", "@esbuild/netbsd-arm64": "0.25.1", "@esbuild/netbsd-x64": "0.25.1", "@esbuild/openbsd-arm64": "0.25.1", "@esbuild/openbsd-x64": "0.25.1", "@esbuild/sunos-x64": "0.25.1", "@esbuild/win32-arm64": "0.25.1", "@esbuild/win32-ia32": "0.25.1", "@esbuild/win32-x64": "0.25.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ=="], + "@electron/get/fs-extra/jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, ""], - "websocket/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], + "@electron/get/fs-extra/universalify": ["universalify@0.1.2", "", {}, ""], - "zip-stream/archiver-utils": ["archiver-utils@3.0.4", "", { "dependencies": { "glob": "^7.2.3", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", "lodash.difference": "^4.5.0", "lodash.flatten": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" } }, "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw=="], + "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, ""], - "@babel/helper-compilation-targets/lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], + "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, ""], - "@electron/asar/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], + "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.1", "", {}, ""], - "@electron/get/fs-extra/jsonfile": ["jsonfile@4.0.0", "", { "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg=="], + "@nostr/tools/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, ""], - "@electron/get/fs-extra/universalify": ["universalify@0.1.2", "", {}, "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="], + "@scure/bip32/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.1", "", {}, ""], - "@isaacs/cliui/string-width/emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="], + "archiver-utils/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, ""], - "@isaacs/cliui/strip-ansi/ansi-regex": ["ansi-regex@6.1.0", "", {}, "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA=="], + "archiver-utils/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, ""], - "@isaacs/cliui/wrap-ansi/ansi-styles": ["ansi-styles@6.2.1", "", {}, "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="], + "cacache/glob/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, ""], - "@nostr/tools/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ=="], + "dir-compare/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, ""], - "@scure/bip32/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.1", "", {}, "sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA=="], + "electron/@types/node/undici-types": ["undici-types@6.19.8", "", {}, ""], - "archiver-utils/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "jake/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, ""], - "archiver-utils/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + "lazystream/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, ""], - "cacache/glob/minimatch": ["minimatch@5.1.6", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g=="], + "make-fetch-happen/http-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, ""], - "dir-compare/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], + "make-fetch-happen/https-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, ""], - "electron/@types/node/undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="], + "node-gyp/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, ""], - "jake/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], + "nostr-tools/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, ""], - "lazystream/readable-stream/string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="], + "rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, ""], - "make-fetch-happen/http-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], + "vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.1", "", { "os": "linux", "cpu": "x64" }, ""], - "make-fetch-happen/https-proxy-agent/agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], + "websocket/debug/ms": ["ms@2.0.0", "", {}, ""], - "node-gyp/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "zip-stream/archiver-utils/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, ""], - "nostr-tools/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ=="], + "archiver-utils/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, ""], - "rimraf/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + "node-gyp/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, ""], - "vite/esbuild/@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ=="], + "rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, ""], - "vite/esbuild/@esbuild/android-arm": ["@esbuild/android-arm@0.25.1", "", { "os": "android", "cpu": "arm" }, "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q=="], + "zip-stream/archiver-utils/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, ""], - "vite/esbuild/@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.1", "", { "os": "android", "cpu": "arm64" }, "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA=="], - - "vite/esbuild/@esbuild/android-x64": ["@esbuild/android-x64@0.25.1", "", { "os": "android", "cpu": "x64" }, "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw=="], - - "vite/esbuild/@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ=="], - - "vite/esbuild/@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA=="], - - "vite/esbuild/@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A=="], - - "vite/esbuild/@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww=="], - - "vite/esbuild/@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.1", "", { "os": "linux", "cpu": "arm" }, "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ=="], - - "vite/esbuild/@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ=="], - - "vite/esbuild/@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ=="], - - "vite/esbuild/@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg=="], - - "vite/esbuild/@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg=="], - - "vite/esbuild/@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg=="], - - "vite/esbuild/@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.1", "", { "os": "linux", "cpu": "none" }, "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ=="], - - "vite/esbuild/@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ=="], - - "vite/esbuild/@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.1", "", { "os": "linux", "cpu": "x64" }, "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA=="], - - "vite/esbuild/@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.1", "", { "os": "none", "cpu": "arm64" }, "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g=="], - - "vite/esbuild/@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.1", "", { "os": "none", "cpu": "x64" }, "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA=="], - - "vite/esbuild/@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg=="], - - "vite/esbuild/@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw=="], - - "vite/esbuild/@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg=="], - - "vite/esbuild/@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ=="], - - "vite/esbuild/@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A=="], - - "vite/esbuild/@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg=="], - - "websocket/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - - "zip-stream/archiver-utils/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], - - "archiver-utils/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], - - "node-gyp/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], - - "rimraf/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], - - "zip-stream/archiver-utils/glob/minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], - - "zip-stream/archiver-utils/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="], + "zip-stream/archiver-utils/glob/minimatch/brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, ""], } } diff --git a/package.json b/package.json index 27f2427..39dd710 100644 --- a/package.json +++ b/package.json @@ -31,13 +31,13 @@ "@tsconfig/node22": "^22.0.0", "@types/markdown-it": "^14.1.2", "@types/node": "^22.13.10", - "electron": "^34.3.2", + "electron": "^34.3.3", "electron-builder": "^25.1.8", "electron-vite": "^3.0.0", - "lightningcss": "^1.29.2", - "sass-embedded": "^1.85.1", + "lightningcss": "^1.29.3", + "sass-embedded": "^1.86.0", "typescript": "~5.6.3", - "vite": "^6.2.1" + "vite": "^6.2.2" }, "dependencies": { "@lit-labs/motion": "^1.0.8", diff --git a/src/components/AppGrid.ts b/src/components/AppGrid.ts index 7e282e6..30c8ba7 100644 --- a/src/components/AppGrid.ts +++ b/src/components/AppGrid.ts @@ -1,5 +1,6 @@ import { LitElement, css, html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; +import { map } from 'lit/directives/map.js'; import '@components/AppIcon'; @@ -15,34 +16,24 @@ export class AppGrid extends LitElement { static override styles = [ css` - .app-grid { + :host { display: grid; - grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); + grid-template-columns: 80px; + justify-content: space-around; gap: 20px; padding: 30px; - width: minmax(800px, 100cqw); margin-top: 10px; - } - @media (min-width: 1024px) { - .app-grid { - width: 500px; + @media (min-width: 500px) { + grid-template-columns: repeat(2, 80px); } - } - @media (max-width: 768px) { - .app-grid { - grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); - gap: 15px; - padding: 20px; + @media (min-width: 768px) { + grid-template-columns: repeat(3, 80px); } - } - @media (max-width: 480px) { - .app-grid { - grid-template-columns: repeat(auto-fit, minmax(60px, 1fr)); - gap: 10px; - padding: 15px; + @media (min-width: 1024px) { + grid-template-columns: repeat(4, 80px); } } `, @@ -50,18 +41,17 @@ export class AppGrid extends LitElement { override render() { return html` -
- ${this.apps.map( - (app) => html` - - `, - )} -
+ ${map( + this.apps, + (app) => html` + + `, + )} `; } } diff --git a/src/components/AppIcon.ts b/src/components/AppIcon.ts index 2183e66..30f6990 100644 --- a/src/components/AppIcon.ts +++ b/src/components/AppIcon.ts @@ -2,6 +2,7 @@ import { LitElement, css, html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import '@components/EveLink'; +import { when } from 'lit/directives/when.js'; @customElement('arx-app-icon') export class AppIcon extends LitElement { @@ -17,83 +18,157 @@ export class AppIcon extends LitElement { @property() name = 'App'; + private iconElement?: HTMLElement; + static override styles = [ css` - .app-name { - font-size: 12px; - color: #000; - text-shadow: 0px 0px 5px #ffffff; - text-align: center; - max-width: 70px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - transition: all 0.2s ease-in-out; + :host { + display: flex; + --animation-speed: 0.25s; } .app-icon { display: flex; flex-direction: column; align-items: center; - gap: 5px; - color: #fff; - text-align: center; + gap: 8px; + text-decoration: none; + padding: 6px; + border-radius: 18px; + transition: transform var(--animation-speed) + cubic-bezier(0.175, 0.885, 0.32, 1.275); + } - &:hover { - .icon { - transform: scale(1.1); - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); - border: 2px solid #000; - border-radius: 10px; - } - - .app-name { - color: white; - text-shadow: 0px 0px 5px black; - } - } + .app-icon:hover { + transform: translateY(-2px); } .icon { - width: clamp(48px, 8vw, 64px); - height: clamp(48px, 8vw, 64px); - border-radius: 15px; - box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); + width: 96px; + height: 96px; + border-radius: 24px; + box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12); display: flex; justify-content: center; align-items: center; - border: 1px solid #aaa; - transition: all 0.2s ease-in-out; + border: 1px solid rgba(255, 255, 255, 0.2); + overflow: hidden; + position: relative; + transition: all var(--animation-speed) ease-out; + &::before { + content: ""; + position: absolute; + inset: 0; + background: linear-gradient( + 145deg, + rgba(255, 255, 255, 0.25) 20%, + rgba(255, 255, 255, 0) 60% + ); + pointer-events: none; + opacity: 1; + transition: opacity var(--animation-speed) ease-out; + } - .app-icon { - width: 75%; - height: 75%; + &::after { + content: ""; + position: absolute; + inset: 0; + background: linear-gradient( + var(--gradient-angle), + rgba(255, 255, 255, 0.25) 20%, + rgba(255, 255, 255, 0) 60% + ); + pointer-events: none; + opacity: 0; + transition: opacity var(--animation-speed) ease-out; + } + + &:hover::before { + opacity: 0; + } + + &:hover::after { + opacity: 1; } } - @media (max-width: 480px) { - .app-name { - font-size: 11px; - } + .icon-svg { + color: white; + filter: drop-shadow( + calc(cos(var(--gradient-angle)) * 2px) + calc(sin(var(--gradient-angle)) * 2px) rgba(0, 0, 0, 0.2) + ); + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + } + + .app-name { + display: block; + width: 100%; + text-align: center; + font-size: 18px; + font-weight: 500; + color: var(--color-base-content); + white-space: nowrap; + text-decoration: none; + transition: all var(--animation-speed) ease-out; + } + + .app-icon:hover .icon { + transform: scale(1.08); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25); + } + + .app-icon:active .icon { + transform: scale(0.96); } `, ]; + override firstUpdated() { + this.iconElement = this.shadowRoot?.querySelector('.icon') as HTMLElement; + if (this.iconElement) { + this.iconElement.addEventListener('mousemove', this.handleMouseMove); + } + } + + override disconnectedCallback() { + super.disconnectedCallback(); + if (this.iconElement) { + this.iconElement.removeEventListener('mousemove', this.handleMouseMove); + } + } + + handleMouseMove = (e: MouseEvent) => { + if (!this.iconElement) return; + + const rect = this.iconElement.getBoundingClientRect(); + const centerX = rect.left + rect.width / 2; + const centerY = rect.top + rect.height / 2; + + const dx = e.clientX - centerX; + const dy = e.clientY - centerY; + const angle = Math.atan2(dy, dx) * (180 / Math.PI); + + this.iconElement.style.setProperty('--gradient-angle', `${angle}deg`); + }; + override render() { return html` -
- ${ - this.icon - ? html`` - : '' - } +
+ ${when( + this.icon, + () => html``, + )}
${this.name} diff --git a/src/components/Arbor/Button.ts b/src/components/Arbor/Button.ts deleted file mode 100644 index 596f301..0000000 --- a/src/components/Arbor/Button.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { LitElement, css, html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; - -import '@components/EveLink'; - -@customElement('arx-arbor-button') -export class ArborButton extends LitElement { - @property({ type: String }) href = ''; - @property({ type: String }) target = ''; - @property({ type: String }) rel = ''; - @property({ type: Boolean }) disabled = false; - - get hrefValue() { - if (!this.href || this.disabled) return 'javascript:void(0)'; - return this.href; - } - - static override styles = [ - css` - arx-eve-link::part(link) { - color: white; - text-decoration: none; - } - - arx-eve-link { - display: inline-flex; - align-items: center; - justify-content: center; - background: var(--accent); - border: none; - padding: 0.75rem 0.75rem; - border-radius: 0.25rem; - text-decoration: none; - font-size: 0.9rem; - font-weight: 500; - line-height: 1.2; - cursor: pointer; - transition: all 0.2s ease-in-out; - box-shadow: var(--shadow-sm); - gap: 5px; - } - - arx-eve-link:hover { - transform: translateY(-1px); - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.15); - background: color-mix(in oklch, var(--accent), black 15%); - } - - arx-eve-link:focus { - outline: none; - box-shadow: var(--shadow-md); - } - - arx-eve-link:active { - transform: translateY(0); - box-shadow: var(--shadow-md); - } - - arx-eve-link.disabled { - opacity: 0.6; - cursor: not-allowed; - } - `, - ]; - - override render() { - return html` - - - - `; - } -} diff --git a/src/components/Arbor/ForumCategory.ts b/src/components/Arbor/ForumCategory.ts index f9dd5e3..06609ba 100644 --- a/src/components/Arbor/ForumCategory.ts +++ b/src/components/Arbor/ForumCategory.ts @@ -1,6 +1,8 @@ import { LitElement, css, html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; +import '@components/General/Button'; + @customElement('arx-arbor-forum-category') export class ArborForumCategory extends LitElement { @property({ type: String }) override title = ''; @@ -9,21 +11,45 @@ export class ArborForumCategory extends LitElement { static override styles = [ css` .forum-category { - background: oklch(100% 0 0); - border-radius: 0.5rem; - box-shadow: var(--shadow-xl); - margin-block-end: 1.5rem; + background: var(--color-base-100); + border-radius: var(--radius-box); + border: var(--border) solid var(--color-base-300); + margin-block-end: 2rem; + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.1), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) + oklch(from var(--color-base-100) l c h / 0.4); + overflow: hidden; } .category-header { - background: var(--primary); - color: oklch(100% 0 0); - padding: 1rem 1.5rem; - border-radius: 0.5rem 0.5rem 0 0; - font-weight: 500; + background: var(--color-secondary); + color: var(--color-secondary-content); + padding: 1.25rem 1.75rem; + font-weight: 600; + font-size: 1.1rem; + letter-spacing: 0.01em; display: flex; justify-content: space-between; align-items: center; + border-bottom: var(--border) solid var(--color-base-300); + } + + ::slotted(:first-child) { + margin-top: 1rem; + } + + ::slotted(:last-child) { + margin-bottom: 1rem; + } + + .empty-state { + padding: 2rem 1.75rem; + color: var(--color-secondary); + font-style: italic; + text-align: center; } `, ]; @@ -33,12 +59,13 @@ export class ArborForumCategory extends LitElement {
${this.title} - - New Topic - +
-
No topics...
+
No topics yet...
`; diff --git a/src/components/Arbor/ForumPost.ts b/src/components/Arbor/ForumPost.ts index aeab7c6..280c5b1 100644 --- a/src/components/Arbor/ForumPost.ts +++ b/src/components/Arbor/ForumPost.ts @@ -19,47 +19,50 @@ export class ForumPost extends LitElement { .post { display: flex; flex-direction: row; - border-radius: 16px; - background: #ffffff; - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04), - 0 1px 3px rgba(0, 0, 0, 0.03); - margin-block-end: 0.75rem; + border-radius: var(--radius-box); + background: var(--color-base-100); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.1); + margin-block-end: 1rem; overflow: hidden; transition: all 0.25s cubic-bezier(0.22, 1, 0.36, 1); isolation: isolate; + border: var(--border) solid var(--color-base-300); will-change: transform; + } - &:hover { - transform: translateY(2px); - box-shadow: 0 8px 28px rgba(0, 0, 0, 0.07), - 0 2px 4px rgba(0, 0, 0, 0.04); - } + .post:hover { + transform: translateY(-2px); + box-shadow: calc(var(--depth) * 3px) calc(var(--depth) * 3px) + calc(var(--depth) * 6px) + oklch(from var(--color-base-content) l c h / 0.15); } .post--highlighted { position: relative; border-inline-start: none; + } - &::before { - content: ""; - position: absolute; - inset-inline-start: 0; - top: 0; - bottom: 0; - width: 4px; - background: #4361ee; - border-radius: 4px 0 0 4px; - } + .post--highlighted::before { + content: ""; + position: absolute; + inset-inline-start: 0; + top: 0; + bottom: 0; + width: 4px; + background: var(--color-accent); + border-radius: 4px 0 0 4px; } .post__sidebar { padding: clamp(1rem, 4vw, 1.5rem); - border-right: 1px solid rgba(0, 0, 0, 0.06); + border-right: var(--border) solid var(--color-base-300); flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; - background: rgba(0, 0, 0, 0.01); + background: var(--color-base-200); } .post__main { @@ -73,10 +76,8 @@ export class ForumPost extends LitElement { display: flex; align-items: center; padding: 1rem clamp(1rem, 4vw, 1.5rem); - border-bottom: 1px solid rgba(0, 0, 0, 0.06); - background: rgba(0, 0, 0, 0.01); - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); + border-bottom: var(--border) solid var(--color-base-300); + background: var(--color-base-200); } .post__time { @@ -84,17 +85,18 @@ export class ForumPost extends LitElement { align-items: center; gap: 0.5rem; font-size: 0.875rem; - color: rgba(0, 0, 0, 0.6); + color: var(--color-secondary); font-weight: 500; + } - & iconify-icon { - color: rgba(0, 0, 0, 0.4); - } + .post__time iconify-icon { + color: var(--color-secondary); + opacity: 0.7; } .post__permalink { margin-inline-start: auto; - color: #4361ee; + color: var(--color-accent); border: none; background: transparent; cursor: pointer; @@ -104,22 +106,16 @@ export class ForumPost extends LitElement { display: grid; place-items: center; transition: all 0.2s ease; + } - &:hover { - background: rgba(67, 97, 238, 0.08); - transform: scale(1.05); - } - - &:focus-visible { - outline: 2px solid #4361ee; - outline-offset: 2px; - } + .post__permalink:hover { + transform: scale(1.05); } .post__content { padding: clamp(1.25rem, 5vw, 1.75rem); line-height: 1.7; - color: rgba(0, 0, 0, 0.87); + color: var(--color-base-content); overflow-wrap: break-word; flex: 1; font-size: clamp(0.95rem, 2vw, 1rem); @@ -129,90 +125,25 @@ export class ForumPost extends LitElement { .post__actions { display: flex; padding: 0.75rem clamp(0.75rem, 3vw, 1.25rem); - border-top: 1px solid rgba(0, 0, 0, 0.06); + border-top: var(--border) solid var(--color-base-300); gap: clamp(0.5rem, 2vw, 0.75rem); - background: rgba(0, 0, 0, 0.01); - } - - .action-button { - display: flex; - align-items: center; - gap: 0.5rem; - padding: 0.5rem 0.75rem; - border-radius: 10px; - background: transparent; - border: none; - font-family: inherit; - font-size: 0.875rem; - font-weight: 500; - color: rgba(0, 0, 0, 0.6); - cursor: pointer; - transition: all 0.2s ease; - - & iconify-icon { - font-size: 1.25rem; - } - - &:hover:not(:disabled) { - background: rgba(0, 0, 0, 0.04); - color: rgba(0, 0, 0, 0.87); - transform: translateY(-1px); - } - - &:focus-visible { - outline: 2px solid rgba(0, 0, 0, 0.2); - outline-offset: 1px; - } - - &:active:not(:disabled) { - transform: translateY(1px) scale(0.98); - } - - &:disabled { - opacity: 0.5; - cursor: not-allowed; - } - } - - .action-button--primary { - color: #4361ee; - - &:hover:not(:disabled) { - background: rgba(67, 97, 238, 0.08); - } - - &:focus-visible { - outline-color: #4361ee; - } + background: var(--color-base-200); } @media (max-width: 768px) { .post { flex-direction: column; - margin-inline: -1rem; - border-radius: 0; margin-block-end: 1.5rem; } .post__sidebar { border-right: none; - border-bottom: 1px solid rgba(0, 0, 0, 0.06); + border-bottom: var(--border) solid var(--color-base-300); padding: 1rem; flex-direction: row; justify-content: flex-start; gap: 1rem; } - - .action-button { - padding: 0.625rem; - justify-content: center; - flex: 1; - border-radius: 10px; - - & span { - display: none; - } - } } @media (max-width: 480px) { @@ -290,13 +221,13 @@ export class ForumPost extends LitElement { ${formatDateTime(this.date)}
- + +
@@ -306,33 +237,30 @@ export class ForumPost extends LitElement {
- + + + - - - Permalink - + + + - + + + - + + +
diff --git a/src/components/Arbor/ForumTopic.ts b/src/components/Arbor/ForumTopic.ts index fd51093..d101e41 100644 --- a/src/components/Arbor/ForumTopic.ts +++ b/src/components/Arbor/ForumTopic.ts @@ -12,26 +12,40 @@ export class ArborForumTopic extends LitElement { display: grid; grid-template-columns: 3fr 1fr; padding: 1.75rem; - border-radius: 12px; + border-radius: var(--radius-box); margin-bottom: 1rem; - box-shadow: var(--shadow-md); + border: var(--border) solid var(--color-base-300); + background-color: var(--color-base-200); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.1), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) + oklch(from var(--color-base-100) l c h / 0.4); transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .topic:hover { transform: translateY(-2px); - box-shadow: var(--shadow-lg); + box-shadow: calc(var(--depth) * 4px) calc(var(--depth) * 4px) + calc(var(--depth) * 8px) + oklch(from var(--color-base-content) l c h / 0.15), + calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 5px) + oklch(from var(--color-base-100) l c h / 0.5); } .topic-icon { inline-size: 40px; block-size: 40px; - background: var(--accent); - border-radius: 10px; + background: var(--color-accent); + border-radius: calc(var(--radius-selector) * 1.5); flex-shrink: 0; position: relative; overflow: hidden; - box-shadow: var(--shadow-sm); + box-shadow: calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.15); } .topic-icon::after { @@ -41,7 +55,7 @@ export class ArborForumTopic extends LitElement { background: linear-gradient( 45deg, transparent, - oklch(from var(--accent) l c h / 0.2) + oklch(from var(--color-accent) l c h / 0.2) ); } @@ -62,24 +76,25 @@ export class ArborForumTopic extends LitElement { font-weight: 600; letter-spacing: -0.01em; text-decoration: none; - color: var(--primary); + color: var(--color-base-content); transition: all 0.2s ease; - &:hover { - color: var(--secondary); - transform: translateX(4px); - } + } + + arx-eve-link:hover::part(link) { + color: var(--color-accent); + transform: translateX(4px); } .topic-details p { margin: 0; font-size: 0.975rem; line-height: 1.6; - color: var(--secondary); + color: var(--color-secondary); } .new-status { position: relative; - color: var(--accent); + color: var(--color-accent); } .new-status::after { @@ -90,15 +105,17 @@ export class ArborForumTopic extends LitElement { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; - background: var(--accent); - color: var(--light); + background: var(--color-accent); + color: var(--color-accent-content); padding: 2px 8px; border-radius: 12px; - box-shadow: var(--shadow-sm); + box-shadow: calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.15); } .hot-status { - color: var(--error); + color: var(--color-error); } .hot-status::before { @@ -111,29 +128,31 @@ export class ArborForumTopic extends LitElement { flex-direction: column; gap: 1rem; padding-left: 1.5rem; - border-left: 2px solid var(--border); + border-left: var(--border) solid var(--color-base-300); } .last-post-section { - background: oklch(from var(--primary) 98% calc(c * 0.2) h); + background: oklch(from var(--color-base-200) l c h); padding: 0.875rem; - border-radius: 8px; - box-shadow: var(--shadow-sm); + border-radius: var(--radius-field); + box-shadow: calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.1); } .last-post-section > div:first-of-type { font-size: 0.875rem; font-weight: 500; - color: var(--secondary); + color: var(--color-secondary); margin-bottom: 0.5rem; } .last-post-info { - color: var(--secondary); + color: var(--color-secondary); font-size: 0.875rem; margin-top: 0.625rem; padding-top: 0.625rem; - border-top: 1px solid var(--border); + border-top: var(--border) solid var(--color-base-300); } @media (max-width: 968px) { @@ -147,7 +166,7 @@ export class ArborForumTopic extends LitElement { padding-left: 0; border-left: none; padding-top: 1rem; - border-top: 2px solid var(--border); + border-top: var(--border) solid var(--color-base-300); } } `, diff --git a/src/components/Breadcrumbs.ts b/src/components/Breadcrumbs.ts index 4423a11..2479f6a 100644 --- a/src/components/Breadcrumbs.ts +++ b/src/components/Breadcrumbs.ts @@ -1,8 +1,9 @@ import { LitElement, css, html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; -import './BreadcrumbsItem'; import { map } from 'lit/directives/map.js'; +import '@components/BreadcrumbsItem'; + @customElement('arx-breadcrumbs') export class Breadcrumbs extends LitElement { @property({ type: Array }) items: { text: string; href?: string }[] = []; @@ -11,27 +12,23 @@ export class Breadcrumbs extends LitElement { css` :host { display: block; - --breadcrumb-bg: var(--surface, #ffffff); - --breadcrumb-shadow: 0 2px 4px rgba(0, 0, 0, 0.08); - --breadcrumb-border: 1px solid var(--border-color, rgba(0, 0, 0, 0.1)); - --breadcrumb-radius: 8px; - --breadcrumb-padding: 0.75rem 1.25rem; - --breadcrumb-font: var(--font-family, system-ui, sans-serif); - --breadcrumb-text-color: var(--text-primary, #333); - --breadcrumb-separator-color: var(--text-secondary, #666); - --breadcrumb-accent-color: var(--accent, #0066cc); - --breadcrumb-hover-color: var(--accent-dark, #004c99); - --breadcrumb-active-bg: var(--accent-light, rgba(0, 102, 204, 0.1)); } + nav { max-width: 1200px; margin: 1.25rem auto; - background-color: var(--breadcrumb-bg); - border-radius: var(--breadcrumb-radius); - box-shadow: var(--breadcrumb-shadow); + background-color: var(--color-base-200); + border-radius: var(--radius-box); + border: var(--border) solid var(--color-base-300); padding: 0.75rem 1.25rem; font-size: 0.95rem; transition: all 0.3s ease; + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.1), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) + oklch(from var(--color-base-100) l c h / 0.4); } ol { @@ -43,6 +40,11 @@ export class Breadcrumbs extends LitElement { align-items: center; overflow-x: auto; scrollbar-width: none; + color: var(--color-base-content); + } + + ol::-webkit-scrollbar { + display: none; } @media (max-width: 640px) { diff --git a/src/components/BreadcrumbsItem.ts b/src/components/BreadcrumbsItem.ts index 4f88882..689969e 100644 --- a/src/components/BreadcrumbsItem.ts +++ b/src/components/BreadcrumbsItem.ts @@ -26,7 +26,7 @@ export class BreadcrumbsItem extends LitElement { display: flex; align-items: center; margin-inline: 0.75rem; - color: var(--breadcrumb-separator); + color: var(--color-secondary); user-select: none; font-size: 0.85rem; } @@ -42,29 +42,29 @@ export class BreadcrumbsItem extends LitElement { display: inline-flex; align-items: center; padding: 0.4rem 0.7rem; - border-radius: 6px; + border-radius: calc(var(--radius-selector) / 2); transition: all 0.2s ease; } .active { - background-color: var(--breadcrumb-active-bg); + background-color: oklch(from var(--color-base-300) l c h / 0.5); font-weight: 500; - color: var(--breadcrumb-text); + color: var(--color-base-content); } .link { - color: var(--breadcrumb-accent); + color: var(--color-accent); text-decoration: none; } .link:hover .breadcrumb-content { - background-color: var(--breadcrumb-active-bg); + background-color: oklch(from var(--color-accent) l c h / 0.1); } .link:focus-visible { - outline: 2px solid var(--breadcrumb-accent); + outline: var(--border) solid var(--color-accent); outline-offset: 2px; - border-radius: 6px; + border-radius: calc(var(--radius-selector) / 2); } .item-text { @@ -77,8 +77,8 @@ export class BreadcrumbsItem extends LitElement { bottom: -2px; left: 0; width: 0; - height: 2px; - background-color: var(--breadcrumb-accent); + height: var(--border); + background-color: var(--color-accent); transition: width 0.25s ease; } diff --git a/src/components/DateTimeSettings.ts b/src/components/DateTimeSettings.ts new file mode 100644 index 0000000..2bebba0 --- /dev/null +++ b/src/components/DateTimeSettings.ts @@ -0,0 +1,296 @@ +import { StyledToggle } from '@/components/General/Toggle'; +import { LitElement, html } from 'lit'; +import { customElement, state } from 'lit/decorators.js'; + +import '@components/General/Input'; +import '@components/General/Fieldset'; +import '@components/General/Select'; + +interface DateTimeFormatOptions { + locale: string; + weekday: 'long' | 'short' | 'narrow' | ''; + year: 'numeric' | '2-digit' | ''; + month: 'numeric' | '2-digit' | 'long' | 'short' | 'narrow' | ''; + day: 'numeric' | '2-digit' | ''; + hour: 'numeric' | '2-digit' | ''; + minute: 'numeric' | '2-digit' | ''; + second: 'numeric' | '2-digit' | ''; + hour12: boolean; +} + +const DEFAULT_OPTIONS: DateTimeFormatOptions = { + locale: 'en-US', + weekday: 'short', + year: 'numeric', + month: 'long', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + second: '2-digit', + hour12: true, +}; + +@customElement('arx-date-time-settings') +export class DateTimeSettings extends LitElement { + @state() + private options: DateTimeFormatOptions = { ...DEFAULT_OPTIONS }; + + @state() + private previewDate = new Date(); + + override connectedCallback() { + super.connectedCallback(); + this.loadFromLocalStorage(); + setInterval(() => { + this.previewDate = new Date(); + this.requestUpdate(); + }, 1000); + } + + private loadFromLocalStorage() { + const savedOptions = localStorage.getItem('dateTimeFormatOptions'); + if (savedOptions) { + try { + this.options = { ...DEFAULT_OPTIONS, ...JSON.parse(savedOptions) }; + } catch (e) { + console.error('Failed to parse saved options', e); + this.options = { ...DEFAULT_OPTIONS }; + } + } + } + + private saveToLocalStorage() { + localStorage.setItem('dateTimeFormatOptions', JSON.stringify(this.options)); + this.dispatchEvent( + new CustomEvent('settings-changed', { + bubbles: true, + composed: true, + detail: { options: this.options }, + }), + ); + } + + private handleChange(key: keyof DateTimeFormatOptions, e: Event) { + const target = e.target as HTMLSelectElement | HTMLInputElement | StyledToggle; + let value: string | boolean | undefined = target.value; + + if (key === 'hour12' && target instanceof StyledToggle) value = target.checked; + + this.options = { + ...this.options, + [key]: value, + }; + + if (key === 'locale') this.requestUpdate(); + + this.saveToLocalStorage(); + } + + private formatWithOption(option: string, type: keyof DateTimeFormatOptions): string { + if (option === '') return ''; + const date = this.previewDate; + const locale = this.options.locale; + + const formatterOptions: Intl.DateTimeFormatOptions = { + [type]: option, + }; + + // Special case for hour to respect hour12 setting + if (type === 'hour') formatterOptions.hour12 = this.options.hour12; + + try { + return new Intl.DateTimeFormat(locale, formatterOptions).format(date); + } catch (e) { + console.error(`Error formatting with option ${option} for ${type}`, e); + return 'Error: Invalid format'; + } + } + + private formatPreview(): string { + return new Date(this.previewDate).toLocaleString(this.options.locale, { + weekday: this.options.weekday === '' ? undefined : this.options.weekday, + year: this.options.year === '' ? undefined : this.options.year, + month: this.options.month === '' ? undefined : this.options.month, + day: this.options.day === '' ? undefined : this.options.day, + hour: this.options.hour === '' ? undefined : this.options.hour, + minute: this.options.minute === '' ? undefined : this.options.minute, + second: this.options.second === '' ? undefined : this.options.second, + hour12: this.options.hour12, + }); + } + + override render() { + return html` + + this.handleChange('locale', e)} + > + + + this.handleChange('weekday', e)} + .options=${[ + { + value: 'long', + label: `Long (${this.formatWithOption('long', 'weekday')})`, + }, + { + value: 'short', + label: `Short (${this.formatWithOption('short', 'weekday')})`, + }, + { + value: 'narrow', + label: `Narrow (${this.formatWithOption('narrow', 'weekday')})`, + }, + ]} + > + + this.handleChange('year', e)} + .options=${[ + { + value: 'numeric', + label: `Numeric (${this.formatWithOption('numeric', 'year')})`, + }, + { + value: '2-digit', + label: `2-digit (${this.formatWithOption('2-digit', 'year')})`, + }, + { + value: '', + label: 'None', + }, + ]} + > + + this.handleChange('month', e)} + .options=${[ + { + value: 'long', + label: `Long (${this.formatWithOption('long', 'month')})`, + }, + { + value: 'short', + label: `Short (${this.formatWithOption('short', 'month')})`, + }, + { + value: 'narrow', + label: `Narrow (${this.formatWithOption('narrow', 'month')})`, + }, + { + value: 'numeric', + label: `Numeric (${this.formatWithOption('numeric', 'month')})`, + }, + { + value: '2-digit', + label: `2-digit (${this.formatWithOption('2-digit', 'month')})`, + }, + { + value: '', + label: 'None', + }, + ]} + > + + this.handleChange('day', e)} + .options=${[ + { + value: 'numeric', + label: `Numeric (${this.formatWithOption('numeric', 'day')})`, + }, + { + value: '2-digit', + label: `2-digit (${this.formatWithOption('2-digit', 'day')})`, + }, + { + value: '', + label: 'None', + }, + ]} + > + + this.handleChange('hour', e)} + .options=${[ + { + value: 'numeric', + label: 'Numeric', + }, + { + value: '2-digit', + label: '2-digit', + }, + { + value: '', + label: 'None', + }, + ]} + > + + this.handleChange('minute', e)} + .options=${[ + { + value: 'numeric', + label: 'Numeric', + }, + { + value: '2-digit', + label: '2-digit', + }, + { + value: '', + label: 'None', + }, + ]} + > + + this.handleChange('second', e)} + .options=${[ + { + value: 'numeric', + label: 'Numeric', + }, + { + value: '2-digit', + label: '2-digit', + }, + { + value: '', + label: 'None', + }, + ]} + > + + this.handleChange('hour12', e)} + > + +

Preview

+

${this.formatPreview()}

+
+ `; + } +} diff --git a/src/components/ErrorView.ts b/src/components/ErrorView.ts index 90640e4..2358231 100644 --- a/src/components/ErrorView.ts +++ b/src/components/ErrorView.ts @@ -7,17 +7,55 @@ export class ErrorView extends LitElement { error!: string; static override styles = css` - .error { - color: var(--error); - }`; + :host { + display: block; + margin: 0.75rem 0; + } + + .error-container { + display: flex; + align-items: flex-start; + gap: 0.75rem; + padding: 0.75rem 1rem; + border-radius: var(--radius-field); + background-color: var(--color-error); + color: var(--color-error-content); + box-shadow: 0 2px 5px oklch(from var(--color-error) l c h / 0.2); + border-left: calc(var(--border) * 2) solid + oklch(from var(--color-error-content) l c h / 0.8); + animation: fadeIn 0.3s ease-out forwards; + } + + .error-message { + flex: 1; + font-weight: 500; + line-height: 1.5; + } + + @keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-4px); + } + to { + opacity: 1; + transform: translateY(0); + } + } + + @media (max-width: 640px) { + .error-container { + padding: 0.625rem 0.875rem; + } + } + `; override render() { - return html`${this.error}`; - } -} - -declare global { - interface HTMLElementTagNameMap { - 'arx-error-view': ErrorView; + return html` + + `; } } diff --git a/src/components/EveLink.ts b/src/components/EveLink.ts index 64b62d5..48ade91 100644 --- a/src/components/EveLink.ts +++ b/src/components/EveLink.ts @@ -7,6 +7,13 @@ export class EveLink extends LitElement { @property({ type: String }) target = ''; @property({ type: String }) rel = ''; + static override styles = css` + a { + display: inline-block; + color: var(--color-primary); + } + `; + get hrefValue() { let href = this.href; if (href.startsWith('javascript:')) return href; @@ -16,12 +23,6 @@ export class EveLink extends LitElement { return href; } - static override styles = css` - a { - part: link; - } - `; - override render() { return html` + +
+ + ${this.label} + + + + `; + } + + private _handleClick(e: MouseEvent) { + if (this.disabled || this.loading) { + e.preventDefault(); + return; + } + + if (this.href) { + let href = this.href; + if (href.startsWith('javascript:')) return href; + if (href.startsWith('eve://')) href = href.replace('eve://', '#'); + if (href.startsWith('/')) href = href.replace('/', '#'); + if (!href.startsWith('#')) href = `#${href}`; + window.location.href = href; + return; + } + + this.dispatchEvent( + new CustomEvent('click', { + detail: { + name: this.name, + value: this.value, + }, + bubbles: true, + composed: true, + }), + ); + } + + private _handleKeyDown(e: KeyboardEvent) { + if ((e.key === 'Enter' || e.key === ' ') && !this.disabled && !this.loading) { + e.preventDefault(); + this.dispatchEvent( + new CustomEvent('click', { + detail: { + name: this.name, + value: this.value, + }, + bubbles: true, + composed: true, + }), + ); + } + + this.dispatchEvent( + new CustomEvent('keydown', { + detail: { key: e.key }, + bubbles: true, + composed: true, + }), + ); + } + + private _handleFocus() { + this.dispatchEvent( + new CustomEvent('focus', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleBlur() { + this.dispatchEvent( + new CustomEvent('blur', { + bubbles: true, + composed: true, + }), + ); + } +} diff --git a/src/components/General/Card.ts b/src/components/General/Card.ts new file mode 100644 index 0000000..88250bc --- /dev/null +++ b/src/components/General/Card.ts @@ -0,0 +1,35 @@ +import { LitElement, css, html } from 'lit'; +import { customElement } from 'lit/decorators.js'; + +@customElement('arx-card') +export class StyledFieldset extends LitElement { + static override styles = css` + :host { + display: block; + background: var(--color-base-200); + border-radius: var(--radius-box); + box-shadow: calc(var(--depth) * 4px) calc(var(--depth) * 4px) + calc(var(--depth) * 8px) + oklch(from var(--color-base-content) l c h / 0.1), + calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 6px) oklch(from var(--color-base-100) l c h / 0.6); + padding: 32px; + margin-bottom: 32px; + border: var(--border) solid var(--color-base-300); + transition: all 0.3s ease; + &:hover { + box-shadow: calc(var(--depth) * 6px) calc(var(--depth) * 6px) + calc(var(--depth) * 12px) + oklch(from var(--color-base-content) l c h / 0.15), + calc(var(--depth) * -3px) calc(var(--depth) * -3px) + calc(var(--depth) * 8px) + oklch(from var(--color-base-100) l c h / 0.7); + transform: translateY(-2px); + } + } + `; + + override render() { + return html``; + } +} diff --git a/src/components/General/Fieldset.ts b/src/components/General/Fieldset.ts new file mode 100644 index 0000000..d75bd4d --- /dev/null +++ b/src/components/General/Fieldset.ts @@ -0,0 +1,122 @@ +import { LitElement, css, html } from 'lit'; +import { customElement, property } from 'lit/decorators.js'; +import { when } from 'lit/directives/when.js'; + +@customElement('arx-fieldset') +export class StyledFieldset extends LitElement { + @property() legend = ''; + @property({ type: Boolean }) disabled = false; + @property() variant = 'default'; // default, primary, secondary, accent + + static override styles = css` + :host { + display: block; + width: 100%; + margin-bottom: 24px; + } + + .fieldset-container { + background: var(--color-base-100); + border: var(--border) solid var(--color-base-300); + border-radius: var(--radius-box); + padding: 24px; + position: relative; + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.1), + calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.5); + transition: all 0.25s ease; + } + + :host([variant="primary"]) .fieldset-container { + border-left: calc(var(--border) * 3) solid var(--color-primary); + } + + :host([variant="secondary"]) .fieldset-container { + border-left: calc(var(--border) * 3) solid var(--color-secondary); + } + + :host([variant="accent"]) .fieldset-container { + border-left: calc(var(--border) * 3) solid var(--color-accent); + } + + .legend { + position: absolute; + top: -10px; + left: 50%; + transform: translateX(-50%); + background: var(--color-base-100); + border: var(--border) solid var(--color-base-300); + padding: 0 10px; + font-size: 14px; + font-weight: 600; + color: var(--color-base-content); + border-radius: calc(var(--radius-selector) / 2); + transition: all 0.25s ease; + } + + :host([variant="primary"]) .legend { + color: var(--color-primary); + } + + :host([variant="secondary"]) .legend { + color: var(--color-secondary); + } + + :host([variant="accent"]) .legend { + color: var(--color-accent); + } + + .fieldset-content { + padding-top: 8px; + } + + :host([disabled]) .fieldset-container { + opacity: 0.7; + cursor: not-allowed; + box-shadow: calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.05), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 2px) oklch(from var(--color-base-100) l c h / 0.3); + } + + :host([disabled]) .legend { + opacity: 0.7; + } + + :host(:not([disabled])) .fieldset-container:hover { + box-shadow: calc(var(--depth) * 3px) calc(var(--depth) * 3px) + calc(var(--depth) * 6px) + oklch(from var(--color-base-content) l c h / 0.15), + calc(var(--depth) * -3px) calc(var(--depth) * -3px) + calc(var(--depth) * 6px) oklch(from var(--color-base-100) l c h / 0.6); + } + + :host(:not([disabled])) .fieldset-container:focus-within { + border-color: var(--color-accent); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.1), + calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.5), + 0 0 0 2px oklch(from var(--color-accent) l c h / 0.2); + } + + :host(:not([disabled])) .fieldset-container:focus-within .legend { + color: var(--color-accent); + } + `; + + override render() { + return html` +
+ ${when(this.legend, () => html`
${this.legend}
`)} +
+ +
+
+ `; + } +} diff --git a/src/components/General/Input.ts b/src/components/General/Input.ts new file mode 100644 index 0000000..2936518 --- /dev/null +++ b/src/components/General/Input.ts @@ -0,0 +1,165 @@ +import { LitElement, css, html } from 'lit'; +import { customElement, property } from 'lit/decorators.js'; +import { when } from 'lit/directives/when.js'; + +@customElement('arx-input') +export class StyledInput extends LitElement { + @property() placeholder = ''; + @property() value = ''; + @property({ type: Boolean }) disabled = false; + @property() type = 'text'; + @property() name = ''; + @property({ type: Boolean }) required = false; + @property() label = ''; + + static override styles = css` + :host { + display: inline-block; + width: 100%; + margin-bottom: 8px; + } + + label { + display: block; + margin-bottom: 8px; + font-size: 14px; + color: var(--color-base-content); + font-weight: 500; + } + + input { + width: 100%; + padding: 14px 16px; + font-size: 16px; + color: var(--color-base-content); + background: var(--color-base-100); + border: var(--border) solid var(--color-base-300); + border-radius: var(--radius-field); + box-shadow: inset calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.15), + inset calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.7), + 0 0 0 transparent; + transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); + } + + input::placeholder { + color: var(--color-secondary); + transition: all 0.3s cubic-bezier(0.25, 0.1, 0.25, 1.1); + } + + input:hover { + transform: translateY(-1px); + background: oklch(from var(--color-base-100) calc(l + 0.02) c h); + } + + input:hover::placeholder { + transform: translateX(3px); + } + + input:focus { + outline: none; + transform: translateY(1px); + border-top: var(--border) solid + oklch(from var(--color-base-300) l c h / 0.8); + border-left: var(--border) solid + oklch(from var(--color-base-300) l c h / 0.8); + border-bottom: var(--border) solid + oklch(from var(--color-base-200) l c h / 0.8); + border-right: var(--border) solid + oklch(from var(--color-base-200) l c h / 0.8); + box-shadow: inset calc(var(--depth) * 3px) calc(var(--depth) * 3px) + calc(var(--depth) * 5px) + oklch(from var(--color-base-content) l c h / 0.2), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) oklch(from var(--color-base-100) l c h / 0.5), + 0 0 0 transparent; + background: linear-gradient( + 145deg, + oklch(from var(--color-base-100) calc(l - 0.03) c h), + oklch(from var(--color-base-100) l c h) + ); + } + + input:disabled { + opacity: 0.7; + cursor: not-allowed; + box-shadow: inset calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.05), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 2px) oklch(from var(--color-base-100) l c h / 0.4); + transform: none; + } + `; + + override render() { + return html` + ${when(this.label, () => html``)} + + `; + } + + private _handleKeyDown(e: KeyboardEvent) { + this.dispatchEvent( + new CustomEvent('keydown', { + detail: { key: e.key }, + bubbles: true, + composed: true, + }), + ); + } + + private _handleKeyUp(e: KeyboardEvent) { + this.dispatchEvent( + new CustomEvent('keyup', { + detail: { key: e.key }, + bubbles: true, + composed: true, + }), + ); + } + + private _handleFocus() { + this.dispatchEvent( + new CustomEvent('focus', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleBlur() { + this.dispatchEvent( + new CustomEvent('blur', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleInput(e: InputEvent) { + const input = e.target as HTMLInputElement; + this.value = input.value; + this.dispatchEvent( + new CustomEvent('input', { + detail: { value: this.value }, + bubbles: true, + composed: true, + }), + ); + } +} diff --git a/src/components/Prompt.ts b/src/components/General/Prompt.ts similarity index 60% rename from src/components/Prompt.ts rename to src/components/General/Prompt.ts index 44b0bb3..340bc64 100644 --- a/src/components/Prompt.ts +++ b/src/components/General/Prompt.ts @@ -2,6 +2,8 @@ import { LitElement, css, html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; +import '@components/General/Input'; + @customElement('arx-prompt') export class EvePrompt extends LitElement { @property({ type: String }) promptText = 'Please provide input'; @@ -17,18 +19,7 @@ export class EvePrompt extends LitElement { static override styles = css` :host { - --prompt-primary: #3b82f6; - --prompt-primary-hover: #2563eb; - --prompt-bg: #ffffff; - --prompt-text: #1f2937; - --prompt-border: #e5e7eb; - --prompt-shadow: 0 8px 30px rgba(0, 0, 0, 0.12); - --prompt-cancel-bg: #f3f4f6; - --prompt-cancel-hover: #e5e7eb; - --prompt-overlay: rgba(15, 23, 42, 0.6); - - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, - sans-serif; + display: block; } .overlay { @@ -37,7 +28,7 @@ export class EvePrompt extends LitElement { left: 0; width: 100%; height: 100%; - background-color: var(--prompt-overlay); + background-color: oklch(from var(--color-base-content) l c h / 0.6); display: flex; align-items: center; justify-content: center; @@ -54,15 +45,20 @@ export class EvePrompt extends LitElement { } .prompt-container { - background-color: var(--prompt-bg); - border-radius: 12px; - box-shadow: var(--prompt-shadow); + background-color: var(--color-base-100); + border-radius: var(--radius-box); + border: var(--border) solid var(--color-base-300); + box-shadow: calc(var(--depth) * 4px) calc(var(--depth) * 4px) + calc(var(--depth) * 8px) + oklch(from var(--color-base-content) l c h / 0.2), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.4); width: 90%; max-width: 420px; padding: 28px; transform: scale(0.95) translateY(10px); transition: transform 0.25s cubic-bezier(0.1, 1, 0.2, 1); - color: var(--prompt-text); + color: var(--color-base-content); } .overlay.active .prompt-container { @@ -74,28 +70,7 @@ export class EvePrompt extends LitElement { font-weight: 600; margin: 0 0 16px 0; line-height: 1.4; - } - - .input-container { - margin: 20px 0; - } - - .input-field { - width: 100%; - padding: 12px 14px; - border-radius: 8px; - border: 1px solid var(--prompt-border); - font-size: 15px; - transition: border-color 0.2s ease, box-shadow 0.2s ease; - color: inherit; - background-color: transparent; - outline: none; - box-sizing: border-box; - } - - .input-field:focus { - border-color: var(--prompt-primary); - box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); + color: var(--color-base-content); } .buttons { @@ -105,47 +80,13 @@ export class EvePrompt extends LitElement { margin-top: 24px; } - button { - padding: 10px 18px; - border-radius: 8px; - font-size: 14px; - font-weight: 500; - cursor: pointer; - transition: all 0.2s ease; - border: none; - outline: none; - } - - button:focus-visible { - box-shadow: 0 0 0 2px var(--prompt-bg), 0 0 0 4px var(--prompt-primary); - } - - .cancel-btn { - background-color: var(--prompt-cancel-bg); - color: var(--prompt-text); - } - - .cancel-btn:hover { - background-color: var(--prompt-cancel-hover); - } - - .save-btn { - background-color: var(--prompt-primary); - color: white; - } - - .save-btn:hover { - background-color: var(--prompt-primary-hover); - } - - @media (prefers-color-scheme: dark) { - :host { - --prompt-bg: #1e1e1e; - --prompt-text: #e5e7eb; - --prompt-border: #374151; - --prompt-cancel-bg: #374151; - --prompt-cancel-hover: #4b5563; - } + .prompt-container:focus-within { + box-shadow: calc(var(--depth) * 4px) calc(var(--depth) * 4px) + calc(var(--depth) * 8px) + oklch(from var(--color-base-content) l c h / 0.2), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.4), + 0 0 0 2px oklch(from var(--color-accent) l c h / 0.2); } `; @@ -221,26 +162,30 @@ export class EvePrompt extends LitElement { ${ this.showInput ? html` -
- -
+ ` : '' }
- - + + + +
diff --git a/src/components/General/Select.ts b/src/components/General/Select.ts new file mode 100644 index 0000000..f387ecc --- /dev/null +++ b/src/components/General/Select.ts @@ -0,0 +1,207 @@ +import { LitElement, css, html } from 'lit'; +import { customElement, property } from 'lit/decorators.js'; +import { map } from 'lit/directives/map.js'; +import { when } from 'lit/directives/when.js'; + +@customElement('arx-select') +export class StyledSelect extends LitElement { + @property() placeholder = ''; + @property() value = ''; + @property({ type: Boolean }) disabled = false; + @property() name = ''; + @property({ type: Boolean }) required = false; + @property() label = ''; + @property({ type: Array }) options = []; + @property() valueMapper?: (option: T) => string; + @property() textMapper?: (option: T) => string; + + static override styles = css` + :host { + display: inline-block; + width: 100%; + margin-bottom: 8px; + } + + label { + display: block; + margin-bottom: 8px; + font-size: 14px; + color: var(--color-base-content); + font-weight: 500; + } + + select { + width: 100%; + padding: 14px 16px; + font-size: 16px; + color: var(--color-base-content); + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + background-color: var(--color-base-100); + border: var(--border) solid var(--color-base-300); + border-radius: var(--radius-field); + box-shadow: inset calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.15), + inset calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.7), + 0 0 0 transparent; + transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); + cursor: pointer; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 16px center; + padding-right: 40px; + } + + select:hover { + transform: translateY(-1px); + background-color: oklch(from var(--color-base-100) calc(l + 0.02) c h); + } + + select:focus { + outline: none; + transform: translateY(1px); + border-top: var(--border) solid + oklch(from var(--color-base-300) l c h / 0.8); + border-left: var(--border) solid + oklch(from var(--color-base-300) l c h / 0.8); + border-bottom: var(--border) solid + oklch(from var(--color-base-200) l c h / 0.8); + border-right: var(--border) solid + oklch(from var(--color-base-200) l c h / 0.8); + box-shadow: inset calc(var(--depth) * 3px) calc(var(--depth) * 3px) + calc(var(--depth) * 5px) + oklch(from var(--color-base-content) l c h / 0.2), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) oklch(from var(--color-base-100) l c h / 0.5), + 0 0 0 transparent; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right 16px center; + background-color: linear-gradient( + 145deg, + oklch(from var(--color-base-100) calc(l - 0.03) c h), + oklch(from var(--color-base-100) l c h) + ); + } + + select:disabled { + opacity: 0.7; + cursor: not-allowed; + box-shadow: inset calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.05), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 2px) oklch(from var(--color-base-100) l c h / 0.4); + transform: none; + } + + select option[value=""] { + color: var(--color-secondary); + } + `; + + private _getOptionValue(option: T) { + if (option === undefined || option === null) return ''; + if (this.valueMapper) return this.valueMapper(option); + if (typeof option === 'object' && 'value' in option) return option.value; + return option; + } + + private _getOptionText(option: T) { + if (option === undefined || option === null) return ''; + if (this.textMapper) return this.textMapper(option); + if (typeof option === 'object' && 'label' in option) return option.label; + return option; + } + + override render() { + return html` + ${when(this.label, () => html``)} + + `; + } + + private _handleKeyDown(e: KeyboardEvent) { + this.dispatchEvent( + new CustomEvent('keydown', { + detail: { key: e.key }, + bubbles: true, + composed: true, + }), + ); + } + + private _handleKeyUp(e: KeyboardEvent) { + this.dispatchEvent( + new CustomEvent('keyup', { + detail: { key: e.key }, + bubbles: true, + composed: true, + }), + ); + } + + private _handleFocus() { + this.dispatchEvent( + new CustomEvent('focus', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleBlur() { + this.dispatchEvent( + new CustomEvent('blur', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleChange(e: Event) { + const select = e.target as HTMLSelectElement; + this.value = select.value; + this.dispatchEvent( + new CustomEvent('change', { + detail: { value: this.value }, + bubbles: true, + composed: true, + }), + ); + } +} diff --git a/src/components/General/Textarea.ts b/src/components/General/Textarea.ts new file mode 100644 index 0000000..93e2791 --- /dev/null +++ b/src/components/General/Textarea.ts @@ -0,0 +1,212 @@ +import { LitElement, css, html } from 'lit'; +import { customElement, property } from 'lit/decorators.js'; +import { when } from 'lit/directives/when.js'; + +@customElement('arx-textarea') +export class StyledTextarea extends LitElement { + @property() placeholder = ''; + @property() value = ''; + @property({ type: Boolean }) disabled = false; + @property() name = ''; + @property({ type: Boolean }) required = false; + @property() label = ''; + @property() rows = 4; + @property() maxlength = ''; + @property({ type: Boolean }) resizable = true; + + static override styles = css` + :host { + display: block; + width: 100%; + margin-bottom: 8px; + } + + label { + display: block; + margin-bottom: 8px; + font-size: 14px; + color: var(--color-base-content); + font-weight: 500; + } + + textarea { + width: 100%; + min-height: 80px; + padding: 14px 16px; + font-size: 16px; + color: var(--color-base-content); + font-family: inherit; + line-height: 1.5; + background: var(--color-base-100); + border: var(--border) solid var(--color-base-300); + border-radius: var(--radius-field); + box-shadow: inset calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.15), + inset calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.7), + 0 0 0 transparent; + transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); + resize: vertical; + } + + :host(:not([resizable])) textarea { + resize: none; + } + + textarea::placeholder { + color: var(--color-secondary); + transition: all 0.3s cubic-bezier(0.25, 0.1, 0.25, 1.1); + } + + textarea:hover { + transform: translateY(-1px); + background: oklch(from var(--color-base-100) calc(l + 0.02) c h); + } + + textarea:hover::placeholder { + transform: translateX(3px); + } + + textarea:focus { + outline: none; + transform: translateY(1px); + border-top: var(--border) solid + oklch(from var(--color-base-300) l c h / 0.8); + border-left: var(--border) solid + oklch(from var(--color-base-300) l c h / 0.8); + border-bottom: var(--border) solid + oklch(from var(--color-base-200) l c h / 0.8); + border-right: var(--border) solid + oklch(from var(--color-base-200) l c h / 0.8); + box-shadow: inset calc(var(--depth) * 3px) calc(var(--depth) * 3px) + calc(var(--depth) * 5px) + oklch(from var(--color-base-content) l c h / 0.2), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) oklch(from var(--color-base-100) l c h / 0.5), + 0 0 0 transparent; + background: linear-gradient( + 145deg, + oklch(from var(--color-base-100) calc(l - 0.03) c h), + oklch(from var(--color-base-100) l c h) + ); + } + + textarea:disabled { + opacity: 0.7; + cursor: not-allowed; + box-shadow: inset calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.05), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 2px) oklch(from var(--color-base-100) l c h / 0.4); + transform: none; + } + + .character-count { + display: none; + text-align: right; + margin-top: 4px; + font-size: 12px; + color: var(--color-secondary); + } + + .has-maxlength .character-count { + display: block; + } + + .character-count.near-limit { + color: var(--color-warning); + } + + .character-count.at-limit { + color: var(--color-error); + } + `; + + override render() { + const charCount = this.value?.length || 0; + const maxLen = Number.parseInt(this.maxlength) || 0; + const nearLimit = maxLen && charCount >= maxLen * 0.8; + const atLimit = maxLen && charCount >= maxLen * 0.95; + const hasMaxlength = !!this.maxlength; + + return html` + ${when(this.label, () => html``)} +
+ +
+ ${charCount}/${this.maxlength} +
+
+ `; + } + + private _handleKeyDown(e: KeyboardEvent) { + if (e.key === 'Tab' && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey) { + e.preventDefault(); + const textarea = e.target as HTMLTextAreaElement; + const start = textarea.selectionStart; + const end = textarea.selectionEnd; + + this.value = `${this.value.substring(0, start)}\t${this.value.substring(end)}`; + + setTimeout(() => { + textarea.selectionStart = textarea.selectionEnd = start + 1; + }, 0); + } + + this.dispatchEvent( + new CustomEvent('keydown', { + detail: { key: e.key }, + bubbles: true, + composed: true, + }), + ); + } + + private _handleFocus() { + this.dispatchEvent( + new CustomEvent('focus', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleBlur() { + this.dispatchEvent( + new CustomEvent('blur', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleInput(e: InputEvent) { + const textarea = e.target as HTMLTextAreaElement; + this.value = textarea.value; + this.dispatchEvent( + new CustomEvent('input', { + detail: { value: this.value }, + bubbles: true, + composed: true, + }), + ); + } +} diff --git a/src/components/General/Toggle.ts b/src/components/General/Toggle.ts new file mode 100644 index 0000000..ed9fac5 --- /dev/null +++ b/src/components/General/Toggle.ts @@ -0,0 +1,216 @@ +import { LitElement, css, html } from 'lit'; +import { customElement, property } from 'lit/decorators.js'; +import { when } from 'lit/directives/when.js'; + +@customElement('arx-toggle') +export class StyledToggle extends LitElement { + @property() label = ''; + @property({ type: Boolean, reflect: true }) checked = false; + @property({ type: Boolean }) disabled = false; + @property() name = ''; + @property({ type: Boolean }) required = false; + @property() value = 'on'; + + static override styles = css` + :host { + display: inline-block; + width: 100%; + margin-bottom: 8px; + } + + .toggle-container { + display: flex; + align-items: center; + gap: 12px; + } + + label { + font-size: 14px; + color: var(--color-base-content); + font-weight: 500; + cursor: pointer; + } + + .toggle-wrapper { + position: relative; + display: inline-block; + width: 48px; + height: 24px; + } + + .toggle-input { + opacity: 0; + width: 0; + height: 0; + position: absolute; + } + + .toggle-track { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--color-base-100); + border-radius: 24px; + transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); + border: var(--border) solid var(--color-base-300); + box-shadow: inset calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.15), + inset calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.7); + } + + .toggle-track:hover { + background-color: oklch(from var(--color-base-100) calc(l + 0.02) c h); + } + + .toggle-knob { + position: absolute; + height: 18px; + width: 18px; + left: 3px; + bottom: 2px; + background-color: var(--color-base-content); + border-radius: 50%; + transition: all 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.2), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) oklch(from var(--color-base-100) l c h / 0.3); + } + + .toggle-input:checked + .toggle-track { + background-color: var(--color-base-100); + border-top: var(--border) solid + oklch(from var(--color-base-300) l c h / 0.8); + border-left: var(--border) solid + oklch(from var(--color-base-300) l c h / 0.8); + border-bottom: var(--border) solid + oklch(from var(--color-base-200) l c h / 0.8); + border-right: var(--border) solid + oklch(from var(--color-base-200) l c h / 0.8); + box-shadow: inset calc(var(--depth) * 3px) calc(var(--depth) * 3px) + calc(var(--depth) * 5px) + oklch(from var(--color-base-content) l c h / 0.2), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) oklch(from var(--color-base-100) l c h / 0.5); + } + + .toggle-input:checked + .toggle-track .toggle-knob { + transform: translateX(24px); + background-color: var(--color-accent); + } + + .toggle-input:focus + .toggle-track { + outline: none; + box-shadow: inset calc(var(--depth) * 3px) calc(var(--depth) * 3px) + calc(var(--depth) * 5px) + oklch(from var(--color-base-content) l c h / 0.2), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) oklch(from var(--color-base-100) l c h / 0.5), + 0 0 0 2px oklch(from var(--color-accent) l c h / 0.3); + } + + .toggle-input:disabled + .toggle-track { + opacity: 0.7; + cursor: not-allowed; + box-shadow: inset calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.05), + inset calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 2px) oklch(from var(--color-base-100) l c h / 0.4); + } + + .toggle-input:disabled + .toggle-track .toggle-knob { + background-color: var(--color-secondary); + box-shadow: calc(var(--depth) * 1px) calc(var(--depth) * 1px) + calc(var(--depth) * 2px) + oklch(from var(--color-base-content) l c h / 0.1), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 2px) oklch(from var(--color-base-100) l c h / 0.2); + } + `; + + override render() { + return html` +
+ ${when(this.label, () => html` `)} +
+ + +
+
+ `; + } + + private _handleChange(e: Event) { + const checkbox = e.target as HTMLInputElement; + this.checked = checkbox.checked; + this.dispatchEvent( + new CustomEvent('change', { + detail: { checked: this.checked, value: this.value }, + bubbles: true, + composed: true, + }), + ); + } + + private _handleFocus() { + this.dispatchEvent( + new CustomEvent('focus', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleBlur() { + this.dispatchEvent( + new CustomEvent('blur', { + bubbles: true, + composed: true, + }), + ); + } + + private _handleKeyDown(e: KeyboardEvent) { + if (e.key === ' ' || e.key === 'Enter') { + e.preventDefault(); + this.checked = !this.checked; + this.dispatchEvent( + new CustomEvent('change', { + detail: { checked: this.checked, value: this.value }, + bubbles: true, + composed: true, + }), + ); + } + + this.dispatchEvent( + new CustomEvent('keydown', { + detail: { key: e.key }, + bubbles: true, + composed: true, + }), + ); + } +} diff --git a/src/components/General/Tooltip.ts b/src/components/General/Tooltip.ts new file mode 100644 index 0000000..447c56e --- /dev/null +++ b/src/components/General/Tooltip.ts @@ -0,0 +1,241 @@ +import { LitElement, css, html } from 'lit'; +import { customElement, property, state } from 'lit/decorators.js'; + +@customElement('arx-tooltip') +export class Tooltip extends LitElement { + @property() content = ''; + @property() position = 'top'; + @property() delay = 100; // Delay before showing tooltip (ms) + @property() offset = 8; // Distance from target element + @property() variant = 'default'; // default, primary, secondary, accent, error, warning, success + @property({ type: Boolean }) arrow = true; + @property({ type: Boolean }) allowHtml = false; + @property({ type: Boolean }) interactive = false; + @property({ type: Boolean }) disabled = false; + + @state() private isVisible = false; + @state() private timer: ReturnType | null = null; + + static override styles = css` + :host { + display: inline-block; + position: relative; + } + + .tooltip-container { + position: relative; + display: inline-block; + } + + .tooltip { + position: absolute; + z-index: 999; + max-width: 300px; + width: 100%; + padding: 0.5rem 0.75rem; + border-radius: var(--radius-field); + font-size: 0.875rem; + line-height: 1.4; + text-align: center; + pointer-events: none; + opacity: 0; + visibility: hidden; + transition: opacity 0.2s, visibility 0.2s, transform 0.2s; + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.2); + transform: scale(0.95); + transform-origin: center; + } + + .tooltip.interactive { + pointer-events: auto; + } + + .tooltip.visible { + opacity: 1; + visibility: visible; + transform: scale(1); + } + + /* Default variant */ + .tooltip.default { + background-color: var(--color-base-content); + color: var(--color-base-100); + } + + /* Primary variant */ + .tooltip.primary { + background-color: var(--color-primary); + color: var(--color-primary-content); + } + + /* Secondary variant */ + .tooltip.secondary { + background-color: var(--color-secondary); + color: var(--color-secondary-content); + } + + /* Accent variant */ + .tooltip.accent { + background-color: var(--color-accent); + color: var(--color-accent-content); + } + + /* Error variant */ + .tooltip.error { + background-color: var(--color-error); + color: var(--color-error-content); + } + + /* Warning variant */ + .tooltip.warning { + background-color: var(--color-warning); + color: var(--color-warning-content); + } + + /* Success variant */ + .tooltip.success { + background-color: var(--color-success); + color: var(--color-success-content); + } + + /* Positions */ + .tooltip.top { + bottom: calc(100% + var(--offset, 8px)); + left: 50%; + transform: translateX(-50%) scale(0.95); + } + + .tooltip.top.visible { + transform: translateX(-50%) scale(1); + } + + .tooltip.right { + left: calc(100% + var(--offset, 8px)); + top: 50%; + transform: translateY(-50%) scale(0.95); + } + + .tooltip.right.visible { + transform: translateY(-50%) scale(1); + } + + .tooltip.bottom { + top: calc(100% + var(--offset, 8px)); + left: 50%; + transform: translateX(-50%) scale(0.95); + } + + .tooltip.bottom.visible { + transform: translateX(-50%) scale(1); + } + + .tooltip.left { + right: calc(100% + var(--offset, 8px)); + top: 50%; + transform: translateY(-50%) scale(0.95); + } + + .tooltip.left.visible { + transform: translateY(-50%) scale(1); + } + + /* Arrow */ + .tooltip::after { + content: ""; + position: absolute; + width: 8px; + height: 8px; + background: inherit; + transform: rotate(45deg); + } + + .tooltip.top::after { + bottom: -4px; + left: 50%; + margin-left: -4px; + } + + .tooltip.right::after { + left: -4px; + top: 50%; + margin-top: -4px; + } + + .tooltip.bottom::after { + top: -4px; + left: 50%; + margin-left: -4px; + } + + .tooltip.left::after { + right: -4px; + top: 50%; + margin-top: -4px; + } + + .tooltip.no-arrow::after { + display: none; + } + + @media (max-width: 640px) { + .tooltip { + max-width: 200px; + font-size: 0.75rem; + padding: 0.4rem 0.6rem; + } + } + `; + + override render() { + return html` +
+ + +
+ `; + } + + private _onMouseEnter() { + if (this.timer) { + clearTimeout(this.timer); + } + + this.timer = setTimeout(() => { + this.isVisible = true; + }, this.delay); + } + + private _onMouseLeave() { + if (this.timer) { + clearTimeout(this.timer); + this.timer = null; + } + + this.isVisible = false; + } + + override disconnectedCallback() { + super.disconnectedCallback(); + if (this.timer) { + clearTimeout(this.timer); + this.timer = null; + } + } +} diff --git a/src/components/Header.ts b/src/components/Header.ts index 4825408..4834ab3 100644 --- a/src/components/Header.ts +++ b/src/components/Header.ts @@ -1,141 +1,302 @@ +import { ndk } from '@/ndk'; +import type { NDKEvent } from '@nostr-dev-kit/ndk'; +import * as nip19 from '@nostr/tools/nip19'; import { LitElement, css, html } from 'lit'; -import { customElement, property } from 'lit/decorators.js'; +import { customElement, property, state } from 'lit/decorators.js'; +import { classMap } from 'lit/directives/class-map.js'; +import { keyed } from 'lit/directives/keyed.js'; +import { map } from 'lit/directives/map.js'; +import { when } from 'lit/directives/when.js'; + +import '@components/HeaderSugestion'; +import '@components/General/Input'; @customElement('arx-header') export class Header extends LitElement { @property({ type: String }) override title = 'Eve'; @property({ type: String }) url = 'eve://home'; - @property({ type: Boolean }) canGoBack = false; @property({ type: Boolean }) canGoForward = false; private searchQuery = ''; - private searchInput: HTMLInputElement | null = null; + private _debounceTimeout?: ReturnType; - static override styles = [ - css` - header { - background: rgba(255, 255, 255, 0.5); - backdrop-filter: blur(10px); - border: 1px solid rgba(255, 255, 255, 0.6); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); - z-index: 999999; - background: var(--primary); - height: var(--font-2xl); - font-size: var(--header-height); - transition: all 0.3s ease; - display: flex; - align-items: center; - padding: 0 var(--space-md); - } + @state() private showSuggestions = false; + @state() private events: NDKEvent[] = []; + @state() private suggestions: NDKEvent[] = []; - .nav-buttons { - display: flex; - gap: var(--space-xs); - padding-right: var(--space-xs); + static override styles = css` + :host { + display: block; + z-index: 999999; + } - button { - text-decoration: none; - color: var(--light); - background: rgba(255, 255, 255, 0.1); - border: 1px solid rgba(255, 255, 255, 0.2); - padding: var(--space-xs); - border-radius: 100%; - font-size: var(--font-md); - backdrop-filter: blur(10px); - display: flex; - align-items: center; - justify-content: center; - transition: all 0.2s ease; + header { + background: var(--color-primary); + backdrop-filter: blur(10px); + border: var(--border) solid var(--color-primary-content); + box-shadow: calc(var(--depth) * 4px) calc(var(--depth) * 4px) + calc(var(--depth) * 8px) + oklch(from var(--color-base-content) l c h / 0.2); + height: var(--font-2xl, 3rem); + font-size: var(--font-md, 1rem); + transition: all 0.3s ease; + display: flex; + align-items: space-between; + padding: 0 var(--space-md, 1rem); + } - &:hover { - background: rgba(255, 255, 255, 0.2); - } + .nav-buttons { + display: flex; + gap: var(--space-xs, 0.5rem); + padding-right: var(--space-xs, 0.5rem); + } - &.disabled { - opacity: 0.5; - pointer-events: none; - } - } - } + .nav-buttons button { + text-decoration: none; + color: var(--color-primary-content); + background: oklch(from var(--color-primary-content) l c h / 0.1); + border: var(--border) solid + oklch(from var(--color-primary-content) l c h / 0.2); + padding: var(--space-xs, 0.5rem); + border-radius: 50%; + font-size: var(--font-md, 1rem); + backdrop-filter: blur(10px); + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s ease; + } - .search-container { - flex: 1; - position: relative; + .nav-buttons button:hover { + background: oklch(from var(--color-primary-content) l c h / 0.2); + transform: translateY(-2px); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.15); + } - input { - background: rgba(255, 255, 255, 0.5); - backdrop-filter: blur(10px); - border: 1px solid rgba(255, 255, 255, 0.6); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); - color: var(--light); - width: 100%; - text-align: center; - cursor: text; - font-size: 0.9rem; - width: 100%; - padding: var(--space-xs); - text-align: center; + .nav-buttons button:active { + transform: translateY(1px); + } - &:not(:focus)::placeholder { - color: var(--light); - opacity: 1; - } + .nav-buttons button.disabled { + opacity: 0.5; + pointer-events: none; + } - &:focus { - background: rgba(0, 0, 0, 0.2); - } - } - } - `, - ]; + .search-container { + flex: 1; + position: relative; + } + + arx-input { + transform: translateY(3px); + } + + .suggestions { + position: absolute; + top: 100%; + left: 0; + right: 0; + background: oklch(from var(--color-base-100) l c h / 0.9); + backdrop-filter: blur(10px); + border: var(--border) solid var(--color-base-200); + border-top: none; + border-radius: 0 0 var(--radius-field) var(--radius-field); + box-shadow: calc(var(--depth) * 4px) calc(var(--depth) * 4px) + calc(var(--depth) * 8px) + oklch(from var(--color-base-content) l c h / 0.2); + z-index: 9999; + max-height: 200px; + overflow-y: auto; + overflow-x: hidden; + } + `; + + override firstUpdated() { + ndk + .fetchEvents({ + limit: 50_000, + }) + .then((events) => { + this.events = [...events]; + }); + } override render() { return html`
-
- + + placeholder=${this.url} + @keyup=${this._handleSearch} + @focus=${this._handleFocus} + @input=${this._handleInput} + > + ${when( + this.showSuggestions, + () => html` +
+ ${map(this.suggestions, (suggestion: NDKEvent) => + keyed( + suggestion.id, + html` + this._handleSuggestionClick(suggestion)} + > + `, + ), + )} +
+ `, + )}
`; } - private focusSearch() { - this.searchInput?.focus(); + private _handleFocus() { + this.showSuggestions = true; } - private handleSearch(e: KeyboardEvent) { + private _handleInput(e: InputEvent) { + this.searchQuery = (e.target as HTMLInputElement).value; + if (this._debounceTimeout) { + clearTimeout(this._debounceTimeout); + } + + if (!this.searchQuery.trim()) { + this.suggestions = []; + this.showSuggestions = false; + return; + } + + this._debounceTimeout = setTimeout(() => { + const query = this.searchQuery.toLowerCase(); + + const isNoteSearch = query.startsWith('note1'); + const isEventSearch = query.startsWith('nevent1'); + const isPubkeySearch = query.startsWith('npub1'); + + this.suggestions = this.events + .filter((event: NDKEvent) => { + if (event.kind === 11 || event.kind === 1111) return false; // hide old forum events + if (event.kind === 30890 || event.kind === 30891) return false; // ignore old-in-dev events + if (event.kind === 60890) return false; // don't include the actual forum + if (event.kind === 60891) { + const categoryId = event.tags.find((tag) => tag[0] === 'd')?.[1] || ''; + const forum = this.events.find( + (e) => e.kind === 60890 && e.tags.some((tag) => tag[0] === 'forum' && tag[1] === `60891:${categoryId}`), + ); + if (!forum) return false; // ignore orphan forum categories + } + + if (event.id.includes(query)) return true; + + if (isNoteSearch) { + const noteId = nip19.noteEncode(event.id); + return noteId.includes(query); + } + + if (isEventSearch) { + const eventId = event.encode(); + return eventId.includes(query); + } + + if (isPubkeySearch && event.kind === 0) { + const pubkey = nip19.npubEncode(event.pubkey); + return pubkey.includes(query); + } + + if (event.content.toLowerCase().includes(query)) return true; + return event.tags.some((tag) => tag.length > 1 && tag[1].toLowerCase().includes(query)); + }) + .slice(0, 20); + + this.showSuggestions = this.suggestions.length > 0; + }, 50); + this.showSuggestions = true; + } + + private _handleSearch(e: KeyboardEvent) { if (e.key !== 'Enter') return; - const hash = (e.target as HTMLInputElement).value.replace('eve://', '#'); + + const target = e.target as HTMLInputElement; + this.searchQuery = target.value; + this.showSuggestions = false; + + if (this.searchQuery.startsWith('npub1')) { + try { + const { type } = nip19.decode(this.searchQuery); + if (type === 'npub') { + window.location.hash = `profile/${this.searchQuery}`; + return; + } + } catch (e) {} + } + + const hash = this.searchQuery.replace('eve://', '#'); window.location.hash = hash; } + + private _handleGoBack() { + this.dispatchEvent(new CustomEvent('go-back')); + } + + private _handleGoForward() { + this.dispatchEvent(new CustomEvent('go-forward')); + } + + private _handleGoHome() { + window.location.hash = '#'; + } + + private _handleSuggestionClick(suggestion: NDKEvent) { + window.location.hash = '#'; + this.showSuggestions = false; + console.log(suggestion); + switch (suggestion.kind) { + case 0: + window.location.hash = `profile/${suggestion.pubkey}`; + break; + case 60890: + case 60891: + window.location.hash = 'arbor'; + break; + case 892: + window.location.hash = `arbor/topics/${suggestion.id}`; + break; + case 893: { + const threadId = suggestion.tags.find((tag) => tag[0] === 'E')?.[1]!; + window.location.hash = `arbor/topics/${threadId}`; + break; + } + default: + window.location.hash = `event/${suggestion.id}`; + } + } } diff --git a/src/components/HeaderSugestion.ts b/src/components/HeaderSugestion.ts new file mode 100644 index 0000000..ac16c5b --- /dev/null +++ b/src/components/HeaderSugestion.ts @@ -0,0 +1,52 @@ +import { NDKEvent } from '@nostr-dev-kit/ndk'; +import { LitElement, css, html } from 'lit'; +import { customElement, property } from 'lit/decorators.js'; + +import '@components/NostrProfile'; + +@customElement('arx-header-suggestion') +export class HeaderSuggestion extends LitElement { + @property({ type: NDKEvent }) event: NDKEvent | undefined; + @property({ type: Array }) allEvents: NDKEvent[] | undefined; + + static override styles = css` + :host { + display: block; + padding: var(--space-xs) var(--space-sm); + cursor: pointer; + transition: background 0.2s ease; + } + `; + + override render() { + if (!this.event) return html``; + if (this.event.kind === 0) + return html``; + if (this.event.kind === 892) { + const threadName = this.event.tags.find((tag) => tag[0] === 'name')?.[1] || ''; + return html`Arbor Thread: ${threadName}`; + } + if (this.event.kind === 893) { + const threadId = this.event.tags.find((tag) => tag[0] === 'E')?.[1] || ''; + const thread = this.allEvents?.find((event) => event.id === threadId); + const threadName = thread?.tags.find((tag) => tag[0] === 'name')?.[1] || ''; + return html`Arbor Post in ${threadName}: + ${this.event.content.substring(0, 100)}`; + } + if (this.event.kind === 60891) { + const categoryId = this.event.tags.find((tag) => tag[0] === 'd')?.[1] || ''; + const forum = this.allEvents?.find( + (event) => + event.kind === 60890 && event.tags.some((tag) => tag[0] === 'forum' && tag[1] === `60891:${categoryId}`), + ); + if (!forum) return html`Orphan (deleted) forum category`; + const forumName = forum.tags.find((tag) => tag[0] === 'd')?.[1] || ''; + const arborText = `Arbor${forumName === 'arbor' ? '' : ` [${forumName}]`}`; + const categoryName = this.event.tags.find((tag) => tag[0] === 'name')?.[1] || ''; + return html`${arborText} Category: ${categoryName}`; + } + return html`Event kind ${this.event.kind}`; + } +} diff --git a/src/components/InitialSetup.ts b/src/components/InitialSetup.ts index a681770..a947959 100644 --- a/src/components/InitialSetup.ts +++ b/src/components/InitialSetup.ts @@ -10,6 +10,11 @@ import { encodeBase64 } from '@std/encoding/base64'; import { LitElement, css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; +import '@components/LoadingView'; +import '@components/General/Button'; +import '@components/General/Input'; +import '@components/General/Fieldset'; + @customElement('arx-initial-setup') export class InitialSetup extends LitElement { @state() private currentPage = 1; @@ -32,32 +37,18 @@ export class InitialSetup extends LitElement { :host { display: block; width: 100%; - --primary-color: var(--eve-primary-color, #4a90e2); - --primary-hover: var(--eve-primary-hover, #357abd); - --secondary-color: var(--eve-secondary-color, #6c757d); - --secondary-hover: var(--eve-secondary-hover, #5a6268); - --text-color: var(--eve-text-color, #2c3e50); - --text-secondary: var(--eve-text-secondary, #64748b); - --background-color: var(--eve-background-color, #ffffff); - --error-color: var(--eve-error-color, #dc3545); - --success-color: var(--eve-success-color, #28a745); - --spacing-unit: 0.25rem; - --border-radius: 8px; - --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1); - --transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1); - --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); - --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1); - font-family: system-ui, -apple-system, sans-serif; -webkit-font-smoothing: antialiased; - color: var(--text-color); + color: var(--color-base-content); + + --spacing-unit: 0.25rem; } .welcome-container { max-width: min(800px, 90vw); margin: 0 auto; padding: calc(var(--spacing-unit) * 8); - animation: fadeIn var(--transition-normal); + animation: fadeIn var(--transition); } section { @@ -67,8 +58,8 @@ export class InitialSetup extends LitElement { .alpha-badge { display: inline-flex; align-items: center; - background: var(--primary-color); - color: white; + background: var(--color-accent); + color: var(--color-accent-content); padding: 0.15em 0.5em; border-radius: 999px; font-size: 0.75em; @@ -89,8 +80,8 @@ export class InitialSetup extends LitElement { font-weight: 700; background: linear-gradient( 45deg, - var(--primary-color), - var(--primary-hover) + var(--color-accent), + oklch(from var(--color-accent) l calc(c * 1.2) h) ); -webkit-background-clip: text; color: transparent; @@ -101,18 +92,20 @@ export class InitialSetup extends LitElement { font-size: clamp(1.5rem, 3vw, 1.75rem); font-weight: 600; margin-bottom: calc(var(--spacing-unit) * 4); + color: var(--color-base-content); } h3 { font-size: 1.25rem; font-weight: 600; margin-bottom: calc(var(--spacing-unit) * 4); + color: var(--color-base-content); } p { margin: 0 0 calc(var(--spacing-unit) * 4); line-height: 1.6; - color: var(--text-secondary); + color: var(--color-secondary); } .input-group { @@ -121,65 +114,6 @@ export class InitialSetup extends LitElement { margin-top: calc(var(--spacing-unit) * 6); } - input { - flex: 1; - padding: calc(var(--spacing-unit) * 4); - border: 2px solid var(--text-secondary); - border-radius: var(--border-radius); - font-size: 1rem; - transition: all var(--transition-fast); - } - - input:focus { - outline: none; - border-color: var(--primary-color); - box-shadow: 0 0 0 3px rgba(74, 144, 226, 0.2); - } - - .button { - position: relative; - display: inline-flex; - align-items: center; - gap: calc(var(--spacing-unit) * 2); - padding: calc(var(--spacing-unit) * 3) calc(var(--spacing-unit) * 6); - border: none; - border-radius: var(--border-radius); - font-weight: 500; - cursor: pointer; - transition: all var(--transition-fast); - &:disabled { - opacity: 0.5; - cursor: not-allowed; - } - } - - .button.primary { - background: linear-gradient( - 45deg, - var(--primary-color), - var(--primary-hover) - ); - color: white; - box-shadow: var(--shadow-md); - } - - .button.secondary { - background: linear-gradient( - 45deg, - var(--secondary-color), - var(--secondary-hover) - ); - color: white; - } - - .button:hover { - transform: translateY(-2px); - } - - .button:active { - transform: translateY(0); - } - .navigation { display: flex; justify-content: space-between; @@ -201,75 +135,52 @@ export class InitialSetup extends LitElement { .welcome-container { padding: calc(var(--spacing-unit) * 4); } - - .input-group { - flex-direction: column; - } - - .button { - width: 100%; - justify-content: center; - } } pre { white-space: normal; + background-color: var(--color-base-200); + padding: calc(var(--spacing-unit) * 4); + border-radius: var(--radius-field); } + code { white-space: pre; + font-family: monospace; + background-color: var(--color-base-200); + padding: calc(var(--spacing-unit) * 1) calc(var(--spacing-unit) * 2); + border-radius: var(--radius-field); } .note { display: block; - color: #666; + color: var(--color-secondary); font-size: 0.875rem; margin-top: 0.5rem; padding-left: 0.5rem; - border-left: 2px solid #ddd; + border-left: var(--border) solid var(--color-base-300); font-style: italic; line-height: 1.4; max-width: 600px; opacity: 0.9; + transition: all 0.2s ease; } .note:hover { opacity: 1; - border-left-color: #999; - } - - fieldset { - border: 2px solid #3498db; - border-radius: 8px; - padding: 20px; - margin: 20px 0; - background-color: #f8f9fa; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - } - - legend { - padding: 0 10px; - background-color: #3498db; - color: white; - font-weight: bold; - border-radius: 4px; - font-size: 1.1em; - } - - fieldset:hover { - border-color: #2980b9; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); - transition: all 0.3s ease; + border-left-color: var(--color-accent); } .external-link { - color: #2970ff; + color: var(--color-accent); text-decoration: none; font-weight: 500; transition: color 0.2s ease; + position: relative; } .external-link:hover { - color: #1a56db; + color: oklch(from var(--color-accent) l calc(c * 1.2) h); text-decoration: underline; } @@ -328,27 +239,28 @@ export class InitialSetup extends LitElement {
- + window.open('https://arx-ccn.com/eve-feedback')} + > + + + window.open('https://arx-ccn.com/report-eve-bug')} + > + +
`; @@ -387,36 +299,36 @@ export class InitialSetup extends LitElement { well as improve your community's security.

- - +
`; @@ -437,9 +349,13 @@ export class InitialSetup extends LitElement { This process will be automated in future releases.

Please press the button below to start the relay.

- +

Having trouble? Our team is here to help if you encounter any issues. @@ -448,18 +364,18 @@ export class InitialSetup extends LitElement {

`; @@ -488,45 +404,43 @@ export class InitialSetup extends LitElement { community members.

-
- Display Name - + -
-
- Profile Picture - + + + + > Direct file uploads will be supported in a future update. For now, please provide an image URL or leave blank. -
+
`; @@ -546,13 +460,13 @@ export class InitialSetup extends LitElement { >npub.cash.

- + /> Your Lightning address enables secure, instant payments within the community. @@ -560,15 +474,14 @@ export class InitialSetup extends LitElement { `; @@ -625,13 +538,17 @@ export class InitialSetup extends LitElement { `; @@ -666,7 +583,9 @@ export class InitialSetup extends LitElement { case 6: return this.renderPageSix(); default: - return html`
Loading...
`; + return html`
+ +
`; } } } diff --git a/src/components/LoadingView.ts b/src/components/LoadingView.ts index 33f177c..8ec8d7f 100644 --- a/src/components/LoadingView.ts +++ b/src/components/LoadingView.ts @@ -1,17 +1,43 @@ -import { LitElement, html } from 'lit'; +import { LitElement, css, html } from 'lit'; import { customElement } from 'lit/decorators.js'; @customElement('arx-loading-view') export class LoadingView extends LitElement { + static override styles = [ + css` + :host { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + padding: 16px; + color: var(--color-accent); + } + + @keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } + } + + .spinner { + animation: spin 1.5s linear infinite; + width: 18px; + height: 18px; + border: 2px solid var(--color-accent-content); + border-top: 2px solid var(--color-accent); + border-radius: 50%; + } + `, + ]; + override render() { return html` - Loading... +
+ Loading... `; } } - -declare global { - interface HTMLElementTagNameMap { - 'arx-loading-view': LoadingView; - } -} diff --git a/src/components/NostrAvatar.ts b/src/components/NostrAvatar.ts index 63b4295..fbd43d3 100644 --- a/src/components/NostrAvatar.ts +++ b/src/components/NostrAvatar.ts @@ -20,13 +20,13 @@ export class ArxNostrAvatar extends LitElement { --avatar-size: 2rem; } .medium-avatar { - --avatar-size: 3rem; - } - .large-avatar { --avatar-size: 4rem; } + .large-avatar { + --avatar-size: 6rem; + } .huge-avatar { - --avatar-size: 5rem; + --avatar-size: 10rem; } `, ]; diff --git a/src/components/NostrProfile.ts b/src/components/NostrProfile.ts index 0f059c5..41cc4fe 100644 --- a/src/components/NostrProfile.ts +++ b/src/components/NostrProfile.ts @@ -52,13 +52,25 @@ export class NostrProfile extends LitElement { switch (this.renderType) { case 'short': - return html``; + return html``; case 'medium': - return html``; + return html``; case 'large': - return html``; + return html``; case 'card': - return html``; + return html``; default: return html`

Invalid render type

`; } diff --git a/src/components/Widgets/BitcoinBlockWidget.ts b/src/components/Widgets/BitcoinBlockWidget.ts index d1a0017..2a0ec6e 100644 --- a/src/components/Widgets/BitcoinBlockWidget.ts +++ b/src/components/Widgets/BitcoinBlockWidget.ts @@ -1,11 +1,16 @@ -import { getLastBlockHeight } from '@utils/lastBlockHeight'; +import formatDateTime from '@/utils/formatDateTime'; +import { type LastBlock, getLastBlock } from '@/utils/lastBlock'; import { LitElement, css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; +import { when } from 'lit/directives/when.js'; +import '@components/LoadingView'; +import '@components/General/Tooltip'; +import '@components/General/Fieldset'; @customElement('arx-bitcoin-block-widget') export class BitcoinBlockWidget extends LitElement { @state() - private lastBlock: number | null = null; + private lastBlock: LastBlock | null = null; @state() private isLoading = true; @@ -13,15 +18,16 @@ export class BitcoinBlockWidget extends LitElement { @state() private error: string | null = null; - private REFRESH_INTERVAL = 5000; + private REFRESH_INTERVAL = 30000; @state() private timer: number | null = null; constructor() { super(); - this.loadBlockHeight(); - this.timer = window.setInterval(this.loadBlockHeight, this.REFRESH_INTERVAL); + this.loadBlock = this.loadBlock.bind(this); + this.loadBlock(); + this.timer = window.setInterval(this.loadBlock, this.REFRESH_INTERVAL); } override disconnectedCallback() { @@ -29,70 +35,138 @@ export class BitcoinBlockWidget extends LitElement { if (this.timer) clearInterval(this.timer); } - async loadBlockHeight() { + async loadBlock() { + this.isLoading = true; try { - const response = await getLastBlockHeight(); - this.lastBlock = response.height; + const response = await getLastBlock(); + this.lastBlock = response; this.error = null; } catch (error) { - this.error = 'Failed to load block height'; + this.error = 'Failed to load block data'; console.error(error); } finally { this.isLoading = false; } } + private formatBlockId(id: string): string { + if (!id) return ''; + if (id.length <= 16) return id; + return `${id.substring(0, 8)}...${id.substring(id.length - 8)}`; + } + + private formatSize(size: number): string { + if (size < 1024) return `${size} Bytes`; + if (size < 1024 * 1024) return `${(size / 1024).toFixed(2)} KB`; + return `${(size / (1024 * 1024)).toFixed(2)} MB`; + } + + private copyToClipboard(text: string) { + navigator.clipboard.writeText(text).catch((err) => { + console.error('Could not copy text: ', err); + }); + } + static override styles = [ css` - .error { - color: #dc3545; - padding: 0.5rem; - border-radius: 4px; - background: #f8d7da; + :host { + display: block; } - .loading { + .widget-header { display: flex; + justify-content: space-between; align-items: center; - gap: 0.5rem; + margin-bottom: 12px; + border-bottom: var(--border) solid var(--color-base-300); + padding-bottom: 8px; } - .block-height { - display: flex; - align-items: center; - gap: 0.5rem; - } - - .label { - font-weight: 500; - } - - .value { - font-size: 1.25rem; + .widget-title { + font-size: 1.2rem; font-weight: 600; + margin: 0; + color: var(--color-base-content); + display: flex; + align-items: center; + gap: 8px; + } + + .bitcoin-icon { + color: var(--color-warning); + font-size: 1.4rem; + } + + .error { + color: var(--color-error-content); + padding: 12px; + border-radius: var(--radius-field); + background: var(--color-error); + margin-bottom: 12px; } `, ]; - override render() { - if (this.error) { - return html`
${this.error}
`; - } + private renderError() { + return html`
${this.error}
`; + } - if (this.isLoading) { - return html` -
- - Loading latest block... -
- `; - } + private renderLoading() { + return html``; + } + + private renderEmptyState() { + return html`
No block data available
`; + } + + private renderBlockData() { + if (!this.lastBlock) return this.renderEmptyState(); return html` -
- Last Block: - ${this.lastBlock?.toLocaleString()} + + ${this.lastBlock.height.toLocaleString()} + + + + this.copyToClipboard(this.lastBlock!.id)} + > + ${this.formatBlockId(this.lastBlock.id)} + + + + + ${formatDateTime(this.lastBlock.timestamp * 1000)} + + + + + ${this.formatSize(this.lastBlock.size)} + (${this.lastBlock.tx_count.toLocaleString()} txs) + + + `; + } + + override render() { + return html` +
+

+ Bitcoin Latest Block +

+ + ${when( + this.error, + () => this.renderError(), + () => + when( + this.isLoading && !this.lastBlock, + () => this.renderLoading(), + () => this.renderBlockData(), + ), + )} `; } } diff --git a/src/components/profiles/CardProfile.ts b/src/components/profiles/CardProfile.ts index b1354fe..aa9cc57 100644 --- a/src/components/profiles/CardProfile.ts +++ b/src/components/profiles/CardProfile.ts @@ -2,6 +2,10 @@ import type { NDKUserProfile } from '@nostr-dev-kit/ndk'; import { getProfile } from '@utils/profileUtils'; import { LitElement, css, html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import { when } from 'lit/directives/when.js'; + +import '@components/EveLink'; +import '@components/General/Card'; @customElement('arx-nostr-card-profile') export class CardProfile extends LitElement { @@ -25,50 +29,82 @@ export class CardProfile extends LitElement { static override styles = [ css` - .card { - padding: 1rem; - border: 1px solid var(--border); - border-radius: 8px; - max-width: 300px; - } - a { - color: var(--primary); + color: var(--color-accent); text-decoration: none; display: inline-flex; align-items: center; - gap: 0.5rem; + gap: 0.75rem; + transition: all 0.2s ease; } h3 { margin: 0; font-size: 1.2rem; + color: var(--color-base-content); + font-weight: 600; } p { margin: 0.25rem 0; - color: var(--secondary); + color: var(--color-secondary); font-size: 0.9rem; } .bio { white-space: pre-line; font-size: 0.9rem; - color: var(--primary); - margin: 0.5rem 0; - padding-top: 0.5rem; - border-top: 1px solid var(--border); + color: var(--color-base-content); + margin: 0.75rem 0 0.5rem; + padding-top: 0.75rem; + border-top: var(--border) solid var(--color-base-300); + line-height: 1.5; } .website-link { display: block; - margin-top: 0.5rem; + margin-top: 0.75rem; font-size: 0.9rem; - color: var(--accent); + color: var(--color-accent); + position: relative; + width: fit-content; + padding: 0.25rem 0; + } + + .website-link::after { + content: ""; + position: absolute; + bottom: 0; + left: 0; + width: 0; + height: var(--border); + background-color: var(--color-accent); + transition: width 0.25s ease; } .website-link:hover { - text-decoration: underline; + color: oklch(from var(--color-accent) l calc(c * 1.1) h); + } + + .website-link:hover::after { + width: 100%; + } + + router-link { + display: flex; + align-items: center; + border-radius: calc(var(--radius-selector) / 2); + padding: 0.25rem; + transition: all 0.2s ease; + } + + router-link:hover { + background-color: oklch(from var(--color-base-300) l c h / 0.5); + } + + router-link:focus-visible { + outline: var(--border) solid var(--color-accent); + outline-offset: 2px; } `, ]; @@ -101,21 +137,31 @@ export class CardProfile extends LitElement { override render() { return html` -
- - + + +

${this.displayName}

-

${this.firstLineOfAbout}

+ ${when(this.firstLineOfAbout, () => html`

${this.firstLineOfAbout}

`)}
-
+ -
${this.about}
- - - ${this.website} - -
+ ${when(this.about, () => html`
${this.about}
`)} + ${when( + this.website, + () => html` + ${this.website} + `, + )} + `; } } diff --git a/src/components/profiles/LargeProfile.ts b/src/components/profiles/LargeProfile.ts index c3f5944..f2b70dd 100644 --- a/src/components/profiles/LargeProfile.ts +++ b/src/components/profiles/LargeProfile.ts @@ -4,6 +4,8 @@ import { getProfile } from '@utils/profileUtils'; import { LitElement, css, html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import '@components/EveLink'; + @customElement('arx-nostr-large-profile') export class LargeProfile extends LitElement { @property() profile!: NDKUserProfile; @@ -20,19 +22,58 @@ export class LargeProfile extends LitElement { static override styles = [ css` - a { - color: var(--primary); + :host { + display: block; + } + + arx-eve-link { + color: var(--color-base-content); text-decoration: none; - display: inline-flex; + display: flex; align-items: center; - gap: 0.5rem; + gap: 0.75rem; + padding: 0.75rem; + border-radius: var(--radius-selector); + transition: all 0.2s ease; + } + + arx-eve-link:hover { + background-color: oklch(from var(--color-base-300) l c h / 0.5); + } + + arx-eve-link:focus-visible { + outline: var(--border) solid var(--color-accent); + outline-offset: 2px; + } + + h3 { + margin: 0 0 0.35rem 0; + font-size: 1.1rem; + font-weight: 600; + color: var(--color-base-content); } .bio { white-space: pre-line; font-size: 0.9rem; - color: var(--primary); - margin: 0.5rem 0; + color: var(--color-secondary); + margin: 0; + line-height: 1.4; + max-width: 24rem; + overflow: hidden; + text-overflow: ellipsis; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + } + + arx-nostr-avatar { + flex-shrink: 0; + transition: transform 0.2s ease; + } + + arx-eve-link:hover arx-nostr-avatar { + transform: scale(1.05); } `, ]; @@ -49,13 +90,16 @@ export class LargeProfile extends LitElement { override render() { return html` - - + +

${this.displayName}

${this.about}
-
+ `; } } diff --git a/src/components/profiles/MediumProfile.ts b/src/components/profiles/MediumProfile.ts index d25b8eb..a878ffb 100644 --- a/src/components/profiles/MediumProfile.ts +++ b/src/components/profiles/MediumProfile.ts @@ -22,12 +22,52 @@ export class MediumProfile extends LitElement { static override styles = [ css` - arx-eve-link::part(link) { - color: var(--primary); + :host { + display: block; + } + + arx-eve-link { + color: var(--color-base-content); text-decoration: none; - display: inline-flex; + display: flex; align-items: center; gap: 0.5rem; + padding: 0.5rem; + border-radius: var(--radius-selector); + transition: all 0.2s ease; + } + + arx-eve-link:hover { + background-color: oklch(from var(--color-base-300) l c h / 0.5); + } + + arx-eve-link:focus-visible { + outline: var(--border) solid var(--color-accent); + outline-offset: 2px; + } + + .display-name { + font-weight: 500; + color: var(--color-base-content); + margin-bottom: 0.25rem; + } + + .bio { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-size: 0.85rem; + color: var(--color-secondary); + max-width: 180px; + } + + arx-nostr-avatar { + flex-shrink: 0; + transition: transform 0.2s ease; + } + + arx-eve-link:hover arx-nostr-avatar { + transform: scale(1.05); } `, ]; diff --git a/src/components/profiles/ShortProfile.ts b/src/components/profiles/ShortProfile.ts index d449fcf..9768181 100644 --- a/src/components/profiles/ShortProfile.ts +++ b/src/components/profiles/ShortProfile.ts @@ -18,12 +18,43 @@ export class ShortProfile extends LitElement { static override styles = [ css` - arx-eve-link::part(link) { - color: var(--primary); + :host { + display: inline-block; + } + + arx-eve-link { + color: var(--color-base-content); text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; + padding: 0.25rem 0.5rem; + border-radius: var(--radius-selector); + transition: all 0.2s ease; + white-space: nowrap; + } + + arx-eve-link:hover { + background-color: oklch(from var(--color-base-300) l c h / 0.5); + } + + arx-eve-link:focus-visible { + outline: var(--border) solid var(--color-accent); + outline-offset: 2px; + } + + span { + font-weight: 500; + font-size: 0.95rem; + } + + arx-nostr-avatar { + flex-shrink: 0; + transition: transform 0.2s ease; + } + + arx-eve-link:hover arx-nostr-avatar { + transform: scale(1.05); } `, ]; diff --git a/src/index.html b/src/index.html index 44a6910..5318948 100644 --- a/src/index.html +++ b/src/index.html @@ -2,7 +2,6 @@ - diff --git a/src/main.ts b/src/main.ts index c2324f2..001d8e7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,4 @@ -import './style.scss'; - +import './style.css'; import '@components/ErrorView'; import '@components/NostrAvatar'; import '@components/LoadingView'; diff --git a/src/routes/404Page.ts b/src/routes/404Page.ts index 2b7b267..a14c1c0 100644 --- a/src/routes/404Page.ts +++ b/src/routes/404Page.ts @@ -2,7 +2,9 @@ import { LitElement, css, html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import type { RouteParams } from './router'; -import '@components/EveLink'; +import '@components/General/Button'; +import '@components/General/Card'; +import '@components/General/Fieldset'; @customElement('arx-404-page') export class FourOhFourPage extends LitElement { @@ -17,30 +19,27 @@ export class FourOhFourPage extends LitElement { static override styles = [ css` - .not-found { + :host { display: flex; align-items: center; justify-content: center; - font-family: "Inter", sans-serif; - padding: 1rem; - } - - .content { - max-width: 600px; - text-align: center; + font-family: system-ui, -apple-system, sans-serif; + padding: 2rem 1rem; + min-height: 80vh; + background-color: var(--color-base-100); } .error-container h1 { margin: 0; - } - - .error-container h1 * { - position: relative; - margin: 0 -20px; + display: flex; + align-items: center; + justify-content: center; } .spinning-gear { - animation: spin 5s linear infinite; + animation: spin 8s linear infinite; + font-size: 7rem; + margin: 0 -10px; } @keyframes spin { @@ -52,37 +51,34 @@ export class FourOhFourPage extends LitElement { } } - .path-container { - background: rgba(255, 255, 255, 0.5); - backdrop-filter: blur(10px); - border: 1px solid rgba(255, 255, 255, 0.6); - box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); - margin-bottom: 2rem; - padding: 1rem; - backdrop-filter: blur(10px); - } - - .path-text { - color: var(--secondary); - margin: 0 0 0.5rem 0; - font-size: 0.9rem; + arx-fieldset { + margin-top: 1rem; + text-align: center; } .path { - font-family: "JetBrains Mono", monospace; - color: var(--primary); + font-family: monospace; + color: var(--color-accent); word-break: break-all; - font-size: 1.1rem; - padding: 0.5rem; - background: rgba(0, 0, 0, 0.2); - border-radius: 4px; + font-size: 1rem; + padding: 0.75rem; + background: oklch(from var(--color-base-content) l c h / 0.1); + border-radius: var(--radius-field); display: inline-block; max-width: 100%; + text-align: left; } h1 { - font-size: 8rem; + font-size: 7rem; font-weight: 800; + color: var(--color-base-content); + line-height: 1; + margin-bottom: 1rem; + } + + .four { + padding: 0 0.25rem; } .message-text { @@ -92,108 +88,100 @@ export class FourOhFourPage extends LitElement { gap: 0.75rem; } - .message-text .inline-icon { - font-size: 1.25rem; - flex-shrink: 0; - } - .status { - font-size: 1.25rem; - color: #94a3b8; - margin: 1rem 0; + font-size: 1.5rem; + color: var(--color-base-content); + margin: 0.5rem 0; + font-weight: 600; } .sub-text { - color: #64748b; + color: var(--color-secondary); display: flex; align-items: center; justify-content: center; gap: 0.5rem; - margin-bottom: 2rem; - } - - .inline-icon { - font-size: 1.25rem; + margin-bottom: 2.5rem; + font-size: 1.1rem; } .actions { display: flex; - gap: 1rem; + gap: 1.25rem; justify-content: center; flex-wrap: wrap; } - .primary-button { - display: flex; - align-items: center; - gap: 0.5rem; - padding: 0.75rem 1.5rem; - border-radius: 8px; - font-weight: 600; - transition: all 0.3s ease; - text-decoration: none; - background: var(--accent); - color: white; - - &:hover { - background: var(--secondary); - transform: translateY(-2px); + @media (max-width: 640px) { + h1 { + font-size: 5rem; } - } - arx-eve-link::part(link) { - color: white; - text-decoration: none; + .spinning-gear { + font-size: 5rem; + } + + .status { + font-size: 1.25rem; + } + + .sub-text { + font-size: 1rem; + } + + .actions { + flex-direction: column; + align-items: center; + } } `, ]; override render() { return html` -
-
-
-

- 4 - - 4 -

-
-
-
Path:
-
${this.path}
-
-
-
Page not found.
-
- The page you are looking for does not exist. -
-
-
- - - Go back - - - - Home - + +
+

+ 4 + + 4 +

+
+ +
${this.path}
+
+
+
Page not found
+
+ The page you are looking for does not exist
-
+
+ + + + + + Home + +
+ `; } } diff --git a/src/routes/Arbor/Home.ts b/src/routes/Arbor/Home.ts index f939751..4d7e636 100644 --- a/src/routes/Arbor/Home.ts +++ b/src/routes/Arbor/Home.ts @@ -2,16 +2,13 @@ import { getSigner, ndk } from '@/ndk'; import { NDKEvent, type NDKKind, type NDKSubscription } from '@nostr-dev-kit/ndk'; import { LitElement, css, html } from 'lit'; import { customElement, state } from 'lit/decorators.js'; +import { map } from 'lit/directives/map.js'; +import { when } from 'lit/directives/when.js'; import '@components/Breadcrumbs'; import '@components/Arbor/ForumTopic'; import '@components/Arbor/ForumCategory'; -import '@components/Arbor/Button'; -import '@components/Prompt'; - -import type { EvePrompt } from '@components/Prompt'; -import { map } from 'lit/directives/map.js'; -import { when } from 'lit/directives/when.js'; +import '@components/General/Prompt'; interface ForumTopic { id: string; @@ -164,9 +161,10 @@ export class ArborForum extends LitElement { > - - New Category - +
Topic ID: ${this.topicId}
- + > ${this.error ? html`
${this.error}
` : null}
- this.dispatchEvent(new CustomEvent('cancel'))} ?disabled=${this.isCreating} - > - Cancel - + > - ${this.isCreating ? 'Creating...' : 'Create'} - +
`; diff --git a/src/routes/Arbor/NewTopic.ts b/src/routes/Arbor/NewTopic.ts index f508e82..23f3403 100644 --- a/src/routes/Arbor/NewTopic.ts +++ b/src/routes/Arbor/NewTopic.ts @@ -3,6 +3,10 @@ import { NDKEvent } from '@nostr-dev-kit/ndk'; import { LitElement, css, html } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import '@components/General/Input'; +import '@components/General/Textarea'; +import '@components/General/Button'; + @customElement('arx-arbor-topic-creator') export class ArborTopicCreator extends LitElement { @property({ type: String }) @@ -22,20 +26,6 @@ export class ArborTopicCreator extends LitElement { display: block; } - input, - textarea { - width: 100%; - margin-bottom: 1rem; - padding: 0.5rem; - border: 1px solid #ccc; - border-radius: 4px; - } - - textarea { - min-height: 200px; - resize: vertical; - } - .error { color: red; margin-bottom: 1rem; @@ -108,35 +98,34 @@ export class ArborTopicCreator extends LitElement { return html`
Category ID: ${this.categoryId}
- + > - + >
- this.dispatchEvent(new CustomEvent('cancel'))} ?disabled=${this.isCreating} - > - Cancel - + > - - ${this.isCreating ? 'Creating...' : 'Create'} - +
`; } diff --git a/src/routes/Arbor/TopicView.ts b/src/routes/Arbor/TopicView.ts index 94e8fc3..f522906 100644 --- a/src/routes/Arbor/TopicView.ts +++ b/src/routes/Arbor/TopicView.ts @@ -5,7 +5,7 @@ import { customElement, property, state } from 'lit/decorators.js'; import '@components/Breadcrumbs'; import '@components/Arbor/ForumPost'; -import '@components/Arbor/Button'; +import '@components/General/Button'; import { map } from 'lit/directives/map.js'; import { when } from 'lit/directives/when.js'; @@ -34,23 +34,24 @@ export class ArborTopicView extends LitElement { :host { display: block; margin: 0 auto; - padding: 1rem; - color: #1a1a1a; - font-family: system-ui, -apple-system, BlinkMacSystemFont, sans-serif; } .topic-container { - background: #ffffff; - border-radius: 12px; - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); + background: var(--color-base-100); + border-radius: var(--radius-box); + border: var(--border) solid var(--color-base-300); overflow: hidden; margin-top: 1.5rem; - border: 1px solid rgba(0, 0, 0, 0.08); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.1), + calc(var(--depth) * -1px) calc(var(--depth) * -1px) + calc(var(--depth) * 3px) oklch(from var(--color-base-100) l c h / 0.4); } .header { - background: var(--primary); - color: oklch(100% 0 0); + background: var(--color-secondary); + color: var(--color-secondary-content); padding: 1.5rem 2rem; font-weight: 600; font-size: 1.25rem; @@ -58,32 +59,54 @@ export class ArborTopicView extends LitElement { justify-content: space-between; align-items: center; position: relative; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); + text-shadow: 0 1px 2px oklch(from var(--color-base-content) l c h / 0.2); letter-spacing: 0.01em; + border-bottom: var(--border) solid var(--color-base-300); } .posts-container { display: flex; flex-direction: column; gap: 0; - background: #f9f9f9; + background: var(--color-base-200); padding: 1.5rem; min-height: 300px; } .actions { - background: #f9f9f9; + background: var(--color-base-200); padding: 1.25rem 1.5rem; display: flex; justify-content: flex-end; - border-top: 1px solid rgba(0, 0, 0, 0.06); + border-top: var(--border) solid var(--color-base-300); } .empty-state { padding: 3rem; text-align: center; - color: #666; + color: var(--color-secondary); font-style: italic; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + height: 200px; + background: var(--color-base-100); + border-radius: var(--radius-field); + margin: 1rem 0; + border: var(--border) dashed var(--color-base-300); + } + + arx-breadcrumbs { + margin-bottom: 1rem; + } + + arx-forum-post { + border-bottom: var(--border) solid var(--color-base-300); + } + + arx-forum-post:last-child { + border-bottom: none; } @media (max-width: 768px) { @@ -108,6 +131,13 @@ export class ArborTopicView extends LitElement { .header { padding: 1rem; + flex-direction: column; + align-items: flex-start; + gap: 0.5rem; + } + + .empty-state { + padding: 2rem 1rem; } } `; @@ -199,9 +229,9 @@ export class ArborTopicView extends LitElement {
- + New Post - +
`; diff --git a/src/routes/Home.ts b/src/routes/Home.ts index baa3563..dc0736d 100644 --- a/src/routes/Home.ts +++ b/src/routes/Home.ts @@ -2,9 +2,13 @@ import { getNpub, getUserProfile } from '@/ndk'; import type { NDKUserProfile } from '@nostr-dev-kit/ndk'; import { LitElement, css } from 'lit'; import { customElement, state } from 'lit/decorators.js'; +import { map } from 'lit/directives/map.js'; import { html, literal } from 'lit/static-html.js'; + import '@widgets/BitcoinBlockWidget'; import '@components/AppGrid'; +import '@components/NostrAvatar'; +import '@components/General/Card'; @customElement('arx-eve-home') export class Home extends LitElement { @@ -20,57 +24,57 @@ export class Home extends LitElement { id: 0, href: 'letters', name: 'Letters', - color: '#FF33BB', - icon: 'bxs:envelope', + color: '#FF3E96', + icon: 'fa-solid:leaf', }, { id: 1, href: 'messages', - name: 'Messages', - color: '#34C759', - icon: 'bxs:chat', + name: 'Murmur', + color: '#00CD66', + icon: 'fa-solid:seedling', }, { id: 2, href: 'calendar', name: 'Calendar', - color: '#FF9500', - icon: 'bxs:calendar', + color: '#FF8C00', + icon: 'fa-solid:sun', }, { id: 3, href: 'arbor', name: 'Arbor', - color: '#FF3B30', - icon: 'bxs:conversation', + color: '#FF4040', + icon: 'fa-solid:tree', }, { id: 5, - href: 'agora', - name: 'Agora', - color: '#5856D6', - icon: 'bxs:store', + href: 'grove', + name: 'Grove', + color: '#9370DB', + icon: 'fa-solid:store-alt', }, { id: 6, href: 'wallet', name: 'Wallet', - color: '#007AFF', - icon: 'bxs:wallet', + color: '#1E90FF', + icon: 'fa-solid:spa', }, { id: 7, - href: 'consortium', - name: 'Consortium', - color: '#FFCC00', - icon: 'bxs:landmark', + href: 'oracle', + name: 'Oracle', + color: '#FFD700', + icon: 'bxs:landscape', }, { id: 8, href: 'settings', name: 'Settings', - color: '#deadbeef', - icon: 'bxs:wrench', + color: '#7B68EE', + icon: 'fa-solid:tools', }, ]; @@ -91,26 +95,12 @@ export class Home extends LitElement { static override styles = [ css` - @keyframes gradient { - 0% { - background-position: 0% 50%; - } - - 50% { - background-position: 100% 50%; - } - - 100% { - background-position: 0% 50%; - } - } - .content-wrapper { display: flex; gap: 20px; + width: 100%; max-width: 1200px; - margin: 0 auto; - padding: 20px; + margin: auto; } .home { @@ -126,36 +116,17 @@ export class Home extends LitElement { .home-container { flex: 1; - background: rgba(255, 255, 255, 0.5); - border-radius: 20px; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + padding: 0; } .widgets-container { - width: 300px; + width: 350px; display: flex; flex-direction: column; gap: 20px; - } - .widget { - background: rgba(255, 255, 255, 0.5); - border-radius: 15px; - padding: 20px; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); - backdrop-filter: blur(10px); - - h3 { - margin: 0 0 10px 0; - font-size: 18px; - color: #1c1c1e; - } - - p { - margin: 0; - font-size: 14px; - color: #333; - line-height: 1.4; + & > * { + flex: 1; } } @@ -170,20 +141,12 @@ export class Home extends LitElement { overflow-x: auto; padding-bottom: 10px; } - - .widget { - min-width: 250px; - } } @media (max-width: 768px) { .widgets-container { flex-direction: column; } - - .widget { - width: auto; - } } .welcome-section { @@ -193,21 +156,12 @@ export class Home extends LitElement { justify-content: center; gap: 20px; padding: 20px; - background: rgba(255, 255, 255, 0.5); border-radius: 20px; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .welcome-text h1 { margin: 0; font-size: 24px; - color: #1c1c1e; - } - - .welcome-text p { - margin: 5px 0 0; - color: #666; - font-size: 14px; } `, ]; @@ -221,29 +175,20 @@ export class Home extends LitElement { return html`
-
-
-
- -
+ + +

Welcome, ${this.username}

-
+ -
+
- ${this.widgets.map( - (widget) => html` -
-

${widget.title}

- <${widget.content}> -
- `, - )} + ${map(this.widgets, (widget) => html`<${widget.content}>`)}
diff --git a/src/routes/Profile.ts b/src/routes/Profile.ts index 457f4ce..e9e14eb 100644 --- a/src/routes/Profile.ts +++ b/src/routes/Profile.ts @@ -4,6 +4,8 @@ import { customElement, property, state } from 'lit/decorators.js'; import { when } from 'lit/directives/when.js'; import { getUserProfile } from '../ndk'; +import '@components/General/Card'; + @customElement('arx-profile-route') export class NostrProfile extends LitElement { @property({ type: String }) @@ -24,13 +26,16 @@ export class NostrProfile extends LitElement { position: relative; height: 20rem; overflow: hidden; + border-radius: var(--radius-box) var(--radius-box) 0 0; + border: var(--border) solid var(--color-base-300); + border-bottom: none; } .banner-image { position: absolute; inset: 0; transform: scale(1); - transition: transform 700ms; + transition: transform 700ms cubic-bezier(0.4, 0, 0.2, 1); } .banner-image:hover { @@ -49,8 +54,8 @@ export class NostrProfile extends LitElement { background: linear-gradient( to bottom, transparent, - rgba(0, 0, 0, 0.2), - rgba(0, 0, 0, 0.4) + oklch(from var(--color-base-content) l c h / 0.2), + oklch(from var(--color-base-content) l c h / 0.4) ); } @@ -70,14 +75,6 @@ export class NostrProfile extends LitElement { margin-top: 4rem; } - .profile-card { - background-color: rgba(255, 255, 255, 0.95); - border-radius: 0.75rem; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); - padding: 1.5rem; - backdrop-filter: blur(8px); - } - .profile-content { display: flex; flex-direction: column; @@ -100,9 +97,11 @@ export class NostrProfile extends LitElement { height: 10rem; border-radius: 50%; object-fit: cover; - border: 4px solid white; - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - transition: transform 300ms; + border: calc(var(--border) * 2) solid var(--color-base-100); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.15); + transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1); } .profile-image:hover { @@ -113,16 +112,24 @@ export class NostrProfile extends LitElement { width: 10rem; height: 10rem; border-radius: 50%; - background: linear-gradient(to bottom right, #e5e7eb, #d1d5db); + background: linear-gradient( + 135deg, + var(--color-base-200), + var(--color-base-300) + ); display: flex; align-items: center; justify-content: center; + border: calc(var(--border) * 2) solid var(--color-base-100); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.15); } .placeholder-icon { width: 5rem; height: 5rem; - color: #9ca3af; + color: var(--color-secondary); } .profile-info { @@ -145,18 +152,19 @@ export class NostrProfile extends LitElement { .display-name { font-size: 1.875rem; font-weight: bold; - color: #111827; + color: var(--color-base-content); display: flex; align-items: center; gap: 0.5rem; + margin: 0; } .verified-icon { - color: #3b82f6; + color: var(--color-accent); } .nip05 { - color: #4b5563; + color: var(--color-secondary); display: flex; align-items: center; gap: 0.25rem; @@ -175,51 +183,13 @@ export class NostrProfile extends LitElement { } } - .follow-button { - padding: 0.5rem 1.5rem; - border-radius: 9999px; - font-weight: 500; - transition: all 300ms; - background-color: #3b82f6; - color: white; - } - - .follow-button:hover { - background-color: #2563eb; - } - - .follow-button.following { - background-color: #e5e7eb; - color: #1f2937; - } - - .follow-button.following:hover { - background-color: #d1d5db; - } - - .copy-button { - padding: 0.5rem; - border-radius: 9999px; - background-color: #f3f4f6; - transition: background-color 300ms; - } - - .copy-button:hover { - background-color: #e5e7eb; - } - - .copy-icon { - width: 1.25rem; - height: 1.25rem; - } - .links-section { display: grid; - grid-auto-columns: minmax(300px, 1fr); + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; margin-top: 2rem; padding-top: 1.5rem; - border-top: 1px solid #e5e7eb; + border-top: var(--border) solid var(--color-base-300); } .link-item { @@ -227,13 +197,19 @@ export class NostrProfile extends LitElement { align-items: center; gap: 0.5rem; padding: 1rem; - border-radius: 0.5rem; - background-color: #f9fafb; - transition: background-color 300ms; + border-radius: var(--radius-field); + background-color: var(--color-base-200); + transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1); + text-decoration: none; + color: var(--color-base-content); } .link-item:hover { - background-color: #f3f4f6; + background-color: var(--color-base-300); + transform: translateY(-2px); + box-shadow: calc(var(--depth) * 2px) calc(var(--depth) * 2px) + calc(var(--depth) * 4px) + oklch(from var(--color-base-content) l c h / 0.1); } .link-icon { @@ -242,39 +218,23 @@ export class NostrProfile extends LitElement { } .link-icon.website { - color: #3b82f6; + color: var(--color-accent); } .link-icon.lightning { - color: #eab308; + color: var(--color-warning); } .bio { white-space: pre-line; font-size: 0.9rem; - color: #4b5563; + color: var(--color-secondary); margin: 1rem 0; - padding-top: 1rem; - line-height: 1.5; - } - - .animate-gradient { - background-size: 200% 200%; - animation: gradient 15s ease infinite; - } - - @keyframes gradient { - 0% { - background-position: 0% 50%; - } - - 50% { - background-position: 100% 50%; - } - - 100% { - background-position: 0% 50%; - } + padding: 1rem; + line-height: 1.6; + background-color: var(--color-base-200); + border-radius: var(--radius-field); + border-left: 3px solid var(--color-accent); } `; @@ -317,7 +277,7 @@ export class NostrProfile extends LitElement {
-
+
${when( @@ -376,6 +336,7 @@ export class NostrProfile extends LitElement { @@ -396,7 +357,7 @@ export class NostrProfile extends LitElement { `, )}
-
+
`; } diff --git a/src/routes/Settings.ts b/src/routes/Settings.ts new file mode 100644 index 0000000..cdcb210 --- /dev/null +++ b/src/routes/Settings.ts @@ -0,0 +1,181 @@ +import defaultAvatar from '@/default-avatar.png'; +import { getSigner, getUserProfile, ndk } from '@/ndk'; +import { NDKEvent, type NDKUserProfile } from '@nostr-dev-kit/ndk'; +import { LitElement, css, html } from 'lit'; +import { customElement, state } from 'lit/decorators.js'; +import { when } from 'lit/directives/when.js'; + +import '@components/DateTimeSettings'; +import '@components/General/Input'; +import '@components/General/Button'; +import '@components/General/Fieldset'; +import '@components/General/Card'; +import '@components/Breadcrumbs'; + +@customElement('arx-settings') +export class EveSettings extends LitElement { + static override styles = css` + :host { + display: block; + font-family: var(--font-family, "Inter", system-ui, sans-serif); + margin: 0 auto; + line-height: 1.6; + color: var(--color-base-content); + background-color: var(--color-base-100); + } + + .profile-image { + width: 140px; + height: 140px; + border-radius: 50%; + object-fit: cover; + border: calc(var(--border) * 2) solid var(--color-base-100); + box-shadow: calc(var(--depth) * 3px) calc(var(--depth) * 3px) + calc(var(--depth) * 6px) + oklch(from var(--color-base-content) l c h / 0.15), + calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 4px) oklch(from var(--color-base-100) l c h / 0.6); + transition: transform 0.3s, box-shadow 0.3s; + margin: 0 auto; + } + + .profile-image:hover { + transform: scale(1.05); + box-shadow: calc(var(--depth) * 4px) calc(var(--depth) * 4px) + calc(var(--depth) * 8px) oklch(from var(--color-accent) l c h / 0.3), + calc(var(--depth) * -2px) calc(var(--depth) * -2px) + calc(var(--depth) * 6px) oklch(from var(--color-base-100) l c h / 0.6); + } + + .profile-header { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + } + `; + + @state() private loading = true; + @state() private saving = false; + @state() private profile: NDKUserProfile | undefined; + @state() private error: string | undefined; + @state() private darkMode = false; + + protected override async firstUpdated() { + try { + this.profile = await getUserProfile(); + this.darkMode = localStorage.getItem('darkMode') === 'true'; + this.loading = false; + } catch (err) { + this.error = 'Failed to load profile'; + console.error(err); + this.loading = false; + } + } + + private handleInputChange(e: Event) { + const target = e.target as HTMLInputElement; + this.profile = { + ...this.profile, + [target.name]: target.value, + }; + } + + private async saveProfile() { + if (this.saving) return; + this.saving = true; + try { + await getSigner(); + const event = new NDKEvent(ndk); + event.kind = 0; + event.content = JSON.stringify(this.profile); + await event.sign(); + await event.publish(); + } catch (err) { + alert(err); + console.error(err); + } finally { + this.saving = false; + } + } + + private toggleDarkMode() { + this.darkMode = !this.darkMode; + localStorage.setItem('darkMode', this.darkMode.toString()); + document.body.classList.toggle('dark', this.darkMode); + } + + override render() { + if (this.error) return html``; + + if (this.loading) return html``; + + const breadcrumbItems = [{ text: 'Home', href: '/' }, { text: 'Settings' }]; + + return html` + + + + this.toggleDarkMode()} + > + + + ${when( + this.profile.picture, + () => html` +
+ Profile { + (e.target as HTMLImageElement).src = defaultAvatar; + }} + /> +
+ `, + )} + + + + + + +
+ + + + + +
+ `; + } +} diff --git a/src/routes/router.ts b/src/routes/router.ts index 7b3fb0b..235a129 100644 --- a/src/routes/router.ts +++ b/src/routes/router.ts @@ -1,6 +1,7 @@ import '@routes/404Page'; import '@routes/Home'; import '@routes/Profile'; +import '@routes/Settings'; import '@routes/Arbor/Home'; import '@routes/Arbor/NewTopic'; import '@routes/Arbor/TopicView'; @@ -10,6 +11,7 @@ import '@components/InitialSetup'; import { spread } from '@open-wc/lit-helpers'; import { LitElement, css } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; +import { keyed } from 'lit/directives/keyed.js'; import { type StaticValue, html, literal } from 'lit/static-html.js'; export interface RouteParams { @@ -58,6 +60,11 @@ export default class EveRouter extends LitElement { params: {}, component: literal`arx-arbor-post-creator`, }, + { + pattern: 'settings', + params: {}, + component: literal`arx-settings`, + }, { pattern: '404', params: {}, @@ -85,25 +92,16 @@ export default class EveRouter extends LitElement { overflow: hidden; } - input { - width: 100%; - } - - button { - background: var(--primary); - color: white; - border: 1px solid var(--border); - margin: 1rem 0; - width: 100%; - } - .window { - max-width: 1200px; overflow: auto; + } + + .window-content { + max-width: 1200px; + overflow: visible; height: 100%; - position: relative; - left: 50%; - transform: translateX(-50%); + margin: 0 auto; + padding: 1rem; } `; @@ -261,24 +259,29 @@ export default class EveRouter extends LitElement { override render() { if (!this.ccnSetup) return this.renderSetup(); return html` - 0} - ?canGoForward=${this.currentIndex < this.history.length - 1} - url="eve://${this.currentPath}" - @navigate=${(e: CustomEvent) => this.navigate(e.detail)} - @go-back=${this.goBack} - @go-forward=${this.goForward} - title="Eve" - > + 0} + ?canGoForward=${this.currentIndex < this.history.length - 1} + url="eve://${this.currentPath}" + @navigate=${(e: CustomEvent) => this.navigate(e.detail)} + @go-back=${this.goBack} + @go-forward=${this.goForward} + title="Eve" + >
- <${this.currentRoute.component} - ${spread(this.currentRoute.params)} - path=${this.currentPath} - @navigate=${this.navigate} - @go-back=${this.goBack} - @go-forward=${this.goForward} - > + ${keyed( + this.currentRoute.params, + html` + <${this.currentRoute.component} + ${spread(this.currentRoute.params)} + path=${this.currentPath} + @navigate=${this.navigate} + @go-back=${this.goBack} + @go-forward=${this.goForward} + > + `, + )}
`; diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..a6a8efb --- /dev/null +++ b/src/style.css @@ -0,0 +1,90 @@ +:root { + --font-md: clamp(1.333rem, 1.5vw, 1.5rem); + --font-2xl: clamp(3.157rem, 3.6vw, 3.555rem); + + --space-xs: clamp(0.5rem, 0.75vw, 0.75rem); + --space-sm: clamp(1rem, 1.5vw, 1.5rem); + --space-md: clamp(2rem, 3vw, 3rem); + + --animation-curve: cubic-bezier(0.68, -0.55, 0.265, 1.55); + --transition: 0.3s var(--animation-curve); + + --color-base-100: oklch(98% 0.016 73.684); + --color-base-200: oklch(95% 0.038 75.164); + --color-base-300: oklch(90% 0.076 70.697); + --color-base-content: oklch(40% 0.123 38.172); + + --color-primary: oklch(0% 0 0); + --color-primary-content: oklch(100% 0 0); + + --color-secondary: oklch(22.45% 0.075 37.85); + --color-secondary-content: oklch(90% 0.076 70.697); + + --color-accent: oklch(46.44% 0.111 37.85); + --color-accent-content: oklch(90% 0.076 70.697); + + --color-neutral: oklch(55% 0.195 38.402); + --color-neutral-content: oklch(98% 0.016 73.684); + + --color-info: oklch(42% 0.199 265.638); + --color-info-content: oklch(90% 0.076 70.697); + --color-success: oklch(43% 0.095 166.913); + --color-success-content: oklch(90% 0.076 70.697); + --color-warning: oklch(82% 0.189 84.429); + --color-warning-content: oklch(41% 0.112 45.904); + --color-error: oklch(70% 0.191 22.216); + --color-error-content: oklch(39% 0.141 25.723); + + --radius-selector: 1rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 2px; + --depth: 1; + --noise: 1; +} + +body.dark { + --color-base-100: oklch(28.822% 0.022 277.508); + --color-base-200: oklch(26.805% 0.02 277.508); + --color-base-300: oklch(24.787% 0.019 277.508); + --color-base-content: oklch(97.747% 0.007 106.545); + --color-primary: oklch(75.461% 0.183 346.812); + --color-primary-content: oklch(15.092% 0.036 346.812); + --color-secondary: oklch(74.202% 0.148 301.883); + --color-secondary-content: oklch(14.84% 0.029 301.883); + --color-accent: oklch(83.392% 0.124 66.558); + --color-accent-content: oklch(16.678% 0.024 66.558); + --color-neutral: oklch(39.445% 0.032 275.524); + --color-neutral-content: oklch(87.889% 0.006 275.524); + --color-info: oklch(88.263% 0.093 212.846); + --color-info-content: oklch(17.652% 0.018 212.846); + --color-success: oklch(87.099% 0.219 148.024); + --color-success-content: oklch(17.419% 0.043 148.024); + --color-warning: oklch(95.533% 0.134 112.757); + --color-warning-content: oklch(19.106% 0.026 112.757); + --color-error: oklch(68.22% 0.206 24.43); + --color-error-content: oklch(13.644% 0.041 24.43); + --radius-selector: 1rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 0; + --noise: 0; +} + +body { + background-color: var(--color-base-100); + color: var(--color-base-content); + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + line-height: 1.5; + box-sizing: border-box; + border: var(--border) solid var(--color-base-300); + border-radius: var(--radius-box); + margin: 0; + padding: 0; + overflow: hidden; +} diff --git a/src/style.scss b/src/style.scss deleted file mode 100644 index aeb05a0..0000000 --- a/src/style.scss +++ /dev/null @@ -1,443 +0,0 @@ -:root { - --primary: oklch(25% 0.09 210); - --secondary: oklch(from var(--primary) calc(l + 0.05) calc(c * 1.1) h); - --accent: oklch(from var(--primary) calc(l + 0.35) calc(c + 0.15) h); - --light: oklch(from var(--primary) 96% calc(c * 0.3) h); - --dark: oklch(from var(--primary) 20% calc(c * 0.3) h); - --border: oklch(from var(--primary) 80% calc(c * 0.5) h); - --success: oklch(from var(--primary) 70% calc(c + 0.2) 142); - --warning: oklch(from var(--primary) 85% calc(c + 0.2) 85); - --error: oklch(from var(--primary) 65% calc(c + 0.2) 25); - - --shadow-color: oklch(from var(--primary) 20% calc(c * 0.3) h); - --shadow-sm: 0 1px 2px rgba(var(--shadow-color), 0.1); - --shadow-md: 0 2px 4px oklch(from var(--shadow-color) l c h / 0.1), - 0 1px 2px oklch(from var(--shadow-color) l c h / 0.05); - --shadow-lg: 0 4px 6px oklch(from var(--shadow-color) l c h / 0.1), - 0 2px 4px oklch(from var(--shadow-color) l c h / 0.06); - --shadow-xl: 0 10px 15px oklch(from var(--shadow-color) l c h / 0.1), - 0 4px 6px oklch(from var(--shadow-color) l c h / 0.08); - - --font-xs: clamp(0.65rem, 0.7vw, 0.8rem); - --font-sm: clamp(0.8rem, 0.9vw, 0.9rem); - --font-base: clamp(1rem, 1.1vw, 1.125rem); - --font-md: clamp(1.333rem, 1.5vw, 1.5rem); - --font-lg: clamp(1.777rem, 2vw, 2rem); - --font-xl: clamp(2.369rem, 2.7vw, 2.666rem); - --font-2xl: clamp(3.157rem, 3.6vw, 3.555rem); - --font-3xl: clamp(4.209rem, 4.8vw, 4.74rem); - - --space-xs: clamp(0.5rem, 0.75vw, 0.75rem); - --space-sm: clamp(1rem, 1.5vw, 1.5rem); - --space-md: clamp(2rem, 3vw, 3rem); - --space-lg: clamp(3rem, 4.5vw, 4.5rem); - - --header-height: var(--font-2xl); -} - -.window { - display: grid; - gap: 0; - grid-template-rows: var(--header-height) 1fr; - height: 100vh; - width: 100vw; - overflow: hidden; -} - -header { - background: rgba(255, 255, 255, 0.5); - backdrop-filter: blur(10px); - border: 1px solid rgba(255, 255, 255, 0.6); - border-bottom-left-radius: 16px; - border-bottom-right-radius: 16px; - z-index: 999999; - margin-bottom: var(--font-2xl); - background: var(--primary); - height: var(--font-2xl); - font-size: var(--header-height); - transition: all 0.3s ease; - display: flex; - align-items: center; - padding: 0 var(--space-md); - - .search-container { - flex: 1; - position: relative; - - input { - background: rgba(255, 255, 255, 0.5); - backdrop-filter: blur(10px); - border: 1px solid rgba(255, 255, 255, 0.6); - border-radius: 16px; - color: var(--light); - width: 100%; - text-align: center; - cursor: text; - font-size: 0.9rem; - width: 100%; - padding: var(--space-xs); - text-align: center; - - &:not(:focus)::placeholder { - color: var(--light); - opacity: 1; - } - - &:focus { - background: rgba(0, 0, 0, 0.2); - } - } - } - - .nav-buttons { - display: flex; - gap: var(--space-xs); - padding-right: var(--space-xs); - - button { - text-decoration: none; - color: var(--light); - background: rgba(255, 255, 255, 0.1); - border: 1px solid rgba(255, 255, 255, 0.2); - padding: var(--space-xs); - border-radius: 100%; - font-size: var(--font-md); - backdrop-filter: blur(10px); - display: flex; - align-items: center; - justify-content: center; - transition: all 0.2s ease; - - &:hover { - background: rgba(255, 255, 255, 0.2); - } - - &.disabled { - pointer-events: none; - opacity: 0.5; - } - } - } -} - -::selection { - background: oklch(from var(--accent) l c h / 0.2); - color: var(--accent); -} - -* { - box-sizing: border-box; - margin: 0; - padding: 0; -} - -body { - font-family: "Inter var", system-ui, -apple-system, sans-serif; - font-size: var(--font-base); - line-height: 1.7; - font-feature-settings: "liga" 1, "kern" 1, "calt" 1; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - - margin: 0; - background: oklch(from var(--primary) 97% calc(c * 0.25) h); - color: oklch(from var(--primary) 20% calc(c * 0.1) h); - letter-spacing: -0.01em; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: "Inter var", system-ui, sans-serif; - font-weight: 700; - line-height: 1.1; - letter-spacing: -0.03em; - background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background-clip: text; - margin: 0; -} - -h1 { - font-size: var(--font-2xl); - font-weight: 800; - letter-spacing: -0.04em; -} - -h2 { - font-size: var(--font-xl); - font-weight: 700; -} - -h3 { - font-size: var(--font-lg); - font-weight: 600; -} - -section { - max-width: 1200px; - margin-inline: auto; - padding-inline: 1rem; - display: flex; - justify-content: center; - place-items: center; - align-items: center; -} - -ul, -ol { - margin: var(--space-sm) 0; - padding-left: var(--space-md); - - & li { - margin-bottom: var(--space-xs); - position: relative; - } - - & li::marker { - color: var(--accent); - } -} - -code { - font-family: "JetBrains Mono", "SF Mono", monospace; - font-size: 0.9em; - padding: 0.2em 0.4em; - border-radius: 4px; - background: oklch(from var(--primary) 97% calc(c * 0.15) h); - border: 1px solid oklch(from var(--primary) 90% calc(c * 0.2) h); -} - -blockquote { - position: relative; - padding: var(--space-md); - border-radius: 1rem; - background: linear-gradient(135deg, - oklch(from var(--primary) calc(l + 0.02) calc(c * 0.8) h), - oklch(from var(--secondary) calc(l + 0.02) calc(c * 0.8) h)); - backdrop-filter: blur(10px); - box-shadow: var(--shadow-lg), inset 0 2px 4px oklch(from var(--primary) 100% 0 h / 0.1); - color: var(--light); - - & p { - font-size: var(--font-md); - font-weight: 500; - font-style: italic; - line-height: 1.6; - margin-bottom: var(--space-sm); - color: var(--light); - } - - &::before { - position: absolute; - font-family: Georgia, serif; - opacity: 0.15; - content: "❞"; - bottom: -1rem; - right: 1rem; - font-size: 5rem; - color: var(--light); - } -} - -small { - font-size: var(--font-xs); - line-height: var(--leading-normal); -} - -p { - margin: 0 auto; - margin-bottom: var(--space-md); - max-width: 80ch; - opacity: 0.9; -} - -a { - color: var(--accent); - text-decoration: none; - background-image: linear-gradient(transparent calc(100% - 2px), - var(--accent) 2px); - background-size: 0% 100%; - background-repeat: no-repeat; - transition: background-size 0.3s ease-in-out; - - &:hover { - background-size: 100% 100%; - } -} - -hr { - height: 5px; - border: 0; - margin: var(--space-md); - background: linear-gradient(90deg, - transparent, - var(--primary) 20%, - var(--accent) 50%, - var(--primary) 80%, - transparent); - position: relative; - - &::after { - content: ""; - position: absolute; - width: 100%; - height: 1px; - background: inherit; - top: 2px; - filter: blur(2px); - opacity: 0.7; - } -} - -.blurfade-enter-active { - transition: all 0.5s ease-out; -} - -.blurfade-leave-active { - transition: all 0.25s cubic-bezier(1, 0.5, 0.8, 1); -} - -.blurfade-enter-from, -.blurfade-leave-to { - overflow: hidden; - position: fixed; - width: 100vw; - height: 100vh; - left: 0; - right: 0; - top: 0; - bottom: 0; - transform: translate(0, 0) !important; - transform-style: preserve-3d; - z-index: 9999; - opacity: 0; - backdrop-filter: blur(1000px); - filter: blur(1000px); -} - -.w-full { - width: 100%; -} - -input { - font-family: "Inter var", system-ui, -apple-system, sans-serif; - font-size: var(--font-base); - line-height: 1.7; - color: oklch(from var(--primary) 20% calc(c * 0.1) h); - background: oklch(from var(--primary) 97% calc(c * 0.25) h); - border: 1px solid oklch(from var(--primary) 90% calc(c * 0.2) h); - border-radius: 6px; - padding: var(--space-xs) var(--space-sm); - outline: none; - transition: all 0.2s ease-in-out; - - &:focus { - border-color: var(--accent); - box-shadow: 0 0 0 3px oklch(from var(--accent) l c h / 0.2); - } - - &:hover { - border-color: oklch(from var(--primary) 80% calc(c * 0.3) h); - } - - &::placeholder { - color: oklch(from var(--primary) 60% calc(c * 0.2) h); - opacity: 0.7; - } - - &[type="submit"], - &[type="button"] { - background: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%); - color: var(--light); - border: none; - font-weight: 600; - cursor: pointer; - - &:hover { - background: linear-gradient(135deg, var(--secondary) 0%, var(--accent) 100%); - } - - &:active { - transform: scale(0.98); - } - } - - &[type="checkbox"], - &[type="radio"] { - width: 1.2em; - height: 1.2em; - accent-color: var(--accent); - margin-right: var(--space-xs); - } - - &[type="range"] { - -webkit-appearance: none; - appearance: none; - background: transparent; - cursor: pointer; - - &::-webkit-slider-runnable-track { - height: 6px; - background: oklch(from var(--primary) 90% calc(c * 0.2) h); - border-radius: 3px; - } - - &::-webkit-slider-thumb { - -webkit-appearance: none; - appearance: none; - width: 16px; - height: 16px; - background: var(--accent); - border-radius: 50%; - margin-top: -5px; - } - - &::-moz-range-track { - height: 6px; - background: oklch(from var(--primary) 90% calc(c * 0.2) h); - border-radius: 3px; - } - - &::-moz-range-thumb { - width: 16px; - height: 16px; - background: var(--accent); - border-radius: 50%; - } - } -} - -textarea { - font-family: "Inter var", system-ui, -apple-system, sans-serif; - font-size: var(--font-base); - line-height: 1.7; - color: oklch(from var(--primary) 20% calc(c * 0.1) h); - background: oklch(from var(--primary) 97% calc(c * 0.25) h); - border: 1px solid oklch(from var(--primary) 90% calc(c * 0.2) h); - border-radius: 6px; - padding: var(--space-xs) var(--space-sm); - outline: none; - transition: all 0.2s ease-in-out; - resize: vertical; - min-height: 120px; - - &:focus { - border-color: var(--accent); - box-shadow: 0 0 0 3px oklch(from var(--accent) l c h / 0.2); - } - - &:hover { - border-color: oklch(from var(--primary) 80% calc(c * 0.3) h); - } - - &::placeholder { - color: oklch(from var(--primary) 60% calc(c * 0.2) h); - opacity: 0.7; - } -} \ No newline at end of file diff --git a/src/utils/formatDateTime.ts b/src/utils/formatDateTime.ts index 8cbc5a9..2b7010e 100644 --- a/src/utils/formatDateTime.ts +++ b/src/utils/formatDateTime.ts @@ -1,6 +1,8 @@ export default function formatDateTime(date: Date | string | number): string { const properDate = new Date(date); - return properDate.toLocaleString('en-US', { + + const defaultOptions = { + locale: 'en-US', weekday: 'short', year: 'numeric', month: 'long', @@ -8,5 +10,27 @@ export default function formatDateTime(date: Date | string | number): string { hour: '2-digit', minute: '2-digit', second: '2-digit', + hour12: true, + }; + + let formattingOptions = defaultOptions; + const savedOptions = localStorage.getItem('dateTimeFormatOptions'); + + if (savedOptions) + try { + formattingOptions = { ...defaultOptions, ...JSON.parse(savedOptions) }; + } catch (e) { + console.error('Failed to parse date format options from localStorage', e); + } + + return properDate.toLocaleString(formattingOptions.locale, { + weekday: formattingOptions.weekday === '' ? undefined : formattingOptions.weekday, + year: formattingOptions.year === '' ? undefined : formattingOptions.year, + month: formattingOptions.month === '' ? undefined : formattingOptions.month, + day: formattingOptions.day === '' ? undefined : formattingOptions.day, + hour: formattingOptions.hour === '' ? undefined : formattingOptions.hour, + minute: formattingOptions.minute === '' ? undefined : formattingOptions.minute, + second: formattingOptions.second === '' ? undefined : formattingOptions.second, + hour12: formattingOptions.hour12, }); } diff --git a/src/utils/lastBlock.ts b/src/utils/lastBlock.ts new file mode 100644 index 0000000..b2456f3 --- /dev/null +++ b/src/utils/lastBlock.ts @@ -0,0 +1,50 @@ +const MEMPOOL_API = 'https://mempool.space/api/blocks/tip'; + +export interface LastBlock { + id: string; + height: number; + version: number; + timestamp: number; + tx_count: number; + size: number; + weight: number; + merkle_root: string; + previousblockhash: string; + mediantime: number; + nonce: number; + bits: number; + difficulty: number; + error?: string; +} + +export async function getLastBlock(): Promise { + try { + const response = await fetch(MEMPOOL_API); + + if (!response.ok) { + throw new Error('Network response was not ok'); + } + + const data = await response.json(); + const latestBlock = data[0]; + if (!latestBlock) throw new Error('Failed to fetch block'); + return latestBlock; + } catch (e) { + return { + id: '', + height: 0, + version: 0, + timestamp: 0, + tx_count: 0, + size: 0, + weight: 0, + merkle_root: '', + previousblockhash: '', + mediantime: 0, + nonce: 0, + bits: 0, + difficulty: 0, + error: e instanceof Error ? e.message : 'Failed to fetch block', + }; + } +} diff --git a/src/utils/lastBlockHeight.ts b/src/utils/lastBlockHeight.ts deleted file mode 100644 index 118e77c..0000000 --- a/src/utils/lastBlockHeight.ts +++ /dev/null @@ -1,26 +0,0 @@ -const MEMPOOL_API = 'https://mempool.space/api/blocks/tip/height'; - -export interface LastBlockHeight { - height: number; - error?: string; -} - -export async function getLastBlockHeight(): Promise { - try { - const response = await fetch(MEMPOOL_API); - - if (!response.ok) { - throw new Error('Network response was not ok'); - } - - const data = await response.text(); - return { - height: Number.parseInt(data, 10), - }; - } catch (e) { - return { - height: 0, - error: e instanceof Error ? e.message : 'Failed to fetch block height', - }; - } -}