extremely wip tangled spa

skibidi

aylac.top 447b68c2 7246fe13

verified
+135 -175
bun.lock
··· 4 4 "": { 5 5 "name": "vite-template-solid", 6 6 "dependencies": { 7 - "@atcute/atproto": "^3.1.9", 8 7 "@atcute/client": "^4.0.5", 9 8 "@atcute/identity-resolver": "^1.1.4", 10 9 "@atcute/oauth-browser-client": "^2.0.1", 11 - "@atcute/tangled": "^1.0.10", 12 10 "@gleam-lang/highlight.js-gleam": "^1.5.0", 13 11 "@solidjs/router": "^0.15.3", 14 12 "@tailwindcss/vite": "^4.1.17", ··· 19 17 "solid-markdown": "^2.0.14", 20 18 }, 21 19 "devDependencies": { 22 - "@biomejs/biome": "^2.3.4", 20 + "@atcute/atproto": "^3.1.9", 21 + "@atcute/lexicons": "^1.2.3", 22 + "@atcute/microcosm": "^1.0.0", 23 + "@atcute/tangled": "^1.0.12", 24 + "@biomejs/biome": "^2.3.6", 23 25 "@iconify-json/gravity-ui": "^1.2.10", 24 26 "@iconify/tailwind4": "^1.1.0", 25 27 "postcss": "^8.5.6", 26 28 "solid-devtools": "^0.34.4", 27 29 "tailwindcss": "^4.1.17", 28 - "vite": "^7.2.2", 30 + "vite": "^7.2.4", 29 31 "vite-plugin-solid": "^2.11.10", 30 32 }, 31 33 }, ··· 43 45 44 46 "@atcute/client": ["@atcute/client@4.0.5", "", { "dependencies": { "@atcute/identity": "^1.1.1", "@atcute/lexicons": "^1.2.2" } }, "sha512-R8Qen8goGmEkynYGg2m6XFlVmz0GTDvQ+9w+4QqOob+XMk8/WDpF4aImev7WKEde/rV2gjcqW7zM8E6W9NShDA=="], 45 47 46 - "@atcute/identity": ["@atcute/identity@1.1.1", "", { "dependencies": { "@atcute/lexicons": "^1.2.2", "@badrap/valita": "^0.4.6" } }, "sha512-zax42n693VEhnC+5tndvO2KLDTMkHOz8UExwmklvJv7R9VujfEwiSWhcv6Jgwb3ellaG8wjiQ1lMOIjLLvwh0Q=="], 48 + "@atcute/identity": ["@atcute/identity@1.1.2", "", { "dependencies": { "@atcute/lexicons": "^1.2.3", "@badrap/valita": "^0.4.6" } }, "sha512-vn0RN7SUF6N0sEPG9yyT6a0MzpfVS8BhsiLtB8OeS4qp2rLMQW33pelCpNitP1N+fq03MFlDGzs5p7K4qMs4cA=="], 47 49 48 50 "@atcute/identity-resolver": ["@atcute/identity-resolver@1.1.4", "", { "dependencies": { "@atcute/lexicons": "^1.2.2", "@atcute/util-fetch": "^1.0.3", "@badrap/valita": "^0.4.6" }, "peerDependencies": { "@atcute/identity": "^1.0.0" } }, "sha512-/SVh8vf2cXFJenmBnGeYF2aY3WGQm3cJeew5NWTlkqoy3LvJ5wkvKq9PWu4Tv653VF40rPOp6LOdVr9Fa+q5rA=="], 49 51 50 - "@atcute/lexicons": ["@atcute/lexicons@1.2.2", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "esm-env": "^1.2.2" } }, "sha512-bgEhJq5Z70/0TbK5sx+tAkrR8FsCODNiL2gUEvS5PuJfPxmFmRYNWaMGehxSPaXWpU2+Oa9ckceHiYbrItDTkA=="], 52 + "@atcute/lexicons": ["@atcute/lexicons@1.2.3", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "esm-env": "^1.2.2" } }, "sha512-ZNfNWS4jaR8VgWSSBaWRSSmwFeP134BmvpTt9JmM2x5vRoXeIFthxU9USY8ZV4vm0GPoxEMgkDin8HIlnFTg2w=="], 53 + 54 + "@atcute/microcosm": ["@atcute/microcosm@1.0.0", "", { "dependencies": { "@atcute/lexicons": "^1.2.3" } }, "sha512-XJW+TMvdktH2maTkVcNU6wKmnHpmNwhmg0Xj4ZY36plHpqNHfxR4kAAcXGSJcjH9CS8I1+cTHiyUQykdeOPeGg=="], 51 55 52 56 "@atcute/multibase": ["@atcute/multibase@1.1.6", "", { "dependencies": { "@atcute/uint8array": "^1.0.5" } }, "sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg=="], 53 57 54 58 "@atcute/oauth-browser-client": ["@atcute/oauth-browser-client@2.0.1", "", { "dependencies": { "@atcute/client": "^4.0.5", "@atcute/identity": "^1.1.1", "@atcute/identity-resolver": "^1.1.4", "@atcute/lexicons": "^1.2.2", "@atcute/multibase": "^1.1.6", "@atcute/uint8array": "^1.0.5", "nanoid": "^5.1.5" } }, "sha512-lG021GkeORG06zfFf4bH85egObjBEKHNgAWHvbtY/E2dX4wxo88hf370pJDx8acdnuUJLJ2VKPikJtZwo4Heeg=="], 55 59 56 - "@atcute/tangled": ["@atcute/tangled@1.0.10", "", { "dependencies": { "@atcute/atproto": "^3.1.8", "@atcute/lexicons": "^1.2.2" } }, "sha512-DGconZIN5TpLBah+aHGbWI1tMsL7XzyVEbr/fW4CbcLWYKICU6SAUZ0YnZ+5GvltjlORWHUy7hfftvoh4zodIA=="], 60 + "@atcute/tangled": ["@atcute/tangled@1.0.12", "", { "dependencies": { "@atcute/atproto": "^3.1.9", "@atcute/lexicons": "^1.2.3" } }, "sha512-JKA5sOhd8SLhDFhY+PKHqLLytQBBKSiwcaEzfYUJBeyfvqXFPNNAwvRbe3VST4IQ3izoOu3O0R9/b1mjL45UzA=="], 57 61 58 62 "@atcute/uint8array": ["@atcute/uint8array@1.0.5", "", {}, "sha512-XLWWxoR2HNl2qU+FCr0rp1APwJXci7HnzbOQLxK55OaMNBXZ19+xNC5ii4QCsThsDxa4JS/JTzuiQLziITWf2Q=="], 59 63 60 64 "@atcute/util-fetch": ["@atcute/util-fetch@1.0.3", "", { "dependencies": { "@badrap/valita": "^0.4.6" } }, "sha512-f8zzTb/xlKIwv2OQ31DhShPUNCmIIleX6p7qIXwWwEUjX6x8skUtpdISSjnImq01LXpltGV5y8yhV4/Mlb7CRQ=="], 61 65 62 - "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "7.27.1", "js-tokens": "4.0.0", "picocolors": "1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], 66 + "@babel/code-frame": ["@babel/code-frame@7.27.1", "", { "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" } }, "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg=="], 63 67 64 - "@babel/compat-data": ["@babel/compat-data@7.28.4", "", {}, "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw=="], 68 + "@babel/compat-data": ["@babel/compat-data@7.28.5", "", {}, "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA=="], 65 69 66 - "@babel/core": ["@babel/core@7.28.4", "", { "dependencies": { "@babel/code-frame": "7.27.1", "@babel/generator": "7.28.3", "@babel/helper-compilation-targets": "7.27.2", "@babel/helper-module-transforms": "7.28.3", "@babel/helpers": "7.28.4", "@babel/parser": "7.28.4", "@babel/template": "7.27.2", "@babel/traverse": "7.28.4", "@babel/types": "7.28.4", "@jridgewell/remapping": "2.3.5", "convert-source-map": "2.0.0", "debug": "4.4.3", "gensync": "1.0.0-beta.2", "json5": "2.2.3", "semver": "6.3.1" } }, "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA=="], 70 + "@babel/core": ["@babel/core@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", "@babel/helpers": "^7.28.4", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/traverse": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/remapping": "^2.3.5", "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-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw=="], 67 71 68 - "@babel/generator": ["@babel/generator@7.28.3", "", { "dependencies": { "@babel/parser": "7.28.4", "@babel/types": "7.28.4", "@jridgewell/gen-mapping": "0.3.13", "@jridgewell/trace-mapping": "0.3.31", "jsesc": "3.1.0" } }, "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw=="], 72 + "@babel/generator": ["@babel/generator@7.28.5", "", { "dependencies": { "@babel/parser": "^7.28.5", "@babel/types": "^7.28.5", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" } }, "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ=="], 69 73 70 - "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "", { "dependencies": { "@babel/compat-data": "7.28.4", "@babel/helper-validator-option": "7.27.1", "browserslist": "4.26.3", "lru-cache": "5.1.1", "semver": "6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], 74 + "@babel/helper-compilation-targets": ["@babel/helper-compilation-targets@7.27.2", "", { "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" } }, "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ=="], 71 75 72 76 "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], 73 77 74 - "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "", { "dependencies": { "@babel/traverse": "7.28.4", "@babel/types": "7.28.4" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], 78 + "@babel/helper-module-imports": ["@babel/helper-module-imports@7.27.1", "", { "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" } }, "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w=="], 75 79 76 - "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.3", "", { "dependencies": { "@babel/helper-module-imports": "7.27.1", "@babel/helper-validator-identifier": "7.27.1", "@babel/traverse": "7.28.4" }, "peerDependencies": { "@babel/core": "7.28.4" } }, "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw=="], 80 + "@babel/helper-module-transforms": ["@babel/helper-module-transforms@7.28.3", "", { "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", "@babel/traverse": "^7.28.3" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw=="], 77 81 78 82 "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="], 79 83 80 84 "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], 81 85 82 - "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], 86 + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], 83 87 84 88 "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], 85 89 86 - "@babel/helpers": ["@babel/helpers@7.28.4", "", { "dependencies": { "@babel/template": "7.27.2", "@babel/types": "7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], 90 + "@babel/helpers": ["@babel/helpers@7.28.4", "", { "dependencies": { "@babel/template": "^7.27.2", "@babel/types": "^7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], 87 91 88 - "@babel/parser": ["@babel/parser@7.28.4", "", { "dependencies": { "@babel/types": "7.28.4" }, "bin": "./bin/babel-parser.js" }, "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg=="], 92 + "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], 89 93 90 - "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "7.27.1" }, "peerDependencies": { "@babel/core": "7.28.4" } }, "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w=="], 94 + "@babel/plugin-syntax-jsx": ["@babel/plugin-syntax-jsx@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w=="], 91 95 92 - "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "7.27.1" }, "peerDependencies": { "@babel/core": "7.28.4" } }, "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ=="], 96 + "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ=="], 93 97 94 - "@babel/template": ["@babel/template@7.27.2", "", { "dependencies": { "@babel/code-frame": "7.27.1", "@babel/parser": "7.28.4", "@babel/types": "7.28.4" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], 98 + "@babel/template": ["@babel/template@7.27.2", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", "@babel/types": "^7.27.1" } }, "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw=="], 95 99 96 - "@babel/traverse": ["@babel/traverse@7.28.4", "", { "dependencies": { "@babel/code-frame": "7.27.1", "@babel/generator": "7.28.3", "@babel/helper-globals": "7.28.0", "@babel/parser": "7.28.4", "@babel/template": "7.27.2", "@babel/types": "7.28.4", "debug": "4.4.3" } }, "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ=="], 100 + "@babel/traverse": ["@babel/traverse@7.28.5", "", { "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.5", "@babel/helper-globals": "^7.28.0", "@babel/parser": "^7.28.5", "@babel/template": "^7.27.2", "@babel/types": "^7.28.5", "debug": "^4.3.1" } }, "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ=="], 97 101 98 - "@babel/types": ["@babel/types@7.28.4", "", { "dependencies": { "@babel/helper-string-parser": "7.27.1", "@babel/helper-validator-identifier": "7.27.1" } }, "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q=="], 102 + "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], 99 103 100 104 "@badrap/valita": ["@badrap/valita@0.4.6", "", {}, "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg=="], 101 105 102 - "@biomejs/biome": ["@biomejs/biome@2.3.4", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.4", "@biomejs/cli-darwin-x64": "2.3.4", "@biomejs/cli-linux-arm64": "2.3.4", "@biomejs/cli-linux-arm64-musl": "2.3.4", "@biomejs/cli-linux-x64": "2.3.4", "@biomejs/cli-linux-x64-musl": "2.3.4", "@biomejs/cli-win32-arm64": "2.3.4", "@biomejs/cli-win32-x64": "2.3.4" }, "bin": { "biome": "bin/biome" } }, "sha512-TU08LXjBHdy0mEY9APtEtZdNQQijXUDSXR7IK1i45wgoPD5R0muK7s61QcFir6FpOj/RP1+YkPx5QJlycXUU3w=="], 106 + "@biomejs/biome": ["@biomejs/biome@2.3.6", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.3.6", "@biomejs/cli-darwin-x64": "2.3.6", "@biomejs/cli-linux-arm64": "2.3.6", "@biomejs/cli-linux-arm64-musl": "2.3.6", "@biomejs/cli-linux-x64": "2.3.6", "@biomejs/cli-linux-x64-musl": "2.3.6", "@biomejs/cli-win32-arm64": "2.3.6", "@biomejs/cli-win32-x64": "2.3.6" }, "bin": { "biome": "bin/biome" } }, "sha512-oqUhWyU6tae0MFsr/7iLe++QWRg+6jtUhlx9/0GmCWDYFFrK366sBLamNM7D9Y+c7YSynUFKr8lpEp1r6Sk7eA=="], 103 107 104 - "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-w40GvlNzLaqmuWYiDU6Ys9FNhJiclngKqcGld3iJIiy2bpJ0Q+8n3haiaC81uTPY/NA0d8Q/I3Z9+ajc14102Q=="], 108 + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.6", "", { "os": "darwin", "cpu": "arm64" }, "sha512-P4JWE5d8UayBxYe197QJwyW4ZHp0B+zvRIGCusOm1WbxmlhpAQA1zEqQuunHgSIzvyEEp4TVxiKGXNFZPg7r9Q=="], 105 109 106 - "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-3s7TLVtjJ7ni1xADXsS7x7GMUrLBZXg8SemXc3T0XLslzvqKj/dq1xGeBQ+pOWQzng9MaozfacIHdK2UlJ3jGA=="], 110 + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.6", "", { "os": "darwin", "cpu": "x64" }, "sha512-I4rTebj+F/L9K93IU7yTFs8nQ6EhaCOivxduRha4w4WEZK80yoZ8OAdR1F33m4yJ/NfUuTUbP/Wjs+vKjlCoWA=="], 107 111 108 - "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-y7efHyyM2gYmHy/AdWEip+VgTMe9973aP7XYKPzu/j8JxnPHuSUXftzmPhkVw0lfm4ECGbdBdGD6+rLmTgNZaA=="], 112 + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-JjYy83eVBnvuINZiqyFO7xx72v8Srh4hsgaacSBCjC22DwM6+ZvnX1/fj8/SBiLuUOfZ8YhU2pfq2Dzakeyg1A=="], 109 113 110 - "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-IruVGQRwMURivWazchiq7gKAqZSFs5so6gi0hJyxk7x6HR+iwZbO2IxNOqyLURBvL06qkIHs7Wffl6Bw30vCbQ=="], 114 + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.6", "", { "os": "linux", "cpu": "arm64" }, "sha512-oK1NpIXIixbJ/4Tcx40cwiieqah6rRUtMGOHDeK2ToT7yUFVEvXUGRKqH0O4hqZ9tW8TcXNZKfgRH6xrsjVtGg=="], 111 115 112 - "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-gKfjWR/6/dfIxPJCw8REdEowiXCkIpl9jycpNVHux8aX2yhWPLjydOshkDL6Y/82PcQJHn95VCj7J+BRcE5o1Q=="], 116 + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.6", "", { "os": "linux", "cpu": "x64" }, "sha512-ZjPXzy5yN9wusIoX+8Zp4p6cL8r0NzJCXg/4r1KLVveIPXd2jKVlqZ6ZyzEq385WwU3OX5KOwQYLQsOc788waQ=="], 113 117 114 - "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-mzKFFv/w66e4/jCobFmD3kymCqG+FuWE7sVa4Yjqd9v7qt2UhXo67MSZKY9Ih18V2IwPzRKQPCw6KwdZs6AXSA=="], 118 + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.6", "", { "os": "linux", "cpu": "x64" }, "sha512-QvxB8GHQeaO4FCtwJpJjCgJkbHBbWxRHUxQlod+xeaYE6gtJdSkYkuxdKAQUZEOIsec+PeaDAhW9xjzYbwmOFA=="], 115 119 116 - "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-5TJ6JfVez+yyupJ/iGUici2wzKf0RrSAxJhghQXtAEsc67OIpdwSKAQboemILrwKfHDi5s6mu7mX+VTCTUydkw=="], 120 + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.6", "", { "os": "win32", "cpu": "arm64" }, "sha512-YM7hLHpwjdt8R7+O2zS1Vo2cKgqEeptiXB1tWW1rgjN5LlpZovBVKtg7zfwfRrFx3i08aNZThYpTcowpTlczug=="], 117 121 118 - "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.4", "", { "os": "win32", "cpu": "x64" }, "sha512-FGCijXecmC4IedQ0esdYNlMpx0Jxgf4zceCaMu6fkjWyjgn50ZQtMiqZZQ0Q/77yqPxvtkgZAvt5uGw0gAAjig=="], 122 + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.6", "", { "os": "win32", "cpu": "x64" }, "sha512-psgNEYgMAobY5h+QHRBVR9xvg2KocFuBKm6axZWB/aD12NWhQjiVFQUjV6wMXhlH4iT0Q9c3yK5JFRiDC/rzHA=="], 119 123 120 - "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.11", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg=="], 124 + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="], 121 125 122 - "@esbuild/android-arm": ["@esbuild/android-arm@0.25.11", "", { "os": "android", "cpu": "arm" }, "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg=="], 126 + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="], 123 127 124 - "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.11", "", { "os": "android", "cpu": "arm64" }, "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ=="], 128 + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="], 125 129 126 - "@esbuild/android-x64": ["@esbuild/android-x64@0.25.11", "", { "os": "android", "cpu": "x64" }, "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g=="], 130 + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="], 127 131 128 - "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.11", "", { "os": "darwin", "cpu": "arm64" }, "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w=="], 132 + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="], 129 133 130 - "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.11", "", { "os": "darwin", "cpu": "x64" }, "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ=="], 134 + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="], 131 135 132 - "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.11", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA=="], 136 + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="], 133 137 134 - "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.11", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw=="], 138 + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="], 135 139 136 - "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.11", "", { "os": "linux", "cpu": "arm" }, "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw=="], 140 + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="], 137 141 138 - "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA=="], 142 + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="], 139 143 140 - "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.11", "", { "os": "linux", "cpu": "ia32" }, "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw=="], 144 + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="], 141 145 142 - "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw=="], 146 + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="], 143 147 144 - "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ=="], 148 + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="], 145 149 146 - "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.11", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw=="], 150 + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="], 147 151 148 - "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww=="], 152 + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="], 149 153 150 - "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.11", "", { "os": "linux", "cpu": "s390x" }, "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw=="], 154 + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="], 151 155 152 - "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.11", "", { "os": "linux", "cpu": "x64" }, "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ=="], 156 + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="], 153 157 154 - "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg=="], 158 + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="], 155 159 156 - "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.11", "", { "os": "none", "cpu": "x64" }, "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A=="], 160 + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="], 157 161 158 - "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.11", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg=="], 162 + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="], 159 163 160 - "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.11", "", { "os": "openbsd", "cpu": "x64" }, "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw=="], 164 + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="], 161 165 162 - "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ=="], 166 + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="], 163 167 164 - "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.11", "", { "os": "sunos", "cpu": "x64" }, "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA=="], 168 + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="], 165 169 166 - "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.11", "", { "os": "win32", "cpu": "arm64" }, "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q=="], 170 + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="], 167 171 168 - "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.11", "", { "os": "win32", "cpu": "ia32" }, "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA=="], 172 + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="], 169 173 170 - "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.11", "", { "os": "win32", "cpu": "x64" }, "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA=="], 174 + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="], 171 175 172 176 "@gleam-lang/highlight.js-gleam": ["@gleam-lang/highlight.js-gleam@1.5.0", "", {}, "sha512-rKKpXnfmHVTPuHEogMVvN4DflzKtX6kBXqu1GsVDb0uDf/bvO8Z2VnC0XWUMuKNlxa+poKIjY6geyxTaVZiMFA=="], 173 177 ··· 181 185 182 186 "@iconify/utils": ["@iconify/utils@2.3.0", "", { "dependencies": { "@antfu/install-pkg": "^1.0.0", "@antfu/utils": "^8.1.0", "@iconify/types": "^2.0.0", "debug": "^4.4.0", "globals": "^15.14.0", "kolorist": "^1.8.0", "local-pkg": "^1.0.0", "mlly": "^1.7.4" } }, "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA=="], 183 187 184 - "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "1.5.5", "@jridgewell/trace-mapping": "0.3.30" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], 188 + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], 185 189 186 - "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "0.3.13", "@jridgewell/trace-mapping": "0.3.30" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], 190 + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], 187 191 188 192 "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], 189 193 190 194 "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], 191 195 192 - "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "3.1.2", "@jridgewell/sourcemap-codec": "1.5.5" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], 196 + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], 193 197 194 198 "@nothing-but/utils": ["@nothing-but/utils@0.17.0", "", {}, "sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ=="], 195 199 196 - "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.52.5", "", { "os": "android", "cpu": "arm" }, "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ=="], 200 + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.53.3", "", { "os": "android", "cpu": "arm" }, "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w=="], 197 201 198 - "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.52.5", "", { "os": "android", "cpu": "arm64" }, "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA=="], 202 + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.53.3", "", { "os": "android", "cpu": "arm64" }, "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w=="], 199 203 200 - "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.52.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA=="], 204 + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.53.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA=="], 201 205 202 - "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.52.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA=="], 206 + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.53.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ=="], 203 207 204 - "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.52.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA=="], 208 + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.53.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w=="], 205 209 206 - "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.52.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ=="], 210 + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.53.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q=="], 207 211 208 - "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.52.5", "", { "os": "linux", "cpu": "arm" }, "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ=="], 212 + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw=="], 209 213 210 - "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.52.5", "", { "os": "linux", "cpu": "arm" }, "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ=="], 214 + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.53.3", "", { "os": "linux", "cpu": "arm" }, "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg=="], 211 215 212 - "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.52.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg=="], 216 + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w=="], 213 217 214 - "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.52.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q=="], 218 + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.53.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A=="], 215 219 216 - "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.52.5", "", { "os": "linux", "cpu": "none" }, "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA=="], 220 + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g=="], 217 221 218 - "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.52.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw=="], 222 + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.53.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw=="], 219 223 220 - "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.52.5", "", { "os": "linux", "cpu": "none" }, "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw=="], 224 + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g=="], 221 225 222 - "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.52.5", "", { "os": "linux", "cpu": "none" }, "sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg=="], 226 + "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.53.3", "", { "os": "linux", "cpu": "none" }, "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A=="], 223 227 224 - "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.52.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ=="], 228 + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.53.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg=="], 225 229 226 - "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.52.5", "", { "os": "linux", "cpu": "x64" }, "sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q=="], 230 + "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w=="], 227 231 228 - "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.52.5", "", { "os": "linux", "cpu": "x64" }, "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg=="], 232 + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.53.3", "", { "os": "linux", "cpu": "x64" }, "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q=="], 229 233 230 - "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.52.5", "", { "os": "none", "cpu": "arm64" }, "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw=="], 234 + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.53.3", "", { "os": "none", "cpu": "arm64" }, "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw=="], 231 235 232 - "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.52.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w=="], 236 + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.53.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw=="], 233 237 234 - "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.52.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg=="], 238 + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.53.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA=="], 235 239 236 - "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.52.5", "", { "os": "win32", "cpu": "x64" }, "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ=="], 240 + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg=="], 237 241 238 - "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.52.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg=="], 242 + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.53.3", "", { "os": "win32", "cpu": "x64" }, "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ=="], 239 243 240 - "@solid-devtools/debugger": ["@solid-devtools/debugger@0.28.1", "", { "dependencies": { "@nothing-but/utils": "0.17.0", "@solid-devtools/shared": "0.20.0", "@solid-primitives/bounds": "0.1.3", "@solid-primitives/event-listener": "2.4.3", "@solid-primitives/keyboard": "1.3.3", "@solid-primitives/rootless": "1.5.2", "@solid-primitives/scheduled": "1.5.2", "@solid-primitives/static-store": "0.1.2", "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-6qIUI6VYkXoRnL8oF5bvh2KgH71qlJ18hNw/mwSyY6v48eb80ZR48/5PDXufUa3q+MBSuYa1uqTMwLewpay9eg=="], 244 + "@solid-devtools/debugger": ["@solid-devtools/debugger@0.28.1", "", { "dependencies": { "@nothing-but/utils": "~0.17.0", "@solid-devtools/shared": "^0.20.0", "@solid-primitives/bounds": "^0.1.1", "@solid-primitives/event-listener": "^2.4.1", "@solid-primitives/keyboard": "^1.3.1", "@solid-primitives/rootless": "^1.5.1", "@solid-primitives/scheduled": "^1.5.1", "@solid-primitives/static-store": "^0.1.1", "@solid-primitives/utils": "^6.3.1" }, "peerDependencies": { "solid-js": "^1.9.0" } }, "sha512-6qIUI6VYkXoRnL8oF5bvh2KgH71qlJ18hNw/mwSyY6v48eb80ZR48/5PDXufUa3q+MBSuYa1uqTMwLewpay9eg=="], 241 245 242 - "@solid-devtools/shared": ["@solid-devtools/shared@0.20.0", "", { "dependencies": { "@nothing-but/utils": "0.17.0", "@solid-primitives/event-listener": "2.4.3", "@solid-primitives/media": "2.3.3", "@solid-primitives/refs": "1.1.2", "@solid-primitives/rootless": "1.5.2", "@solid-primitives/scheduled": "1.5.2", "@solid-primitives/static-store": "0.1.2", "@solid-primitives/styles": "0.1.2", "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-o5TACmUOQsxpzpOKCjbQqGk8wL8PMi+frXG9WNu4Lh3PQVUB6hs95Kl/S8xc++zwcMguUKZJn8h5URUiMOca6Q=="], 246 + "@solid-devtools/shared": ["@solid-devtools/shared@0.20.0", "", { "dependencies": { "@nothing-but/utils": "~0.17.0", "@solid-primitives/event-listener": "^2.4.1", "@solid-primitives/media": "^2.3.1", "@solid-primitives/refs": "^1.1.1", "@solid-primitives/rootless": "^1.5.1", "@solid-primitives/scheduled": "^1.5.1", "@solid-primitives/static-store": "^0.1.1", "@solid-primitives/styles": "^0.1.1", "@solid-primitives/utils": "^6.3.1" }, "peerDependencies": { "solid-js": "^1.9.0" } }, "sha512-o5TACmUOQsxpzpOKCjbQqGk8wL8PMi+frXG9WNu4Lh3PQVUB6hs95Kl/S8xc++zwcMguUKZJn8h5URUiMOca6Q=="], 243 247 244 - "@solid-primitives/bounds": ["@solid-primitives/bounds@0.1.3", "", { "dependencies": { "@solid-primitives/event-listener": "2.4.3", "@solid-primitives/resize-observer": "2.1.3", "@solid-primitives/static-store": "0.1.2", "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-UbiyKMdSPmtijcEDnYLQL3zzaejpwWDAJJ4Gt5P0hgVs6A72piov0GyNw7V2SroH7NZFwxlYS22YmOr8A5xc1Q=="], 248 + "@solid-primitives/bounds": ["@solid-primitives/bounds@0.1.3", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/resize-observer": "^2.1.3", "@solid-primitives/static-store": "^0.1.2", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-UbiyKMdSPmtijcEDnYLQL3zzaejpwWDAJJ4Gt5P0hgVs6A72piov0GyNw7V2SroH7NZFwxlYS22YmOr8A5xc1Q=="], 245 249 246 - "@solid-primitives/event-listener": ["@solid-primitives/event-listener@2.4.3", "", { "dependencies": { "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-h4VqkYFv6Gf+L7SQj+Y6puigL/5DIi7x5q07VZET7AWcS+9/G3WfIE9WheniHWJs51OEkRB43w6lDys5YeFceg=="], 250 + "@solid-primitives/event-listener": ["@solid-primitives/event-listener@2.4.3", "", { "dependencies": { "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-h4VqkYFv6Gf+L7SQj+Y6puigL/5DIi7x5q07VZET7AWcS+9/G3WfIE9WheniHWJs51OEkRB43w6lDys5YeFceg=="], 247 251 248 - "@solid-primitives/keyboard": ["@solid-primitives/keyboard@1.3.3", "", { "dependencies": { "@solid-primitives/event-listener": "2.4.3", "@solid-primitives/rootless": "1.5.2", "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-9dQHTTgLBqyAI7aavtO+HnpTVJgWQA1ghBSrmLtMu1SMxLPDuLfuNr+Tk5udb4AL4Ojg7h9JrKOGEEDqsJXWJA=="], 252 + "@solid-primitives/keyboard": ["@solid-primitives/keyboard@1.3.3", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/rootless": "^1.5.2", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-9dQHTTgLBqyAI7aavtO+HnpTVJgWQA1ghBSrmLtMu1SMxLPDuLfuNr+Tk5udb4AL4Ojg7h9JrKOGEEDqsJXWJA=="], 249 253 250 - "@solid-primitives/media": ["@solid-primitives/media@2.3.3", "", { "dependencies": { "@solid-primitives/event-listener": "2.4.3", "@solid-primitives/rootless": "1.5.2", "@solid-primitives/static-store": "0.1.2", "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-hQ4hLOGvfbugQi5Eu1BFWAIJGIAzztq9x0h02xgBGl2l0Jaa3h7tg6bz5tV1NSuNYVGio4rPoa7zVQQLkkx9dA=="], 254 + "@solid-primitives/media": ["@solid-primitives/media@2.3.3", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/rootless": "^1.5.2", "@solid-primitives/static-store": "^0.1.2", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-hQ4hLOGvfbugQi5Eu1BFWAIJGIAzztq9x0h02xgBGl2l0Jaa3h7tg6bz5tV1NSuNYVGio4rPoa7zVQQLkkx9dA=="], 251 255 252 - "@solid-primitives/refs": ["@solid-primitives/refs@1.1.2", "", { "dependencies": { "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-K7tf2thy7L+YJjdqXspXOg5xvNEOH8tgEWsp0+1mQk3obHBRD6hEjYZk7p7FlJphSZImS35je3UfmWuD7MhDfg=="], 256 + "@solid-primitives/refs": ["@solid-primitives/refs@1.1.2", "", { "dependencies": { "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-K7tf2thy7L+YJjdqXspXOg5xvNEOH8tgEWsp0+1mQk3obHBRD6hEjYZk7p7FlJphSZImS35je3UfmWuD7MhDfg=="], 253 257 254 - "@solid-primitives/resize-observer": ["@solid-primitives/resize-observer@2.1.3", "", { "dependencies": { "@solid-primitives/event-listener": "2.4.3", "@solid-primitives/rootless": "1.5.2", "@solid-primitives/static-store": "0.1.2", "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-zBLje5E06TgOg93S7rGPldmhDnouNGhvfZVKOp+oG2XU8snA+GoCSSCz1M+jpNAg5Ek2EakU5UVQqL152WmdXQ=="], 258 + "@solid-primitives/resize-observer": ["@solid-primitives/resize-observer@2.1.3", "", { "dependencies": { "@solid-primitives/event-listener": "^2.4.3", "@solid-primitives/rootless": "^1.5.2", "@solid-primitives/static-store": "^0.1.2", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-zBLje5E06TgOg93S7rGPldmhDnouNGhvfZVKOp+oG2XU8snA+GoCSSCz1M+jpNAg5Ek2EakU5UVQqL152WmdXQ=="], 255 259 256 - "@solid-primitives/rootless": ["@solid-primitives/rootless@1.5.2", "", { "dependencies": { "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-9HULb0QAzL2r47CCad0M+NKFtQ+LrGGNHZfteX/ThdGvKIg2o2GYhBooZubTCd/RTu2l2+Nw4s+dEfiDGvdrrQ=="], 260 + "@solid-primitives/rootless": ["@solid-primitives/rootless@1.5.2", "", { "dependencies": { "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-9HULb0QAzL2r47CCad0M+NKFtQ+LrGGNHZfteX/ThdGvKIg2o2GYhBooZubTCd/RTu2l2+Nw4s+dEfiDGvdrrQ=="], 257 261 258 - "@solid-primitives/scheduled": ["@solid-primitives/scheduled@1.5.2", "", { "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-/j2igE0xyNaHhj6kMfcUQn5rAVSTLbAX+CDEBm25hSNBmNiHLu2lM7Usj2kJJ5j36D67bE8wR1hBNA8hjtvsQA=="], 262 + "@solid-primitives/scheduled": ["@solid-primitives/scheduled@1.5.2", "", { "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-/j2igE0xyNaHhj6kMfcUQn5rAVSTLbAX+CDEBm25hSNBmNiHLu2lM7Usj2kJJ5j36D67bE8wR1hBNA8hjtvsQA=="], 259 263 260 - "@solid-primitives/static-store": ["@solid-primitives/static-store@0.1.2", "", { "dependencies": { "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-ReK+5O38lJ7fT+L6mUFvUr6igFwHBESZF+2Ug842s7fvlVeBdIVEdTCErygff6w7uR6+jrr7J8jQo+cYrEq4Iw=="], 264 + "@solid-primitives/static-store": ["@solid-primitives/static-store@0.1.2", "", { "dependencies": { "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-ReK+5O38lJ7fT+L6mUFvUr6igFwHBESZF+2Ug842s7fvlVeBdIVEdTCErygff6w7uR6+jrr7J8jQo+cYrEq4Iw=="], 261 265 262 - "@solid-primitives/styles": ["@solid-primitives/styles@0.1.2", "", { "dependencies": { "@solid-primitives/rootless": "1.5.2", "@solid-primitives/utils": "6.3.2" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-7iX5K+J5b1PRrbgw3Ki92uvU2LgQ0Kd/QMsrAZxDg5dpUBwMyTijZkA3bbs1ikZsT1oQhS41bTyKbjrXeU0Awg=="], 266 + "@solid-primitives/styles": ["@solid-primitives/styles@0.1.2", "", { "dependencies": { "@solid-primitives/rootless": "^1.5.2", "@solid-primitives/utils": "^6.3.2" }, "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-7iX5K+J5b1PRrbgw3Ki92uvU2LgQ0Kd/QMsrAZxDg5dpUBwMyTijZkA3bbs1ikZsT1oQhS41bTyKbjrXeU0Awg=="], 263 267 264 - "@solid-primitives/utils": ["@solid-primitives/utils@6.3.2", "", { "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ=="], 268 + "@solid-primitives/utils": ["@solid-primitives/utils@6.3.2", "", { "peerDependencies": { "solid-js": "^1.6.12" } }, "sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ=="], 265 269 266 - "@solidjs/router": ["@solidjs/router@0.15.3", "", { "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-iEbW8UKok2Oio7o6Y4VTzLj+KFCmQPGEpm1fS3xixwFBdclFVBvaQVeibl1jys4cujfAK5Kn6+uG2uBm3lxOMw=="], 270 + "@solidjs/router": ["@solidjs/router@0.15.4", "", { "peerDependencies": { "solid-js": "^1.8.6" } }, "sha512-WOpgg9a9T638cR+5FGbFi/IV4l2FpmBs1GpIMSPa0Ce9vyJN7Wts+X2PqMf9IYn0zUj2MlSJtm1gp7/HI/n5TQ=="], 267 271 268 272 "@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="], 269 273 ··· 299 303 300 304 "@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="], 301 305 302 - "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "7.28.4", "@babel/types": "7.28.4", "@types/babel__generator": "7.27.0", "@types/babel__template": "7.4.4", "@types/babel__traverse": "7.28.0" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], 306 + "@types/babel__core": ["@types/babel__core@7.20.5", "", { "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA=="], 303 307 304 - "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "7.28.4" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], 308 + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "^7.0.0" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], 305 309 306 - "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "7.28.4", "@babel/types": "7.28.4" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], 310 + "@types/babel__template": ["@types/babel__template@7.4.4", "", { "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A=="], 307 311 308 - "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "7.28.4" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], 312 + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "^7.28.2" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], 309 313 310 314 "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], 311 315 ··· 319 323 320 324 "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], 321 325 322 - "@types/node": ["@types/node@24.10.0", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A=="], 326 + "@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="], 323 327 324 328 "@types/tar": ["@types/tar@6.1.13", "", { "dependencies": { "@types/node": "*", "minipass": "^4.0.0" } }, "sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw=="], 325 329 ··· 335 339 336 340 "axios": ["axios@1.13.2", "", { "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA=="], 337 341 338 - "babel-plugin-jsx-dom-expressions": ["babel-plugin-jsx-dom-expressions@0.40.1", "", { "dependencies": { "@babel/helper-module-imports": "7.18.6", "@babel/plugin-syntax-jsx": "7.27.1", "@babel/types": "7.28.4", "html-entities": "2.3.3", "parse5": "7.3.0", "validate-html-nesting": "1.2.3" }, "peerDependencies": { "@babel/core": "7.28.4" } }, "sha512-b4iHuirqK7RgaMzB2Lsl7MqrlDgQtVRSSazyrmx7wB3T759ggGjod5Rkok5MfHjQXhR7tRPmdwoeGPqBnW2KfA=="], 342 + "babel-plugin-jsx-dom-expressions": ["babel-plugin-jsx-dom-expressions@0.40.3", "", { "dependencies": { "@babel/helper-module-imports": "7.18.6", "@babel/plugin-syntax-jsx": "^7.18.6", "@babel/types": "^7.20.7", "html-entities": "2.3.3", "parse5": "^7.1.2" }, "peerDependencies": { "@babel/core": "^7.20.12" } }, "sha512-5HOwwt0BYiv/zxl7j8Pf2bGL6rDXfV6nUhLs8ygBX+EFJXzBPHM/euj9j/6deMZ6wa52Wb2PBaAV5U/jKwIY1w=="], 339 343 340 - "babel-preset-solid": ["babel-preset-solid@1.9.9", "", { "dependencies": { "babel-plugin-jsx-dom-expressions": "0.40.1" }, "optionalDependencies": { "solid-js": "1.9.9" }, "peerDependencies": { "@babel/core": "7.28.4" } }, "sha512-pCnxWrciluXCeli/dj5PIEHgbNzim3evtTn12snjqqg8QZWJNMjH1AWIp4iG/tbVjqQ72aBEymMSagvmgxubXw=="], 344 + "babel-preset-solid": ["babel-preset-solid@1.9.10", "", { "dependencies": { "babel-plugin-jsx-dom-expressions": "^0.40.3" }, "peerDependencies": { "@babel/core": "^7.0.0", "solid-js": "^1.9.10" }, "optionalPeers": ["solid-js"] }, "sha512-HCelrgua/Y+kqO8RyL04JBWS/cVdrtUv/h45GntgQY+cJl4eBcKkCDV3TdMjtKx1nXwRaR9QXslM/Npm1dxdZQ=="], 341 345 342 346 "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], 343 347 344 - "baseline-browser-mapping": ["baseline-browser-mapping@2.8.18", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-UYmTpOBwgPScZpS4A+YbapwWuBwasxvO/2IOHArSsAhL/+ZdmATBXTex3t+l2hXwLVYK382ibr/nKoY9GKe86w=="], 348 + "baseline-browser-mapping": ["baseline-browser-mapping@2.8.30", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-aTUKW4ptQhS64+v2d6IkPzymEzzhw+G0bA1g3uBRV3+ntkH+svttKseW5IOR4Ed6NUVKqnY7qT3dKvzQ7io4AA=="], 345 349 346 350 "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], 347 351 348 - "browserslist": ["browserslist@4.26.3", "", { "dependencies": { "baseline-browser-mapping": "2.8.18", "caniuse-lite": "1.0.30001751", "electron-to-chromium": "1.5.237", "node-releases": "2.0.25", "update-browserslist-db": "1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w=="], 352 + "browserslist": ["browserslist@4.28.0", "", { "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", "electron-to-chromium": "^1.5.249", "node-releases": "^2.0.27", "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" } }, "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ=="], 349 353 350 354 "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], 351 355 352 356 "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=="], 353 357 354 - "caniuse-lite": ["caniuse-lite@1.0.30001751", "", {}, "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw=="], 358 + "caniuse-lite": ["caniuse-lite@1.0.30001756", "", {}, "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A=="], 355 359 356 360 "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], 357 361 ··· 379 383 380 384 "csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="], 381 385 382 - "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], 386 + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], 383 387 384 - "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], 388 + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], 385 389 386 390 "decode-named-character-reference": ["decode-named-character-reference@1.2.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q=="], 387 391 ··· 389 393 390 394 "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], 391 395 392 - "detect-libc": ["detect-libc@2.0.4", "", {}, "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA=="], 396 + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], 393 397 394 398 "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], 395 399 ··· 403 407 404 408 "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=="], 405 409 406 - "electron-to-chromium": ["electron-to-chromium@1.5.237", "", {}, "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg=="], 410 + "electron-to-chromium": ["electron-to-chromium@1.5.258", "", {}, "sha512-rHUggNV5jKQ0sSdWwlaRDkFc3/rRJIVnOSe9yR4zrR07m3ZxhP4N27Hlg8VeJGGYgFTxK5NqDmWI4DSH72vIJg=="], 407 411 408 412 "encoding-sniffer": ["encoding-sniffer@0.2.1", "", { "dependencies": { "iconv-lite": "^0.6.3", "whatwg-encoding": "^3.1.1" } }, "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw=="], 409 413 410 414 "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], 411 415 412 - "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "4.2.11", "tapable": "2.2.3" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], 416 + "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], 413 417 414 418 "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], 415 419 ··· 421 425 422 426 "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=="], 423 427 424 - "esbuild": ["esbuild@0.25.11", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.11", "@esbuild/android-arm": "0.25.11", "@esbuild/android-arm64": "0.25.11", "@esbuild/android-x64": "0.25.11", "@esbuild/darwin-arm64": "0.25.11", "@esbuild/darwin-x64": "0.25.11", "@esbuild/freebsd-arm64": "0.25.11", "@esbuild/freebsd-x64": "0.25.11", "@esbuild/linux-arm": "0.25.11", "@esbuild/linux-arm64": "0.25.11", "@esbuild/linux-ia32": "0.25.11", "@esbuild/linux-loong64": "0.25.11", "@esbuild/linux-mips64el": "0.25.11", "@esbuild/linux-ppc64": "0.25.11", "@esbuild/linux-riscv64": "0.25.11", "@esbuild/linux-s390x": "0.25.11", "@esbuild/linux-x64": "0.25.11", "@esbuild/netbsd-arm64": "0.25.11", "@esbuild/netbsd-x64": "0.25.11", "@esbuild/openbsd-arm64": "0.25.11", "@esbuild/openbsd-x64": "0.25.11", "@esbuild/openharmony-arm64": "0.25.11", "@esbuild/sunos-x64": "0.25.11", "@esbuild/win32-arm64": "0.25.11", "@esbuild/win32-ia32": "0.25.11", "@esbuild/win32-x64": "0.25.11" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q=="], 428 + "esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="], 425 429 426 430 "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], 427 431 428 432 "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], 429 433 430 - "exsolve": ["exsolve@1.0.7", "", {}, "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw=="], 434 + "exsolve": ["exsolve@1.0.8", "", {}, "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA=="], 431 435 432 436 "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], 433 437 ··· 435 439 436 440 "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], 437 441 438 - "fdir": ["fdir@6.5.0", "", { "optionalDependencies": { "picomatch": "4.0.3" } }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], 442 + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], 439 443 440 444 "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], 441 445 442 - "form-data": ["form-data@4.0.4", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow=="], 446 + "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], 443 447 444 448 "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="], 445 449 ··· 519 523 520 524 "local-pkg": ["local-pkg@0.5.1", "", { "dependencies": { "mlly": "^1.7.3", "pkg-types": "^1.2.1" } }, "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ=="], 521 525 522 - "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "3.1.1" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], 526 + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "^3.0.2" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], 523 527 524 528 "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], 525 529 ··· 533 537 534 538 "mdn-data": ["mdn-data@2.0.30", "", {}, "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="], 535 539 536 - "merge-anything": ["merge-anything@5.1.7", "", { "dependencies": { "is-what": "4.1.16" } }, "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ=="], 540 + "merge-anything": ["merge-anything@5.1.7", "", { "dependencies": { "is-what": "^4.1.8" } }, "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ=="], 537 541 538 542 "micromark": ["micromark@4.0.2", "", { "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-combine-extensions": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA=="], 539 543 ··· 593 597 594 598 "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], 595 599 596 - "node-releases": ["node-releases@2.0.25", "", {}, "sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA=="], 600 + "node-releases": ["node-releases@2.0.27", "", {}, "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA=="], 597 601 598 602 "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], 599 603 ··· 601 605 602 606 "package-manager-detector": ["package-manager-detector@1.5.0", "", {}, "sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw=="], 603 607 604 - "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "6.0.1" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], 608 + "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "^6.0.0" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], 605 609 606 610 "parse5-htmlparser2-tree-adapter": ["parse5-htmlparser2-tree-adapter@7.1.0", "", { "dependencies": { "domhandler": "^5.0.3", "parse5": "^7.0.0" } }, "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g=="], 607 611 ··· 617 621 618 622 "pkg-types": ["pkg-types@1.3.1", "", { "dependencies": { "confbox": "^0.1.8", "mlly": "^1.7.4", "pathe": "^2.0.1" } }, "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ=="], 619 623 620 - "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "3.3.11", "picocolors": "1.1.1", "source-map-js": "1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], 624 + "postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], 621 625 622 626 "property-information": ["property-information@6.5.0", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="], 623 627 ··· 631 635 632 636 "remark-rehype": ["remark-rehype@11.1.2", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "mdast-util-to-hast": "^13.0.0", "unified": "^11.0.0", "vfile": "^6.0.0" } }, "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw=="], 633 637 634 - "rollup": ["rollup@4.52.5", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.52.5", "@rollup/rollup-android-arm64": "4.52.5", "@rollup/rollup-darwin-arm64": "4.52.5", "@rollup/rollup-darwin-x64": "4.52.5", "@rollup/rollup-freebsd-arm64": "4.52.5", "@rollup/rollup-freebsd-x64": "4.52.5", "@rollup/rollup-linux-arm-gnueabihf": "4.52.5", "@rollup/rollup-linux-arm-musleabihf": "4.52.5", "@rollup/rollup-linux-arm64-gnu": "4.52.5", "@rollup/rollup-linux-arm64-musl": "4.52.5", "@rollup/rollup-linux-loong64-gnu": "4.52.5", "@rollup/rollup-linux-ppc64-gnu": "4.52.5", "@rollup/rollup-linux-riscv64-gnu": "4.52.5", "@rollup/rollup-linux-riscv64-musl": "4.52.5", "@rollup/rollup-linux-s390x-gnu": "4.52.5", "@rollup/rollup-linux-x64-gnu": "4.52.5", "@rollup/rollup-linux-x64-musl": "4.52.5", "@rollup/rollup-openharmony-arm64": "4.52.5", "@rollup/rollup-win32-arm64-msvc": "4.52.5", "@rollup/rollup-win32-ia32-msvc": "4.52.5", "@rollup/rollup-win32-x64-gnu": "4.52.5", "@rollup/rollup-win32-x64-msvc": "4.52.5", "fsevents": "2.3.3" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw=="], 638 + "rollup": ["rollup@4.53.3", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.53.3", "@rollup/rollup-android-arm64": "4.53.3", "@rollup/rollup-darwin-arm64": "4.53.3", "@rollup/rollup-darwin-x64": "4.53.3", "@rollup/rollup-freebsd-arm64": "4.53.3", "@rollup/rollup-freebsd-x64": "4.53.3", "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", "@rollup/rollup-linux-arm-musleabihf": "4.53.3", "@rollup/rollup-linux-arm64-gnu": "4.53.3", "@rollup/rollup-linux-arm64-musl": "4.53.3", "@rollup/rollup-linux-loong64-gnu": "4.53.3", "@rollup/rollup-linux-ppc64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-gnu": "4.53.3", "@rollup/rollup-linux-riscv64-musl": "4.53.3", "@rollup/rollup-linux-s390x-gnu": "4.53.3", "@rollup/rollup-linux-x64-gnu": "4.53.3", "@rollup/rollup-linux-x64-musl": "4.53.3", "@rollup/rollup-openharmony-arm64": "4.53.3", "@rollup/rollup-win32-arm64-msvc": "4.53.3", "@rollup/rollup-win32-ia32-msvc": "4.53.3", "@rollup/rollup-win32-x64-gnu": "4.53.3", "@rollup/rollup-win32-x64-msvc": "4.53.3", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA=="], 635 639 636 640 "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], 637 641 ··· 639 643 640 644 "seroval": ["seroval@1.3.2", "", {}, "sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ=="], 641 645 642 - "seroval-plugins": ["seroval-plugins@1.3.3", "", { "peerDependencies": { "seroval": "1.3.2" } }, "sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w=="], 646 + "seroval-plugins": ["seroval-plugins@1.3.3", "", { "peerDependencies": { "seroval": "^1.0" } }, "sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w=="], 643 647 644 648 "solid-devtools": ["solid-devtools@0.34.4", "", { "dependencies": { "@babel/core": "^7.27.4", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.6", "@solid-devtools/debugger": "^0.28.1", "@solid-devtools/shared": "^0.20.0" }, "peerDependencies": { "solid-js": "^1.9.0", "vite": "^2.2.3 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["vite"] }, "sha512-/s/pPTLvTkuXGZhLfsuvp7ge/cdpEwrUPoRwoJPYgz74GTUSb5Ozi2V6Z6HkO0ILT7hXB04j16HbH1aaP5VFOA=="], 645 649 ··· 647 651 648 652 "solid-markdown": ["solid-markdown@2.0.14", "", { "dependencies": { "comma-separated-tokens": "^2.0.3", "property-information": "^6.3.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.1", "space-separated-tokens": "^2.0.2", "style-to-object": "^0.3.0", "unified": "^11.0.5", "unist-util-visit": "^4.1.2", "vfile": "^6.0.3" }, "peerDependencies": { "solid-js": "^1.6.0" } }, "sha512-Ln8R4TsNWySXvKkS80OHV+CSR/mwjk5XfGvC5UjZo/y/rAbbkBoxt6FXoWsfCkTW6GH9yxYvahSMXsUJU/ov4Q=="], 649 653 650 - "solid-refresh": ["solid-refresh@0.6.3", "", { "dependencies": { "@babel/generator": "7.28.3", "@babel/helper-module-imports": "7.27.1", "@babel/types": "7.28.4" }, "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA=="], 654 + "solid-refresh": ["solid-refresh@0.6.3", "", { "dependencies": { "@babel/generator": "^7.23.6", "@babel/helper-module-imports": "^7.22.15", "@babel/types": "^7.23.6" }, "peerDependencies": { "solid-js": "^1.3" } }, "sha512-F3aPsX6hVw9ttm5LYlth8Q15x6MlI/J3Dn+o3EQyRTtTxidepSTwAYdozt01/YA+7ObcciagGEyXIopGZzQtbA=="], 651 655 652 656 "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], 653 657 ··· 659 663 660 664 "tailwindcss": ["tailwindcss@4.1.17", "", {}, "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q=="], 661 665 662 - "tapable": ["tapable@2.2.3", "", {}, "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg=="], 666 + "tapable": ["tapable@2.3.0", "", {}, "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg=="], 663 667 664 668 "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=="], 665 669 666 670 "tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], 667 671 668 - "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "6.5.0", "picomatch": "4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], 672 + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], 669 673 670 674 "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], 671 675 ··· 689 693 690 694 "unist-util-visit-parents": ["unist-util-visit-parents@5.1.3", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0" } }, "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg=="], 691 695 692 - "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "3.2.0", "picocolors": "1.1.1" }, "peerDependencies": { "browserslist": "4.26.3" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="], 693 - 694 - "validate-html-nesting": ["validate-html-nesting@1.2.3", "", {}, "sha512-kdkWdCl6eCeLlRShJKbjVOU2kFKxMF8Ghu50n+crEoyx+VKm3FxAxF9z4DCy6+bbTOqNW0+jcIYRnjoIRzigRw=="], 696 + "update-browserslist-db": ["update-browserslist-db@1.1.4", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A=="], 695 697 696 698 "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], 697 699 698 700 "vfile-message": ["vfile-message@4.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw=="], 699 701 700 - "vite": ["vite@7.2.2", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ=="], 702 + "vite": ["vite@7.2.4", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w=="], 701 703 702 704 "vite-plugin-solid": ["vite-plugin-solid@2.11.10", "", { "dependencies": { "@babel/core": "^7.23.3", "@types/babel__core": "^7.20.4", "babel-preset-solid": "^1.8.4", "merge-anything": "^5.1.7", "solid-refresh": "^0.6.3", "vitefu": "^1.0.4" }, "peerDependencies": { "@testing-library/jest-dom": "^5.16.6 || ^5.17.0 || ^6.*", "solid-js": "^1.7.2", "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" }, "optionalPeers": ["@testing-library/jest-dom"] }, "sha512-Yr1dQybmtDtDAHkii6hXuc1oVH9CPcS/Zb2jN/P36qqcrkNnVPsMTzQ06jyzFPFjj3U1IYKMVt/9ZqcwGCEbjw=="], 703 705 704 - "vitefu": ["vitefu@1.1.1", "", { "optionalDependencies": { "vite": "7.1.10" } }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="], 706 + "vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="], 705 707 706 708 "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], 707 709 ··· 711 713 712 714 "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], 713 715 714 - "yaml": ["yaml@2.6.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg=="], 715 - 716 716 "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], 717 717 718 718 "@atcute/oauth-browser-client/nanoid": ["nanoid@5.1.6", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg=="], 719 719 720 720 "@iconify/utils/local-pkg": ["local-pkg@1.1.2", "", { "dependencies": { "mlly": "^1.7.4", "pkg-types": "^2.3.0", "quansync": "^0.2.11" } }, "sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A=="], 721 721 722 - "@jridgewell/gen-mapping/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.30", "", { "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.15" } }, "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q=="], 722 + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="], 723 723 724 - "@jridgewell/remapping/@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.30", "", { "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.15" } }, "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q=="], 725 - 726 - "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-pJdKGq/1iquWYtv1RRSljZklxHCOCAJFJrImO5ZLKPJVJlVUcs8yFwNQlqS0Lo8xT1VAXXTCZocF9n26FWEKsw=="], 727 - 728 - "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q=="], 724 + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="], 729 725 730 726 "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.1.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ=="], 731 727 ··· 735 731 736 732 "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], 737 733 738 - "babel-plugin-jsx-dom-expressions/@babel/helper-module-imports": ["@babel/helper-module-imports@7.18.6", "", { "dependencies": { "@babel/types": "7.28.4" } }, "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA=="], 739 - 740 - "babel-preset-solid/solid-js": ["solid-js@1.9.9", "", { "dependencies": { "csstype": "3.1.3", "seroval": "1.3.2", "seroval-plugins": "1.3.3" } }, "sha512-A0ZBPJQldAeGCTW0YRYJmt7RCeh5rbFfPZ2aOttgYnctHE7HgKeHCBB/PVc2P7eOfmNXqMFFFoYYdm3S4dcbkA=="], 734 + "babel-plugin-jsx-dom-expressions/@babel/helper-module-imports": ["@babel/helper-module-imports@7.18.6", "", { "dependencies": { "@babel/types": "^7.18.6" } }, "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA=="], 741 735 742 736 "csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="], 743 737 ··· 763 757 764 758 "unist-util-visit-parents/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], 765 759 766 - "vitefu/vite": ["vite@7.1.10", "", { "dependencies": { "esbuild": "0.25.11", "fdir": "6.5.0", "picomatch": "4.0.3", "postcss": "8.5.6", "rollup": "4.52.5", "tinyglobby": "0.2.15" }, "optionalDependencies": { "fsevents": "2.3.3", "jiti": "2.5.1", "lightningcss": "1.30.1", "yaml": "2.6.1" }, "bin": { "vite": "bin/vite.js" } }, "sha512-CmuvUBzVJ/e3HGxhg6cYk88NGgTnBoOo7ogtfJJ0fefUWAxN/WDSUa50o+oVBxuIhO8FoEZW0j2eW7sfjs5EtA=="], 767 - 768 760 "@iconify/utils/local-pkg/pkg-types": ["pkg-types@2.3.0", "", { "dependencies": { "confbox": "^0.2.2", "exsolve": "^1.0.7", "pathe": "^2.0.3" } }, "sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig=="], 769 761 770 - "@jridgewell/gen-mapping/@jridgewell/trace-mapping/@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.0", "", {}, "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="], 771 - 772 - "@jridgewell/gen-mapping/@jridgewell/trace-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.4.15", "", {}, "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="], 773 - 774 - "@jridgewell/remapping/@jridgewell/trace-mapping/@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.0", "", {}, "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="], 775 - 776 - "@jridgewell/remapping/@jridgewell/trace-mapping/@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.4.15", "", {}, "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="], 777 - 778 762 "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="], 779 763 780 764 "mdast-util-to-hast/unist-util-visit/unist-util-is": ["unist-util-is@6.0.1", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g=="], 781 765 782 766 "mdast-util-to-hast/unist-util-visit/unist-util-visit-parents": ["unist-util-visit-parents@6.0.2", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" } }, "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ=="], 783 767 784 - "vitefu/vite/jiti": ["jiti@2.5.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w=="], 785 - 786 - "vitefu/vite/lightningcss": ["lightningcss@1.30.1", "", { "dependencies": { "detect-libc": "2.0.4" }, "optionalDependencies": { "lightningcss-darwin-arm64": "1.30.1", "lightningcss-darwin-x64": "1.30.1", "lightningcss-freebsd-x64": "1.30.1", "lightningcss-linux-arm-gnueabihf": "1.30.1", "lightningcss-linux-arm64-gnu": "1.30.1", "lightningcss-linux-arm64-musl": "1.30.1", "lightningcss-linux-x64-gnu": "1.30.1", "lightningcss-linux-x64-musl": "1.30.1", "lightningcss-win32-arm64-msvc": "1.30.1", "lightningcss-win32-x64-msvc": "1.30.1" } }, "sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg=="], 787 - 788 768 "@iconify/utils/local-pkg/pkg-types/confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], 789 769 790 770 "@iconify/utils/local-pkg/pkg-types/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], 791 - 792 - "vitefu/vite/lightningcss/lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ=="], 793 - 794 - "vitefu/vite/lightningcss/lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA=="], 795 - 796 - "vitefu/vite/lightningcss/lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig=="], 797 - 798 - "vitefu/vite/lightningcss/lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.1", "", { "os": "linux", "cpu": "arm" }, "sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q=="], 799 - 800 - "vitefu/vite/lightningcss/lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw=="], 801 - 802 - "vitefu/vite/lightningcss/lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ=="], 803 - 804 - "vitefu/vite/lightningcss/lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw=="], 805 - 806 - "vitefu/vite/lightningcss/lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.1", "", { "os": "linux", "cpu": "x64" }, "sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ=="], 807 - 808 - "vitefu/vite/lightningcss/lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA=="], 809 - 810 - "vitefu/vite/lightningcss/lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.1", "", { "os": "win32", "cpu": "x64" }, "sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg=="], 811 771 } 812 772 }
+7 -5
package.json
··· 12 12 }, 13 13 "license": "MIT", 14 14 "devDependencies": { 15 - "@biomejs/biome": "^2.3.4", 15 + "@atcute/atproto": "^3.1.9", 16 + "@atcute/lexicons": "^1.2.3", 17 + "@atcute/microcosm": "^1.0.0", 18 + "@atcute/tangled": "^1.0.12", 19 + "@biomejs/biome": "^2.3.6", 16 20 "@iconify-json/gravity-ui": "^1.2.10", 17 21 "@iconify/tailwind4": "^1.1.0", 18 22 "postcss": "^8.5.6", 19 23 "solid-devtools": "^0.34.4", 20 24 "tailwindcss": "^4.1.17", 21 - "vite": "^7.2.2", 25 + "vite": "^7.2.4", 22 26 "vite-plugin-solid": "^2.11.10" 23 27 }, 24 28 "dependencies": { 25 - "@atcute/atproto": "^3.1.9", 26 29 "@atcute/client": "^4.0.5", 27 30 "@atcute/identity-resolver": "^1.1.4", 28 31 "@atcute/oauth-browser-client": "^2.0.1", 29 - "@atcute/tangled": "^1.0.10", 30 32 "@gleam-lang/highlight.js-gleam": "^1.5.0", 31 - "@solidjs/router": "^0.15.3", 33 + "@solidjs/router": "^0.15.4", 32 34 "@tailwindcss/vite": "^4.1.17", 33 35 "@types/highlight.js": "^10.1.0", 34 36 "highlight.js": "^11.11.1",
+1 -5
shell.nix
··· 1 1 {pkgs}: 2 - #let 3 - # defaultPackage = callPackage ./default.nix { }; 4 - #in 5 2 pkgs.mkShellNoCC { 6 - #inputsFrom = [ defaultPackage ]; 7 - 8 3 packages = with pkgs; [ 9 4 bun 5 + nodejs 10 6 ]; 11 7 }
+1 -1
src/app.tsx
··· 11 11 </ul> 12 12 </nav> 13 13 14 - <main class="mt-6 text-gray-950 text-sm dark:text-gray-50"> 14 + <main class="my-6 text-gray-950 text-sm dark:text-gray-50"> 15 15 <Suspense>{props.children}</Suspense> 16 16 </main> 17 17 </>
+1 -1
src/elements/code_block/index.tsx
··· 18 18 <div id={`L${i() + 1}`} class="flex flex-row gap-2"> 19 19 <a 20 20 href={`#L${i() + 1}`} 21 - class="sticky left-0 select-none border-gray-200 border-r bg-white px-1.5 text-gray-400 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-500 hover:dark:text-gray-200" 21 + class="sticky left-0 select-none border-gray-200 border-r bg-white px-1.5 text-gray-500 hover:text-gray-700 dark:border-gray-700 dark:bg-gray-800 dark:text-gray-500 hover:dark:text-gray-200" 22 22 > 23 23 {(i() + 1).toString().padStart(numberSize, " ")} 24 24 </a>
+42 -42
src/elements/code_block/style.css
··· 1 1 @import "tailwindcss"; 2 2 3 - .hljs { 4 - @apply text-gray-900 dark:text-gray-300; 3 + .hljs-operator { 4 + @apply text-purple-800 dark:text-purple-300; 5 5 } 6 - .hljs-doctag, 6 + 7 7 .hljs-keyword, 8 + .hljs-selector-tag, 8 9 .hljs-meta .hljs-keyword, 9 - .hljs-template-tag, 10 - .hljs-template-variable, 11 - .hljs-type, 12 - .hljs-variable.language_ { 13 - @apply text-red-700 dark:text-red-400; 10 + .hljs-doctag, 11 + .hljs-section { 12 + @apply text-purple-700 dark:text-purple-400; 14 13 } 14 + 15 15 .hljs-title, 16 - .hljs-title.class_, 17 - .hljs-title.class_.inherited__, 18 16 .hljs-title.function_ { 19 - @apply text-purple-700 dark:text-purple-400; 17 + @apply text-amber-500 dark:text-amber-300; 20 18 } 19 + 21 20 .hljs-attr, 22 21 .hljs-attribute, 23 - .hljs-literal, 24 - .hljs-meta, 25 - .hljs-number, 26 - .hljs-operator, 27 - .hljs-variable, 28 22 .hljs-selector-attr, 29 - .hljs-selector-class, 30 - .hljs-selector-id { 31 - @apply text-blue-700 dark:text-blue-400; 23 + .hljs-selector-class { 24 + @apply text-blue-600 dark:text-blue-400; 32 25 } 33 - .hljs-regexp, 34 - .hljs-string, 35 - .hljs-meta .hljs-string { 36 - @apply text-cyan-800 dark:text-cyan-200; 37 - } 26 + 27 + .hljs-type, 28 + .hljs-title.class_, 29 + .hljs-title.class_.inherited__, 30 + .hljs-template-tag, 38 31 .hljs-built_in, 39 32 .hljs-symbol { 40 - @apply text-amber-700 dark:text-amber-300; 33 + @apply text-amber-600 dark:text-amber-300; 41 34 } 42 - .hljs-comment, 35 + 36 + .hljs-string, 37 + .hljs-regexp, 38 + .hljs-meta .hljs-string { 39 + @apply text-green-600 dark:text-green-300; 40 + } 41 + 42 + .hljs-number, 43 + .hljs-literal, 44 + .hljs-bullet, 43 45 .hljs-code, 44 - .hljs-formula { 45 - @apply text-neutral-500 dark:text-neutral-400; 46 - } 47 - .hljs-name, 48 - .hljs-quote, 49 - .hljs-selector-tag, 50 - .hljs-selector-pseudo { 51 - @apply text-green-700 dark:text-green-400; 46 + .hljs-quote { 47 + @apply text-orange-600 dark:text-orange-300; 52 48 } 49 + 50 + .hljs-variable, 53 51 .hljs-subst { 54 - @apply text-neutral-800 dark:text-neutral-300; 52 + @apply text-gray-800 dark:text-gray-200; 55 53 } 56 - .hljs-section { 57 - @apply font-bold text-blue-700 dark:text-blue-400; 54 + 55 + .hljs-comment, 56 + .hljs-formula, 57 + .hljs-meta { 58 + @apply italic text-gray-400 dark:text-gray-500; 58 59 } 59 - .hljs-bullet { 60 - @apply text-yellow-900 dark:text-yellow-300; 61 - } 60 + 62 61 .hljs-emphasis { 63 - @apply italic text-gray-900 dark:text-gray-400; 62 + @apply italic; 64 63 } 65 64 .hljs-strong { 66 - @apply font-bold text-gray-900 dark:text-gray-400; 65 + @apply font-bold; 67 66 } 67 + 68 68 .hljs-addition { 69 69 @apply bg-green-100 text-green-700 dark:bg-green-800/30 dark:text-green-400; 70 70 }
+7 -1
src/index.tsx
··· 7 7 import App from "./app"; 8 8 import NotFound from "./errors/404"; 9 9 import RepoBlob, { preloadRepoBlob } from "./routes/repo/blob"; 10 - import RepoCommit, { preloadRepoCommit } from "./routes/repo/commit"; 11 10 import { RepoProvider } from "./routes/repo/context"; 11 + import RepoCommit, { preloadRepoCommit } from "./routes/repo/diff/commit"; 12 + import RepoCompare, { preloadRepoCompare } from "./routes/repo/diff/compare"; 12 13 import RepoTree, { preloadRepoTree } from "./routes/repo/tree"; 13 14 import User from "./routes/user"; 14 15 ··· 36 37 path="/commit/:ref" 37 38 component={RepoCommit} 38 39 preload={preloadRepoCommit} 40 + /> 41 + <Route 42 + path="/compare/:rev2/:rev1" 43 + component={RepoCompare} 44 + preload={preloadRepoCompare} 39 45 /> 40 46 <Route component={RepoTree} preload={preloadRepoTree} /> 41 47 </Route>
+32 -9
src/routes/repo/blob.tsx
··· 4 4 useNavigate, 5 5 useParams, 6 6 } from "@solidjs/router"; 7 - import { createMemo } from "solid-js"; 7 + import { createMemo, createResource } from "solid-js"; 8 8 import { CodeBlock } from "../../elements/code_block"; 9 9 import { getLanguage } from "../../util/get_language"; 10 10 import { figureOutDid } from "../../util/handle"; 11 11 import { useDid } from "./context"; 12 + import { PathBar } from "./generic"; 12 13 import { Header } from "./main"; 13 - import { getRepoBlob } from "./main.data"; 14 + import { getRepoBlob, getRepoDefaultBranch } from "./main.data"; 14 15 15 16 export async function preloadRepoBlob({ params }: { params: Params }) { 16 - const did = await figureOutDid(params.user); 17 + const did = await figureOutDid(params.user!); 17 18 if (!did) return; 18 - getRepoBlob(did, params.repo, params.ref, params.path); 19 + getRepoBlob(did, params.repo!, params.ref!, params.path!); 19 20 } 20 21 21 22 export default function RepoBlob() { 22 - const params = useParams(); 23 + const params = useParams() as { 24 + user: string; 25 + repo: string; 26 + ref: string; 27 + path: string; 28 + }; 23 29 const did = useDid(); 24 30 const navigate = useNavigate(); 25 31 ··· 39 45 ); 40 46 41 47 const codeBlock = createMemo(() => { 42 - if (!blob()) return; 48 + if (!blob()?.content) return; 43 49 return ( 44 50 <CodeBlock 45 - code={blob()!.content} 51 + code={blob()!.content!} 46 52 language={getLanguage(blob()!.path.split("/").pop()) || "text"} 47 53 /> 48 54 ); 49 55 }); 50 56 57 + const [defaultBranch] = createResource(did, async (did) => { 58 + const res = await getRepoDefaultBranch(did, params.repo); 59 + if (!res.ok) return; 60 + return res.data.name; 61 + }); 62 + 63 + const ref = () => params.ref || defaultBranch(); 64 + 51 65 return ( 52 66 <div class="mx-auto max-w-5xl"> 53 67 <Header user={params.user} repo={params.repo} /> 54 - <div class="flex flex-col rounded bg-white p-4 dark:bg-gray-800"> 55 - {codeBlock()} 68 + <div class="flex flex-col rounded bg-white pt-1 pb-2 dark:bg-gray-800"> 69 + <div class="mx-4 flex flex-row border-gray-300 border-b py-2 dark:border-gray-700"> 70 + <PathBar 71 + user={params.user} 72 + repo={params.repo} 73 + gitref={ref()!} 74 + path={params.path} 75 + is_file={true} 76 + /> 77 + </div> 78 + <div class="flex flex-col p-4">{codeBlock()}</div> 56 79 </div> 57 80 </div> 58 81 );
src/routes/repo/commit/data.ts src/routes/repo/diff/data.ts
+21 -139
src/routes/repo/commit/index.tsx src/routes/repo/diff/generic.tsx
··· 1 - import { type Params, useParams } from "@solidjs/router"; 2 - import { 3 - createMemo, 4 - createResource, 5 - createSignal, 6 - For, 7 - Match, 8 - onMount, 9 - Show, 10 - Switch, 11 - } from "solid-js"; 12 - import { figureOutDid } from "../../../util/handle"; 13 - import type { Commit, DID, DiffTextFragment } from "../../../util/types"; 14 - import { useDid } from "../context"; 15 - import { Header } from "../main"; 16 - import { getRepoCommit } from "../main.data"; 17 - import { buildTree, type TreeNode } from "./data"; 18 - 19 - export async function preloadRepoCommit({ params }: { params: Params }) { 20 - const did = await figureOutDid(params.user); 21 - if (!did) return; 22 - getRepoCommit(did, params.repo, params.ref); 23 - } 1 + import { createSignal, For, Match, Show, Switch } from "solid-js"; 2 + import type { Commit, DiffTextFragment } from "../../../util/types"; 3 + import type { TreeNode } from "./data"; 24 4 25 - function RenderTree(props: { tree: TreeNode; skip?: boolean }) { 5 + export function RenderTree(props: { tree: TreeNode; skip?: boolean }) { 26 6 if (props.skip) 27 7 return ( 28 8 <For each={props.tree.children}> ··· 188 168 ); 189 169 } 190 170 191 - function DiffView(props: { commit: Commit }) { 171 + export function DiffView(props: { commit: Commit }) { 192 172 return ( 193 173 <For each={props.commit.diff.diff}> 194 174 {(diff) => { ··· 281 261 ); 282 262 } 283 263 284 - function CommitHeader(props: { 285 - user: string; 286 - repo: string; 287 - message: { title: string; content: string }; 288 - commit: Commit; 289 - }) { 290 - return ( 291 - <div> 292 - <Header user={props.user} repo={props.repo} /> 293 - <div class="mx-1 flex flex-col gap-2 rounded bg-white p-4 dark:bg-gray-800"> 294 - <div>{props.message.title}</div> 295 - <Show when={props.message.content}> 296 - <div class="text-xs">{props.message.content}</div> 297 - </Show> 298 - <div class="text-gray-500 text-xs dark:text-gray-300"> 299 - <span>{`${new Date(props.commit.diff.commit.author.When).toLocaleDateString(undefined, { dateStyle: "long" })} at ${new Date(props.commit.diff.commit.author.When).toLocaleTimeString()}`}</span> 300 - <span class="select-none px-1 before:content-['\00B7']" /> 301 - <span>{`${props.commit.diff.commit.author.Name} <${props.commit.diff.commit.author.Email}>`}</span> 302 - <span class="select-none px-1 before:content-['\00B7']" /> 303 - <a 304 - class="hover:text-gray-600 hover:underline hover:dark:text-gray-200" 305 - href={`/${props.user}/${props.repo}/commit/${props.commit.ref}`} 306 - > 307 - {props.commit.ref.slice(0, 8)} 308 - </a> 309 - <Show when={props.commit.diff.commit.parent}> 310 - <div class="iconify gravity-ui--arrow-left mx-1 text-[0.6rem]" /> 311 - <a 312 - class="hover:text-gray-600 hover:underline hover:dark:text-gray-200" 313 - href={`/${props.user}/${props.repo}/commit/${props.commit.diff.commit.parent}`} 314 - > 315 - {props.commit.diff.commit.parent.slice(0, 8)} 316 - </a> 317 - </Show> 318 - </div> 319 - </div> 320 - </div> 321 - ); 322 - } 323 - 324 - export default function RepoCommit() { 325 - const params = useParams(); 326 - const did = useDid(); 327 - 328 - const [commit] = createResource( 329 - () => { 330 - const d = did(); 331 - if (!d) return; 332 - return [d, params.repo, params.ref]; 333 - }, 334 - async ([did, repo, ref]) => { 335 - const res = await getRepoCommit(did as DID, repo, ref); 336 - if (!res.ok) return; 337 - return res.data as Commit; 338 - }, 339 - ); 340 - 341 - const sidebar = createMemo(() => { 342 - if (!commit()?.diff.diff) 343 - return { name: "", fullPath: "", type: "directory" } as TreeNode; 344 - return buildTree(commit()!.diff.diff.map((v) => v.name.new)); 345 - }); 346 - 347 - const message = createMemo(() => { 348 - const c = commit(); 349 - if (!c) return; 350 - 351 - const titleEnd = c.diff.commit.message.indexOf("\n"); 352 - return { 353 - title: c.diff.commit.message.slice(0, titleEnd), 354 - content: c.diff.commit.message.slice(titleEnd + 1), 355 - }; 356 - }); 357 - 358 - onMount(() => { 359 - if (window.location.hash) { 360 - const element = document.getElementById(window.location.hash.slice(1)); 361 - if (element) 362 - element.scrollIntoView({ behavior: "instant", block: "start" }); 363 - } 364 - }); 365 - 264 + export function Sidebar(props: { commit: Commit; sidebar: TreeNode }) { 366 265 return ( 367 - <div class="mx-auto max-w-10xl"> 368 - <Show when={commit() && message()}> 369 - <CommitHeader 370 - user={params.user} 371 - repo={params.repo} 372 - message={message()!} 373 - commit={commit()!} 374 - /> 375 - </Show> 376 - <Show when={sidebar()?.children && commit()}> 377 - <div class="flex flex-row gap-1"> 378 - <div class="sticky top-0 flex max-h-screen w-50 overflow-y-auto p-1 pr-0"> 379 - <div class="flex min-h-max w-full grow cursor-default flex-col rounded border border-gray-200 bg-white p-1 dark:border-gray-700 dark:bg-gray-800"> 380 - <div class="flex flex-row items-center justify-between gap-1 p-1"> 381 - <div class="font-bold">CHANGED FILES</div> 382 - <div class="flex h-6 select-text flex-row items-center overflow-hidden rounded font-mono text-xs *:h-full *:content-center *:px-1"> 383 - <Show when={commit()!.diff.stat.insertions > 0}> 384 - <div class="bg-green-100 text-green-700 dark:bg-green-800/30 dark:text-green-400">{`+${commit()!.diff.stat.insertions}`}</div> 385 - </Show> 386 - <Show when={commit()!.diff.stat.deletions > 0}> 387 - <div class="bg-red-100 text-red-700 dark:bg-red-700/30 dark:text-red-400">{`-${commit()!.diff.stat.deletions}`}</div> 388 - </Show> 389 - </div> 390 - </div> 391 - <div class="max-w-full overflow-x-auto text-nowrap"> 392 - <RenderTree tree={sidebar()!} skip={true} /> 393 - </div> 394 - </div> 395 - </div> 396 - <div class="min-w-0 flex-1 flex-col gap-1 p-1 pl-0"> 397 - <DiffView commit={commit()!} /> 266 + <div class="sticky top-0 flex max-h-screen w-50 overflow-y-auto p-1 pr-0"> 267 + <div class="flex min-h-max w-full grow cursor-default flex-col rounded border border-gray-200 bg-white p-1 dark:border-gray-700 dark:bg-gray-800"> 268 + <div class="flex flex-row items-center justify-between gap-1 p-1"> 269 + <div class="font-bold">CHANGED FILES</div> 270 + <div class="flex h-6 select-text flex-row items-center overflow-hidden rounded font-mono text-xs *:h-full *:content-center *:px-1"> 271 + <Show when={props.commit.diff.stat.insertions > 0}> 272 + <div class="bg-green-100 text-green-700 dark:bg-green-800/30 dark:text-green-400">{`+${props.commit.diff.stat.insertions}`}</div> 273 + </Show> 274 + <Show when={props.commit.diff.stat.deletions > 0}> 275 + <div class="bg-red-100 text-red-700 dark:bg-red-700/30 dark:text-red-400">{`-${props.commit.diff.stat.deletions}`}</div> 276 + </Show> 398 277 </div> 399 278 </div> 400 - </Show> 279 + <div class="max-w-full overflow-x-auto text-nowrap"> 280 + <RenderTree tree={props.sidebar} skip={true} /> 281 + </div> 282 + </div> 401 283 </div> 402 284 ); 403 285 }
+5
src/routes/repo/commits.tsx
··· 1 + import { useParams } from "@solidjs/router"; 2 + 3 + export function RepoCommits() { 4 + const params = useParams(); 5 + }
+126
src/routes/repo/diff/commit.tsx
··· 1 + import { type Params, useParams } from "@solidjs/router"; 2 + import { createMemo, createResource, onMount, Show } from "solid-js"; 3 + import { figureOutDid } from "../../../util/handle"; 4 + import { toRelativeTime } from "../../../util/time"; 5 + import type { Commit, DID } from "../../../util/types"; 6 + import { useDid } from "../context"; 7 + import { Header } from "../main"; 8 + import { getRepoCommit } from "../main.data"; 9 + import { buildTree, type TreeNode } from "./data"; 10 + import { DiffView, Sidebar } from "./generic"; 11 + 12 + export async function preloadRepoCommit({ params }: { params: Params }) { 13 + const did = await figureOutDid(params.user!); 14 + if (!did) return; 15 + getRepoCommit(did, params.repo!, params.ref!); 16 + } 17 + 18 + export default function RepoCommit() { 19 + const params = useParams() as { user: string; repo: string; ref: string }; 20 + const did = useDid(); 21 + 22 + const [commit] = createResource( 23 + () => { 24 + const d = did(); 25 + if (!d) return; 26 + return [d, params.repo, params.ref] as const; 27 + }, 28 + async ([did, repo, ref]) => { 29 + const res = await getRepoCommit(did as DID, repo, ref); 30 + if (!res.ok) return; 31 + return res.data as Commit; 32 + }, 33 + ); 34 + 35 + const sidebar = createMemo(() => { 36 + if (!commit()?.diff.diff) 37 + return { name: "", fullPath: "", type: "directory" } as TreeNode; 38 + return buildTree(commit()!.diff.diff.map((v) => v.name.new)); 39 + }); 40 + 41 + const message = createMemo(() => { 42 + const c = commit(); 43 + if (!c) return; 44 + 45 + const titleEnd = c.diff.commit.message.indexOf("\n"); 46 + return { 47 + title: c.diff.commit.message.slice(0, titleEnd), 48 + content: c.diff.commit.message.slice(titleEnd + 1), 49 + }; 50 + }); 51 + 52 + onMount(() => { 53 + if (window.location.hash) { 54 + const element = document.getElementById(window.location.hash.slice(1)); 55 + if (element) 56 + element.scrollIntoView({ behavior: "instant", block: "start" }); 57 + } 58 + }); 59 + 60 + return ( 61 + <div class="mx-auto max-w-10xl"> 62 + <Show when={commit() && message()}> 63 + <CommitHeader 64 + user={params.user} 65 + repo={params.repo} 66 + message={message()!} 67 + commit={commit()!} 68 + /> 69 + </Show> 70 + <Show when={sidebar()?.children && commit()}> 71 + <div class="flex flex-row gap-1"> 72 + <Sidebar sidebar={sidebar()} commit={commit()!} /> 73 + <div class="min-w-0 flex-1 flex-col gap-1 p-1 pl-0"> 74 + <DiffView commit={commit()!} /> 75 + </div> 76 + </div> 77 + </Show> 78 + </div> 79 + ); 80 + } 81 + 82 + function CommitHeader(props: { 83 + user: string; 84 + repo: string; 85 + message: { title: string; content: string }; 86 + commit: Commit; 87 + }) { 88 + const date = () => new Date(props.commit.diff.commit.author.When); 89 + return ( 90 + <div> 91 + <Header user={props.user} repo={props.repo} /> 92 + <div class="mx-1 flex flex-col gap-2 rounded bg-white p-4 dark:bg-gray-800"> 93 + <div>{props.message.title}</div> 94 + <Show when={props.message.content}> 95 + <div class="text-xs">{props.message.content}</div> 96 + </Show> 97 + <div class="text-gray-500 text-xs dark:text-gray-300"> 98 + <span 99 + title={date().toLocaleString(undefined, { 100 + dateStyle: "full", 101 + timeStyle: "short", 102 + })} 103 + >{`${toRelativeTime(date())}`}</span> 104 + <span class="select-none px-1 before:content-['\00B7']" /> 105 + <span>{`${props.commit.diff.commit.author.Name} <${props.commit.diff.commit.author.Email}>`}</span> 106 + <span class="select-none px-1 before:content-['\00B7']" /> 107 + <a 108 + class="hover:text-gray-600 hover:underline hover:dark:text-gray-200" 109 + href={`/${props.user}/${props.repo}/commit/${props.commit.ref}`} 110 + > 111 + {props.commit.ref.slice(0, 8)} 112 + </a> 113 + <Show when={props.commit.diff.commit.parent}> 114 + <div class="iconify gravity-ui--arrow-left mx-1 text-[0.6rem]" /> 115 + <a 116 + class="hover:text-gray-600 hover:underline hover:dark:text-gray-200" 117 + href={`/${props.user}/${props.repo}/commit/${props.commit.diff.commit.parent}`} 118 + > 119 + {props.commit.diff.commit.parent.slice(0, 8)} 120 + </a> 121 + </Show> 122 + </div> 123 + </div> 124 + </div> 125 + ); 126 + }
+97
src/routes/repo/diff/compare.tsx
··· 1 + import { type Params, useParams } from "@solidjs/router"; 2 + import { createMemo, createResource, onMount, Show } from "solid-js"; 3 + import { figureOutDid } from "../../../util/handle"; 4 + import type { DID } from "../../../util/types"; 5 + import { useDid } from "../context"; 6 + import { Header } from "../main"; 7 + import { getRepoCompare } from "../main.data"; 8 + import { buildTree, type TreeNode } from "./data"; 9 + import { DiffView, RenderTree } from "./generic"; 10 + 11 + export async function preloadRepoCompare({ params }: { params: Params }) { 12 + const did = await figureOutDid(params.user); 13 + if (!did) return; 14 + getRepoCompare(did, params.repo, params.rev1, params.rev2); 15 + } 16 + 17 + function ComparisonHeader(props: { 18 + user: string; 19 + repo: string; 20 + message: { title: string; content: string }; 21 + commit: Commit; 22 + }) { 23 + return ( 24 + <div> 25 + <Header user={props.user} repo={props.repo} /> 26 + <div class="mx-1 flex flex-col gap-2 rounded bg-white p-4 dark:bg-gray-800"> 27 + <div>{props.message.title}</div> 28 + <Show when={props.message.content}> 29 + <div class="text-xs">{props.message.content}</div> 30 + </Show> 31 + </div> 32 + </div> 33 + ); 34 + } 35 + 36 + export default function RepoCompare() { 37 + const params = useParams(); 38 + const did = useDid(); 39 + 40 + const [commit] = createResource( 41 + () => { 42 + const d = did(); 43 + if (!d) return; 44 + return [d, params.repo, params.ref] as const; 45 + }, 46 + async ([did, repo, ref]) => { 47 + const res = await getRepoCompare(did as DID, repo, ref); 48 + if (!res.ok) return; 49 + return res.data as Commit; 50 + }, 51 + ); 52 + 53 + const sidebar = createMemo(() => { 54 + if (!commit()?.diff.diff) 55 + return { name: "", fullPath: "", type: "directory" } as TreeNode; 56 + return buildTree(commit()!.diff.diff.map((v) => v.name.new)); 57 + }); 58 + 59 + const message = createMemo(() => { 60 + const c = commit(); 61 + if (!c) return; 62 + 63 + const titleEnd = c.diff.commit.message.indexOf("\n"); 64 + return { 65 + title: c.diff.commit.message.slice(0, titleEnd), 66 + content: c.diff.commit.message.slice(titleEnd + 1), 67 + }; 68 + }); 69 + 70 + onMount(() => { 71 + if (window.location.hash) { 72 + const element = document.getElementById(window.location.hash.slice(1)); 73 + if (element) 74 + element.scrollIntoView({ behavior: "instant", block: "start" }); 75 + } 76 + }); 77 + 78 + return ( 79 + <div class="mx-auto max-w-10xl"> 80 + <Show when={commit() && message()}> 81 + <CommitHeader 82 + user={params.user} 83 + repo={params.repo} 84 + message={message()!} 85 + commit={commit()!} 86 + /> 87 + </Show> 88 + <Show when={sidebar()?.children && commit()}> 89 + <div class="flex flex-row gap-1"> 90 + <div class="min-w-0 flex-1 flex-col gap-1 p-1 pl-0"> 91 + <DiffView commit={commit()!} /> 92 + </div> 93 + </div> 94 + </Show> 95 + </div> 96 + ); 97 + }
+54
src/routes/repo/generic.tsx
··· 1 + import { createMemo, For, Show } from "solid-js"; 2 + 3 + export function PathBar(props: { 4 + user: string; 5 + repo: string; 6 + gitref: string; 7 + path: string; 8 + is_file: boolean; 9 + }) { 10 + const paths = createMemo(() => { 11 + const names = props.path.split("/"); 12 + const paths = new Array(names.length) as string[]; 13 + let i = 0; 14 + for (const name of names) { 15 + paths[i] = `${paths.at(i - 1) || ""}/${name}`; 16 + i += 1; 17 + } 18 + return names.map((name, i) => ({ name, path: paths.at(i) })); 19 + }); 20 + 21 + return ( 22 + <div class="flex flex-row gap-1"> 23 + <a 24 + href={`/${props.user}/${props.repo}/tree/${props.gitref}`} 25 + class="text-gray-600 hover:text-gray-700 hover:underline dark:text-gray-400 hover:dark:text-gray-300" 26 + > 27 + {props.repo} 28 + </a> 29 + <span class="text-gray-400 dark:text-gray-600">/</span> 30 + <For each={paths()}> 31 + {(v, i) => ( 32 + <> 33 + <Show 34 + when={props.is_file && i() === paths().length - 1} 35 + fallback={ 36 + <a 37 + href={`/${props.user}/${props.repo}/tree/${props.gitref}${v.path}`} 38 + class="text-gray-600 hover:text-gray-700 hover:underline dark:text-gray-400 hover:dark:text-gray-300" 39 + > 40 + {v.name} 41 + </a> 42 + } 43 + > 44 + <span>{v.name}</span> 45 + </Show> 46 + <Show when={!(props.is_file && i() === paths().length - 1)}> 47 + <span class="text-gray-400 dark:text-gray-600">/</span> 48 + </Show> 49 + </> 50 + )} 51 + </For> 52 + </div> 53 + ); 54 + }
+26 -4
src/routes/repo/main.data.ts
··· 12 12 return rpc; 13 13 } 14 14 15 + async function getConstellationRpc() { 16 + const handler = simpleFetchHandler({ service: constellationUrl }); 17 + const rpc = new Client({ handler }); 18 + 19 + return rpc; 20 + } 21 + 15 22 export const getRepoDefaultBranch = query(async (user: DID, repo: string) => { 16 23 const rpc = await getKnotRpc(user, repo); 17 24 ··· 29 36 return await rpc.get("sh.tangled.repo.tree", { 30 37 params: { 31 38 repo: `${user}/${repo}`, 32 - ref, 39 + ref: ref, 33 40 path: path ?? "", 34 41 }, 35 42 }); ··· 44 51 return await rpc.get("sh.tangled.repo.blob", { 45 52 params: { 46 53 repo: `${user}/${repo}`, 47 - ref, 54 + ref: ref, 48 55 path, 49 56 }, 50 57 }); ··· 53 60 ); 54 61 55 62 export const getRepoLog = query( 56 - async (user: DID, repo: string, ref: string, path: string) => { 63 + async (user: DID, repo: string, ref: string) => { 57 64 const rpc = await getKnotRpc(user, repo); 58 65 59 66 return await rpc.get("sh.tangled.repo.log", { ··· 61 68 params: { 62 69 repo: `${user}/${repo}`, 63 70 ref, 64 - path, 65 71 }, 66 72 }); 67 73 }, ··· 117 123 params: { 118 124 repo: `${user}/${repo}`, 119 125 ref, 126 + }, 127 + }); 128 + }, 129 + "RepoCommit", 130 + ); 131 + 132 + export const getRepoCompare = query( 133 + async (user: DID, repo: string, rev1: string, rev2: string) => { 134 + const rpc = await getKnotRpc(user, repo); 135 + 136 + return await rpc.get("sh.tangled.repo.compare", { 137 + as: "json", 138 + params: { 139 + repo: `${user}/${repo}`, 140 + rev1, 141 + rev2, 120 142 }, 121 143 }); 122 144 },
+42 -6
src/routes/repo/main.tsx
··· 1 - import { type Accessor, createMemo, Show } from "solid-js"; 1 + import { type Accessor, createMemo, createResource, Show } from "solid-js"; 2 + import { getUserRepoByRkey } from "../../util/get_repo"; 3 + import { figureOutHandle } from "../../util/handle"; 4 + import type { DID } from "../../util/types"; 2 5 import { useRepoInfo } from "./context"; 3 6 4 7 function HeaderItem(props: { ··· 25 28 return ["issues", "pulls", "pipelines"].includes(path) ? path : "overview"; 26 29 }); 27 30 31 + const [forkedInfo] = createResource( 32 + () => repoInfo()?.repo, 33 + (repo) => 34 + (async () => { 35 + if (!repo.source) return; 36 + const [, , did, , rkey] = repo.source.split("/"); 37 + if (rkey === repo.rkey) return; 38 + return { 39 + did: did as DID, 40 + repo: await getUserRepoByRkey(did as DID, rkey), 41 + }; 42 + })(), 43 + ); 44 + 45 + const [forkedHandle] = createResource(forkedInfo, (forkedInfo) => 46 + (async () => await figureOutHandle(forkedInfo.did))(), 47 + ); 48 + 28 49 return ( 29 50 <Show when={repoInfo()} keyed> 30 51 {(repoInfo) => ( 31 - <> 52 + <div class="flex flex-col"> 32 53 <div class="m-5 mt-0 flex flex-row items-center justify-between gap-0.5"> 33 - <div class="flex flex-col gap-1"> 54 + <div class="flex flex-col gap-1 text-xs"> 55 + <Show when={forkedInfo()?.repo && forkedHandle()} keyed> 56 + <div class="flex flex-row items-center gap-1"> 57 + <div class="iconify gravity-ui--code-fork" /> 58 + <span> 59 + forked from{" "} 60 + <a 61 + href={`/${forkedHandle()}/${forkedInfo()!.repo!.name}`} 62 + class="underline hover:text-gray-700 dark:hover:text-gray-200" 63 + >{`@${forkedHandle()}/${forkedInfo()!.repo!.name}`}</a> 64 + </span> 65 + </div> 66 + </Show> 34 67 <div class="flex flex-row items-center gap-1 text-base"> 35 - <a class="hover:underline" href={`/${props.user}`}> 68 + <a 69 + class="hover:text-gray-700 hover:underline dark:hover:text-gray-200" 70 + href={`/${props.user}`} 71 + > 36 72 @{props.user} 37 73 </a> 38 74 <span class="select-none text-xl">/</span> 39 75 <a 40 - class="font-bold hover:underline" 76 + class="font-bold hover:text-gray-700 hover:underline dark:hover:text-gray-200" 41 77 href={`/${props.user}/${props.repo}`} 42 78 > 43 79 {props.repo} ··· 78 114 windowPath={path} 79 115 />*/} 80 116 </div> 81 - </> 117 + </div> 82 118 )} 83 119 </Show> 84 120 );
+187 -61
src/routes/repo/tree.tsx
··· 2 2 ShTangledRepoLanguages, 3 3 ShTangledRepoTree, 4 4 } from "@atcute/tangled"; 5 - import { type Params, useParams } from "@solidjs/router"; 5 + import { type Params, useNavigate, useParams } from "@solidjs/router"; 6 6 import { 7 7 createMemo, 8 8 createResource, ··· 14 14 } from "solid-js"; 15 15 import { SolidMarkdown } from "solid-markdown"; 16 16 import { languageColors } from "../../util/get_language"; 17 - import type { RepoLog } from "../../util/types"; 17 + import type { Branches, RepoLog, Tags } from "../../util/types"; 18 18 import { useDid } from "./context"; 19 19 import { Header } from "./main"; 20 20 import { ··· 22 22 getRepoDefaultBranch, 23 23 getRepoLanguages, 24 24 getRepoLog, 25 + getRepoTags, 25 26 getRepoTree, 26 27 } from "./main.data"; 27 28 import "../../styles/markdown.css"; 28 29 import { figureOutDid } from "../../util/handle"; 30 + import { toRelativeTime } from "../../util/time"; 31 + import { PathBar } from "./generic"; 29 32 30 33 export async function preloadRepoTree({ params }: { params: Params }) { 31 - const did = await figureOutDid(params.user); 34 + const did = await figureOutDid(params.user!); 32 35 if (!did) return; 33 - getRepoTree(did, params.repo, params.ref, params.path); 36 + getRepoTree(did, params.repo!, params.ref!, params.path); 34 37 } 35 38 36 39 export default function RepoTree() { 37 - const params = useParams(); 40 + const navigate = useNavigate(); 41 + const params = useParams() as { 42 + user: string; 43 + repo: string; 44 + ref: string; 45 + path: string; 46 + }; 38 47 const did = useDid(); 39 48 40 49 const [defaultBranch] = createResource(did, async (did) => { ··· 66 75 const [logs] = createResource( 67 76 () => { 68 77 const d = did(); 69 - return d && ([d, params.repo, params.ref, params.path] as const); 78 + return d && ([d, params.repo, params.ref] as const); 70 79 }, 71 - async ([d, repo, ref, path]) => { 72 - const res = await getRepoLog(d, repo, ref, path); 80 + async ([d, repo, ref]) => { 81 + const res = await getRepoLog(d, repo, ref); 73 82 if (!res.ok) return; 74 83 return res.data as RepoLog; 75 84 }, 76 85 ); 77 86 78 - const [branchesAndTags] = createResource( 87 + const [branches] = createResource( 79 88 () => { 80 89 const d = did(); 81 90 return d && ([d, params.repo, params.ref] as const); 82 91 }, 83 92 async ([d, repo, ref]) => { 84 - const resBranches = await getRepoBranches(d, repo, ref); 85 - if (!resBranches.ok) return; 86 - return resBranches.data as RepoLog; 93 + const res = await getRepoBranches(d, repo, ref); 94 + if (!res.ok) return; 95 + return res.data as Branches; 96 + }, 97 + ); 98 + 99 + const [tags] = createResource( 100 + () => { 101 + const d = did(); 102 + return d && ([d, params.repo, params.ref, params.path] as const); 103 + }, 104 + async ([d, repo, ref, path]) => { 105 + if (path) return; 106 + const res = await getRepoTags(d, repo, ref); 107 + if (!res.ok) return; 108 + return res.data as Tags; 87 109 }, 88 110 ); 89 111 ··· 104 126 if (!files) return; 105 127 106 128 return files.sort((a, b) => { 107 - if (a.is_file !== b.is_file) return a.is_file ? 1 : -1; 129 + if (a.mode.startsWith("01") !== b.mode.startsWith("01")) 130 + return a.mode.startsWith("01") ? 1 : -1; 108 131 109 132 const aDot = a.name.startsWith("."); 110 133 const bDot = b.name.startsWith("."); ··· 114 137 }); 115 138 }); 116 139 140 + const isANonDefaultBranchSelected = createMemo(() => { 141 + if (!branches()) return; 142 + return ( 143 + defaultBranch() !== ref() && 144 + Boolean( 145 + branches()!.branches.find((branch) => branch.reference.name === ref()), 146 + ) 147 + ); 148 + }); 149 + 150 + const ref = createMemo(() => params.ref || defaultBranch()); 151 + 117 152 return ( 118 153 <div class="mx-auto max-w-5xl"> 119 154 <div> 120 155 <Header user={params.user} repo={params.repo} /> 121 156 <div class="mb-4 flex flex-col rounded bg-white dark:bg-gray-800"> 122 - <Show when={languages()} fallback={<div class="h-4" />}> 123 - <LanguageLine languages={languages()!} /> 124 - </Show> 125 - 126 - <div class="flex flex-row"> 127 - <div class="mr-1 flex w-1/2 flex-col border-gray-300 border-r p-2 pt-1 dark:border-gray-700"> 128 - <Show when={defaultBranch() && tree() && sortedFiles()}> 129 - <FileDirectory 130 - user={params.user} 131 - repo={params.repo} 132 - files={sortedFiles()!} 133 - tree={tree()!} 134 - defaultBranch={defaultBranch()!} 135 - /> 157 + <Switch> 158 + <Match when={!params.path}> 159 + <Show when={languages()} fallback={<div class="h-4" />}> 160 + <LanguageLine languages={languages()!} /> 136 161 </Show> 137 - </div> 138 - <div class="ml-1 flex w-1/2 flex-col p-2 pt-1"> 139 - <Show when={defaultBranch() && sortedFiles() && logs()}> 140 - <LogData 162 + <div class="flex flex-row px-4 py-2"> 163 + <Show when={branches() && tags() && ref() && defaultBranch()}> 164 + <select 165 + class="w-40 border border-gray-200 p-1 dark:border-gray-700" 166 + onInput={(e) => 167 + navigate( 168 + `/${params.user}/${params.repo}/tree/${e.target.value}`, 169 + ) 170 + } 171 + > 172 + <Show when={branches()?.branches}> 173 + <optgroup 174 + label={`branches (${branches()?.branches.length})`} 175 + > 176 + <Show when={isANonDefaultBranchSelected()}> 177 + <option selected>{ref()}</option> 178 + </Show> 179 + <option selected={ref() === defaultBranch()}> 180 + {defaultBranch()} 181 + </option> 182 + <For each={branches()!.branches}> 183 + {(branch) => 184 + branch.reference.name !== ref() && 185 + branch.reference.name !== defaultBranch() && ( 186 + <option>{branch.reference.name}</option> 187 + ) 188 + } 189 + </For> 190 + </optgroup> 191 + </Show> 192 + <Show when={tags()?.tags}> 193 + <optgroup label={`tags (${tags()?.tags.length})`}> 194 + <For each={tags()!.tags}> 195 + {(tag) => ( 196 + <option selected={tag.name === ref()}> 197 + {tag.name} 198 + </option> 199 + )} 200 + </For> 201 + </optgroup> 202 + </Show> 203 + </select> 204 + </Show> 205 + </div> 206 + <div class="flex flex-row py-2"> 207 + <div class="mr-1 flex w-1/2 flex-col border-gray-300 border-r pr-2 pl-4 dark:border-gray-700"> 208 + <Show when={defaultBranch() && tree() && sortedFiles()}> 209 + <FileDirectory 210 + user={params.user} 211 + repo={params.repo} 212 + files={sortedFiles()!} 213 + tree={tree()!} 214 + defaultBranch={defaultBranch()!} 215 + /> 216 + </Show> 217 + </div> 218 + <div class="ml-1 flex w-1/2 flex-col pr-4 pl-2"> 219 + <Show when={defaultBranch() && sortedFiles() && logs()}> 220 + <LogData 221 + user={params.user} 222 + repo={params.repo} 223 + defaultBranch={defaultBranch()!} 224 + files={sortedFiles()!} 225 + logs={logs()!} 226 + /> 227 + </Show> 228 + </div> 229 + </div> 230 + </Match> 231 + <Match when={params.path && ref()}> 232 + <div class="mx-4 flex flex-row overflow-x-auto border-gray-300 border-b pt-3 pb-2 dark:border-gray-700"> 233 + <PathBar 141 234 user={params.user} 142 235 repo={params.repo} 143 - defaultBranch={defaultBranch()!} 144 - files={sortedFiles()!} 145 - logs={logs()!} 236 + gitref={ref()!} 237 + path={params.path} 238 + is_file={false} 146 239 /> 147 - </Show> 148 - </div> 149 - </div> 240 + </div> 241 + <div class="flex flex-row px-4 py-2"> 242 + <Show when={defaultBranch() && tree() && sortedFiles()}> 243 + <FileDirectory 244 + user={params.user} 245 + repo={params.repo} 246 + files={sortedFiles()!} 247 + tree={tree()!} 248 + defaultBranch={defaultBranch()!} 249 + /> 250 + </Show> 251 + </div> 252 + </Match> 253 + </Switch> 150 254 </div> 151 255 <Show when={readme()?.contents}> 152 256 <ReadmeCard ··· 167 271 }; 168 272 }) { 169 273 return ( 170 - <div class="mb-4 rounded bg-white p-4 dark:bg-gray-800"> 274 + <div class="rounded bg-white p-4 dark:bg-gray-800"> 171 275 <Switch> 172 276 <Match when={props.readme.type === "markdown"}> 173 277 <SolidMarkdown ··· 240 344 defaultBranch: string; 241 345 }) { 242 346 return ( 243 - <div class="flex w-full flex-col"> 244 - <Show when={props.tree.parent}> 245 - <a 246 - href={`/${props.user}/${props.repo}/tree/${props.tree.ref}/${props.tree.dotdot ? `/${props.tree.dotdot}` : ""}`} 247 - class="flex flex-row items-center gap-1 p-1 hover:underline" 248 - > 249 - <div class="iconify gravity-ui--folder-open-fill" /> 250 - <span>..</span> 251 - </a> 252 - </Show> 253 - 347 + <div class="@container flex w-full flex-col"> 254 348 <For each={props.files}> 255 - {(file) => ( 256 - <a 257 - href={`/${props.user}/${props.repo}/${file.is_file ? "blob" : "tree"}/${props.tree.ref || props.defaultBranch}/${props.tree.parent ? `${props.tree.parent}/` : ""}${file.name}`} 258 - class="flex flex-row items-center gap-1 p-1 hover:underline" 259 - > 260 - <div 261 - class={`iconify ${file.is_file ? "gravity-ui--file" : "gravity-ui--folder-fill"}`} 262 - /> 263 - <span>{file.name}</span> 264 - </a> 265 - )} 349 + {(file) => { 350 + const is_file = file.mode.startsWith("01"); 351 + const last_commit_date = 352 + file.last_commit && new Date(file.last_commit.when); 353 + return ( 354 + <div class="flex flex-row justify-between"> 355 + <a 356 + href={`/${props.user}/${props.repo}/${is_file ? "blob" : "tree"}/${props.tree.ref || props.defaultBranch}/${props.tree.parent ? `${props.tree.parent}/` : ""}${file.name}`} 357 + class="flex min-w-1/3 flex-row items-center gap-1.5 truncate p-1 hover:underline" 358 + > 359 + <div 360 + class={`iconify ${is_file ? "gravity-ui--file" : "gravity-ui--folder-fill"}`} 361 + /> 362 + <span>{file.name}</span> 363 + </a> 364 + <Show when={last_commit_date}> 365 + <a 366 + href={`/${props.user}/${props.repo}/commit/${file.last_commit!.hash}`} 367 + class="mr-2 @max-xl:hidden min-w-0 flex-1 grow truncate text-ellipsis text-left text-gray-500 hover:text-gray-700 hover:underline dark:text-gray-500 hover:dark:text-gray-200" 368 + > 369 + {file.last_commit!.message} 370 + </a> 371 + <a 372 + href={`/${props.user}/${props.repo}/commit/${file.last_commit!.hash}`} 373 + title={last_commit_date!.toLocaleString(undefined, { 374 + dateStyle: "full", 375 + timeStyle: "short", 376 + })} 377 + class="shrink-0 whitespace-nowrap text-gray-500 text-xs hover:text-gray-700 hover:underline dark:text-gray-500 hover:dark:text-gray-200" 378 + > 379 + {toRelativeTime(last_commit_date!)} 380 + </a> 381 + </Show> 382 + </div> 383 + ); 384 + }} 266 385 </For> 267 386 </div> 268 387 ); ··· 300 419 const hash = commit.Hash.map((num) => 301 420 num.toString(16).padStart(2, "0"), 302 421 ).join(""); 422 + const date = new Date(commit.Author.When); 423 + 303 424 return ( 304 425 <div class="flex flex-col gap-1"> 305 426 <a ··· 315 436 <span class="select-none px-1 before:content-['\00B7']" /> 316 437 <span>{commit.Author.Name}</span> 317 438 <span class="select-none px-1 before:content-['\00B7']" /> 318 - <span>{`${new Date(commit.Author.When).toLocaleDateString(undefined, { dateStyle: "short" })} at ${new Date(commit.Author.When).toLocaleTimeString()}`}</span> 439 + <span 440 + title={date.toLocaleString(undefined, { 441 + dateStyle: "full", 442 + timeStyle: "short", 443 + })} 444 + >{`${toRelativeTime(date)}`}</span> 319 445 </span> 320 446 </div> 321 447 );
+8 -11
src/styles/index.css
··· 1 1 @import "tailwindcss"; 2 - @import "../../static/fonts/inter/inter"; 3 - @import "../../static/fonts/ibm-plex-mono/ibm-plex-mono"; 2 + @import "../../static/fonts/inter/inter.css"; 3 + @import "../../static/fonts/ibm-plex-mono/ibm-plex-mono.css"; 4 4 5 5 @plugin "@iconify/tailwind4" { 6 6 /* biome-ignore lint/correctness/noUnknownProperty: this works dude idk how to set it properly */ ··· 9 9 10 10 :root { 11 11 --font-sans: "InterVariable", ui-sans-serif, sans-serif; 12 - --mono-font: "IBM Plex Mono", ui-monospace, monospace; 12 + --font-mono: "IBM Plex Mono", ui-monospace, monospace; 13 13 } 14 14 15 15 @supports (font-variation-settings: normal) { ··· 22 22 } 23 23 } 24 24 25 - @layer components { 26 - /* https://tangled.org/@tangled.org/core/blob/master/input.css */ 27 - .btn { 28 - @apply relative z-10 inline-flex min-h-[30px] cursor-pointer items-center justify-center bg-transparent px-2 pb-[0.2rem] text-sm text-gray-900 before:absolute before:inset-0 before:-z-10 before:block before:rounded before:border before:border-gray-200 before:bg-white before:shadow-[inset_0_-2px_0_0_rgba(0,0,0,0.1),0_1px_0_0_rgba(0,0,0,0.04)] before:content-[''] before:transition-all before:duration-150 before:ease-in-out hover:before:shadow-[inset_0_-2px_0_0_rgba(0,0,0,0.15),0_2px_1px_0_rgba(0,0,0,0.06)] hover:before:bg-gray-50 dark:hover:before:bg-gray-700 active:before:shadow-[inset_0_2px_2px_0_rgba(0,0,0,0.1)] focus:outline-none focus-visible:before:outline-2 focus-visible:before:outline-gray-400 disabled:cursor-not-allowed disabled:opacity-50 dark:text-gray-100 dark:before:bg-gray-800 dark:before:border-gray-700; 29 - } 25 + @utility btn { 26 + @apply relative z-10 inline-flex min-h-[30px] cursor-pointer items-center justify-center bg-transparent px-2 pb-[0.2rem] text-sm text-gray-900 before:absolute before:inset-0 before:-z-10 before:block before:rounded before:border before:border-gray-200 before:bg-white before:shadow-[inset_0_-2px_0_0_rgba(0,0,0,0.1),0_1px_0_0_rgba(0,0,0,0.04)] before:content-[''] before:transition-all before:duration-150 before:ease-in-out hover:before:shadow-[inset_0_-2px_0_0_rgba(0,0,0,0.15),0_2px_1px_0_rgba(0,0,0,0.06)] hover:before:bg-gray-50 dark:hover:before:bg-gray-700 active:before:shadow-[inset_0_2px_2px_0_rgba(0,0,0,0.1)] focus:outline-none focus-visible:before:outline-2 focus-visible:before:outline-gray-400 disabled:cursor-not-allowed disabled:opacity-50 dark:text-gray-100 dark:before:bg-gray-800 dark:before:border-gray-700; 27 + } 30 28 31 - .btn-create { 32 - @apply btn text-white before:bg-green-600 hover:before:bg-green-700 dark:before:bg-green-700 dark:hover:before:bg-green-800 before:border before:border-green-700 hover:before:border-green-800 focus-visible:before:outline-green-500 disabled:before:bg-green-400 dark:disabled:before:bg-green-600; 33 - } 29 + @utility btn-create { 30 + @apply btn text-white before:bg-green-600 hover:before:bg-green-700 dark:before:bg-green-700 dark:hover:before:bg-green-800 before:border before:border-green-700 hover:before:border-green-800 focus-visible:before:outline-green-500 disabled:before:bg-green-400 dark:disabled:before:bg-green-600; 34 31 }
+25 -3
src/util/get_repo.ts
··· 48 48 "user_repos", 49 49 ); 50 50 51 - export const getUserRepo = async ( 51 + export const getUserRepoByRkey = query( 52 + async (did: DID, rkey: string): Promise<ShTangledRepo.Main | undefined> => { 53 + const pds = await getUserPDS(did); 54 + if (!pds) return; 55 + const handler = simpleFetchHandler({ service: pds }); 56 + const rpc = new Client({ handler }); 57 + 58 + const { ok, data } = await rpc.get("com.atproto.repo.getRecord", { 59 + params: { 60 + repo: did, 61 + collection: "sh.tangled.repo", 62 + rkey, 63 + }, 64 + }); 65 + 66 + if (!ok) return; 67 + 68 + return data.value as ShTangledRepo.Main; 69 + }, 70 + "user_repos", 71 + ); 72 + 73 + export async function getUserRepo( 52 74 did: DID, 53 75 repo: string, 54 - ): Promise<ShTangledRepo.Main & { rkey: string }> => { 76 + ): Promise<ShTangledRepo.Main & { rkey: string }> { 55 77 const repos = await getUserRepos(did); 56 78 return repos[repo]; 57 - }; 79 + } 58 80 59 81 export const getRepoKnot = async (did: DID, repo: string) => { 60 82 const repos = await getUserRepos(did);
+42 -14
src/util/handle.ts
··· 1 1 import { 2 + CompositeDidDocumentResolver, 2 3 CompositeHandleResolver, 3 4 DohJsonHandleResolver, 5 + PlcDidDocumentResolver, 6 + WebDidDocumentResolver, 4 7 WellKnownHandleResolver, 5 8 } from "@atcute/identity-resolver"; 6 9 import { query } from "@solidjs/router"; ··· 21 24 }, 22 25 }); 23 26 24 - export const figureOutDid = query(async (user: string): Promise<DID> => { 25 - const isDid = user.startsWith("did:"); 26 - if (!isDid && user.includes(".")) { 27 - let did = didMap.get(user); 28 - if (!did && useSlingshot) { 29 - const res = await fetch( 30 - `${slingshotUrl}/xrpc/com.atproto.identity.resolveHandle?handle=${user}`, 31 - ); 32 - if (res.ok) { 33 - const json = await res.json(); 34 - if ("did" in json && typeof json.did === "string") did = json.did; 27 + const docResolver = new CompositeDidDocumentResolver({ 28 + methods: { 29 + plc: new PlcDidDocumentResolver(), 30 + web: new WebDidDocumentResolver(), 31 + }, 32 + }); 33 + 34 + export const figureOutDid = query(async (handle: string): Promise<DID> => { 35 + const isDid = handle.startsWith("did:"); 36 + if (!isDid && handle.includes(".")) { 37 + let did = didMap.get(handle); 38 + // if (!did && useSlingshot) { 39 + // const res = await fetch( 40 + // `${slingshotUrl}/xrpc/com.atproto.identity.resolveHandle?handle=${handle}`, 41 + // ); 42 + // if (res.ok) { 43 + // const json = await res.json(); 44 + // if ("did" in json && typeof json.did === "string") did = json.did; 45 + // } 46 + // } 47 + if (!did) { 48 + try { 49 + did = await handleResolver.resolve(handle as `${string}.${string}`); 50 + } catch { 51 + did = "did:plc:fail"; 35 52 } 36 53 } 37 - if (!did) did = await handleResolver.resolve(user as `${string}.${string}`); 38 - didMap.set(user, did); 54 + didMap.set(handle, did); 39 55 return did; 40 56 } 41 - return user as DID; 57 + return handle as DID; 58 + }, "did"); 59 + 60 + export const figureOutHandle = query(async (did: DID): Promise<string> => { 61 + try { 62 + const doc = await docResolver.resolve(did); 63 + if (doc.alsoKnownAs?.[0]) { 64 + const handle = doc.alsoKnownAs[0].replace("at://", ""); 65 + didMap.set(handle, did); 66 + return handle; 67 + } 68 + } catch {} 69 + return did; 42 70 }, "handles");
+33
src/util/time.ts
··· 1 + // this was gemini 2 + export function toRelativeTime(date: Date) { 3 + const now = Date.now(); 4 + const diffInSeconds = Math.floor((now - date.getTime()) / 1000); 5 + 6 + // Use Math.abs to handle future dates (optional, but good practice) 7 + const seconds = Math.abs(diffInSeconds); 8 + 9 + // Define units in descending order. 10 + // We added 'week' to match your screenshot style. 11 + const units = [ 12 + { label: "year", seconds: 31536000 }, 13 + { label: "month", seconds: 2592000 }, // ~30 days 14 + { label: "week", seconds: 604800 }, // 7 days 15 + { label: "day", seconds: 86400 }, 16 + { label: "hour", seconds: 3600 }, 17 + { label: "minute", seconds: 60 }, 18 + { label: "second", seconds: 1 }, 19 + ]; 20 + 21 + for (const { label, seconds: unitSeconds } of units) { 22 + // We use floor because 13 days is generally considered "1 week ago", not "2 weeks ago" 23 + const interval = Math.floor(seconds / unitSeconds); 24 + 25 + if (interval >= 1) { 26 + const suffix = interval === 1 ? "" : "s"; 27 + const action = diffInSeconds < 0 ? "from now" : "ago"; 28 + return `${interval} ${label}${suffix} ${action}`; 29 + } 30 + } 31 + 32 + return "just now"; 33 + }
+51
src/util/types.ts
··· 57 57 }[]; 58 58 }; 59 59 }; 60 + 61 + export type Branches = { 62 + branches: { 63 + reference: { 64 + name: string; 65 + hash: string; 66 + }; 67 + commit: { 68 + Hash: number[]; 69 + Author: { 70 + Name: string; 71 + Email: string; 72 + When: string; 73 + }; 74 + Committer: { 75 + Name: string; 76 + Email: string; 77 + When: string; 78 + }; 79 + MergeTag: string; 80 + PGPSignature: string; 81 + Message: string; 82 + TreeHash: number[]; 83 + ParentHashes: number[][]; 84 + Encoding: string; 85 + ExtraHeaders: null; 86 + }; 87 + is_default: boolean; 88 + }[]; 89 + }; 90 + 91 + export type Tags = { 92 + tags: { 93 + name: string; 94 + hash: string; 95 + tag: { 96 + Hash: number[]; 97 + Name: string; 98 + Tagger: { 99 + Name: string; 100 + Email: string; 101 + When: string; 102 + }; 103 + Message: string; 104 + PGPSignature: string; 105 + TargetType: number; 106 + Target: number[]; 107 + }; 108 + message: string; 109 + }[]; 110 + };
+16 -35
static/fonts/ibm-plex-mono/ibm-plex-mono.css
··· 5 5 src: 6 6 local("IBM Plex Mono Bold"), 7 7 local("IBMPlexMono-Bold"), 8 - url("../fonts/complete/woff2/IBMPlexMono-Bold.woff2") format("woff2"), 9 - url("../fonts/complete/woff/IBMPlexMono-Bold.woff") format("woff"); 8 + url("./IBMPlexMono-Bold.woff2") format("woff2"); 10 9 } 11 10 @font-face { 12 11 font-family: "IBM Plex Mono"; ··· 15 14 src: 16 15 local("IBM Plex Mono Bold Italic"), 17 16 local("IBMPlexMono-BoldItalic"), 18 - url("../fonts/complete/woff2/IBMPlexMono-BoldItalic.woff2") format("woff2"), 19 - url("../fonts/complete/woff/IBMPlexMono-BoldItalic.woff") format("woff"); 17 + url("./IBMPlexMono-BoldItalic.woff2") format("woff2"); 20 18 } 21 19 @font-face { 22 20 font-family: "IBM Plex Mono"; ··· 25 23 src: 26 24 local("IBM Plex Mono ExtraLight"), 27 25 local("IBMPlexMono-ExtraLight"), 28 - url("../fonts/complete/woff2/IBMPlexMono-ExtraLight.woff2") format("woff2"), 29 - url("../fonts/complete/woff/IBMPlexMono-ExtraLight.woff") format("woff"); 26 + url("./IBMPlexMono-ExtraLight.woff2") format("woff2"); 30 27 } 31 28 @font-face { 32 29 font-family: "IBM Plex Mono"; ··· 35 32 src: 36 33 local("IBM Plex Mono ExtraLight Italic"), 37 34 local("IBMPlexMono-ExtraLightItalic"), 38 - url("../fonts/complete/woff2/IBMPlexMono-ExtraLightItalic.woff2") 39 - format("woff2"), 40 - url("../fonts/complete/woff/IBMPlexMono-ExtraLightItalic.woff") 41 - format("woff"); 35 + url("./IBMPlexMono-ExtraLightItalic.woff2") format("woff2"); 42 36 } 43 37 @font-face { 44 38 font-family: "IBM Plex Mono"; ··· 47 41 src: 48 42 local("IBM Plex Mono Italic"), 49 43 local("IBMPlexMono-Italic"), 50 - url("../fonts/complete/woff2/IBMPlexMono-Italic.woff2") format("woff2"), 51 - url("../fonts/complete/woff/IBMPlexMono-Italic.woff") format("woff"); 44 + url("./IBMPlexMono-Italic.woff2") format("woff2"); 52 45 } 53 46 @font-face { 54 47 font-family: "IBM Plex Mono"; ··· 57 50 src: 58 51 local("IBM Plex Mono Light"), 59 52 local("IBMPlexMono-Light"), 60 - url("../fonts/complete/woff2/IBMPlexMono-Light.woff2") format("woff2"), 61 - url("../fonts/complete/woff/IBMPlexMono-Light.woff") format("woff"); 53 + url("./IBMPlexMono-Light.woff2") format("woff2"); 62 54 } 63 55 @font-face { 64 56 font-family: "IBM Plex Mono"; ··· 67 59 src: 68 60 local("IBM Plex Mono Light Italic"), 69 61 local("IBMPlexMono-LightItalic"), 70 - url("../fonts/complete/woff2/IBMPlexMono-LightItalic.woff2") format("woff2"),; 62 + url("./IBMPlexMono-LightItalic.woff2") format("woff2"); 71 63 } 72 64 @font-face { 73 65 font-family: "IBM Plex Mono"; ··· 76 68 src: 77 69 local("IBM Plex Mono Medium"), 78 70 local("IBMPlexMono-Medium"), 79 - url("../fonts/complete/woff2/IBMPlexMono-Medium.woff2") format("woff2"), 80 - url("../fonts/complete/woff/IBMPlexMono-Medium.woff") format("woff"); 71 + url("./IBMPlexMono-Medium.woff2") format("woff2"); 81 72 } 82 73 @font-face { 83 74 font-family: "IBM Plex Mono"; ··· 86 77 src: 87 78 local("IBM Plex Mono Medium Italic"), 88 79 local("IBMPlexMono-MediumItalic"), 89 - url("../fonts/complete/woff2/IBMPlexMono-MediumItalic.woff2") 90 - format("woff2"), 91 - url("../fonts/complete/woff/IBMPlexMono-MediumItalic.woff") format("woff"); 80 + url("./IBMPlexMono-MediumItalic.woff2") format("woff2"); 92 81 } 93 82 @font-face { 94 83 font-family: "IBM Plex Mono"; ··· 97 86 src: 98 87 local("IBM Plex Mono"), 99 88 local("IBMPlexMono"), 100 - url("../fonts/complete/woff2/IBMPlexMono-Regular.woff2") format("woff2"), 101 - url("../fonts/complete/woff/IBMPlexMono-Regular.woff") format("woff"); 89 + url("./IBMPlexMono-Regular.woff2") format("woff2"); 102 90 } 103 91 @font-face { 104 92 font-family: "IBM Plex Mono"; ··· 107 95 src: 108 96 local("IBM Plex Mono SemiBold"), 109 97 local("IBMPlexMono-SemiBold"), 110 - url("../fonts/complete/woff2/IBMPlexMono-SemiBold.woff2") format("woff2"), 111 - url("../fonts/complete/woff/IBMPlexMono-SemiBold.woff") format("woff"); 98 + url("./IBMPlexMono-SemiBold.woff2") format("woff2"); 112 99 } 113 100 @font-face { 114 101 font-family: "IBM Plex Mono"; ··· 117 104 src: 118 105 local("IBM Plex Mono SemiBold Italic"), 119 106 local("IBMPlexMono-SemiBoldItalic"), 120 - url("../fonts/complete/woff2/IBMPlexMono-SemiBoldItalic.woff2") 121 - format("woff2"), 122 - url("../fonts/complete/woff/IBMPlexMono-SemiBoldItalic.woff") format("woff"); 107 + url("./IBMPlexMono-SemiBoldItalic.woff2") format("woff2"); 123 108 } 124 109 @font-face { 125 110 font-family: "IBM Plex Mono"; ··· 128 113 src: 129 114 local("IBM Plex Mono Text"), 130 115 local("IBMPlexMono-Text"), 131 - url("../fonts/complete/woff2/IBMPlexMono-Text.woff2") format("woff2"), 132 - url("../fonts/complete/woff/IBMPlexMono-Text.woff") format("woff"); 116 + url("./IBMPlexMono-Text.woff2") format("woff2"); 133 117 } 134 118 @font-face { 135 119 font-family: "IBM Plex Mono"; ··· 138 122 src: 139 123 local("IBM Plex Mono Text Italic"), 140 124 local("IBMPlexMono-TextItalic"), 141 - url("../fonts/complete/woff2/IBMPlexMono-TextItalic.woff2") format("woff2"), 142 - url("../fonts/complete/woff/IBMPlexMono-TextItalic.woff") format("woff"); 125 + url("./IBMPlexMono-TextItalic.woff2") format("woff2"); 143 126 } 144 127 @font-face { 145 128 font-family: "IBM Plex Mono"; ··· 148 131 src: 149 132 local("IBM Plex Mono Thin"), 150 133 local("IBMPlexMono-Thin"), 151 - url("../fonts/complete/woff2/IBMPlexMono-Thin.woff2") format("woff2"), 152 - url("../fonts/complete/woff/IBMPlexMono-Thin.woff") format("woff"); 134 + url("./IBMPlexMono-Thin.woff2") format("woff2"); 153 135 } 154 136 @font-face { 155 137 font-family: "IBM Plex Mono"; ··· 158 140 src: 159 141 local("IBM Plex Mono Thin Italic"), 160 142 local("IBMPlexMono-ThinItalic"), 161 - url("../fonts/complete/woff2/IBMPlexMono-ThinItalic.woff2") format("woff2"), 162 - url("../fonts/complete/woff/IBMPlexMono-ThinItalic.woff") format("woff"); 143 + url("./IBMPlexMono-ThinItalic.woff2") format("woff2"); 163 144 }
+7 -1
tsconfig.json
··· 15 15 16 16 // Type Checking & Safety 17 17 "strict": true, 18 - "types": ["vite/client", "solid-js", "@atcute/tangled", "@atcute/atproto"] 18 + "types": [ 19 + "vite/client", 20 + "solid-js", 21 + "@atcute/tangled", 22 + "@atcute/atproto", 23 + "@atcute/microcosm" 24 + ] 19 25 } 20 26 }
+1 -1
vite.config.ts
··· 6 6 export default defineConfig({ 7 7 plugins: [devtools(), solidPlugin(), tailwindcss()], 8 8 server: { 9 - port: 3000, 9 + port: 3067, 10 10 }, 11 11 build: { 12 12 target: "esnext",