extremely wip tangled spa

first commit (not really)

a bit more

skibidi

skibidi

im stupid

dumbass

dumbass

removes some of the heaviest languages from highlight.js

dumbass

code splitting for highlight js

commit

slickness

skibii

not going to do that

scroll

awesomers

skibivi

aylac.top 648f1941

+1
.envrc
··· 1 + use flake
+28
.gitignore
··· 1 + dist 2 + .wrangler 3 + .output 4 + .vercel 5 + .netlify 6 + .vinxi 7 + app.config.timestamp_*.js 8 + 9 + # Environment 10 + .env 11 + .env*.local 12 + 13 + # dependencies 14 + /node_modules 15 + 16 + # IDEs and editors 17 + /.idea 18 + .project 19 + .classpath 20 + *.launch 21 + .settings/ 22 + 23 + # Temp 24 + gitignore 25 + 26 + # System Files 27 + .DS_Store 28 + Thumbs.db
+7
.zed/settings.json
··· 1 + { 2 + "lsp": { 3 + "biome": { 4 + "binary": { "path": "bunx", "arguments": ["@biomejs/biome", "lsp-proxy"] } 5 + } 6 + } 7 + }
+7
LICENSE
··· 1 + Copyright (c) 2025 aylac.top 2 + 3 + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 + 5 + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 + 7 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+43
README.md
··· 1 + ## Usage 2 + 3 + Those templates dependencies are maintained via [pnpm](https://pnpm.io) via `pnpm up -Lri`. 4 + 5 + This is the reason you see a `pnpm-lock.yaml`. That being said, any package manager will work. This file can be safely be removed once you clone a template. 6 + 7 + ```bash 8 + $ npm install # or pnpm install or yarn install 9 + ``` 10 + 11 + ## Exploring the template 12 + 13 + This template's goal is to showcase the routing features of Solid. 14 + It also showcase how the router and Suspense work together to parallelize data fetching tied to a route via the `.data.ts` pattern. 15 + 16 + You can learn more about it on the [`@solidjs/router` repository](https://github.com/solidjs/solid-router) 17 + 18 + ### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs) 19 + 20 + ## Available Scripts 21 + 22 + In the project directory, you can run: 23 + 24 + ### `npm run dev` or `npm start` 25 + 26 + Runs the app in the development mode.<br> 27 + Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 28 + 29 + The page will reload if you make edits.<br> 30 + 31 + ### `npm run build` 32 + 33 + Builds the app for production to the `dist` folder.<br> 34 + It correctly bundles Solid in production mode and optimizes the build for the best performance. 35 + 36 + The build is minified and the filenames include the hashes.<br> 37 + Your app is ready to be deployed! 38 + 39 + ## Deployment 40 + 41 + You can deploy the `dist` folder to any static host provider (netlify, surge, now, etc.) 42 + 43 + ## This project was created with the [Solid CLI](https://github.com/solidjs-community/solid-cli)
+48
biome.json
··· 1 + { 2 + "$schema": "https://biomejs.dev/schemas/2.3.4/schema.json", 3 + "vcs": { 4 + "enabled": true, 5 + "clientKind": "git", 6 + "useIgnoreFile": true 7 + }, 8 + "files": { 9 + "ignoreUnknown": false 10 + }, 11 + "formatter": { 12 + "enabled": true, 13 + "indentStyle": "tab" 14 + }, 15 + "linter": { 16 + "enabled": true, 17 + "rules": { 18 + "recommended": true, 19 + "nursery": { "useSortedClasses": "warn" } 20 + }, 21 + "domains": { 22 + "solid": "recommended" 23 + } 24 + }, 25 + "javascript": { 26 + "formatter": { 27 + "quoteStyle": "double" 28 + } 29 + }, 30 + "css": { 31 + "parser": { 32 + "tailwindDirectives": true 33 + } 34 + }, 35 + "html": { 36 + "formatter": { 37 + "enabled": true 38 + } 39 + }, 40 + "assist": { 41 + "enabled": true, 42 + "actions": { 43 + "source": { 44 + "organizeImports": "on" 45 + } 46 + } 47 + } 48 + }
+812
bun.lock
··· 1 + { 2 + "lockfileVersion": 1, 3 + "workspaces": { 4 + "": { 5 + "name": "vite-template-solid", 6 + "dependencies": { 7 + "@atcute/atproto": "^3.1.9", 8 + "@atcute/client": "^4.0.5", 9 + "@atcute/identity-resolver": "^1.1.4", 10 + "@atcute/oauth-browser-client": "^2.0.1", 11 + "@atcute/tangled": "^1.0.10", 12 + "@gleam-lang/highlight.js-gleam": "^1.5.0", 13 + "@solidjs/router": "^0.15.3", 14 + "@tailwindcss/vite": "^4.1.17", 15 + "@types/highlight.js": "^10.1.0", 16 + "highlight.js": "^11.11.1", 17 + "highlightjs-line-numbers.js": "^2.9.1", 18 + "solid-js": "^1.9.10", 19 + "solid-markdown": "^2.0.14", 20 + }, 21 + "devDependencies": { 22 + "@biomejs/biome": "^2.3.4", 23 + "@iconify-json/gravity-ui": "^1.2.10", 24 + "@iconify/tailwind4": "^1.1.0", 25 + "postcss": "^8.5.6", 26 + "solid-devtools": "^0.34.4", 27 + "tailwindcss": "^4.1.17", 28 + "vite": "^7.2.2", 29 + "vite-plugin-solid": "^2.11.10", 30 + }, 31 + }, 32 + }, 33 + "patchedDependencies": { 34 + "@gleam-lang/highlight.js-gleam@1.5.0": "patches/@gleam-lang%2Fhighlight.js-gleam@1.5.0.patch", 35 + "highlight.js@11.11.1": "patches/highlight.js@11.11.1.patch", 36 + }, 37 + "packages": { 38 + "@antfu/install-pkg": ["@antfu/install-pkg@1.1.0", "", { "dependencies": { "package-manager-detector": "^1.3.0", "tinyexec": "^1.0.1" } }, "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ=="], 39 + 40 + "@antfu/utils": ["@antfu/utils@8.1.1", "", {}, "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ=="], 41 + 42 + "@atcute/atproto": ["@atcute/atproto@3.1.9", "", { "dependencies": { "@atcute/lexicons": "^1.2.2" } }, "sha512-DyWwHCTdR4hY2BPNbLXgVmm7lI+fceOwWbE4LXbGvbvVtSn+ejSVFaAv01Ra3kWDha0whsOmbJL8JP0QPpf1+w=="], 43 + 44 + "@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 + 46 + "@atcute/identity": ["@atcute/identity@1.1.1", "", { "dependencies": { "@atcute/lexicons": "^1.2.2", "@badrap/valita": "^0.4.6" } }, "sha512-zax42n693VEhnC+5tndvO2KLDTMkHOz8UExwmklvJv7R9VujfEwiSWhcv6Jgwb3ellaG8wjiQ1lMOIjLLvwh0Q=="], 47 + 48 + "@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 + 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=="], 51 + 52 + "@atcute/multibase": ["@atcute/multibase@1.1.6", "", { "dependencies": { "@atcute/uint8array": "^1.0.5" } }, "sha512-HBxuCgYLKPPxETV0Rot4VP9e24vKl8JdzGCZOVsDaOXJgbRZoRIF67Lp0H/OgnJeH/Xpva8Z5ReoTNJE5dn3kg=="], 53 + 54 + "@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 + 56 + "@atcute/tangled": ["@atcute/tangled@1.0.10", "", { "dependencies": { "@atcute/atproto": "^3.1.8", "@atcute/lexicons": "^1.2.2" } }, "sha512-DGconZIN5TpLBah+aHGbWI1tMsL7XzyVEbr/fW4CbcLWYKICU6SAUZ0YnZ+5GvltjlORWHUy7hfftvoh4zodIA=="], 57 + 58 + "@atcute/uint8array": ["@atcute/uint8array@1.0.5", "", {}, "sha512-XLWWxoR2HNl2qU+FCr0rp1APwJXci7HnzbOQLxK55OaMNBXZ19+xNC5ii4QCsThsDxa4JS/JTzuiQLziITWf2Q=="], 59 + 60 + "@atcute/util-fetch": ["@atcute/util-fetch@1.0.3", "", { "dependencies": { "@badrap/valita": "^0.4.6" } }, "sha512-f8zzTb/xlKIwv2OQ31DhShPUNCmIIleX6p7qIXwWwEUjX6x8skUtpdISSjnImq01LXpltGV5y8yhV4/Mlb7CRQ=="], 61 + 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=="], 63 + 64 + "@babel/compat-data": ["@babel/compat-data@7.28.4", "", {}, "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw=="], 65 + 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=="], 67 + 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=="], 69 + 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=="], 71 + 72 + "@babel/helper-globals": ["@babel/helper-globals@7.28.0", "", {}, "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw=="], 73 + 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=="], 75 + 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=="], 77 + 78 + "@babel/helper-plugin-utils": ["@babel/helper-plugin-utils@7.27.1", "", {}, "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw=="], 79 + 80 + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], 81 + 82 + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.27.1", "", {}, "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow=="], 83 + 84 + "@babel/helper-validator-option": ["@babel/helper-validator-option@7.27.1", "", {}, "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg=="], 85 + 86 + "@babel/helpers": ["@babel/helpers@7.28.4", "", { "dependencies": { "@babel/template": "7.27.2", "@babel/types": "7.28.4" } }, "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w=="], 87 + 88 + "@babel/parser": ["@babel/parser@7.28.4", "", { "dependencies": { "@babel/types": "7.28.4" }, "bin": "./bin/babel-parser.js" }, "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg=="], 89 + 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=="], 91 + 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=="], 93 + 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=="], 95 + 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=="], 97 + 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=="], 99 + 100 + "@badrap/valita": ["@badrap/valita@0.4.6", "", {}, "sha512-4kdqcjyxo/8RQ8ayjms47HCWZIF5981oE5nIenbfThKDxWXtEHKipAOWlflpPJzZx9y/JWYQkp18Awr7VuepFg=="], 101 + 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=="], 103 + 104 + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.3.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-w40GvlNzLaqmuWYiDU6Ys9FNhJiclngKqcGld3iJIiy2bpJ0Q+8n3haiaC81uTPY/NA0d8Q/I3Z9+ajc14102Q=="], 105 + 106 + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.3.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-3s7TLVtjJ7ni1xADXsS7x7GMUrLBZXg8SemXc3T0XLslzvqKj/dq1xGeBQ+pOWQzng9MaozfacIHdK2UlJ3jGA=="], 107 + 108 + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-y7efHyyM2gYmHy/AdWEip+VgTMe9973aP7XYKPzu/j8JxnPHuSUXftzmPhkVw0lfm4ECGbdBdGD6+rLmTgNZaA=="], 109 + 110 + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-IruVGQRwMURivWazchiq7gKAqZSFs5so6gi0hJyxk7x6HR+iwZbO2IxNOqyLURBvL06qkIHs7Wffl6Bw30vCbQ=="], 111 + 112 + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-gKfjWR/6/dfIxPJCw8REdEowiXCkIpl9jycpNVHux8aX2yhWPLjydOshkDL6Y/82PcQJHn95VCj7J+BRcE5o1Q=="], 113 + 114 + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-mzKFFv/w66e4/jCobFmD3kymCqG+FuWE7sVa4Yjqd9v7qt2UhXo67MSZKY9Ih18V2IwPzRKQPCw6KwdZs6AXSA=="], 115 + 116 + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.3.4", "", { "os": "win32", "cpu": "arm64" }, "sha512-5TJ6JfVez+yyupJ/iGUici2wzKf0RrSAxJhghQXtAEsc67OIpdwSKAQboemILrwKfHDi5s6mu7mX+VTCTUydkw=="], 117 + 118 + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.3.4", "", { "os": "win32", "cpu": "x64" }, "sha512-FGCijXecmC4IedQ0esdYNlMpx0Jxgf4zceCaMu6fkjWyjgn50ZQtMiqZZQ0Q/77yqPxvtkgZAvt5uGw0gAAjig=="], 119 + 120 + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.11", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg=="], 121 + 122 + "@esbuild/android-arm": ["@esbuild/android-arm@0.25.11", "", { "os": "android", "cpu": "arm" }, "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg=="], 123 + 124 + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.11", "", { "os": "android", "cpu": "arm64" }, "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ=="], 125 + 126 + "@esbuild/android-x64": ["@esbuild/android-x64@0.25.11", "", { "os": "android", "cpu": "x64" }, "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g=="], 127 + 128 + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.11", "", { "os": "darwin", "cpu": "arm64" }, "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w=="], 129 + 130 + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.11", "", { "os": "darwin", "cpu": "x64" }, "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ=="], 131 + 132 + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.11", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA=="], 133 + 134 + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.11", "", { "os": "freebsd", "cpu": "x64" }, "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw=="], 135 + 136 + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.11", "", { "os": "linux", "cpu": "arm" }, "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw=="], 137 + 138 + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.11", "", { "os": "linux", "cpu": "arm64" }, "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA=="], 139 + 140 + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.11", "", { "os": "linux", "cpu": "ia32" }, "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw=="], 141 + 142 + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw=="], 143 + 144 + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ=="], 145 + 146 + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.11", "", { "os": "linux", "cpu": "ppc64" }, "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw=="], 147 + 148 + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.11", "", { "os": "linux", "cpu": "none" }, "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww=="], 149 + 150 + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.11", "", { "os": "linux", "cpu": "s390x" }, "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw=="], 151 + 152 + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.11", "", { "os": "linux", "cpu": "x64" }, "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ=="], 153 + 154 + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg=="], 155 + 156 + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.11", "", { "os": "none", "cpu": "x64" }, "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A=="], 157 + 158 + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.11", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg=="], 159 + 160 + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.11", "", { "os": "openbsd", "cpu": "x64" }, "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw=="], 161 + 162 + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.11", "", { "os": "none", "cpu": "arm64" }, "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ=="], 163 + 164 + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.11", "", { "os": "sunos", "cpu": "x64" }, "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA=="], 165 + 166 + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.11", "", { "os": "win32", "cpu": "arm64" }, "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q=="], 167 + 168 + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.11", "", { "os": "win32", "cpu": "ia32" }, "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA=="], 169 + 170 + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.11", "", { "os": "win32", "cpu": "x64" }, "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA=="], 171 + 172 + "@gleam-lang/highlight.js-gleam": ["@gleam-lang/highlight.js-gleam@1.5.0", "", {}, "sha512-rKKpXnfmHVTPuHEogMVvN4DflzKtX6kBXqu1GsVDb0uDf/bvO8Z2VnC0XWUMuKNlxa+poKIjY6geyxTaVZiMFA=="], 173 + 174 + "@iconify-json/gravity-ui": ["@iconify-json/gravity-ui@1.2.10", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-GpLMMrVCc1XkKuNVQ0HaA37dW2fnkWED/2zcsd288QIncv1pQ8RG/Hr/mCDgGHe4Nec/1eu9OBk6yVqqQiR5Gw=="], 175 + 176 + "@iconify/tailwind4": ["@iconify/tailwind4@1.1.0", "", { "dependencies": { "@iconify/tools": "^4.1.4", "@iconify/types": "^2.0.0", "@iconify/utils": "^2.3.0" }, "peerDependencies": { "tailwindcss": ">= 4.0.0" } }, "sha512-HqgAYtYk4eFtLvdYfhQrBRT9ohToh+VJJVhHtJ7B4Qhw+J+mRPvGC9Wr6Cgtb36YbIWqBxWuBaAUw9TE/8m2/w=="], 177 + 178 + "@iconify/tools": ["@iconify/tools@4.1.4", "", { "dependencies": { "@iconify/types": "^2.0.0", "@iconify/utils": "^2.3.0", "@types/tar": "^6.1.13", "axios": "^1.12.1", "cheerio": "1.0.0", "domhandler": "^5.0.3", "extract-zip": "^2.0.1", "local-pkg": "^0.5.1", "pathe": "^1.1.2", "svgo": "^3.3.2", "tar": "^6.2.1" } }, "sha512-s6BcNUcCxQ3S6cvhlsoWzOuBt8qKXdVyXB9rT57uSJ/ARHD7dVM43+5ERBWn3tmkMWXeJ/s9DPVc3dUasayzeA=="], 179 + 180 + "@iconify/types": ["@iconify/types@2.0.0", "", {}, "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="], 181 + 182 + "@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 + 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=="], 185 + 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=="], 187 + 188 + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], 189 + 190 + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], 191 + 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=="], 193 + 194 + "@nothing-but/utils": ["@nothing-but/utils@0.17.0", "", {}, "sha512-TuCHcHLOqDL0SnaAxACfuRHBNRgNJcNn9X0GiH5H3YSDBVquCr3qEIG3FOQAuMyZCbu9w8nk2CHhOsn7IvhIwQ=="], 195 + 196 + "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.52.5", "", { "os": "android", "cpu": "arm" }, "sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ=="], 197 + 198 + "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.52.5", "", { "os": "android", "cpu": "arm64" }, "sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA=="], 199 + 200 + "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.52.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA=="], 201 + 202 + "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.52.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA=="], 203 + 204 + "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.52.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA=="], 205 + 206 + "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.52.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ=="], 207 + 208 + "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.52.5", "", { "os": "linux", "cpu": "arm" }, "sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ=="], 209 + 210 + "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.52.5", "", { "os": "linux", "cpu": "arm" }, "sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ=="], 211 + 212 + "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.52.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg=="], 213 + 214 + "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.52.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q=="], 215 + 216 + "@rollup/rollup-linux-loong64-gnu": ["@rollup/rollup-linux-loong64-gnu@4.52.5", "", { "os": "linux", "cpu": "none" }, "sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA=="], 217 + 218 + "@rollup/rollup-linux-ppc64-gnu": ["@rollup/rollup-linux-ppc64-gnu@4.52.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw=="], 219 + 220 + "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.52.5", "", { "os": "linux", "cpu": "none" }, "sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw=="], 221 + 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=="], 223 + 224 + "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.52.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ=="], 225 + 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=="], 227 + 228 + "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.52.5", "", { "os": "linux", "cpu": "x64" }, "sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg=="], 229 + 230 + "@rollup/rollup-openharmony-arm64": ["@rollup/rollup-openharmony-arm64@4.52.5", "", { "os": "none", "cpu": "arm64" }, "sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw=="], 231 + 232 + "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.52.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w=="], 233 + 234 + "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.52.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg=="], 235 + 236 + "@rollup/rollup-win32-x64-gnu": ["@rollup/rollup-win32-x64-gnu@4.52.5", "", { "os": "win32", "cpu": "x64" }, "sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ=="], 237 + 238 + "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.52.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg=="], 239 + 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=="], 241 + 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=="], 243 + 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=="], 245 + 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=="], 247 + 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=="], 249 + 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=="], 251 + 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=="], 253 + 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=="], 255 + 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=="], 257 + 258 + "@solid-primitives/scheduled": ["@solid-primitives/scheduled@1.5.2", "", { "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-/j2igE0xyNaHhj6kMfcUQn5rAVSTLbAX+CDEBm25hSNBmNiHLu2lM7Usj2kJJ5j36D67bE8wR1hBNA8hjtvsQA=="], 259 + 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=="], 261 + 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=="], 263 + 264 + "@solid-primitives/utils": ["@solid-primitives/utils@6.3.2", "", { "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-hZ/M/qr25QOCcwDPOHtGjxTD8w2mNyVAYvcfgwzBHq2RwNqHNdDNsMZYap20+ruRwW4A3Cdkczyoz0TSxLCAPQ=="], 265 + 266 + "@solidjs/router": ["@solidjs/router@0.15.3", "", { "peerDependencies": { "solid-js": "1.9.9" } }, "sha512-iEbW8UKok2Oio7o6Y4VTzLj+KFCmQPGEpm1fS3xixwFBdclFVBvaQVeibl1jys4cujfAK5Kn6+uG2uBm3lxOMw=="], 267 + 268 + "@standard-schema/spec": ["@standard-schema/spec@1.0.0", "", {}, "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA=="], 269 + 270 + "@tailwindcss/node": ["@tailwindcss/node@4.1.17", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "enhanced-resolve": "^5.18.3", "jiti": "^2.6.1", "lightningcss": "1.30.2", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.1.17" } }, "sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg=="], 271 + 272 + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.1.17", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.1.17", "@tailwindcss/oxide-darwin-arm64": "4.1.17", "@tailwindcss/oxide-darwin-x64": "4.1.17", "@tailwindcss/oxide-freebsd-x64": "4.1.17", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.17", "@tailwindcss/oxide-linux-arm64-gnu": "4.1.17", "@tailwindcss/oxide-linux-arm64-musl": "4.1.17", "@tailwindcss/oxide-linux-x64-gnu": "4.1.17", "@tailwindcss/oxide-linux-x64-musl": "4.1.17", "@tailwindcss/oxide-wasm32-wasi": "4.1.17", "@tailwindcss/oxide-win32-arm64-msvc": "4.1.17", "@tailwindcss/oxide-win32-x64-msvc": "4.1.17" } }, "sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA=="], 273 + 274 + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.1.17", "", { "os": "android", "cpu": "arm64" }, "sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ=="], 275 + 276 + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.1.17", "", { "os": "darwin", "cpu": "arm64" }, "sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg=="], 277 + 278 + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.1.17", "", { "os": "darwin", "cpu": "x64" }, "sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog=="], 279 + 280 + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.1.17", "", { "os": "freebsd", "cpu": "x64" }, "sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g=="], 281 + 282 + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17", "", { "os": "linux", "cpu": "arm" }, "sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ=="], 283 + 284 + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.1.17", "", { "os": "linux", "cpu": "arm64" }, "sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ=="], 285 + 286 + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.1.17", "", { "os": "linux", "cpu": "arm64" }, "sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg=="], 287 + 288 + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.1.17", "", { "os": "linux", "cpu": "x64" }, "sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ=="], 289 + 290 + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.1.17", "", { "os": "linux", "cpu": "x64" }, "sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ=="], 291 + 292 + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.1.17", "", { "dependencies": { "@emnapi/core": "^1.6.0", "@emnapi/runtime": "^1.6.0", "@emnapi/wasi-threads": "^1.1.0", "@napi-rs/wasm-runtime": "^1.0.7", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.4.0" }, "cpu": "none" }, "sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg=="], 293 + 294 + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.1.17", "", { "os": "win32", "cpu": "arm64" }, "sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A=="], 295 + 296 + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.17", "", { "os": "win32", "cpu": "x64" }, "sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw=="], 297 + 298 + "@tailwindcss/vite": ["@tailwindcss/vite@4.1.17", "", { "dependencies": { "@tailwindcss/node": "4.1.17", "@tailwindcss/oxide": "4.1.17", "tailwindcss": "4.1.17" }, "peerDependencies": { "vite": "^5.2.0 || ^6 || ^7" } }, "sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA=="], 299 + 300 + "@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="], 301 + 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=="], 303 + 304 + "@types/babel__generator": ["@types/babel__generator@7.27.0", "", { "dependencies": { "@babel/types": "7.28.4" } }, "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg=="], 305 + 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=="], 307 + 308 + "@types/babel__traverse": ["@types/babel__traverse@7.28.0", "", { "dependencies": { "@babel/types": "7.28.4" } }, "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q=="], 309 + 310 + "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], 311 + 312 + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], 313 + 314 + "@types/hast": ["@types/hast@3.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ=="], 315 + 316 + "@types/highlight.js": ["@types/highlight.js@10.1.0", "", { "dependencies": { "highlight.js": "*" } }, "sha512-77hF2dGBsOgnvZll1vymYiNUtqJ8cJfXPD6GG/2M0aLRc29PkvB7Au6sIDjIEFcSICBhCh2+Pyq6WSRS7LUm6A=="], 317 + 318 + "@types/mdast": ["@types/mdast@4.0.4", "", { "dependencies": { "@types/unist": "*" } }, "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA=="], 319 + 320 + "@types/ms": ["@types/ms@2.1.0", "", {}, "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA=="], 321 + 322 + "@types/node": ["@types/node@24.10.0", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A=="], 323 + 324 + "@types/tar": ["@types/tar@6.1.13", "", { "dependencies": { "@types/node": "*", "minipass": "^4.0.0" } }, "sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw=="], 325 + 326 + "@types/unist": ["@types/unist@3.0.3", "", {}, "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q=="], 327 + 328 + "@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="], 329 + 330 + "@ungap/structured-clone": ["@ungap/structured-clone@1.3.0", "", {}, "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g=="], 331 + 332 + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], 333 + 334 + "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], 335 + 336 + "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 + 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=="], 339 + 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=="], 341 + 342 + "bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="], 343 + 344 + "baseline-browser-mapping": ["baseline-browser-mapping@2.8.18", "", { "bin": { "baseline-browser-mapping": "dist/cli.js" } }, "sha512-UYmTpOBwgPScZpS4A+YbapwWuBwasxvO/2IOHArSsAhL/+ZdmATBXTex3t+l2hXwLVYK382ibr/nKoY9GKe86w=="], 345 + 346 + "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], 347 + 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=="], 349 + 350 + "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], 351 + 352 + "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 + 354 + "caniuse-lite": ["caniuse-lite@1.0.30001751", "", {}, "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw=="], 355 + 356 + "character-entities": ["character-entities@2.0.2", "", {}, "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ=="], 357 + 358 + "cheerio": ["cheerio@1.0.0", "", { "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "encoding-sniffer": "^0.2.0", "htmlparser2": "^9.1.0", "parse5": "^7.1.2", "parse5-htmlparser2-tree-adapter": "^7.0.0", "parse5-parser-stream": "^7.1.2", "undici": "^6.19.5", "whatwg-mimetype": "^4.0.0" } }, "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww=="], 359 + 360 + "cheerio-select": ["cheerio-select@2.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", "css-what": "^6.1.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.0.1" } }, "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g=="], 361 + 362 + "chownr": ["chownr@2.0.0", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="], 363 + 364 + "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], 365 + 366 + "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], 367 + 368 + "commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], 369 + 370 + "confbox": ["confbox@0.1.8", "", {}, "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w=="], 371 + 372 + "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], 373 + 374 + "css-select": ["css-select@5.2.2", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw=="], 375 + 376 + "css-tree": ["css-tree@2.3.1", "", { "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" } }, "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw=="], 377 + 378 + "css-what": ["css-what@6.2.2", "", {}, "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA=="], 379 + 380 + "csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="], 381 + 382 + "csstype": ["csstype@3.1.3", "", {}, "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="], 383 + 384 + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], 385 + 386 + "decode-named-character-reference": ["decode-named-character-reference@1.2.0", "", { "dependencies": { "character-entities": "^2.0.0" } }, "sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q=="], 387 + 388 + "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], 389 + 390 + "dequal": ["dequal@2.0.3", "", {}, "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="], 391 + 392 + "detect-libc": ["detect-libc@2.0.4", "", {}, "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA=="], 393 + 394 + "devlop": ["devlop@1.1.0", "", { "dependencies": { "dequal": "^2.0.0" } }, "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA=="], 395 + 396 + "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="], 397 + 398 + "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], 399 + 400 + "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], 401 + 402 + "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], 403 + 404 + "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 + 406 + "electron-to-chromium": ["electron-to-chromium@1.5.237", "", {}, "sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg=="], 407 + 408 + "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 + 410 + "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], 411 + 412 + "enhanced-resolve": ["enhanced-resolve@5.18.3", "", { "dependencies": { "graceful-fs": "4.2.11", "tapable": "2.2.3" } }, "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww=="], 413 + 414 + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], 415 + 416 + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], 417 + 418 + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], 419 + 420 + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], 421 + 422 + "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 + 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=="], 425 + 426 + "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="], 427 + 428 + "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], 429 + 430 + "exsolve": ["exsolve@1.0.7", "", {}, "sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw=="], 431 + 432 + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], 433 + 434 + "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], 435 + 436 + "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], 437 + 438 + "fdir": ["fdir@6.5.0", "", { "optionalDependencies": { "picomatch": "4.0.3" } }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], 439 + 440 + "follow-redirects": ["follow-redirects@1.15.11", "", {}, "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ=="], 441 + 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=="], 443 + 444 + "fs-minipass": ["fs-minipass@2.1.0", "", { "dependencies": { "minipass": "^3.0.0" } }, "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="], 445 + 446 + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], 447 + 448 + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], 449 + 450 + "gensync": ["gensync@1.0.0-beta.2", "", {}, "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="], 451 + 452 + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], 453 + 454 + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], 455 + 456 + "get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], 457 + 458 + "globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], 459 + 460 + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], 461 + 462 + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], 463 + 464 + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], 465 + 466 + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], 467 + 468 + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], 469 + 470 + "highlight.js": ["highlight.js@11.11.1", "", {}, "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w=="], 471 + 472 + "highlightjs-line-numbers.js": ["highlightjs-line-numbers.js@2.9.1", "", {}, "sha512-OVLCl58g9hvY11jDCMDjyIM1HcWtElogmRpBBVb0KxMDXxtket58iHA4ex8HCWmQuR1rorYWkQ+4wn3S2T+xlg=="], 473 + 474 + "html-entities": ["html-entities@2.3.3", "", {}, "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="], 475 + 476 + "htmlparser2": ["htmlparser2@9.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "entities": "^4.5.0" } }, "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ=="], 477 + 478 + "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="], 479 + 480 + "inline-style-parser": ["inline-style-parser@0.1.1", "", {}, "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="], 481 + 482 + "is-plain-obj": ["is-plain-obj@4.1.0", "", {}, "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg=="], 483 + 484 + "is-what": ["is-what@4.1.16", "", {}, "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A=="], 485 + 486 + "jiti": ["jiti@2.6.1", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ=="], 487 + 488 + "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], 489 + 490 + "jsesc": ["jsesc@3.1.0", "", { "bin": { "jsesc": "bin/jsesc" } }, "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA=="], 491 + 492 + "json5": ["json5@2.2.3", "", { "bin": { "json5": "lib/cli.js" } }, "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg=="], 493 + 494 + "kolorist": ["kolorist@1.8.0", "", {}, "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="], 495 + 496 + "lightningcss": ["lightningcss@1.30.2", "", { "dependencies": { "detect-libc": "^2.0.3" }, "optionalDependencies": { "lightningcss-android-arm64": "1.30.2", "lightningcss-darwin-arm64": "1.30.2", "lightningcss-darwin-x64": "1.30.2", "lightningcss-freebsd-x64": "1.30.2", "lightningcss-linux-arm-gnueabihf": "1.30.2", "lightningcss-linux-arm64-gnu": "1.30.2", "lightningcss-linux-arm64-musl": "1.30.2", "lightningcss-linux-x64-gnu": "1.30.2", "lightningcss-linux-x64-musl": "1.30.2", "lightningcss-win32-arm64-msvc": "1.30.2", "lightningcss-win32-x64-msvc": "1.30.2" } }, "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ=="], 497 + 498 + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.30.2", "", { "os": "android", "cpu": "arm64" }, "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A=="], 499 + 500 + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.30.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA=="], 501 + 502 + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.30.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ=="], 503 + 504 + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.30.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA=="], 505 + 506 + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.30.2", "", { "os": "linux", "cpu": "arm" }, "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA=="], 507 + 508 + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A=="], 509 + 510 + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.30.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA=="], 511 + 512 + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w=="], 513 + 514 + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.30.2", "", { "os": "linux", "cpu": "x64" }, "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA=="], 515 + 516 + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.30.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ=="], 517 + 518 + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.30.2", "", { "os": "win32", "cpu": "x64" }, "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw=="], 519 + 520 + "local-pkg": ["local-pkg@0.5.1", "", { "dependencies": { "mlly": "^1.7.3", "pkg-types": "^1.2.1" } }, "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ=="], 521 + 522 + "lru-cache": ["lru-cache@5.1.1", "", { "dependencies": { "yallist": "3.1.1" } }, "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w=="], 523 + 524 + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], 525 + 526 + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], 527 + 528 + "mdast-util-from-markdown": ["mdast-util-from-markdown@2.0.2", "", { "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "mdast-util-to-string": "^4.0.0", "micromark": "^4.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "unist-util-stringify-position": "^4.0.0" } }, "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA=="], 529 + 530 + "mdast-util-to-hast": ["mdast-util-to-hast@13.2.0", "", { "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", "@ungap/structured-clone": "^1.0.0", "devlop": "^1.0.0", "micromark-util-sanitize-uri": "^2.0.0", "trim-lines": "^3.0.0", "unist-util-position": "^5.0.0", "unist-util-visit": "^5.0.0", "vfile": "^6.0.0" } }, "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA=="], 531 + 532 + "mdast-util-to-string": ["mdast-util-to-string@4.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0" } }, "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg=="], 533 + 534 + "mdn-data": ["mdn-data@2.0.30", "", {}, "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="], 535 + 536 + "merge-anything": ["merge-anything@5.1.7", "", { "dependencies": { "is-what": "4.1.16" } }, "sha512-eRtbOb1N5iyH0tkQDAoQ4Ipsp/5qSR79Dzrz8hEPxRX10RWWR/iQXdoKmBSRCThY1Fh5EhISDtpSc93fpxUniQ=="], 537 + 538 + "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 + 540 + "micromark-core-commonmark": ["micromark-core-commonmark@2.0.3", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", "micromark-factory-destination": "^2.0.0", "micromark-factory-label": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-factory-title": "^2.0.0", "micromark-factory-whitespace": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-classify-character": "^2.0.0", "micromark-util-html-tag-name": "^2.0.0", "micromark-util-normalize-identifier": "^2.0.0", "micromark-util-resolve-all": "^2.0.0", "micromark-util-subtokenize": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg=="], 541 + 542 + "micromark-factory-destination": ["micromark-factory-destination@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA=="], 543 + 544 + "micromark-factory-label": ["micromark-factory-label@2.0.1", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg=="], 545 + 546 + "micromark-factory-space": ["micromark-factory-space@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg=="], 547 + 548 + "micromark-factory-title": ["micromark-factory-title@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw=="], 549 + 550 + "micromark-factory-whitespace": ["micromark-factory-whitespace@2.0.1", "", { "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ=="], 551 + 552 + "micromark-util-character": ["micromark-util-character@2.1.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q=="], 553 + 554 + "micromark-util-chunked": ["micromark-util-chunked@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA=="], 555 + 556 + "micromark-util-classify-character": ["micromark-util-classify-character@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q=="], 557 + 558 + "micromark-util-combine-extensions": ["micromark-util-combine-extensions@2.0.1", "", { "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg=="], 559 + 560 + "micromark-util-decode-numeric-character-reference": ["micromark-util-decode-numeric-character-reference@2.0.2", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw=="], 561 + 562 + "micromark-util-decode-string": ["micromark-util-decode-string@2.0.1", "", { "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", "micromark-util-decode-numeric-character-reference": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ=="], 563 + 564 + "micromark-util-encode": ["micromark-util-encode@2.0.1", "", {}, "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw=="], 565 + 566 + "micromark-util-html-tag-name": ["micromark-util-html-tag-name@2.0.1", "", {}, "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA=="], 567 + 568 + "micromark-util-normalize-identifier": ["micromark-util-normalize-identifier@2.0.1", "", { "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q=="], 569 + 570 + "micromark-util-resolve-all": ["micromark-util-resolve-all@2.0.1", "", { "dependencies": { "micromark-util-types": "^2.0.0" } }, "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg=="], 571 + 572 + "micromark-util-sanitize-uri": ["micromark-util-sanitize-uri@2.0.1", "", { "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", "micromark-util-symbol": "^2.0.0" } }, "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ=="], 573 + 574 + "micromark-util-subtokenize": ["micromark-util-subtokenize@2.1.0", "", { "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA=="], 575 + 576 + "micromark-util-symbol": ["micromark-util-symbol@2.0.1", "", {}, "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q=="], 577 + 578 + "micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="], 579 + 580 + "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], 581 + 582 + "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], 583 + 584 + "minipass": ["minipass@4.2.8", "", {}, "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ=="], 585 + 586 + "minizlib": ["minizlib@2.1.2", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="], 587 + 588 + "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], 589 + 590 + "mlly": ["mlly@1.8.0", "", { "dependencies": { "acorn": "^8.15.0", "pathe": "^2.0.3", "pkg-types": "^1.3.1", "ufo": "^1.6.1" } }, "sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g=="], 591 + 592 + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], 593 + 594 + "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], 595 + 596 + "node-releases": ["node-releases@2.0.25", "", {}, "sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA=="], 597 + 598 + "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="], 599 + 600 + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], 601 + 602 + "package-manager-detector": ["package-manager-detector@1.5.0", "", {}, "sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw=="], 603 + 604 + "parse5": ["parse5@7.3.0", "", { "dependencies": { "entities": "6.0.1" } }, "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw=="], 605 + 606 + "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 + 608 + "parse5-parser-stream": ["parse5-parser-stream@7.1.2", "", { "dependencies": { "parse5": "^7.0.0" } }, "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow=="], 609 + 610 + "pathe": ["pathe@1.1.2", "", {}, "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="], 611 + 612 + "pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="], 613 + 614 + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], 615 + 616 + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], 617 + 618 + "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 + 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=="], 621 + 622 + "property-information": ["property-information@6.5.0", "", {}, "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig=="], 623 + 624 + "proxy-from-env": ["proxy-from-env@1.1.0", "", {}, "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="], 625 + 626 + "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="], 627 + 628 + "quansync": ["quansync@0.2.11", "", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="], 629 + 630 + "remark-parse": ["remark-parse@11.0.0", "", { "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", "micromark-util-types": "^2.0.0", "unified": "^11.0.0" } }, "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA=="], 631 + 632 + "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 + 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=="], 635 + 636 + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], 637 + 638 + "semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], 639 + 640 + "seroval": ["seroval@1.3.2", "", {}, "sha512-RbcPH1n5cfwKrru7v7+zrZvjLurgHhGyso3HTyGtRivGWgYjbOmGuivCQaORNELjNONoK35nj28EoWul9sb1zQ=="], 641 + 642 + "seroval-plugins": ["seroval-plugins@1.3.3", "", { "peerDependencies": { "seroval": "1.3.2" } }, "sha512-16OL3NnUBw8JG1jBLUoZJsLnQq0n5Ua6aHalhJK4fMQkz1lqR7Osz1sA30trBtd9VUDc2NgkuRCn8+/pBwqZ+w=="], 643 + 644 + "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 + 646 + "solid-js": ["solid-js@1.9.10", "", { "dependencies": { "csstype": "^3.1.0", "seroval": "~1.3.0", "seroval-plugins": "~1.3.0" } }, "sha512-Coz956cos/EPDlhs6+jsdTxKuJDPT7B5SVIWgABwROyxjY7Xbr8wkzD68Et+NxnV7DLJ3nJdAC2r9InuV/4Jew=="], 647 + 648 + "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 + 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=="], 651 + 652 + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], 653 + 654 + "space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="], 655 + 656 + "style-to-object": ["style-to-object@0.3.0", "", { "dependencies": { "inline-style-parser": "0.1.1" } }, "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA=="], 657 + 658 + "svgo": ["svgo@3.3.2", "", { "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.0.0" }, "bin": "./bin/svgo" }, "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw=="], 659 + 660 + "tailwindcss": ["tailwindcss@4.1.17", "", {}, "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q=="], 661 + 662 + "tapable": ["tapable@2.2.3", "", {}, "sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg=="], 663 + 664 + "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 + 666 + "tinyexec": ["tinyexec@1.0.2", "", {}, "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg=="], 667 + 668 + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "6.5.0", "picomatch": "4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], 669 + 670 + "trim-lines": ["trim-lines@3.0.1", "", {}, "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg=="], 671 + 672 + "trough": ["trough@2.2.0", "", {}, "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw=="], 673 + 674 + "ufo": ["ufo@1.6.1", "", {}, "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA=="], 675 + 676 + "undici": ["undici@6.22.0", "", {}, "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw=="], 677 + 678 + "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], 679 + 680 + "unified": ["unified@11.0.5", "", { "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", "devlop": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", "vfile": "^6.0.0" } }, "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA=="], 681 + 682 + "unist-util-is": ["unist-util-is@5.2.1", "", { "dependencies": { "@types/unist": "^2.0.0" } }, "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw=="], 683 + 684 + "unist-util-position": ["unist-util-position@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA=="], 685 + 686 + "unist-util-stringify-position": ["unist-util-stringify-position@4.0.0", "", { "dependencies": { "@types/unist": "^3.0.0" } }, "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ=="], 687 + 688 + "unist-util-visit": ["unist-util-visit@4.1.2", "", { "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^5.0.0", "unist-util-visit-parents": "^5.1.1" } }, "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg=="], 689 + 690 + "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 + 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=="], 695 + 696 + "vfile": ["vfile@6.0.3", "", { "dependencies": { "@types/unist": "^3.0.0", "vfile-message": "^4.0.0" } }, "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q=="], 697 + 698 + "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 + 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=="], 701 + 702 + "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 + 704 + "vitefu": ["vitefu@1.1.1", "", { "optionalDependencies": { "vite": "7.1.10" } }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="], 705 + 706 + "whatwg-encoding": ["whatwg-encoding@3.1.1", "", { "dependencies": { "iconv-lite": "0.6.3" } }, "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ=="], 707 + 708 + "whatwg-mimetype": ["whatwg-mimetype@4.0.0", "", {}, "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg=="], 709 + 710 + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], 711 + 712 + "yallist": ["yallist@4.0.0", "", {}, "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="], 713 + 714 + "yaml": ["yaml@2.6.1", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg=="], 715 + 716 + "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], 717 + 718 + "@atcute/oauth-browser-client/nanoid": ["nanoid@5.1.6", "", { "bin": { "nanoid": "bin/nanoid.js" } }, "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg=="], 719 + 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 + 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=="], 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=="], 729 + 730 + "@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 + 732 + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.0.7", "", { "dependencies": { "@emnapi/core": "^1.5.0", "@emnapi/runtime": "^1.5.0", "@tybys/wasm-util": "^0.10.1" }, "bundled": true }, "sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw=="], 733 + 734 + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg=="], 735 + 736 + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], 737 + 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=="], 741 + 742 + "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 + 744 + "fs-minipass/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], 745 + 746 + "lru-cache/yallist": ["yallist@3.1.1", "", {}, "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="], 747 + 748 + "mdast-util-to-hast/unist-util-visit": ["unist-util-visit@5.0.0", "", { "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", "unist-util-visit-parents": "^6.0.0" } }, "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg=="], 749 + 750 + "minizlib/minipass": ["minipass@3.3.6", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="], 751 + 752 + "mlly/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], 753 + 754 + "parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="], 755 + 756 + "pkg-types/pathe": ["pathe@2.0.3", "", {}, "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w=="], 757 + 758 + "tar/minipass": ["minipass@5.0.0", "", {}, "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ=="], 759 + 760 + "unist-util-is/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], 761 + 762 + "unist-util-visit/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], 763 + 764 + "unist-util-visit-parents/@types/unist": ["@types/unist@2.0.11", "", {}, "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA=="], 765 + 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 + "@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 + 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 + "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="], 779 + 780 + "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 + 782 + "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 + 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 + "@iconify/utils/local-pkg/pkg-types/confbox": ["confbox@0.2.2", "", {}, "sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ=="], 789 + 790 + "@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 + } 812 + }
+27
flake.lock
··· 1 + { 2 + "nodes": { 3 + "nixpkgs": { 4 + "locked": { 5 + "lastModified": 1762361079, 6 + "narHash": "sha256-lz718rr1BDpZBYk7+G8cE6wee3PiBUpn8aomG/vLLiY=", 7 + "owner": "nixos", 8 + "repo": "nixpkgs", 9 + "rev": "ffcdcf99d65c61956d882df249a9be53e5902ea5", 10 + "type": "github" 11 + }, 12 + "original": { 13 + "owner": "nixos", 14 + "ref": "nixpkgs-unstable", 15 + "repo": "nixpkgs", 16 + "type": "github" 17 + } 18 + }, 19 + "root": { 20 + "inputs": { 21 + "nixpkgs": "nixpkgs" 22 + } 23 + } 24 + }, 25 + "root": "root", 26 + "version": 7 27 + }
+28
flake.nix
··· 1 + { 2 + description = "tangled-spa"; 3 + 4 + inputs = { 5 + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; 6 + }; 7 + 8 + outputs = { 9 + self, 10 + nixpkgs, 11 + }: let 12 + forAllSystems = function: 13 + nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed ( 14 + system: function nixpkgs.legacyPackages.${system} 15 + ); 16 + in { 17 + #packages = forAllSystems (pkgs: { 18 + # example = pkgs.callPackage ./default.nix { }; 19 + # default = self.packages.${pkgs.stdenv.hostPlatform.system}.example; 20 + #}); 21 + 22 + devShells = forAllSystems (pkgs: { 23 + default = pkgs.callPackage ./shell.nix {inherit pkgs;}; 24 + }); 25 + 26 + #overlays.default = final: _: {example = final.callPackage ./default.nix {};}; 27 + }; 28 + }
+15
index.html
··· 1 + <!DOCTYPE html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="utf-8"> 5 + <meta name="viewport" content="width=device-width, initial-scale=1"> 6 + <meta name="theme-color" content="#000000"> 7 + <title>matted</title> 8 + </head> 9 + <body class="bg-slate-100 dark:bg-gray-900"> 10 + <noscript>You need to enable JavaScript to run this app.</noscript> 11 + <div id="root"></div> 12 + 13 + <script src="/src/index.tsx" type="module"></script> 14 + </body> 15 + </html>
+42
package.json
··· 1 + { 2 + "name": "vite-template-solid", 3 + "version": "0.0.0", 4 + "description": "", 5 + "type": "module", 6 + "scripts": { 7 + "start": "vite", 8 + "dev": "vite", 9 + "build": "vite build", 10 + "serve": "vite preview" 11 + }, 12 + "license": "MIT", 13 + "devDependencies": { 14 + "@biomejs/biome": "^2.3.4", 15 + "@iconify-json/gravity-ui": "^1.2.10", 16 + "@iconify/tailwind4": "^1.1.0", 17 + "postcss": "^8.5.6", 18 + "solid-devtools": "^0.34.4", 19 + "tailwindcss": "^4.1.17", 20 + "vite": "^7.2.2", 21 + "vite-plugin-solid": "^2.11.10" 22 + }, 23 + "dependencies": { 24 + "@atcute/atproto": "^3.1.9", 25 + "@atcute/client": "^4.0.5", 26 + "@atcute/identity-resolver": "^1.1.4", 27 + "@atcute/oauth-browser-client": "^2.0.1", 28 + "@atcute/tangled": "^1.0.10", 29 + "@gleam-lang/highlight.js-gleam": "^1.5.0", 30 + "@solidjs/router": "^0.15.3", 31 + "@tailwindcss/vite": "^4.1.17", 32 + "@types/highlight.js": "^10.1.0", 33 + "highlight.js": "^11.11.1", 34 + "highlightjs-line-numbers.js": "^2.9.1", 35 + "solid-js": "^1.9.10", 36 + "solid-markdown": "^2.0.14" 37 + }, 38 + "patchedDependencies": { 39 + "@gleam-lang/highlight.js-gleam@1.5.0": "patches/@gleam-lang%2Fhighlight.js-gleam@1.5.0.patch", 40 + "highlight.js@11.11.1": "patches/highlight.js@11.11.1.patch" 41 + } 42 + }
+10
patches/@gleam-lang%2Fhighlight.js-gleam@1.5.0.patch
··· 1 + diff --git a/node_modules/@gleam-lang/highlight.js-gleam/index.d.ts b/index.d.ts 2 + new file mode 100644 3 + index 0000000000000000000000000000000000000000..1ed55230d38550ff85e284f036d82c90b1f59c9e 4 + --- /dev/null 5 + +++ b/index.d.ts 6 + @@ -0,0 +1,4 @@ 7 + +declare module '@gleam-lang/highlight.js-gleam' { 8 + + const gleam: any; 9 + + export default gleam; 10 + +}
+203
patches/highlight.js@11.11.1.patch
··· 1 + diff --git a/lib/index.js b/lib/index.js 2 + index 5da9ad4df62af64c81bb8d6ede6fb9cdb6183b0c..8e4342e21db18a9b720957af57a62fb38bff0d75 100644 3 + --- a/lib/index.js 4 + +++ b/lib/index.js 5 + @@ -1,198 +1,5 @@ 6 + var hljs = require('./core'); 7 + 8 + -hljs.registerLanguage('1c', require('./languages/1c')); 9 + -hljs.registerLanguage('abnf', require('./languages/abnf')); 10 + -hljs.registerLanguage('accesslog', require('./languages/accesslog')); 11 + -hljs.registerLanguage('actionscript', require('./languages/actionscript')); 12 + -hljs.registerLanguage('ada', require('./languages/ada')); 13 + -hljs.registerLanguage('angelscript', require('./languages/angelscript')); 14 + -hljs.registerLanguage('apache', require('./languages/apache')); 15 + -hljs.registerLanguage('applescript', require('./languages/applescript')); 16 + -hljs.registerLanguage('arcade', require('./languages/arcade')); 17 + -hljs.registerLanguage('arduino', require('./languages/arduino')); 18 + -hljs.registerLanguage('armasm', require('./languages/armasm')); 19 + -hljs.registerLanguage('xml', require('./languages/xml')); 20 + -hljs.registerLanguage('asciidoc', require('./languages/asciidoc')); 21 + -hljs.registerLanguage('aspectj', require('./languages/aspectj')); 22 + -hljs.registerLanguage('autohotkey', require('./languages/autohotkey')); 23 + -hljs.registerLanguage('autoit', require('./languages/autoit')); 24 + -hljs.registerLanguage('avrasm', require('./languages/avrasm')); 25 + -hljs.registerLanguage('awk', require('./languages/awk')); 26 + -hljs.registerLanguage('axapta', require('./languages/axapta')); 27 + -hljs.registerLanguage('bash', require('./languages/bash')); 28 + -hljs.registerLanguage('basic', require('./languages/basic')); 29 + -hljs.registerLanguage('bnf', require('./languages/bnf')); 30 + -hljs.registerLanguage('brainfuck', require('./languages/brainfuck')); 31 + -hljs.registerLanguage('c', require('./languages/c')); 32 + -hljs.registerLanguage('cal', require('./languages/cal')); 33 + -hljs.registerLanguage('capnproto', require('./languages/capnproto')); 34 + -hljs.registerLanguage('ceylon', require('./languages/ceylon')); 35 + -hljs.registerLanguage('clean', require('./languages/clean')); 36 + -hljs.registerLanguage('clojure', require('./languages/clojure')); 37 + -hljs.registerLanguage('clojure-repl', require('./languages/clojure-repl')); 38 + -hljs.registerLanguage('cmake', require('./languages/cmake')); 39 + -hljs.registerLanguage('coffeescript', require('./languages/coffeescript')); 40 + -hljs.registerLanguage('coq', require('./languages/coq')); 41 + -hljs.registerLanguage('cos', require('./languages/cos')); 42 + -hljs.registerLanguage('cpp', require('./languages/cpp')); 43 + -hljs.registerLanguage('crmsh', require('./languages/crmsh')); 44 + -hljs.registerLanguage('crystal', require('./languages/crystal')); 45 + -hljs.registerLanguage('csharp', require('./languages/csharp')); 46 + -hljs.registerLanguage('csp', require('./languages/csp')); 47 + -hljs.registerLanguage('css', require('./languages/css')); 48 + -hljs.registerLanguage('d', require('./languages/d')); 49 + -hljs.registerLanguage('markdown', require('./languages/markdown')); 50 + -hljs.registerLanguage('dart', require('./languages/dart')); 51 + -hljs.registerLanguage('delphi', require('./languages/delphi')); 52 + -hljs.registerLanguage('diff', require('./languages/diff')); 53 + -hljs.registerLanguage('django', require('./languages/django')); 54 + -hljs.registerLanguage('dns', require('./languages/dns')); 55 + -hljs.registerLanguage('dockerfile', require('./languages/dockerfile')); 56 + -hljs.registerLanguage('dos', require('./languages/dos')); 57 + -hljs.registerLanguage('dsconfig', require('./languages/dsconfig')); 58 + -hljs.registerLanguage('dts', require('./languages/dts')); 59 + -hljs.registerLanguage('dust', require('./languages/dust')); 60 + -hljs.registerLanguage('ebnf', require('./languages/ebnf')); 61 + -hljs.registerLanguage('elixir', require('./languages/elixir')); 62 + -hljs.registerLanguage('elm', require('./languages/elm')); 63 + -hljs.registerLanguage('ruby', require('./languages/ruby')); 64 + -hljs.registerLanguage('erb', require('./languages/erb')); 65 + -hljs.registerLanguage('erlang-repl', require('./languages/erlang-repl')); 66 + -hljs.registerLanguage('erlang', require('./languages/erlang')); 67 + -hljs.registerLanguage('excel', require('./languages/excel')); 68 + -hljs.registerLanguage('fix', require('./languages/fix')); 69 + -hljs.registerLanguage('flix', require('./languages/flix')); 70 + -hljs.registerLanguage('fortran', require('./languages/fortran')); 71 + -hljs.registerLanguage('fsharp', require('./languages/fsharp')); 72 + -hljs.registerLanguage('gams', require('./languages/gams')); 73 + -hljs.registerLanguage('gauss', require('./languages/gauss')); 74 + -hljs.registerLanguage('gcode', require('./languages/gcode')); 75 + -hljs.registerLanguage('gherkin', require('./languages/gherkin')); 76 + -hljs.registerLanguage('glsl', require('./languages/glsl')); 77 + -hljs.registerLanguage('gml', require('./languages/gml')); 78 + -hljs.registerLanguage('go', require('./languages/go')); 79 + -hljs.registerLanguage('golo', require('./languages/golo')); 80 + -hljs.registerLanguage('gradle', require('./languages/gradle')); 81 + -hljs.registerLanguage('graphql', require('./languages/graphql')); 82 + -hljs.registerLanguage('groovy', require('./languages/groovy')); 83 + -hljs.registerLanguage('haml', require('./languages/haml')); 84 + -hljs.registerLanguage('handlebars', require('./languages/handlebars')); 85 + -hljs.registerLanguage('haskell', require('./languages/haskell')); 86 + -hljs.registerLanguage('haxe', require('./languages/haxe')); 87 + -hljs.registerLanguage('hsp', require('./languages/hsp')); 88 + -hljs.registerLanguage('http', require('./languages/http')); 89 + -hljs.registerLanguage('hy', require('./languages/hy')); 90 + -hljs.registerLanguage('inform7', require('./languages/inform7')); 91 + -hljs.registerLanguage('ini', require('./languages/ini')); 92 + -hljs.registerLanguage('irpf90', require('./languages/irpf90')); 93 + -hljs.registerLanguage('isbl', require('./languages/isbl')); 94 + -hljs.registerLanguage('java', require('./languages/java')); 95 + -hljs.registerLanguage('javascript', require('./languages/javascript')); 96 + -hljs.registerLanguage('jboss-cli', require('./languages/jboss-cli')); 97 + -hljs.registerLanguage('json', require('./languages/json')); 98 + -hljs.registerLanguage('julia', require('./languages/julia')); 99 + -hljs.registerLanguage('julia-repl', require('./languages/julia-repl')); 100 + -hljs.registerLanguage('kotlin', require('./languages/kotlin')); 101 + -hljs.registerLanguage('lasso', require('./languages/lasso')); 102 + -hljs.registerLanguage('latex', require('./languages/latex')); 103 + -hljs.registerLanguage('ldif', require('./languages/ldif')); 104 + -hljs.registerLanguage('leaf', require('./languages/leaf')); 105 + -hljs.registerLanguage('less', require('./languages/less')); 106 + -hljs.registerLanguage('lisp', require('./languages/lisp')); 107 + -hljs.registerLanguage('livecodeserver', require('./languages/livecodeserver')); 108 + -hljs.registerLanguage('livescript', require('./languages/livescript')); 109 + -hljs.registerLanguage('llvm', require('./languages/llvm')); 110 + -hljs.registerLanguage('lsl', require('./languages/lsl')); 111 + -hljs.registerLanguage('lua', require('./languages/lua')); 112 + -hljs.registerLanguage('makefile', require('./languages/makefile')); 113 + -hljs.registerLanguage('mathematica', require('./languages/mathematica')); 114 + -hljs.registerLanguage('matlab', require('./languages/matlab')); 115 + -hljs.registerLanguage('maxima', require('./languages/maxima')); 116 + -hljs.registerLanguage('mel', require('./languages/mel')); 117 + -hljs.registerLanguage('mercury', require('./languages/mercury')); 118 + -hljs.registerLanguage('mipsasm', require('./languages/mipsasm')); 119 + -hljs.registerLanguage('mizar', require('./languages/mizar')); 120 + -hljs.registerLanguage('perl', require('./languages/perl')); 121 + -hljs.registerLanguage('mojolicious', require('./languages/mojolicious')); 122 + -hljs.registerLanguage('monkey', require('./languages/monkey')); 123 + -hljs.registerLanguage('moonscript', require('./languages/moonscript')); 124 + -hljs.registerLanguage('n1ql', require('./languages/n1ql')); 125 + -hljs.registerLanguage('nestedtext', require('./languages/nestedtext')); 126 + -hljs.registerLanguage('nginx', require('./languages/nginx')); 127 + -hljs.registerLanguage('nim', require('./languages/nim')); 128 + -hljs.registerLanguage('nix', require('./languages/nix')); 129 + -hljs.registerLanguage('node-repl', require('./languages/node-repl')); 130 + -hljs.registerLanguage('nsis', require('./languages/nsis')); 131 + -hljs.registerLanguage('objectivec', require('./languages/objectivec')); 132 + -hljs.registerLanguage('ocaml', require('./languages/ocaml')); 133 + -hljs.registerLanguage('openscad', require('./languages/openscad')); 134 + -hljs.registerLanguage('oxygene', require('./languages/oxygene')); 135 + -hljs.registerLanguage('parser3', require('./languages/parser3')); 136 + -hljs.registerLanguage('pf', require('./languages/pf')); 137 + -hljs.registerLanguage('pgsql', require('./languages/pgsql')); 138 + -hljs.registerLanguage('php', require('./languages/php')); 139 + -hljs.registerLanguage('php-template', require('./languages/php-template')); 140 + -hljs.registerLanguage('plaintext', require('./languages/plaintext')); 141 + -hljs.registerLanguage('pony', require('./languages/pony')); 142 + -hljs.registerLanguage('powershell', require('./languages/powershell')); 143 + -hljs.registerLanguage('processing', require('./languages/processing')); 144 + -hljs.registerLanguage('profile', require('./languages/profile')); 145 + -hljs.registerLanguage('prolog', require('./languages/prolog')); 146 + -hljs.registerLanguage('properties', require('./languages/properties')); 147 + -hljs.registerLanguage('protobuf', require('./languages/protobuf')); 148 + -hljs.registerLanguage('puppet', require('./languages/puppet')); 149 + -hljs.registerLanguage('purebasic', require('./languages/purebasic')); 150 + -hljs.registerLanguage('python', require('./languages/python')); 151 + -hljs.registerLanguage('python-repl', require('./languages/python-repl')); 152 + -hljs.registerLanguage('q', require('./languages/q')); 153 + -hljs.registerLanguage('qml', require('./languages/qml')); 154 + -hljs.registerLanguage('r', require('./languages/r')); 155 + -hljs.registerLanguage('reasonml', require('./languages/reasonml')); 156 + -hljs.registerLanguage('rib', require('./languages/rib')); 157 + -hljs.registerLanguage('roboconf', require('./languages/roboconf')); 158 + -hljs.registerLanguage('routeros', require('./languages/routeros')); 159 + -hljs.registerLanguage('rsl', require('./languages/rsl')); 160 + -hljs.registerLanguage('ruleslanguage', require('./languages/ruleslanguage')); 161 + -hljs.registerLanguage('rust', require('./languages/rust')); 162 + -hljs.registerLanguage('sas', require('./languages/sas')); 163 + -hljs.registerLanguage('scala', require('./languages/scala')); 164 + -hljs.registerLanguage('scheme', require('./languages/scheme')); 165 + -hljs.registerLanguage('scilab', require('./languages/scilab')); 166 + -hljs.registerLanguage('scss', require('./languages/scss')); 167 + -hljs.registerLanguage('shell', require('./languages/shell')); 168 + -hljs.registerLanguage('smali', require('./languages/smali')); 169 + -hljs.registerLanguage('smalltalk', require('./languages/smalltalk')); 170 + -hljs.registerLanguage('sml', require('./languages/sml')); 171 + -hljs.registerLanguage('sqf', require('./languages/sqf')); 172 + -hljs.registerLanguage('sql', require('./languages/sql')); 173 + -hljs.registerLanguage('stan', require('./languages/stan')); 174 + -hljs.registerLanguage('stata', require('./languages/stata')); 175 + -hljs.registerLanguage('step21', require('./languages/step21')); 176 + -hljs.registerLanguage('stylus', require('./languages/stylus')); 177 + -hljs.registerLanguage('subunit', require('./languages/subunit')); 178 + -hljs.registerLanguage('swift', require('./languages/swift')); 179 + -hljs.registerLanguage('taggerscript', require('./languages/taggerscript')); 180 + -hljs.registerLanguage('yaml', require('./languages/yaml')); 181 + -hljs.registerLanguage('tap', require('./languages/tap')); 182 + -hljs.registerLanguage('tcl', require('./languages/tcl')); 183 + -hljs.registerLanguage('thrift', require('./languages/thrift')); 184 + -hljs.registerLanguage('tp', require('./languages/tp')); 185 + -hljs.registerLanguage('twig', require('./languages/twig')); 186 + -hljs.registerLanguage('typescript', require('./languages/typescript')); 187 + -hljs.registerLanguage('vala', require('./languages/vala')); 188 + -hljs.registerLanguage('vbnet', require('./languages/vbnet')); 189 + -hljs.registerLanguage('vbscript', require('./languages/vbscript')); 190 + -hljs.registerLanguage('vbscript-html', require('./languages/vbscript-html')); 191 + -hljs.registerLanguage('verilog', require('./languages/verilog')); 192 + -hljs.registerLanguage('vhdl', require('./languages/vhdl')); 193 + -hljs.registerLanguage('vim', require('./languages/vim')); 194 + -hljs.registerLanguage('wasm', require('./languages/wasm')); 195 + -hljs.registerLanguage('wren', require('./languages/wren')); 196 + -hljs.registerLanguage('x86asm', require('./languages/x86asm')); 197 + -hljs.registerLanguage('xl', require('./languages/xl')); 198 + -hljs.registerLanguage('xquery', require('./languages/xquery')); 199 + -hljs.registerLanguage('zephir', require('./languages/zephir')); 200 + - 201 + hljs.HighlightJS = hljs 202 + hljs.default = hljs 203 + module.exports = hljs;
+15
shell.nix
··· 1 + {pkgs}: 2 + #let 3 + # defaultPackage = callPackage ./default.nix { }; 4 + #in 5 + pkgs.mkShellNoCC { 6 + #inputsFrom = [ defaultPackage ]; 7 + # 8 + env = { 9 + RUST_SRC_PATH = pkgs.rustPlatform.rustLibSrc; 10 + }; 11 + 12 + packages = with pkgs; [ 13 + bun 14 + ]; 15 + }
+21
src/app.tsx
··· 1 + import { type Component, type JSXElement, Suspense } from "solid-js"; 2 + 3 + const App: Component<{ children: JSXElement }> = (props) => { 4 + return ( 5 + <> 6 + <nav class="mx-auto bg-white text-gray-950 dark:bg-gray-800 dark:text-gray-50"> 7 + <ul class="flex items-center"> 8 + <li class="px-4 py-2"> 9 + <span class="select-none font-bold font-mono italic">matted</span> 10 + </li> 11 + </ul> 12 + </nav> 13 + 14 + <main class="mt-6 text-gray-950 text-sm dark:text-gray-50"> 15 + <Suspense>{props.children}</Suspense> 16 + </main> 17 + </> 18 + ); 19 + }; 20 + 21 + export default App;
+3814
src/data/languages.json
··· 1 + { 2 + "1centerprise": { 3 + "color": "#814ccc", 4 + "extensions": [".bsl", ".os"] 5 + }, 6 + "2-dimensionalarray": { 7 + "color": "#38761d", 8 + "extensions": [".2da"] 9 + }, 10 + "4d": { 11 + "color": "#004289", 12 + "extensions": [".4dm"] 13 + }, 14 + "abap": { 15 + "color": "#e8274b", 16 + "extensions": [".abap"] 17 + }, 18 + "abapcds": { 19 + "color": "#555e25", 20 + "extensions": [".asddls"] 21 + }, 22 + "abnf": { 23 + "extensions": [".abnf"] 24 + }, 25 + "agsscript": { 26 + "color": "#b9d9ff", 27 + "extensions": [".asc", ".ash"] 28 + }, 29 + "aidl": { 30 + "color": "#34eb6b", 31 + "extensions": [".aidl"] 32 + }, 33 + "al": { 34 + "color": "#3aa2b5", 35 + "extensions": [".al"] 36 + }, 37 + "ampl": { 38 + "color": "#e6efbb", 39 + "extensions": [".ampl", ".mod"] 40 + }, 41 + "antlr4": { 42 + "color": "#9dc3ff", 43 + "extensions": [".g4"] 44 + }, 45 + "apiblueprint": { 46 + "color": "#2acca8", 47 + "extensions": [".apib"] 48 + }, 49 + "apl": { 50 + "color": "#5a8164", 51 + "extensions": [".apl", ".dyalog"] 52 + }, 53 + "asl": { 54 + "extensions": [".asl", ".dsl"] 55 + }, 56 + "asn.1": { 57 + "extensions": [".asn", ".asn1"] 58 + }, 59 + "aspnet": { 60 + "color": "#9400ff", 61 + "extensions": [".asax", ".ascx", ".ashx", ".asmx", ".aspx", ".axd"] 62 + }, 63 + "ats": { 64 + "color": "#1ac620", 65 + "extensions": [".dats", ".hats", ".sats"] 66 + }, 67 + "actionscript": { 68 + "color": "#882b0f", 69 + "extensions": [".as"] 70 + }, 71 + "ada": { 72 + "color": "#02f88c", 73 + "extensions": [".adb", ".ada", ".ads"] 74 + }, 75 + "adblockfilterlist": { 76 + "color": "#800000", 77 + "extensions": [".txt"] 78 + }, 79 + "adobefontmetrics": { 80 + "color": "#fa0f00", 81 + "extensions": [".afm"] 82 + }, 83 + "agda": { 84 + "color": "#315665", 85 + "extensions": [".agda"] 86 + }, 87 + "aiken": { 88 + "color": "#640ff8", 89 + "extensions": [".ak"] 90 + }, 91 + "alloy": { 92 + "color": "#64c800", 93 + "extensions": [".als"] 94 + }, 95 + "alpineabuild": { 96 + "color": "#0d597f", 97 + "filenames": ["apkbuild"] 98 + }, 99 + "altiumdesigner": { 100 + "color": "#a89663", 101 + "extensions": [".outjob", ".pcbdoc", ".prjpcb", ".schdoc"] 102 + }, 103 + "angelscript": { 104 + "color": "#c7d7dc", 105 + "extensions": [".as", ".angelscript"] 106 + }, 107 + "answersetprogramming": { 108 + "color": "#a9cc29", 109 + "extensions": [".lp"] 110 + }, 111 + "antbuildsystem": { 112 + "color": "#a9157e", 113 + "filenames": ["ant.xml", "build.xml"] 114 + }, 115 + "antlers": { 116 + "color": "#ff269e", 117 + "extensions": [".antlers.html", ".antlers.php", ".antlers.xml"] 118 + }, 119 + "apacheconf": { 120 + "color": "#d12127", 121 + "extensions": [".apacheconf", ".vhost"], 122 + "filenames": [".htaccess", "apache2.conf", "httpd.conf"] 123 + }, 124 + "apex": { 125 + "color": "#1797c0", 126 + "extensions": [".cls", ".apex", ".trigger"] 127 + }, 128 + "apolloguidancecomputer": { 129 + "color": "#0b3d91", 130 + "extensions": [".agc"] 131 + }, 132 + "applescript": { 133 + "extensions": [".applescript", ".scpt"], 134 + "color": "#101f1f" 135 + }, 136 + "arc": { 137 + "color": "#aa2afe", 138 + "extensions": [".arc"] 139 + }, 140 + "arkts": { 141 + "color": "#0080ff", 142 + "extensions": [".ets"] 143 + }, 144 + "asciidoc": { 145 + "color": "#73a0c5", 146 + "extensions": [".asciidoc", ".adoc", ".asc"] 147 + }, 148 + "aspectj": { 149 + "color": "#a957b0", 150 + "extensions": [".aj"] 151 + }, 152 + "assembly": { 153 + "color": "#6e4c13", 154 + "extensions": [".asm", ".a51", ".i", ".inc", ".nas", ".nasm", ".s"] 155 + }, 156 + "astro": { 157 + "color": "#ff5a03", 158 + "extensions": [".astro"] 159 + }, 160 + "asymptote": { 161 + "color": "#ff0000", 162 + "extensions": [".asy"] 163 + }, 164 + "augeas": { 165 + "color": "#9cc134", 166 + "extensions": [".aug"] 167 + }, 168 + "autohotkey": { 169 + "color": "#6594b9", 170 + "extensions": [".ahk", ".ahkl"] 171 + }, 172 + "autoit": { 173 + "color": "#1c3552", 174 + "extensions": [".au3"] 175 + }, 176 + "avroidl": { 177 + "color": "#0040ff", 178 + "extensions": [".avdl"] 179 + }, 180 + "awk": { 181 + "color": "#c30e9b", 182 + "extensions": [".awk", ".auk", ".gawk", ".mawk", ".nawk"] 183 + }, 184 + "b4x": { 185 + "color": "#00e4ff", 186 + "extensions": [".bas"] 187 + }, 188 + "basic": { 189 + "extensions": [".bas"], 190 + "color": "#ff0000" 191 + }, 192 + "bqn": { 193 + "color": "#2b7067", 194 + "extensions": [".bqn"] 195 + }, 196 + "ballerina": { 197 + "extensions": [".bal"], 198 + "color": "#ff5000" 199 + }, 200 + "batchfile": { 201 + "extensions": [".bat", ".cmd"], 202 + "filenames": ["gradlew.bat", "mvnw.cmd"], 203 + "color": "#c1f12e" 204 + }, 205 + "beef": { 206 + "color": "#a52f4e", 207 + "extensions": [".bf"] 208 + }, 209 + "befunge": { 210 + "extensions": [".befunge", ".bf"] 211 + }, 212 + "berry": { 213 + "extensions": [".be"], 214 + "color": "#15a13c" 215 + }, 216 + "bibtex": { 217 + "color": "#778899", 218 + "extensions": [".bib", ".bibtex"] 219 + }, 220 + "bibtexstyle": { 221 + "extensions": [".bst"] 222 + }, 223 + "bicep": { 224 + "color": "#519aba", 225 + "extensions": [".bicep", ".bicepparam"] 226 + }, 227 + "bikeshed": { 228 + "color": "#5562ac", 229 + "extensions": [".bs"] 230 + }, 231 + "bison": { 232 + "color": "#6a463f", 233 + "extensions": [".bison"] 234 + }, 235 + "bitbake": { 236 + "color": "#00bce4", 237 + "extensions": [".bb", ".bbappend", ".bbclass", ".inc"] 238 + }, 239 + "blade": { 240 + "color": "#f7523f", 241 + "extensions": [".blade", ".blade.php"] 242 + }, 243 + "blitzbasic": { 244 + "color": "#00ffae", 245 + "extensions": [".bb", ".decls"] 246 + }, 247 + "blitzmax": { 248 + "color": "#cd6400", 249 + "extensions": [".bmx"] 250 + }, 251 + "bluespec": { 252 + "color": "#12223c", 253 + "extensions": [".bsv"] 254 + }, 255 + "bluespecbh": { 256 + "color": "#12223c", 257 + "extensions": [".bs"] 258 + }, 259 + "boo": { 260 + "color": "#d4bec1", 261 + "extensions": [".boo"] 262 + }, 263 + "boogie": { 264 + "color": "#c80fa0", 265 + "extensions": [".bpl"] 266 + }, 267 + "brainfuck": { 268 + "color": "#2f2530", 269 + "extensions": [".b", ".bf"] 270 + }, 271 + "brighterscript": { 272 + "color": "#66aabb", 273 + "extensions": [".bs"] 274 + }, 275 + "brightscript": { 276 + "color": "#662d91", 277 + "extensions": [".brs"] 278 + }, 279 + "browserslist": { 280 + "color": "#ffd539", 281 + "filenames": [".browserslistrc", "browserslist"] 282 + }, 283 + "bru": { 284 + "color": "#f4aa41", 285 + "extensions": [".bru"] 286 + }, 287 + "buildstream": { 288 + "color": "#006bff", 289 + "extensions": [".bst"] 290 + }, 291 + "c": { 292 + "color": "#555555", 293 + "extensions": [".c", ".cats", ".h", ".h.in", ".idc"] 294 + }, 295 + "c#": { 296 + "color": "#178600", 297 + "extensions": [".cs", ".cake", ".cs.pp", ".csx", ".linq"] 298 + }, 299 + "c++": { 300 + "color": "#f34b7d", 301 + "extensions": [ 302 + ".cpp", 303 + ".c++", 304 + ".cc", 305 + ".cp", 306 + ".cppm", 307 + ".cxx", 308 + ".h", 309 + ".h++", 310 + ".hh", 311 + ".hpp", 312 + ".hxx", 313 + ".inc", 314 + ".inl", 315 + ".ino", 316 + ".ipp", 317 + ".ixx", 318 + ".re", 319 + ".tcc", 320 + ".tpp", 321 + ".txx" 322 + ] 323 + }, 324 + "c-objdump": { 325 + "extensions": [".c-objdump"] 326 + }, 327 + "c2hshaskell": { 328 + "extensions": [".chs"] 329 + }, 330 + "c3": { 331 + "color": "#2563eb", 332 + "extensions": [".c3"] 333 + }, 334 + "capcds": { 335 + "color": "#0092d1", 336 + "extensions": [".cds"] 337 + }, 338 + "cil": { 339 + "extensions": [".cil"] 340 + }, 341 + "clips": { 342 + "color": "#00a300", 343 + "extensions": [".clp"] 344 + }, 345 + "cmake": { 346 + "color": "#da3434", 347 + "extensions": [".cmake", ".cmake.in"], 348 + "filenames": ["cmakelists.txt"] 349 + }, 350 + "cobol": { 351 + "extensions": [".cob", ".cbl", ".ccp", ".cobol", ".cpy"] 352 + }, 353 + "codeowners": { 354 + "filenames": ["codeowners"] 355 + }, 356 + "collada": { 357 + "color": "#f1a42b", 358 + "extensions": [".dae"] 359 + }, 360 + "cson": { 361 + "color": "#244776", 362 + "extensions": [".cson"] 363 + }, 364 + "css": { 365 + "color": "#663399", 366 + "extensions": [".css"] 367 + }, 368 + "csv": { 369 + "color": "#237346", 370 + "extensions": [".csv"] 371 + }, 372 + "cue": { 373 + "extensions": [".cue"], 374 + "color": "#5886e1" 375 + }, 376 + "cweb": { 377 + "color": "#00007a", 378 + "extensions": [".w"] 379 + }, 380 + "cabalconfig": { 381 + "color": "#483465", 382 + "extensions": [".cabal"], 383 + "filenames": ["cabal.config", "cabal.project"] 384 + }, 385 + "caddyfile": { 386 + "color": "#22b638", 387 + "extensions": [".caddyfile"], 388 + "filenames": ["caddyfile"] 389 + }, 390 + "cadence": { 391 + "color": "#00ef8b", 392 + "extensions": [".cdc"] 393 + }, 394 + "cairo": { 395 + "color": "#ff4a48", 396 + "extensions": [".cairo"] 397 + }, 398 + "cairozero": { 399 + "color": "#ff4a48", 400 + "extensions": [".cairo"] 401 + }, 402 + "cameligo": { 403 + "color": "#3be133", 404 + "extensions": [".mligo"] 405 + }, 406 + "cangjie": { 407 + "extensions": [".cj"], 408 + "color": "#00868b" 409 + }, 410 + "cap'nproto": { 411 + "color": "#c42727", 412 + "extensions": [".capnp"] 413 + }, 414 + "carbon": { 415 + "color": "#222222", 416 + "extensions": [".carbon"] 417 + }, 418 + "cartocss": { 419 + "extensions": [".mss"] 420 + }, 421 + "ceylon": { 422 + "color": "#dfa535", 423 + "extensions": [".ceylon"] 424 + }, 425 + "chapel": { 426 + "color": "#8dc63f", 427 + "extensions": [".chpl"] 428 + }, 429 + "charity": { 430 + "extensions": [".ch"] 431 + }, 432 + "checksums": { 433 + "filenames": [ 434 + "md5sums", 435 + "sha1sums", 436 + "sha256sums", 437 + "sha256sums.txt", 438 + "sha512sums", 439 + "checksums.txt", 440 + "cksums", 441 + "md5sum.txt" 442 + ], 443 + "extensions": [ 444 + ".crc32", 445 + ".md2", 446 + ".md4", 447 + ".md5", 448 + ".sha1", 449 + ".sha2", 450 + ".sha224", 451 + ".sha256", 452 + ".sha256sum", 453 + ".sha3", 454 + ".sha384", 455 + ".sha512" 456 + ] 457 + }, 458 + "chuck": { 459 + "color": "#3f8000", 460 + "extensions": [".ck"] 461 + }, 462 + "circom": { 463 + "extensions": [".circom"], 464 + "color": "#707575" 465 + }, 466 + "cirru": { 467 + "color": "#ccccff", 468 + "extensions": [".cirru"] 469 + }, 470 + "clarion": { 471 + "color": "#db901e", 472 + "extensions": [".clw"] 473 + }, 474 + "clarity": { 475 + "color": "#5546ff", 476 + "extensions": [".clar"] 477 + }, 478 + "classicasp": { 479 + "color": "#6a40fd", 480 + "extensions": [".asp"] 481 + }, 482 + "clean": { 483 + "color": "#3f85af", 484 + "extensions": [".icl", ".dcl"] 485 + }, 486 + "click": { 487 + "color": "#e4e6f3", 488 + "extensions": [".click"] 489 + }, 490 + "clojure": { 491 + "color": "#db5855", 492 + "extensions": [ 493 + ".clj", 494 + ".bb", 495 + ".boot", 496 + ".cl2", 497 + ".cljc", 498 + ".cljs", 499 + ".cljs.hl", 500 + ".cljscm", 501 + ".cljx", 502 + ".hic" 503 + ], 504 + "filenames": ["riemann.config"] 505 + }, 506 + "closuretemplates": { 507 + "color": "#0d948f", 508 + "extensions": [".soy"] 509 + }, 510 + "cloudfirestoresecurityrules": { 511 + "color": "#ffa000", 512 + "filenames": ["firestore.rules"] 513 + }, 514 + "clue": { 515 + "color": "#0009b5", 516 + "extensions": [".clue"] 517 + }, 518 + "conll-u": { 519 + "extensions": [".conllu", ".conll"] 520 + }, 521 + "codeql": { 522 + "color": "#140f46", 523 + "extensions": [".ql", ".qll"] 524 + }, 525 + "coffeescript": { 526 + "color": "#244776", 527 + "extensions": [".coffee", "._coffee", ".cake", ".cjsx", ".iced"], 528 + "filenames": ["cakefile"] 529 + }, 530 + "coldfusion": { 531 + "color": "#ed2cd6", 532 + "extensions": [".cfm", ".cfml"] 533 + }, 534 + "coldfusioncfc": { 535 + "color": "#ed2cd6", 536 + "extensions": [".cfc"] 537 + }, 538 + "commonlisp": { 539 + "color": "#3fb68b", 540 + "extensions": [ 541 + ".lisp", 542 + ".asd", 543 + ".cl", 544 + ".l", 545 + ".lsp", 546 + ".ny", 547 + ".podsl", 548 + ".sexp" 549 + ] 550 + }, 551 + "commonworkflowlanguage": { 552 + "extensions": [".cwl"], 553 + "color": "#b5314c" 554 + }, 555 + "componentpascal": { 556 + "color": "#b0ce4e", 557 + "extensions": [".cp", ".cps"] 558 + }, 559 + "cooklang": { 560 + "color": "#e15a29", 561 + "extensions": [".cook"] 562 + }, 563 + "cool": { 564 + "extensions": [".cl"] 565 + }, 566 + "cpp-objdump": { 567 + "extensions": [ 568 + ".cppobjdump", 569 + ".c++-objdump", 570 + ".c++objdump", 571 + ".cpp-objdump", 572 + ".cxx-objdump" 573 + ] 574 + }, 575 + "creole": { 576 + "extensions": [".creole"] 577 + }, 578 + "crystal": { 579 + "color": "#000100", 580 + "extensions": [".cr"] 581 + }, 582 + "csound": { 583 + "color": "#1a1a1a", 584 + "extensions": [".orc", ".udo"] 585 + }, 586 + "csounddocument": { 587 + "color": "#1a1a1a", 588 + "extensions": [".csd"] 589 + }, 590 + "csoundscore": { 591 + "color": "#1a1a1a", 592 + "extensions": [".sco"] 593 + }, 594 + "cuda": { 595 + "extensions": [".cu", ".cuh"], 596 + "color": "#3a4e3a" 597 + }, 598 + "cuesheet": { 599 + "extensions": [".cue"] 600 + }, 601 + "curry": { 602 + "color": "#531242", 603 + "extensions": [".curry"] 604 + }, 605 + "cycript": { 606 + "extensions": [".cy"] 607 + }, 608 + "cylc": { 609 + "color": "#00b3fd", 610 + "extensions": [".cylc"], 611 + "filenames": ["suite.rc"] 612 + }, 613 + "cypher": { 614 + "color": "#34c0eb", 615 + "extensions": [".cyp", ".cypher"] 616 + }, 617 + "cython": { 618 + "color": "#fedf5b", 619 + "extensions": [".pyx", ".pxd", ".pxi"] 620 + }, 621 + "d": { 622 + "color": "#ba595e", 623 + "extensions": [".d", ".di"] 624 + }, 625 + "d-objdump": { 626 + "extensions": [".d-objdump"] 627 + }, 628 + "d2": { 629 + "color": "#526ee8", 630 + "extensions": [".d2"] 631 + }, 632 + "digitalcommandlanguage": { 633 + "extensions": [".com"] 634 + }, 635 + "dm": { 636 + "color": "#447265", 637 + "extensions": [".dm"] 638 + }, 639 + "dnszone": { 640 + "extensions": [".zone", ".arpa"] 641 + }, 642 + "dtrace": { 643 + "extensions": [".d"] 644 + }, 645 + "dafny": { 646 + "color": "#ffec25", 647 + "extensions": [".dfy"] 648 + }, 649 + "darcspatch": { 650 + "color": "#8eff23", 651 + "extensions": [".darcspatch", ".dpatch"] 652 + }, 653 + "dart": { 654 + "color": "#00b4ab", 655 + "extensions": [".dart"] 656 + }, 657 + "daslang": { 658 + "color": "#d3d3d3", 659 + "extensions": [".das"] 660 + }, 661 + "dataweave": { 662 + "color": "#003a52", 663 + "extensions": [".dwl"] 664 + }, 665 + "debianpackagecontrolfile": { 666 + "color": "#d70751", 667 + "extensions": [".dsc"] 668 + }, 669 + "denizenscript": { 670 + "color": "#fbee96", 671 + "extensions": [".dsc"] 672 + }, 673 + "dhall": { 674 + "color": "#dfafff", 675 + "extensions": [".dhall"] 676 + }, 677 + "diff": { 678 + "extensions": [".diff", ".patch"] 679 + }, 680 + "directx 3dfile": { 681 + "color": "#aace60", 682 + "extensions": [".x"] 683 + }, 684 + "dockerfile": { 685 + "color": "#384d54", 686 + "extensions": [".dockerfile", ".containerfile"], 687 + "filenames": ["containerfile", "dockerfile"] 688 + }, 689 + "dogescript": { 690 + "color": "#cca760", 691 + "extensions": [".djs"] 692 + }, 693 + "dotenv": { 694 + "color": "#e5d559", 695 + "extensions": [".env"], 696 + "filenames": [ 697 + ".env", 698 + ".env.ci", 699 + ".env.dev", 700 + ".env.development", 701 + ".env.development.local", 702 + ".env.example", 703 + ".env.local", 704 + ".env.prod", 705 + ".env.production", 706 + ".env.sample", 707 + ".env.staging", 708 + ".env.template", 709 + ".env.test", 710 + ".env.testing" 711 + ] 712 + }, 713 + "dune": { 714 + "filenames": ["dune-project"], 715 + "color": "#89421e" 716 + }, 717 + "dylan": { 718 + "color": "#6c616e", 719 + "extensions": [".dylan", ".dyl", ".intr", ".lid"] 720 + }, 721 + "e": { 722 + "color": "#ccce35", 723 + "extensions": [".e"] 724 + }, 725 + "e-mail": { 726 + "extensions": [".eml", ".mbox"] 727 + }, 728 + "ebnf": { 729 + "extensions": [".ebnf"] 730 + }, 731 + "ecl": { 732 + "color": "#8a1267", 733 + "extensions": [".ecl", ".eclxml"] 734 + }, 735 + "eclipse": { 736 + "color": "#001d9d", 737 + "extensions": [".ecl"] 738 + }, 739 + "ejs": { 740 + "color": "#a91e50", 741 + "extensions": [".ejs", ".ect", ".ejs.t", ".jst"] 742 + }, 743 + "eq": { 744 + "color": "#a78649", 745 + "extensions": [".eq"] 746 + }, 747 + "eagle": { 748 + "extensions": [".sch", ".brd"] 749 + }, 750 + "earthly": { 751 + "color": "#2af0ff", 752 + "filenames": ["earthfile"] 753 + }, 754 + "easybuild": { 755 + "color": "#069406", 756 + "extensions": [".eb"] 757 + }, 758 + "ecereprojects": { 759 + "color": "#913960", 760 + "extensions": [".epj"] 761 + }, 762 + "ecmarkup": { 763 + "color": "#eb8131", 764 + "extensions": [".html"] 765 + }, 766 + "edge": { 767 + "color": "#0dffe0", 768 + "extensions": [".edge"] 769 + }, 770 + "edgeql": { 771 + "color": "#31a7ff", 772 + "extensions": [".edgeql", ".esdl"] 773 + }, 774 + "editorconfig": { 775 + "color": "#fff1f2", 776 + "extensions": [".editorconfig"], 777 + "filenames": [".editorconfig"] 778 + }, 779 + "edjedatacollection": { 780 + "extensions": [".edc"] 781 + }, 782 + "eiffel": { 783 + "color": "#4d6977", 784 + "extensions": [".e"] 785 + }, 786 + "elixir": { 787 + "color": "#6e4a7e", 788 + "extensions": [".ex", ".exs"], 789 + "filenames": ["mix.lock"] 790 + }, 791 + "elm": { 792 + "color": "#60b5cc", 793 + "extensions": [".elm"] 794 + }, 795 + "elvish": { 796 + "extensions": [".elv"], 797 + "color": "#55bb55" 798 + }, 799 + "elvishtranscript": { 800 + "color": "#55bb55" 801 + }, 802 + "emacslisp": { 803 + "color": "#c065db", 804 + "filenames": [ 805 + ".abbrev_defs", 806 + ".emacs", 807 + ".emacs.desktop", 808 + ".gnus", 809 + ".spacemacs", 810 + ".viper", 811 + "cask", 812 + "project.ede", 813 + "_emacs", 814 + "abbrev_defs" 815 + ], 816 + "extensions": [".el", ".emacs", ".emacs.desktop"] 817 + }, 818 + "emberscript": { 819 + "color": "#fff4f3", 820 + "extensions": [".em", ".emberscript"] 821 + }, 822 + "erlang": { 823 + "color": "#b83998", 824 + "extensions": [ 825 + ".erl", 826 + ".app", 827 + ".app.src", 828 + ".es", 829 + ".escript", 830 + ".hrl", 831 + ".xrl", 832 + ".yrl" 833 + ], 834 + "filenames": [ 835 + "emakefile", 836 + "rebar.config", 837 + "rebar.config.lock", 838 + "rebar.lock" 839 + ] 840 + }, 841 + "euphoria": { 842 + "color": "#ff790b", 843 + "extensions": [".e", ".ex"] 844 + }, 845 + "f#": { 846 + "color": "#b845fc", 847 + "extensions": [".fs", ".fsi", ".fsx"] 848 + }, 849 + "f*": { 850 + "fs_name": "fstar", 851 + "color": "#572e30", 852 + "extensions": [".fst", ".fsti"] 853 + }, 854 + "figletfont": { 855 + "color": "#ffddbb", 856 + "extensions": [".flf"] 857 + }, 858 + "firrtl": { 859 + "color": "#2f632f", 860 + "extensions": [".fir"] 861 + }, 862 + "flux": { 863 + "color": "#88ccff", 864 + "extensions": [".fx", ".flux"] 865 + }, 866 + "factor": { 867 + "color": "#636746", 868 + "extensions": [".factor"], 869 + "filenames": [".factor-boot-rc", ".factor-rc"] 870 + }, 871 + "fancy": { 872 + "color": "#7b9db4", 873 + "extensions": [".fy", ".fancypack"], 874 + "filenames": ["fakefile"] 875 + }, 876 + "fantom": { 877 + "color": "#14253c", 878 + "extensions": [".fan"] 879 + }, 880 + "faust": { 881 + "color": "#c37240", 882 + "extensions": [".dsp"] 883 + }, 884 + "fennel": { 885 + "color": "#fff3d7", 886 + "extensions": [".fnl"] 887 + }, 888 + "filebenchwml": { 889 + "color": "#f6b900", 890 + "extensions": [".f"] 891 + }, 892 + "filterscript": { 893 + "extensions": [".fs"] 894 + }, 895 + "flix": { 896 + "color": "#d44a45", 897 + "extensions": [".flix"] 898 + }, 899 + "fluent": { 900 + "color": "#ffcc33", 901 + "extensions": [".ftl"] 902 + }, 903 + "formatted": { 904 + "extensions": [".for", ".eam.fs"] 905 + }, 906 + "forth": { 907 + "color": "#341708", 908 + "extensions": [".fth", ".4th", ".f", ".for", ".forth", ".fr", ".frt", ".fs"] 909 + }, 910 + "fortran": { 911 + "color": "#4d41b1", 912 + "extensions": [".f", ".f77", ".for", ".fpp"] 913 + }, 914 + "fortranfreeform": { 915 + "color": "#4d41b1", 916 + "extensions": [".f90", ".f03", ".f08", ".f95"] 917 + }, 918 + "freebasic": { 919 + "color": "#141ac9", 920 + "extensions": [".bi", ".bas"] 921 + }, 922 + "freemarker": { 923 + "color": "#0050b2", 924 + "extensions": [".ftl", ".ftlh"] 925 + }, 926 + "frege": { 927 + "color": "#00cafe", 928 + "extensions": [".fr"] 929 + }, 930 + "futhark": { 931 + "color": "#5f021f", 932 + "extensions": [".fut"] 933 + }, 934 + "g-code": { 935 + "color": "#d08cf2", 936 + "extensions": [".g", ".cnc", ".gco", ".gcode"] 937 + }, 938 + "gaml": { 939 + "color": "#ffc766", 940 + "extensions": [".gaml"] 941 + }, 942 + "gams": { 943 + "color": "#f49a22", 944 + "extensions": [".gms"] 945 + }, 946 + "gap": { 947 + "color": "#0000cc", 948 + "extensions": [".g", ".gap", ".gd", ".gi", ".tst"] 949 + }, 950 + "gccmachinedescription": { 951 + "color": "#ffcfab", 952 + "extensions": [".md"] 953 + }, 954 + "gdb": { 955 + "extensions": [".gdb", ".gdbinit"] 956 + }, 957 + "gdscript": { 958 + "color": "#355570", 959 + "extensions": [".gd"] 960 + }, 961 + "gdshader": { 962 + "color": "#478cbf", 963 + "extensions": [".gdshader", ".gdshaderinc"] 964 + }, 965 + "gedcom": { 966 + "color": "#003058", 967 + "extensions": [".ged"] 968 + }, 969 + "glsl": { 970 + "color": "#5686a5", 971 + "extensions": [ 972 + ".glsl", 973 + ".fp", 974 + ".frag", 975 + ".frg", 976 + ".fs", 977 + ".fsh", 978 + ".fshader", 979 + ".geo", 980 + ".geom", 981 + ".glslf", 982 + ".glslv", 983 + ".gs", 984 + ".gshader", 985 + ".rchit", 986 + ".rmiss", 987 + ".shader", 988 + ".tesc", 989 + ".tese", 990 + ".vert", 991 + ".vrx", 992 + ".vs", 993 + ".vsh", 994 + ".vshader" 995 + ] 996 + }, 997 + "gn": { 998 + "extensions": [".gn", ".gni"], 999 + "filenames": [".gn"] 1000 + }, 1001 + "gsc": { 1002 + "color": "#ff6800", 1003 + "extensions": [".gsc", ".csc", ".gsh"] 1004 + }, 1005 + "gamemakerlanguage": { 1006 + "color": "#71b417", 1007 + "extensions": [".gml"] 1008 + }, 1009 + "gemfile.lock": { 1010 + "color": "#701516", 1011 + "filenames": ["gemfile.lock"] 1012 + }, 1013 + "gemini": { 1014 + "color": "#ff6900", 1015 + "extensions": [".gmi"] 1016 + }, 1017 + "genero 4gl": { 1018 + "color": "#63408e", 1019 + "extensions": [".4gl"] 1020 + }, 1021 + "generoper": { 1022 + "color": "#d8df39", 1023 + "extensions": [".per"] 1024 + }, 1025 + "genie": { 1026 + "extensions": [".gs"], 1027 + "color": "#fb855d" 1028 + }, 1029 + "genshi": { 1030 + "color": "#951531", 1031 + "extensions": [".kid"] 1032 + }, 1033 + "gentooebuild": { 1034 + "color": "#9400ff", 1035 + "extensions": [".ebuild"] 1036 + }, 1037 + "gentooeclass": { 1038 + "color": "#9400ff", 1039 + "extensions": [".eclass"] 1040 + }, 1041 + "gerberimage": { 1042 + "color": "#d20b00", 1043 + "extensions": [ 1044 + ".gbr", 1045 + ".cmp", 1046 + ".gbl", 1047 + ".gbo", 1048 + ".gbp", 1049 + ".gbs", 1050 + ".gko", 1051 + ".gml", 1052 + ".gpb", 1053 + ".gpt", 1054 + ".gtl", 1055 + ".gto", 1056 + ".gtp", 1057 + ".gts", 1058 + ".ncl", 1059 + ".sol" 1060 + ] 1061 + }, 1062 + "gettextcatalog": { 1063 + "extensions": [".po", ".pot"] 1064 + }, 1065 + "gherkin": { 1066 + "extensions": [".feature", ".story"], 1067 + "color": "#5b2063" 1068 + }, 1069 + "gitattributes": { 1070 + "color": "#f44d27", 1071 + "filenames": [".gitattributes"] 1072 + }, 1073 + "gitcommit": { 1074 + "color": "#f44d27", 1075 + "filenames": ["commit_editmsg"] 1076 + }, 1077 + "gitconfig": { 1078 + "color": "#f44d27", 1079 + "extensions": [".gitconfig"], 1080 + "filenames": [".gitconfig", ".gitmodules"] 1081 + }, 1082 + "gitrevisionlist": { 1083 + "color": "#f44d27", 1084 + "filenames": [".git-blame-ignore-revs"] 1085 + }, 1086 + "gleam": { 1087 + "color": "#ffaff3", 1088 + "extensions": [".gleam"] 1089 + }, 1090 + "glimmerjs": { 1091 + "extensions": [".gjs"], 1092 + "color": "#f5835f" 1093 + }, 1094 + "glimmerts": { 1095 + "extensions": [".gts"], 1096 + "color": "#3178c6" 1097 + }, 1098 + "glyph": { 1099 + "color": "#c1ac7f", 1100 + "extensions": [".glf"] 1101 + }, 1102 + "glyphbitmapdistributionformat": { 1103 + "extensions": [".bdf"] 1104 + }, 1105 + "gnuplot": { 1106 + "color": "#f0a9f0", 1107 + "extensions": [".gp", ".gnu", ".gnuplot", ".p", ".plot", ".plt"] 1108 + }, 1109 + "go": { 1110 + "color": "#00add8", 1111 + "extensions": [".go"] 1112 + }, 1113 + "gochecksums": { 1114 + "color": "#00add8", 1115 + "filenames": ["go.sum", "go.work.sum"] 1116 + }, 1117 + "gomodule": { 1118 + "color": "#00add8", 1119 + "filenames": ["go.mod"] 1120 + }, 1121 + "goworkspace": { 1122 + "color": "#00add8", 1123 + "filenames": ["go.work"] 1124 + }, 1125 + "godotresource": { 1126 + "color": "#355570", 1127 + "extensions": [".gdnlib", ".gdns", ".tres", ".tscn"], 1128 + "filenames": ["project.godot"] 1129 + }, 1130 + "golo": { 1131 + "color": "#88562a", 1132 + "extensions": [".golo"] 1133 + }, 1134 + "gosu": { 1135 + "color": "#82937f", 1136 + "extensions": [".gs", ".gst", ".gsx", ".vark"] 1137 + }, 1138 + "grace": { 1139 + "color": "#615f8b", 1140 + "extensions": [".grace"] 1141 + }, 1142 + "gradle": { 1143 + "color": "#02303a", 1144 + "extensions": [".gradle"] 1145 + }, 1146 + "gradlekotlindsl": { 1147 + "color": "#02303a", 1148 + "extensions": [".gradle.kts"] 1149 + }, 1150 + "grammaticalframework": { 1151 + "extensions": [".gf"], 1152 + "color": "#ff0000" 1153 + }, 1154 + "graphmodelinglanguage": { 1155 + "extensions": [".gml"] 1156 + }, 1157 + "graphql": { 1158 + "color": "#e10098", 1159 + "extensions": [".graphql", ".gql", ".graphqls"] 1160 + }, 1161 + "graphviz (dot)": { 1162 + "color": "#2596be", 1163 + "extensions": [".dot", ".gv"] 1164 + }, 1165 + "groovy": { 1166 + "color": "#4298b8", 1167 + "extensions": [".groovy", ".grt", ".gtpl", ".gvy"], 1168 + "filenames": ["jenkinsfile"] 1169 + }, 1170 + "groovyserverpages": { 1171 + "color": "#4298b8", 1172 + "extensions": [".gsp"] 1173 + }, 1174 + "haproxy": { 1175 + "color": "#106da9", 1176 + "extensions": [".cfg"], 1177 + "filenames": ["haproxy.cfg"] 1178 + }, 1179 + "hcl": { 1180 + "color": "#844fba", 1181 + "extensions": [".hcl", ".nomad", ".tf", ".tfvars", ".workflow"] 1182 + }, 1183 + "hip": { 1184 + "color": "#4f3a4f", 1185 + "extensions": [".hip"] 1186 + }, 1187 + "hlsl": { 1188 + "color": "#aace60", 1189 + "extensions": [".hlsl", ".cginc", ".fx", ".fxh", ".hlsli"] 1190 + }, 1191 + "hocon": { 1192 + "color": "#9ff8ee", 1193 + "extensions": [".hocon"], 1194 + "filenames": [".scalafix.conf", ".scalafmt.conf"] 1195 + }, 1196 + "html": { 1197 + "color": "#e34c26", 1198 + "extensions": [ 1199 + ".html", 1200 + ".hta", 1201 + ".htm", 1202 + ".html.hl", 1203 + ".inc", 1204 + ".xht", 1205 + ".xhtml" 1206 + ] 1207 + }, 1208 + "html+ecr": { 1209 + "color": "#2e1052", 1210 + "extensions": [".ecr"] 1211 + }, 1212 + "html+eex": { 1213 + "color": "#6e4a7e", 1214 + "extensions": [".html.eex", ".heex", ".leex"] 1215 + }, 1216 + "html+erb": { 1217 + "color": "#701516", 1218 + "extensions": [".erb", ".erb.deface", ".rhtml"] 1219 + }, 1220 + "html+php": { 1221 + "color": "#4f5d95", 1222 + "extensions": [".phtml"] 1223 + }, 1224 + "html+razor": { 1225 + "color": "#512be4", 1226 + "extensions": [".cshtml", ".razor"] 1227 + }, 1228 + "http": { 1229 + "color": "#005c9c", 1230 + "extensions": [".http"] 1231 + }, 1232 + "hxml": { 1233 + "color": "#f68712", 1234 + "extensions": [".hxml"] 1235 + }, 1236 + "hack": { 1237 + "extensions": [".hack", ".hh", ".hhi", ".php"], 1238 + "color": "#878787" 1239 + }, 1240 + "haml": { 1241 + "color": "#ece2a9", 1242 + "extensions": [".haml", ".haml.deface"] 1243 + }, 1244 + "handlebars": { 1245 + "color": "#f7931e", 1246 + "extensions": [".handlebars", ".hbs"] 1247 + }, 1248 + "harbour": { 1249 + "color": "#0e60e3", 1250 + "extensions": [".hb"] 1251 + }, 1252 + "hare": { 1253 + "color": "#9d7424", 1254 + "extensions": [".ha"] 1255 + }, 1256 + "haskell": { 1257 + "color": "#5e5086", 1258 + "extensions": [".hs", ".hs-boot", ".hsc"] 1259 + }, 1260 + "haxe": { 1261 + "color": "#df7900", 1262 + "extensions": [".hx", ".hxsl"] 1263 + }, 1264 + "hiveql": { 1265 + "extensions": [".q", ".hql"], 1266 + "color": "#dce200" 1267 + }, 1268 + "holyc": { 1269 + "color": "#ffefaf", 1270 + "extensions": [".hc"] 1271 + }, 1272 + "hostsfile": { 1273 + "color": "#308888", 1274 + "filenames": ["hosts", "hosts", "hosts.txt"] 1275 + }, 1276 + "hurl": { 1277 + "color": "#ff0288", 1278 + "extensions": [".hurl"] 1279 + }, 1280 + "hy": { 1281 + "color": "#7790b2", 1282 + "extensions": [".hy"] 1283 + }, 1284 + "hyphy": { 1285 + "extensions": [".bf"] 1286 + }, 1287 + "idl": { 1288 + "color": "#a3522f", 1289 + "extensions": [".pro", ".dlm"] 1290 + }, 1291 + "igorpro": { 1292 + "color": "#0000cc", 1293 + "extensions": [".ipf"] 1294 + }, 1295 + "ini": { 1296 + "color": "#d1dbe0", 1297 + "extensions": [ 1298 + ".ini", 1299 + ".cfg", 1300 + ".cnf", 1301 + ".dof", 1302 + ".frm", 1303 + ".lektorproject", 1304 + ".prefs", 1305 + ".pro", 1306 + ".properties", 1307 + ".url" 1308 + ], 1309 + "filenames": [ 1310 + ".buckconfig", 1311 + ".coveragerc", 1312 + ".flake8", 1313 + ".pylintrc", 1314 + "hosts", 1315 + "buildozer.spec", 1316 + "hosts", 1317 + "pylintrc", 1318 + "vlcrc" 1319 + ] 1320 + }, 1321 + "irclog": { 1322 + "extensions": [".irclog", ".weechatlog"] 1323 + }, 1324 + "ispc": { 1325 + "color": "#2d68b1", 1326 + "extensions": [".ispc"] 1327 + }, 1328 + "idris": { 1329 + "color": "#b30000", 1330 + "extensions": [".idr", ".lidr"] 1331 + }, 1332 + "ignorelist": { 1333 + "color": "#000000", 1334 + "extensions": [".gitignore"], 1335 + "filenames": [ 1336 + ".atomignore", 1337 + ".babelignore", 1338 + ".bzrignore", 1339 + ".coffeelintignore", 1340 + ".cvsignore", 1341 + ".dockerignore", 1342 + ".easignore", 1343 + ".eleventyignore", 1344 + ".eslintignore", 1345 + ".gitignore", 1346 + ".ignore", 1347 + ".markdownlintignore", 1348 + ".nodemonignore", 1349 + ".npmignore", 1350 + ".prettierignore", 1351 + ".stylelintignore", 1352 + ".vercelignore", 1353 + ".vscodeignore", 1354 + "gitignore-global", 1355 + "gitignore_global" 1356 + ] 1357 + }, 1358 + "imagejmacro": { 1359 + "color": "#99aaff", 1360 + "extensions": [".ijm"] 1361 + }, 1362 + "imba": { 1363 + "color": "#16cec6", 1364 + "extensions": [".imba"] 1365 + }, 1366 + "inform 7": { 1367 + "extensions": [".ni", ".i7x"] 1368 + }, 1369 + "ink": { 1370 + "extensions": [".ink"] 1371 + }, 1372 + "innosetup": { 1373 + "color": "#264b99", 1374 + "extensions": [".iss", ".isl"] 1375 + }, 1376 + "io": { 1377 + "color": "#a9188d", 1378 + "extensions": [".io"] 1379 + }, 1380 + "ioke": { 1381 + "color": "#078193", 1382 + "extensions": [".ik"] 1383 + }, 1384 + "isabelle": { 1385 + "color": "#fefe00", 1386 + "extensions": [".thy"] 1387 + }, 1388 + "isabelleroot": { 1389 + "color": "#fefe00", 1390 + "filenames": ["root"] 1391 + }, 1392 + "j": { 1393 + "color": "#9eedff", 1394 + "extensions": [".ijs"] 1395 + }, 1396 + "jarmanifest": { 1397 + "color": "#b07219", 1398 + "filenames": ["manifest.mf"] 1399 + }, 1400 + "jcl": { 1401 + "color": "#d90e09", 1402 + "extensions": [".jcl"] 1403 + }, 1404 + "jflex": { 1405 + "color": "#dbca00", 1406 + "extensions": [".flex", ".jflex"] 1407 + }, 1408 + "json": { 1409 + "color": "#292929", 1410 + "extensions": [ 1411 + ".json", 1412 + ".4dform", 1413 + ".4dproject", 1414 + ".avsc", 1415 + ".geojson", 1416 + ".gltf", 1417 + ".har", 1418 + ".ice", 1419 + ".json-tmlanguage", 1420 + ".json.example", 1421 + ".jsonl", 1422 + ".mcmeta", 1423 + ".sarif", 1424 + ".tact", 1425 + ".tfstate", 1426 + ".tfstate.backup", 1427 + ".topojson", 1428 + ".webapp", 1429 + ".webmanifest", 1430 + ".yy", 1431 + ".yyp" 1432 + ], 1433 + "filenames": [ 1434 + ".all-contributorsrc", 1435 + ".arcconfig", 1436 + ".auto-changelog", 1437 + ".c8rc", 1438 + ".htmlhintrc", 1439 + ".imgbotconfig", 1440 + ".nycrc", 1441 + ".tern-config", 1442 + ".tern-project", 1443 + ".watchmanconfig", 1444 + "module.bazel.lock", 1445 + "package.resolved", 1446 + "pipfile.lock", 1447 + "bun.lock", 1448 + "composer.lock", 1449 + "deno.lock", 1450 + "flake.lock", 1451 + "mcmod.info" 1452 + ] 1453 + }, 1454 + "jsonwithcomments": { 1455 + "color": "#292929", 1456 + "extensions": [ 1457 + ".jsonc", 1458 + ".code-snippets", 1459 + ".code-workspace", 1460 + ".sublime-build", 1461 + ".sublime-color-scheme", 1462 + ".sublime-commands", 1463 + ".sublime-completions", 1464 + ".sublime-keymap", 1465 + ".sublime-macro", 1466 + ".sublime-menu", 1467 + ".sublime-mousemap", 1468 + ".sublime-project", 1469 + ".sublime-settings", 1470 + ".sublime-theme", 1471 + ".sublime-workspace", 1472 + ".sublime_metrics", 1473 + ".sublime_session" 1474 + ], 1475 + "filenames": [ 1476 + ".babelrc", 1477 + ".devcontainer.json", 1478 + ".eslintrc.json", 1479 + ".jscsrc", 1480 + ".jshintrc", 1481 + ".jslintrc", 1482 + ".swcrc", 1483 + "api-extractor.json", 1484 + "devcontainer.json", 1485 + "jsconfig.json", 1486 + "language-configuration.json", 1487 + "tsconfig.json", 1488 + "tslint.json" 1489 + ] 1490 + }, 1491 + "json5": { 1492 + "color": "#267cb9", 1493 + "extensions": [".json5"] 1494 + }, 1495 + "jsonld": { 1496 + "color": "#0c479c", 1497 + "extensions": [".jsonld"] 1498 + }, 1499 + "jsoniq": { 1500 + "color": "#40d47e", 1501 + "extensions": [".jq"] 1502 + }, 1503 + "jai": { 1504 + "color": "#ab8b4b", 1505 + "extensions": [".jai"] 1506 + }, 1507 + "janet": { 1508 + "color": "#0886a5", 1509 + "extensions": [".janet"] 1510 + }, 1511 + "jasmin": { 1512 + "color": "#d03600", 1513 + "extensions": [".j"] 1514 + }, 1515 + "java": { 1516 + "color": "#b07219", 1517 + "extensions": [".java", ".jav", ".jsh"] 1518 + }, 1519 + "javaproperties": { 1520 + "color": "#2a6277", 1521 + "extensions": [".properties"] 1522 + }, 1523 + "javaserverpages": { 1524 + "color": "#2a6277", 1525 + "extensions": [".jsp", ".tag"] 1526 + }, 1527 + "javatemplateengine": { 1528 + "color": "#2a6277", 1529 + "extensions": [".jte"] 1530 + }, 1531 + "javascript": { 1532 + "color": "#f1e05a", 1533 + "extensions": [ 1534 + ".js", 1535 + "._js", 1536 + ".bones", 1537 + ".cjs", 1538 + ".es", 1539 + ".es6", 1540 + ".frag", 1541 + ".gs", 1542 + ".jake", 1543 + ".javascript", 1544 + ".jsb", 1545 + ".jscad", 1546 + ".jsfl", 1547 + ".jslib", 1548 + ".jsm", 1549 + ".jspre", 1550 + ".jss", 1551 + ".jsx", 1552 + ".mjs", 1553 + ".njs", 1554 + ".pac", 1555 + ".sjs", 1556 + ".ssjs", 1557 + ".xsjs", 1558 + ".xsjslib" 1559 + ], 1560 + "filenames": ["jakefile"] 1561 + }, 1562 + "javascript+erb": { 1563 + "color": "#f1e05a", 1564 + "extensions": [".js.erb"] 1565 + }, 1566 + "jestsnapshot": { 1567 + "color": "#15c213", 1568 + "extensions": [".snap"] 1569 + }, 1570 + "jetbrainsmps": { 1571 + "color": "#21d789", 1572 + "extensions": [".mps", ".mpl", ".msd"] 1573 + }, 1574 + "jinja": { 1575 + "color": "#a52a22", 1576 + "extensions": [".jinja", ".j2", ".jinja2"] 1577 + }, 1578 + "jison": { 1579 + "color": "#56b3cb", 1580 + "extensions": [".jison"] 1581 + }, 1582 + "jisonlex": { 1583 + "color": "#56b3cb", 1584 + "extensions": [".jisonlex"] 1585 + }, 1586 + "jolie": { 1587 + "extensions": [".ol", ".iol"], 1588 + "color": "#843179" 1589 + }, 1590 + "jsonnet": { 1591 + "color": "#0064bd", 1592 + "extensions": [".jsonnet", ".libsonnet"] 1593 + }, 1594 + "julia": { 1595 + "extensions": [".jl"], 1596 + "color": "#a270ba" 1597 + }, 1598 + "juliarepl": { 1599 + "color": "#a270ba" 1600 + }, 1601 + "jupyternotebook": { 1602 + "color": "#da5b0b", 1603 + "extensions": [".ipynb"], 1604 + "filenames": ["notebook"] 1605 + }, 1606 + "just": { 1607 + "color": "#384d54", 1608 + "filenames": [ 1609 + ".justfile", 1610 + ".justfile", 1611 + ".justfile", 1612 + "justfile", 1613 + "justfile", 1614 + "justfile" 1615 + ], 1616 + "extensions": [".just"] 1617 + }, 1618 + "kdl": { 1619 + "color": "#ffb3b3", 1620 + "extensions": [".kdl"] 1621 + }, 1622 + "krl": { 1623 + "color": "#28430a", 1624 + "extensions": [".krl"] 1625 + }, 1626 + "kaitaistruct": { 1627 + "color": "#773b37", 1628 + "extensions": [".ksy"] 1629 + }, 1630 + "kakounescript": { 1631 + "color": "#6f8042", 1632 + "extensions": [".kak"], 1633 + "filenames": ["kakrc"] 1634 + }, 1635 + "kerboscript": { 1636 + "extensions": [".ks"], 1637 + "color": "#41adf0" 1638 + }, 1639 + "kicadlayout": { 1640 + "color": "#2f4aab", 1641 + "extensions": [".kicad_pcb", ".kicad_mod", ".kicad_wks"], 1642 + "filenames": ["fp-lib-table"] 1643 + }, 1644 + "kicadlegacylayout": { 1645 + "color": "#2f4aab", 1646 + "extensions": [".brd"] 1647 + }, 1648 + "kicadschematic": { 1649 + "color": "#2f4aab", 1650 + "extensions": [".kicad_sch", ".kicad_sym", ".sch"] 1651 + }, 1652 + "kickstart": { 1653 + "extensions": [".ks"] 1654 + }, 1655 + "kit": { 1656 + "extensions": [".kit"] 1657 + }, 1658 + "kolmafiaash": { 1659 + "color": "#b9d9b9", 1660 + "extensions": [".ash"] 1661 + }, 1662 + "koka": { 1663 + "extensions": [".kk"], 1664 + "color": "#215166" 1665 + }, 1666 + "kotlin": { 1667 + "color": "#a97bff", 1668 + "extensions": [".kt", ".ktm", ".kts"] 1669 + }, 1670 + "kusto": { 1671 + "extensions": [".csl", ".kql"] 1672 + }, 1673 + "lfe": { 1674 + "color": "#4c3023", 1675 + "extensions": [".lfe"] 1676 + }, 1677 + "llvm": { 1678 + "extensions": [".ll"], 1679 + "color": "#185619" 1680 + }, 1681 + "lolcode": { 1682 + "extensions": [".lol"], 1683 + "color": "#cc9900" 1684 + }, 1685 + "lsl": { 1686 + "extensions": [".lsl", ".lslp"], 1687 + "color": "#3d9970" 1688 + }, 1689 + "ltspicesymbol": { 1690 + "extensions": [".asy"] 1691 + }, 1692 + "labview": { 1693 + "color": "#fede06", 1694 + "extensions": [".lvproj", ".lvclass", ".lvlib"] 1695 + }, 1696 + "lark": { 1697 + "color": "#2980b9", 1698 + "extensions": [".lark"] 1699 + }, 1700 + "lasso": { 1701 + "color": "#999999", 1702 + "extensions": [".lasso", ".las", ".lasso8", ".lasso9"] 1703 + }, 1704 + "latte": { 1705 + "color": "#f2a542", 1706 + "extensions": [".latte"] 1707 + }, 1708 + "lean": { 1709 + "extensions": [".lean", ".hlean"] 1710 + }, 1711 + "lean 4": { 1712 + "extensions": [".lean"] 1713 + }, 1714 + "leo": { 1715 + "color": "#c4ffc2", 1716 + "extensions": [".leo"] 1717 + }, 1718 + "less": { 1719 + "color": "#1d365d", 1720 + "extensions": [".less"] 1721 + }, 1722 + "lex": { 1723 + "color": "#dbca00", 1724 + "extensions": [".l", ".lex"], 1725 + "filenames": ["lexer.x", "lexer.x"] 1726 + }, 1727 + "ligolang": { 1728 + "color": "#0e74ff", 1729 + "extensions": [".ligo"] 1730 + }, 1731 + "lilypond": { 1732 + "color": "#9ccc7c", 1733 + "extensions": [".ly", ".ily"] 1734 + }, 1735 + "limbo": { 1736 + "extensions": [".b", ".m"] 1737 + }, 1738 + "linearprogramming": { 1739 + "extensions": [".lp"] 1740 + }, 1741 + "linkerscript": { 1742 + "extensions": [".ld", ".lds", ".x"], 1743 + "filenames": ["ld.script"] 1744 + }, 1745 + "linuxkernelmodule": { 1746 + "extensions": [".mod"] 1747 + }, 1748 + "liquid": { 1749 + "color": "#67b8de", 1750 + "extensions": [".liquid"] 1751 + }, 1752 + "literateagda": { 1753 + "color": "#315665", 1754 + "extensions": [".lagda"] 1755 + }, 1756 + "literatecoffeescript": { 1757 + "color": "#244776", 1758 + "extensions": [".litcoffee", ".coffee.md"] 1759 + }, 1760 + "literatehaskell": { 1761 + "color": "#5e5086", 1762 + "extensions": [".lhs"] 1763 + }, 1764 + "livecodescript": { 1765 + "color": "#0c5ba5", 1766 + "extensions": [".livecodescript"] 1767 + }, 1768 + "livescript": { 1769 + "color": "#499886", 1770 + "extensions": [".ls", "._ls"], 1771 + "filenames": ["slakefile"] 1772 + }, 1773 + "logos": { 1774 + "extensions": [".xm", ".x", ".xi"] 1775 + }, 1776 + "logtalk": { 1777 + "color": "#295b9a", 1778 + "extensions": [".lgt", ".logtalk"] 1779 + }, 1780 + "lookml": { 1781 + "color": "#652b81", 1782 + "extensions": [".lkml", ".lookml"] 1783 + }, 1784 + "loomscript": { 1785 + "extensions": [".ls"] 1786 + }, 1787 + "lua": { 1788 + "color": "#000080", 1789 + "extensions": [ 1790 + ".lua", 1791 + ".fcgi", 1792 + ".nse", 1793 + ".p8", 1794 + ".pd_lua", 1795 + ".rbxs", 1796 + ".rockspec", 1797 + ".wlua" 1798 + ], 1799 + "filenames": [".luacheckrc"] 1800 + }, 1801 + "luau": { 1802 + "color": "#00a2ff", 1803 + "extensions": [".luau"] 1804 + }, 1805 + "m": { 1806 + "extensions": [".mumps", ".m"] 1807 + }, 1808 + "m3u": { 1809 + "extensions": [".m3u", ".m3u8"], 1810 + "color": "#179c7d" 1811 + }, 1812 + "m4": { 1813 + "extensions": [".m4", ".mc"] 1814 + }, 1815 + "m4sugar": { 1816 + "extensions": [".m4"], 1817 + "filenames": ["configure.ac"] 1818 + }, 1819 + "matlab": { 1820 + "color": "#e16737", 1821 + "extensions": [".matlab", ".m"] 1822 + }, 1823 + "maxscript": { 1824 + "color": "#00a6a6", 1825 + "extensions": [".ms", ".mcr"] 1826 + }, 1827 + "mdx": { 1828 + "color": "#fcb32c", 1829 + "extensions": [".mdx"] 1830 + }, 1831 + "mlir": { 1832 + "color": "#5ec8db", 1833 + "extensions": [".mlir"] 1834 + }, 1835 + "mql4": { 1836 + "color": "#62a8d6", 1837 + "extensions": [".mq4", ".mqh"] 1838 + }, 1839 + "mql5": { 1840 + "color": "#4a76b8", 1841 + "extensions": [".mq5", ".mqh"] 1842 + }, 1843 + "mtml": { 1844 + "color": "#b7e1f4", 1845 + "extensions": [".mtml"] 1846 + }, 1847 + "muf": { 1848 + "extensions": [".muf", ".m"] 1849 + }, 1850 + "macaulay2": { 1851 + "extensions": [".m2"], 1852 + "color": "#d8ffff" 1853 + }, 1854 + "makefile": { 1855 + "color": "#427819", 1856 + "extensions": [".mak", ".d", ".make", ".makefile", ".mk", ".mkfile"], 1857 + "filenames": [ 1858 + "bsdmakefile", 1859 + "gnumakefile", 1860 + "kbuild", 1861 + "makefile", 1862 + "makefile.am", 1863 + "makefile.boot", 1864 + "makefile.frag", 1865 + "makefile.in", 1866 + "makefile.inc", 1867 + "makefile.wat", 1868 + "makefile", 1869 + "makefile.sco", 1870 + "mkfile" 1871 + ] 1872 + }, 1873 + "mako": { 1874 + "color": "#7e858d", 1875 + "extensions": [".mako", ".mao"] 1876 + }, 1877 + "markdown": { 1878 + "color": "#083fa1", 1879 + "extensions": [ 1880 + ".md", 1881 + ".livemd", 1882 + ".markdown", 1883 + ".mdown", 1884 + ".mdwn", 1885 + ".mkd", 1886 + ".mkdn", 1887 + ".mkdown", 1888 + ".ronn", 1889 + ".scd", 1890 + ".workbook" 1891 + ], 1892 + "filenames": ["contents.lr"] 1893 + }, 1894 + "marko": { 1895 + "color": "#42bff2", 1896 + "extensions": [".marko"] 1897 + }, 1898 + "mask": { 1899 + "color": "#f97732", 1900 + "extensions": [".mask"] 1901 + }, 1902 + "mavenpom": { 1903 + "filenames": ["pom.xml"] 1904 + }, 1905 + "max": { 1906 + "color": "#c4a79c", 1907 + "extensions": [".maxpat", ".maxhelp", ".maxproj", ".mxt", ".pat"] 1908 + }, 1909 + "mercury": { 1910 + "color": "#ff2b2b", 1911 + "extensions": [".m", ".moo"] 1912 + }, 1913 + "mermaid": { 1914 + "color": "#ff3670", 1915 + "extensions": [".mmd", ".mermaid"] 1916 + }, 1917 + "meson": { 1918 + "color": "#007800", 1919 + "filenames": ["meson.build", "meson_options.txt"] 1920 + }, 1921 + "metal": { 1922 + "color": "#8f14e9", 1923 + "extensions": [".metal"] 1924 + }, 1925 + "microsoftdeveloperstudioproject": { 1926 + "extensions": [".dsp"] 1927 + }, 1928 + "microsoftvisualstudiosolution": { 1929 + "extensions": [".sln"] 1930 + }, 1931 + "minid": { 1932 + "extensions": [".minid"] 1933 + }, 1934 + "miniyaml": { 1935 + "color": "#ff1111", 1936 + "extensions": [".yaml", ".yml"] 1937 + }, 1938 + "minizinc": { 1939 + "color": "#06a9e6", 1940 + "extensions": [".mzn"] 1941 + }, 1942 + "minizincdata": { 1943 + "extensions": [".dzn"] 1944 + }, 1945 + "mint": { 1946 + "extensions": [".mint"], 1947 + "color": "#02b046" 1948 + }, 1949 + "mirah": { 1950 + "color": "#c7a938", 1951 + "extensions": [".druby", ".duby", ".mirah"] 1952 + }, 1953 + "modelica": { 1954 + "color": "#de1d31", 1955 + "extensions": [".mo"] 1956 + }, 1957 + "modula-2": { 1958 + "color": "#10253f", 1959 + "extensions": [".mod"] 1960 + }, 1961 + "modula-3": { 1962 + "extensions": [".i3", ".ig", ".m3", ".mg"], 1963 + "color": "#223388" 1964 + }, 1965 + "modulemanagementsystem": { 1966 + "extensions": [".mms", ".mmk"], 1967 + "filenames": ["descrip.mmk", "descrip.mms"] 1968 + }, 1969 + "mojo": { 1970 + "color": "#ff4c1f", 1971 + "extensions": [".mojo"] 1972 + }, 1973 + "monkey": { 1974 + "extensions": [".monkey", ".monkey2"] 1975 + }, 1976 + "monkeyc": { 1977 + "color": "#8d6747", 1978 + "extensions": [".mc"] 1979 + }, 1980 + "moocode": { 1981 + "extensions": [".moo"] 1982 + }, 1983 + "moonbit": { 1984 + "color": "#b92381", 1985 + "extensions": [".mbt"] 1986 + }, 1987 + "moonscript": { 1988 + "color": "#ff4585", 1989 + "extensions": [".moon"] 1990 + }, 1991 + "motoko": { 1992 + "color": "#fbb03b", 1993 + "extensions": [".mo"] 1994 + }, 1995 + "motorola 68kassembly": { 1996 + "color": "#005daa", 1997 + "extensions": [".asm", ".i", ".inc", ".s", ".x68"] 1998 + }, 1999 + "move": { 2000 + "color": "#4a137a", 2001 + "extensions": [".move"] 2002 + }, 2003 + "muse": { 2004 + "extensions": [".muse"] 2005 + }, 2006 + "mustache": { 2007 + "color": "#724b3b", 2008 + "extensions": [".mustache"] 2009 + }, 2010 + "myghty": { 2011 + "extensions": [".myt"] 2012 + }, 2013 + "nasl": { 2014 + "extensions": [".nasl", ".inc"] 2015 + }, 2016 + "ncl": { 2017 + "color": "#28431f", 2018 + "extensions": [".ncl"] 2019 + }, 2020 + "neon": { 2021 + "extensions": [".neon"] 2022 + }, 2023 + "nl": { 2024 + "extensions": [".nl"] 2025 + }, 2026 + "nmodl": { 2027 + "color": "#00356b", 2028 + "extensions": [".mod"] 2029 + }, 2030 + "npmconfig": { 2031 + "color": "#cb3837", 2032 + "filenames": [".npmrc"] 2033 + }, 2034 + "nsis": { 2035 + "extensions": [".nsi", ".nsh"] 2036 + }, 2037 + "nwscript": { 2038 + "color": "#111522", 2039 + "extensions": [".nss"] 2040 + }, 2041 + "nasal": { 2042 + "color": "#1d2c4e", 2043 + "extensions": [".nas"] 2044 + }, 2045 + "nearley": { 2046 + "color": "#990000", 2047 + "extensions": [".ne", ".nearley"] 2048 + }, 2049 + "nemerle": { 2050 + "color": "#3d3c6e", 2051 + "extensions": [".n"] 2052 + }, 2053 + "netlinx": { 2054 + "color": "#0aa0ff", 2055 + "extensions": [".axs", ".axi"] 2056 + }, 2057 + "netlinx+erb": { 2058 + "color": "#747faa", 2059 + "extensions": [".axs.erb", ".axi.erb"] 2060 + }, 2061 + "netlogo": { 2062 + "color": "#ff6375", 2063 + "extensions": [".nlogo"] 2064 + }, 2065 + "newlisp": { 2066 + "color": "#87aed7", 2067 + "extensions": [".nl", ".lisp", ".lsp"] 2068 + }, 2069 + "nextflow": { 2070 + "color": "#3ac486", 2071 + "extensions": [".nf"], 2072 + "filenames": ["nextflow.config"] 2073 + }, 2074 + "nginx": { 2075 + "color": "#009639", 2076 + "extensions": [".nginx", ".nginxconf", ".vhost"], 2077 + "filenames": ["nginx.conf"] 2078 + }, 2079 + "nickel": { 2080 + "color": "#e0c3fc", 2081 + "extensions": [".ncl"] 2082 + }, 2083 + "nim": { 2084 + "color": "#ffc200", 2085 + "extensions": [".nim", ".nim.cfg", ".nimble", ".nimrod", ".nims"], 2086 + "filenames": ["nim.cfg"] 2087 + }, 2088 + "ninja": { 2089 + "extensions": [".ninja"] 2090 + }, 2091 + "nit": { 2092 + "color": "#009917", 2093 + "extensions": [".nit"] 2094 + }, 2095 + "nix": { 2096 + "color": "#7e7eff", 2097 + "extensions": [".nix"] 2098 + }, 2099 + "noir": { 2100 + "extensions": [".nr"], 2101 + "color": "#2f1f49" 2102 + }, 2103 + "nu": { 2104 + "color": "#c9df40", 2105 + "extensions": [".nu"], 2106 + "filenames": ["nukefile"] 2107 + }, 2108 + "numpy": { 2109 + "color": "#9c8af9", 2110 + "extensions": [".numpy", ".numpyw", ".numsc"] 2111 + }, 2112 + "nunjucks": { 2113 + "color": "#3d8137", 2114 + "extensions": [".njk"] 2115 + }, 2116 + "nushell": { 2117 + "color": "#4e9906", 2118 + "extensions": [".nu"] 2119 + }, 2120 + "ocaml": { 2121 + "color": "#ef7a08", 2122 + "extensions": [".ml", ".eliom", ".eliomi", ".ml4", ".mli", ".mll", ".mly"] 2123 + }, 2124 + "omnet++msg": { 2125 + "extensions": [".msg"], 2126 + "color": "#a0e0a0" 2127 + }, 2128 + "omnet++ned": { 2129 + "extensions": [".ned"], 2130 + "color": "#08607c" 2131 + }, 2132 + "oberon": { 2133 + "extensions": [".ob2"] 2134 + }, 2135 + "objdump": { 2136 + "extensions": [".objdump"] 2137 + }, 2138 + "objectdatainstancenotation": { 2139 + "extensions": [".odin"] 2140 + }, 2141 + "objectscript": { 2142 + "extensions": [".cls"], 2143 + "color": "#424893" 2144 + }, 2145 + "objective-c": { 2146 + "color": "#438eff", 2147 + "extensions": [".m", ".h"] 2148 + }, 2149 + "objective-c++": { 2150 + "color": "#6866fb", 2151 + "extensions": [".mm"] 2152 + }, 2153 + "objective-j": { 2154 + "color": "#ff0c5a", 2155 + "extensions": [".j", ".sj"] 2156 + }, 2157 + "odin": { 2158 + "color": "#60affe", 2159 + "extensions": [".odin"] 2160 + }, 2161 + "omgrofl": { 2162 + "extensions": [".omgrofl"], 2163 + "color": "#cabbff" 2164 + }, 2165 + "opa": { 2166 + "extensions": [".opa"] 2167 + }, 2168 + "opal": { 2169 + "color": "#f7ede0", 2170 + "extensions": [".opal"] 2171 + }, 2172 + "openpolicyagent": { 2173 + "color": "#7d9199", 2174 + "extensions": [".rego"] 2175 + }, 2176 + "openapispecificationv2": { 2177 + "color": "#85ea2d" 2178 + }, 2179 + "openapispecificationv3": { 2180 + "color": "#85ea2d" 2181 + }, 2182 + "opencl": { 2183 + "color": "#ed2e2d", 2184 + "extensions": [".cl", ".opencl"] 2185 + }, 2186 + "openedgeabl": { 2187 + "color": "#5ce600", 2188 + "extensions": [".p", ".cls", ".w"] 2189 + }, 2190 + "openqasm": { 2191 + "extensions": [".qasm"], 2192 + "color": "#aa70ff" 2193 + }, 2194 + "openrcrunscript": {}, 2195 + "openscad": { 2196 + "color": "#e5cd45", 2197 + "extensions": [".scad"] 2198 + }, 2199 + "opensteppropertylist": { 2200 + "extensions": [".plist", ".glyphs"] 2201 + }, 2202 + "opentypefeaturefile": { 2203 + "extensions": [".fea"] 2204 + }, 2205 + "optionlist": { 2206 + "color": "#476732", 2207 + "filenames": [".ackrc", ".rspec", ".yardopts", "ackrc", "mocha.opts"] 2208 + }, 2209 + "org": { 2210 + "color": "#77aa99", 2211 + "extensions": [".org"] 2212 + }, 2213 + "overpassql": { 2214 + "color": "#cce2aa", 2215 + "extensions": [".overpassql"] 2216 + }, 2217 + "ox": { 2218 + "extensions": [".ox", ".oxh", ".oxo"] 2219 + }, 2220 + "oxygene": { 2221 + "color": "#cdd0e3", 2222 + "extensions": [".oxygene"] 2223 + }, 2224 + "oz": { 2225 + "color": "#fab738", 2226 + "extensions": [".oz"] 2227 + }, 2228 + "p4": { 2229 + "color": "#7055b5", 2230 + "extensions": [".p4"] 2231 + }, 2232 + "pddl": { 2233 + "color": "#0d00ff", 2234 + "extensions": [".pddl"] 2235 + }, 2236 + "peg.js": { 2237 + "color": "#234d6b", 2238 + "extensions": [".pegjs", ".peggy"] 2239 + }, 2240 + "php": { 2241 + "color": "#4f5d95", 2242 + "extensions": [ 2243 + ".php", 2244 + ".aw", 2245 + ".ctp", 2246 + ".fcgi", 2247 + ".inc", 2248 + ".php3", 2249 + ".php4", 2250 + ".php5", 2251 + ".phps", 2252 + ".phpt" 2253 + ], 2254 + "filenames": [".php", ".php_cs", ".php_cs.dist", "phakefile"] 2255 + }, 2256 + "plsql": { 2257 + "color": "#dad8d8", 2258 + "extensions": [ 2259 + ".pls", 2260 + ".bdy", 2261 + ".ddl", 2262 + ".fnc", 2263 + ".pck", 2264 + ".pkb", 2265 + ".pks", 2266 + ".plb", 2267 + ".plsql", 2268 + ".prc", 2269 + ".spc", 2270 + ".sql", 2271 + ".tpb", 2272 + ".tps", 2273 + ".trg", 2274 + ".vw" 2275 + ] 2276 + }, 2277 + "plpgsql": { 2278 + "color": "#336790", 2279 + "extensions": [".pgsql", ".sql"] 2280 + }, 2281 + "pov-raysdl": { 2282 + "color": "#6bac65", 2283 + "extensions": [".pov", ".inc"] 2284 + }, 2285 + "pact": { 2286 + "color": "#f7a8b8", 2287 + "extensions": [".pact"] 2288 + }, 2289 + "pan": { 2290 + "color": "#cc0000", 2291 + "extensions": [".pan"] 2292 + }, 2293 + "papyrus": { 2294 + "color": "#6600cc", 2295 + "extensions": [".psc"] 2296 + }, 2297 + "parrot": { 2298 + "color": "#f3ca0a", 2299 + "extensions": [".parrot"] 2300 + }, 2301 + "parrotassembly": { 2302 + "extensions": [".pasm"] 2303 + }, 2304 + "parrotinternalrepresentation": { 2305 + "extensions": [".pir"] 2306 + }, 2307 + "pascal": { 2308 + "color": "#e3f171", 2309 + "extensions": [".pas", ".dfm", ".dpr", ".inc", ".lpr", ".pascal", ".pp"] 2310 + }, 2311 + "pawn": { 2312 + "color": "#dbb284", 2313 + "extensions": [".pwn", ".inc", ".sma"] 2314 + }, 2315 + "pep8": { 2316 + "color": "#c76f5b", 2317 + "extensions": [".pep"] 2318 + }, 2319 + "perl": { 2320 + "color": "#0298c3", 2321 + "extensions": [ 2322 + ".pl", 2323 + ".al", 2324 + ".cgi", 2325 + ".fcgi", 2326 + ".perl", 2327 + ".ph", 2328 + ".plx", 2329 + ".pm", 2330 + ".psgi", 2331 + ".t" 2332 + ], 2333 + "filenames": [ 2334 + ".latexmkrc", 2335 + "makefile.pl", 2336 + "rexfile", 2337 + "ack", 2338 + "cpanfile", 2339 + "latexmkrc" 2340 + ] 2341 + }, 2342 + "pic": { 2343 + "extensions": [".pic", ".chem"] 2344 + }, 2345 + "pickle": { 2346 + "extensions": [".pkl"] 2347 + }, 2348 + "picolisp": { 2349 + "color": "#6067af", 2350 + "extensions": [".l"] 2351 + }, 2352 + "piglatin": { 2353 + "color": "#fcd7de", 2354 + "extensions": [".pig"] 2355 + }, 2356 + "pike": { 2357 + "color": "#005390", 2358 + "extensions": [".pike", ".pmod"] 2359 + }, 2360 + "piprequirements": { 2361 + "color": "#ffd343", 2362 + "filenames": [ 2363 + "requirements-dev.txt", 2364 + "requirements.lock.txt", 2365 + "requirements.txt" 2366 + ] 2367 + }, 2368 + "pkl": { 2369 + "color": "#6b9543", 2370 + "extensions": [".pkl"] 2371 + }, 2372 + "plantuml": { 2373 + "color": "#fbbd16", 2374 + "extensions": [".puml", ".iuml", ".plantuml"] 2375 + }, 2376 + "pod": { 2377 + "extensions": [".pod"] 2378 + }, 2379 + "pod 6": { 2380 + "extensions": [".pod", ".pod6"] 2381 + }, 2382 + "pogoscript": { 2383 + "color": "#d80074", 2384 + "extensions": [".pogo"] 2385 + }, 2386 + "polar": { 2387 + "color": "#ae81ff", 2388 + "extensions": [".polar"] 2389 + }, 2390 + "pony": { 2391 + "extensions": [".pony"] 2392 + }, 2393 + "portugol": { 2394 + "color": "#f8bd00", 2395 + "extensions": [".por"] 2396 + }, 2397 + "postcss": { 2398 + "color": "#dc3a0c", 2399 + "extensions": [".pcss", ".postcss"] 2400 + }, 2401 + "postscript": { 2402 + "color": "#da291c", 2403 + "extensions": [".ps", ".eps", ".epsi", ".pfa"] 2404 + }, 2405 + "powerbuilder": { 2406 + "color": "#8f0f8d", 2407 + "extensions": [".pbt", ".sra", ".sru", ".srw"] 2408 + }, 2409 + "powershell": { 2410 + "color": "#012456", 2411 + "extensions": [".ps1", ".psd1", ".psm1"] 2412 + }, 2413 + "praat": { 2414 + "color": "#c8506d", 2415 + "extensions": [".praat"] 2416 + }, 2417 + "prisma": { 2418 + "color": "#0c344b", 2419 + "extensions": [".prisma"] 2420 + }, 2421 + "processing": { 2422 + "color": "#0096d8", 2423 + "extensions": [".pde"] 2424 + }, 2425 + "procfile": { 2426 + "color": "#3b2f63", 2427 + "filenames": ["procfile"] 2428 + }, 2429 + "proguard": { 2430 + "extensions": [".pro"] 2431 + }, 2432 + "prolog": { 2433 + "color": "#74283c", 2434 + "extensions": [".pl", ".plt", ".pro", ".prolog", ".yap"] 2435 + }, 2436 + "promela": { 2437 + "color": "#de0000", 2438 + "extensions": [".pml"] 2439 + }, 2440 + "propellerspin": { 2441 + "color": "#7fa2a7", 2442 + "extensions": [".spin"] 2443 + }, 2444 + "protocolbuffer": { 2445 + "extensions": [".proto"] 2446 + }, 2447 + "protocolbuffertextformat": { 2448 + "extensions": [".textproto", ".pbt", ".pbtxt"] 2449 + }, 2450 + "publickey": { 2451 + "extensions": [".asc", ".pub"] 2452 + }, 2453 + "pug": { 2454 + "color": "#a86454", 2455 + "extensions": [".jade", ".pug"] 2456 + }, 2457 + "puppet": { 2458 + "color": "#302b6d", 2459 + "extensions": [".pp"], 2460 + "filenames": ["modulefile"] 2461 + }, 2462 + "puredata": { 2463 + "extensions": [".pd"] 2464 + }, 2465 + "purebasic": { 2466 + "color": "#5a6986", 2467 + "extensions": [".pb", ".pbi"] 2468 + }, 2469 + "purescript": { 2470 + "color": "#1d222d", 2471 + "extensions": [".purs"] 2472 + }, 2473 + "pyret": { 2474 + "color": "#ee1e10", 2475 + "extensions": [".arr"] 2476 + }, 2477 + "python": { 2478 + "color": "#3572a5", 2479 + "extensions": [ 2480 + ".py", 2481 + ".cgi", 2482 + ".fcgi", 2483 + ".gyp", 2484 + ".gypi", 2485 + ".lmi", 2486 + ".py3", 2487 + ".pyde", 2488 + ".pyi", 2489 + ".pyp", 2490 + ".pyt", 2491 + ".pyw", 2492 + ".rpy", 2493 + ".spec", 2494 + ".tac", 2495 + ".wsgi", 2496 + ".xpy" 2497 + ], 2498 + "filenames": [".gclient", "deps", "sconscript", "sconstruct", "wscript"] 2499 + }, 2500 + "pythonconsole": { 2501 + "color": "#3572a5" 2502 + }, 2503 + "pythontraceback": { 2504 + "color": "#3572a5", 2505 + "extensions": [".pytb"] 2506 + }, 2507 + "q#": { 2508 + "extensions": [".qs"], 2509 + "color": "#fed659" 2510 + }, 2511 + "qml": { 2512 + "color": "#44a51c", 2513 + "extensions": [".qml", ".qbs"] 2514 + }, 2515 + "qmake": { 2516 + "extensions": [".pro", ".pri"] 2517 + }, 2518 + "qtscript": { 2519 + "extensions": [".qs"], 2520 + "filenames": ["installscript.qs", "toolchain_installscript.qs"], 2521 + "color": "#00b841" 2522 + }, 2523 + "quake": { 2524 + "filenames": ["m3makefile", "m3overrides"], 2525 + "color": "#882233" 2526 + }, 2527 + "quakec": { 2528 + "extensions": [".qc"], 2529 + "color": "#975777" 2530 + }, 2531 + "quickbasic": { 2532 + "color": "#008080", 2533 + "extensions": [".bas"] 2534 + }, 2535 + "r": { 2536 + "color": "#198ce7", 2537 + "extensions": [".r", ".rd", ".rsx"], 2538 + "filenames": [".rprofile", "expr-dist"] 2539 + }, 2540 + "raml": { 2541 + "color": "#77d9fb", 2542 + "extensions": [".raml"] 2543 + }, 2544 + "rbs": { 2545 + "extensions": [".rbs"], 2546 + "color": "#701516" 2547 + }, 2548 + "rdoc": { 2549 + "color": "#701516", 2550 + "extensions": [".rdoc"] 2551 + }, 2552 + "realbasic": { 2553 + "extensions": [ 2554 + ".rbbas", 2555 + ".rbfrm", 2556 + ".rbmnu", 2557 + ".rbres", 2558 + ".rbtbar", 2559 + ".rbuistate" 2560 + ] 2561 + }, 2562 + "rexx": { 2563 + "color": "#d90e09", 2564 + "extensions": [".rexx", ".pprx", ".rex"] 2565 + }, 2566 + "rmarkdown": { 2567 + "color": "#198ce7", 2568 + "extensions": [".qmd", ".rmd"] 2569 + }, 2570 + "ron": { 2571 + "color": "#a62c00", 2572 + "extensions": [".ron"] 2573 + }, 2574 + "rosinterface": { 2575 + "color": "#22314e", 2576 + "extensions": [".msg", ".action", ".srv"] 2577 + }, 2578 + "rpc": { 2579 + "extensions": [".x"] 2580 + }, 2581 + "rpgle": { 2582 + "color": "#2bde21", 2583 + "extensions": [".rpgle", ".sqlrpgle"] 2584 + }, 2585 + "rpmspec": { 2586 + "extensions": [".spec"] 2587 + }, 2588 + "runoff": { 2589 + "color": "#665a4e", 2590 + "extensions": [".rnh", ".rno"] 2591 + }, 2592 + "racket": { 2593 + "color": "#3c5caa", 2594 + "extensions": [".rkt", ".rktd", ".rktl", ".scrbl"] 2595 + }, 2596 + "ragel": { 2597 + "color": "#9d5200", 2598 + "extensions": [".rl"] 2599 + }, 2600 + "raku": { 2601 + "color": "#0000fb", 2602 + "extensions": [ 2603 + ".6pl", 2604 + ".6pm", 2605 + ".nqp", 2606 + ".p6", 2607 + ".p6l", 2608 + ".p6m", 2609 + ".pl", 2610 + ".pl6", 2611 + ".pm", 2612 + ".pm6", 2613 + ".raku", 2614 + ".rakumod", 2615 + ".t" 2616 + ] 2617 + }, 2618 + "rascal": { 2619 + "color": "#fffaa0", 2620 + "extensions": [".rsc"] 2621 + }, 2622 + "rawtokendata": { 2623 + "extensions": [".raw"] 2624 + }, 2625 + "rescript": { 2626 + "color": "#ed5051", 2627 + "extensions": [".res", ".resi"] 2628 + }, 2629 + "readlineconfig": { 2630 + "filenames": [".inputrc", "inputrc"] 2631 + }, 2632 + "reason": { 2633 + "color": "#ff5847", 2634 + "extensions": [".re", ".rei"] 2635 + }, 2636 + "reasonligo": { 2637 + "color": "#ff5847", 2638 + "extensions": [".religo"] 2639 + }, 2640 + "rebol": { 2641 + "color": "#358a5b", 2642 + "extensions": [".reb", ".r", ".r2", ".r3", ".rebol"] 2643 + }, 2644 + "recordjar": { 2645 + "filenames": ["language-subtag-registry.txt"], 2646 + "color": "#0673ba" 2647 + }, 2648 + "red": { 2649 + "color": "#f50000", 2650 + "extensions": [".red", ".reds"] 2651 + }, 2652 + "redcode": { 2653 + "extensions": [".cw"] 2654 + }, 2655 + "redirectrules": { 2656 + "filenames": ["_redirects"] 2657 + }, 2658 + "regularexpression": { 2659 + "color": "#009a00", 2660 + "extensions": [".regexp", ".regex"] 2661 + }, 2662 + "ren'py": { 2663 + "color": "#ff7f7f", 2664 + "extensions": [".rpy"] 2665 + }, 2666 + "renderscript": { 2667 + "extensions": [".rs", ".rsh"] 2668 + }, 2669 + "rez": { 2670 + "extensions": [".r"], 2671 + "color": "#ffdab3" 2672 + }, 2673 + "richtextformat": { 2674 + "extensions": [".rtf"] 2675 + }, 2676 + "ring": { 2677 + "color": "#2d54cb", 2678 + "extensions": [".ring"] 2679 + }, 2680 + "riot": { 2681 + "color": "#a71e49", 2682 + "extensions": [".riot"] 2683 + }, 2684 + "robotframework": { 2685 + "color": "#00c0b5", 2686 + "extensions": [".robot", ".resource"] 2687 + }, 2688 + "roc": { 2689 + "color": "#7c38f5", 2690 + "extensions": [".roc"] 2691 + }, 2692 + "rocqprover": { 2693 + "color": "#d0b68c", 2694 + "extensions": [".v", ".coq"] 2695 + }, 2696 + "roff": { 2697 + "color": "#ecdebe", 2698 + "extensions": [ 2699 + ".roff", 2700 + ".1", 2701 + ".1in", 2702 + ".1m", 2703 + ".1x", 2704 + ".2", 2705 + ".3", 2706 + ".3in", 2707 + ".3m", 2708 + ".3p", 2709 + ".3pm", 2710 + ".3qt", 2711 + ".3x", 2712 + ".4", 2713 + ".5", 2714 + ".6", 2715 + ".7", 2716 + ".8", 2717 + ".9", 2718 + ".l", 2719 + ".man", 2720 + ".mdoc", 2721 + ".me", 2722 + ".ms", 2723 + ".n", 2724 + ".nr", 2725 + ".rno", 2726 + ".tmac" 2727 + ], 2728 + "filenames": ["eqnrc", "mmn", "mmt", "troffrc", "troffrc-end"] 2729 + }, 2730 + "roffmanpage": { 2731 + "color": "#ecdebe", 2732 + "extensions": [ 2733 + ".1", 2734 + ".1in", 2735 + ".1m", 2736 + ".1x", 2737 + ".2", 2738 + ".3", 2739 + ".3in", 2740 + ".3m", 2741 + ".3p", 2742 + ".3pm", 2743 + ".3qt", 2744 + ".3x", 2745 + ".4", 2746 + ".5", 2747 + ".6", 2748 + ".7", 2749 + ".8", 2750 + ".9", 2751 + ".man", 2752 + ".mdoc" 2753 + ] 2754 + }, 2755 + "rouge": { 2756 + "color": "#cc0088", 2757 + "extensions": [".rg"] 2758 + }, 2759 + "routerosscript": { 2760 + "extensions": [".rsc"], 2761 + "color": "#de3941" 2762 + }, 2763 + "ruby": { 2764 + "color": "#701516", 2765 + "extensions": [ 2766 + ".rb", 2767 + ".builder", 2768 + ".eye", 2769 + ".fcgi", 2770 + ".gemspec", 2771 + ".god", 2772 + ".jbuilder", 2773 + ".mspec", 2774 + ".pluginspec", 2775 + ".podspec", 2776 + ".prawn", 2777 + ".rabl", 2778 + ".rake", 2779 + ".rbi", 2780 + ".rbuild", 2781 + ".rbw", 2782 + ".rbx", 2783 + ".ru", 2784 + ".ruby", 2785 + ".spec", 2786 + ".thor", 2787 + ".watchr" 2788 + ], 2789 + "filenames": [ 2790 + ".irbrc", 2791 + ".pryrc", 2792 + ".simplecov", 2793 + "appraisals", 2794 + "berksfile", 2795 + "brewfile", 2796 + "buildfile", 2797 + "capfile", 2798 + "dangerfile", 2799 + "deliverfile", 2800 + "fastfile", 2801 + "gemfile", 2802 + "guardfile", 2803 + "jarfile", 2804 + "mavenfile", 2805 + "podfile", 2806 + "puppetfile", 2807 + "rakefile", 2808 + "snapfile", 2809 + "steepfile", 2810 + "thorfile", 2811 + "vagrantfile", 2812 + "buildfile" 2813 + ] 2814 + }, 2815 + "rust": { 2816 + "color": "#dea584", 2817 + "extensions": [".rs", ".rs.in"] 2818 + }, 2819 + "sas": { 2820 + "color": "#b34936", 2821 + "extensions": [".sas"] 2822 + }, 2823 + "scss": { 2824 + "color": "#c6538c", 2825 + "extensions": [".scss"] 2826 + }, 2827 + "selinuxpolicy": { 2828 + "extensions": [".te"], 2829 + "filenames": [ 2830 + "file_contexts", 2831 + "genfs_contexts", 2832 + "initial_sids", 2833 + "port_contexts", 2834 + "security_classes" 2835 + ] 2836 + }, 2837 + "smt": { 2838 + "extensions": [".smt2", ".smt", ".z3"] 2839 + }, 2840 + "sparql": { 2841 + "color": "#0c4597", 2842 + "extensions": [".sparql", ".rq"] 2843 + }, 2844 + "sqf": { 2845 + "color": "#3f3f3f", 2846 + "extensions": [".sqf", ".hqf"] 2847 + }, 2848 + "sql": { 2849 + "color": "#e38c00", 2850 + "extensions": [ 2851 + ".sql", 2852 + ".cql", 2853 + ".ddl", 2854 + ".inc", 2855 + ".mysql", 2856 + ".prc", 2857 + ".tab", 2858 + ".udf", 2859 + ".viw" 2860 + ] 2861 + }, 2862 + "sqlpl": { 2863 + "color": "#e38c00", 2864 + "extensions": [".sql", ".db2"] 2865 + }, 2866 + "srecodetemplate": { 2867 + "color": "#348a34", 2868 + "extensions": [".srt"] 2869 + }, 2870 + "sshconfig": { 2871 + "filenames": [ 2872 + "ssh-config", 2873 + "ssh_config", 2874 + "sshconfig", 2875 + "sshconfig.snip", 2876 + "sshd-config", 2877 + "sshd_config" 2878 + ] 2879 + }, 2880 + "star": { 2881 + "extensions": [".star"] 2882 + }, 2883 + "stl": { 2884 + "color": "#373b5e", 2885 + "extensions": [".stl"] 2886 + }, 2887 + "ston": { 2888 + "extensions": [".ston"] 2889 + }, 2890 + "svg": { 2891 + "color": "#ff9900", 2892 + "extensions": [".svg"] 2893 + }, 2894 + "swig": { 2895 + "extensions": [".i", ".swg", ".swig"] 2896 + }, 2897 + "sage": { 2898 + "extensions": [".sage", ".sagews"] 2899 + }, 2900 + "sail": { 2901 + "color": "#259dd5", 2902 + "extensions": [".sail"] 2903 + }, 2904 + "saltstack": { 2905 + "color": "#646464", 2906 + "extensions": [".sls"] 2907 + }, 2908 + "sass": { 2909 + "color": "#a53b70", 2910 + "extensions": [".sass"] 2911 + }, 2912 + "scala": { 2913 + "color": "#c22d40", 2914 + "extensions": [".scala", ".kojo", ".sbt", ".sc"] 2915 + }, 2916 + "scaml": { 2917 + "color": "#bd181a", 2918 + "extensions": [".scaml"] 2919 + }, 2920 + "scenic": { 2921 + "color": "#fdc700", 2922 + "extensions": [".scenic"] 2923 + }, 2924 + "scheme": { 2925 + "color": "#1e4aec", 2926 + "extensions": [".scm", ".sch", ".sld", ".sls", ".sps", ".ss"] 2927 + }, 2928 + "scilab": { 2929 + "color": "#ca0f21", 2930 + "extensions": [".sci", ".sce", ".tst"] 2931 + }, 2932 + "self": { 2933 + "color": "#0579aa", 2934 + "extensions": [".self"] 2935 + }, 2936 + "shaderlab": { 2937 + "color": "#222c37", 2938 + "extensions": [".shader"] 2939 + }, 2940 + "shell": { 2941 + "color": "#89e051", 2942 + "extensions": [ 2943 + ".sh", 2944 + ".bash", 2945 + ".bats", 2946 + ".cgi", 2947 + ".command", 2948 + ".fcgi", 2949 + ".ksh", 2950 + ".sh.in", 2951 + ".tmux", 2952 + ".tool", 2953 + ".trigger", 2954 + ".zsh", 2955 + ".zsh-theme" 2956 + ], 2957 + "filenames": [ 2958 + ".bash_aliases", 2959 + ".bash_functions", 2960 + ".bash_history", 2961 + ".bash_logout", 2962 + ".bash_profile", 2963 + ".bashrc", 2964 + ".cshrc", 2965 + ".envrc", 2966 + ".flaskenv", 2967 + ".kshrc", 2968 + ".login", 2969 + ".profile", 2970 + ".tmux.conf", 2971 + ".xinitrc", 2972 + ".xsession", 2973 + ".zlogin", 2974 + ".zlogout", 2975 + ".zprofile", 2976 + ".zshenv", 2977 + ".zshrc", 2978 + "9fs", 2979 + "pkgbuild", 2980 + "bash_aliases", 2981 + "bash_logout", 2982 + "bash_profile", 2983 + "bashrc", 2984 + "cshrc", 2985 + "gradlew", 2986 + "kshrc", 2987 + "login", 2988 + "man", 2989 + "mvnw", 2990 + "profile", 2991 + "tmux.conf", 2992 + "xinitrc", 2993 + "xsession", 2994 + "zlogin", 2995 + "zlogout", 2996 + "zprofile", 2997 + "zshenv", 2998 + "zshrc" 2999 + ] 3000 + }, 3001 + "shellcheckconfig": { 3002 + "color": "#cecfcb", 3003 + "filenames": [".shellcheckrc"] 3004 + }, 3005 + "shellsession": { 3006 + "extensions": [".sh-session"] 3007 + }, 3008 + "shen": { 3009 + "color": "#120f14", 3010 + "extensions": [".shen"] 3011 + }, 3012 + "sieve": { 3013 + "extensions": [".sieve"] 3014 + }, 3015 + "simplefileverification": { 3016 + "color": "#c9bfed", 3017 + "extensions": [".sfv"] 3018 + }, 3019 + "singularity": { 3020 + "color": "#64e6ad", 3021 + "filenames": ["singularity"] 3022 + }, 3023 + "slang": { 3024 + "color": "#1fbec9", 3025 + "extensions": [".slang"] 3026 + }, 3027 + "slash": { 3028 + "color": "#007eff", 3029 + "extensions": [".sl"] 3030 + }, 3031 + "slice": { 3032 + "color": "#003fa2", 3033 + "extensions": [".ice"] 3034 + }, 3035 + "slim": { 3036 + "color": "#2b2b2b", 3037 + "extensions": [".slim"] 3038 + }, 3039 + "slint": { 3040 + "color": "#2379f4", 3041 + "extensions": [".slint"] 3042 + }, 3043 + "smpl": { 3044 + "extensions": [".cocci"], 3045 + "color": "#c94949" 3046 + }, 3047 + "smali": { 3048 + "extensions": [".smali"] 3049 + }, 3050 + "smalltalk": { 3051 + "color": "#596706", 3052 + "extensions": [".st", ".cs"] 3053 + }, 3054 + "smarty": { 3055 + "color": "#f0c040", 3056 + "extensions": [".tpl"] 3057 + }, 3058 + "smithy": { 3059 + "color": "#c44536", 3060 + "extensions": [".smithy"] 3061 + }, 3062 + "snakemake": { 3063 + "color": "#419179", 3064 + "extensions": [".smk", ".snakefile"], 3065 + "filenames": ["snakefile"] 3066 + }, 3067 + "solidity": { 3068 + "color": "#aa6746", 3069 + "extensions": [".sol"] 3070 + }, 3071 + "soong": { 3072 + "filenames": ["android.bp"] 3073 + }, 3074 + "sourcepawn": { 3075 + "color": "#f69e1d", 3076 + "extensions": [".sp", ".inc"] 3077 + }, 3078 + "splinefontdatabase": { 3079 + "extensions": [".sfd"] 3080 + }, 3081 + "squirrel": { 3082 + "color": "#800000", 3083 + "extensions": [".nut"] 3084 + }, 3085 + "stan": { 3086 + "color": "#b2011d", 3087 + "extensions": [".stan"] 3088 + }, 3089 + "standardml": { 3090 + "color": "#dc566d", 3091 + "extensions": [".ml", ".fun", ".sig", ".sml"] 3092 + }, 3093 + "starlark": { 3094 + "color": "#76d275", 3095 + "extensions": [".bzl", ".star"], 3096 + "filenames": [ 3097 + "buck", 3098 + "build", 3099 + "build.bazel", 3100 + "module.bazel", 3101 + "tiltfile", 3102 + "workspace", 3103 + "workspace.bazel", 3104 + "workspace.bzlmod" 3105 + ] 3106 + }, 3107 + "stata": { 3108 + "color": "#1a5f91", 3109 + "extensions": [".do", ".ado", ".doh", ".ihlp", ".mata", ".matah", ".sthlp"] 3110 + }, 3111 + "stringtemplate": { 3112 + "color": "#3fb34f", 3113 + "extensions": [".st"] 3114 + }, 3115 + "stylus": { 3116 + "color": "#ff6347", 3117 + "extensions": [".styl"] 3118 + }, 3119 + "subriptext": { 3120 + "color": "#9e0101", 3121 + "extensions": [".srt"] 3122 + }, 3123 + "sugarss": { 3124 + "color": "#2fcc9f", 3125 + "extensions": [".sss"] 3126 + }, 3127 + "supercollider": { 3128 + "color": "#46390b", 3129 + "extensions": [".sc", ".scd"] 3130 + }, 3131 + "survexdata": { 3132 + "color": "#ffcc99", 3133 + "extensions": [".svx"] 3134 + }, 3135 + "svelte": { 3136 + "color": "#ff3e00", 3137 + "extensions": [".svelte"] 3138 + }, 3139 + "sway": { 3140 + "color": "#00f58c", 3141 + "extensions": [".sw"] 3142 + }, 3143 + "sweave": { 3144 + "color": "#198ce7", 3145 + "extensions": [".rnw"] 3146 + }, 3147 + "swift": { 3148 + "color": "#f05138", 3149 + "extensions": [".swift"] 3150 + }, 3151 + "systemverilog": { 3152 + "color": "#dae1c2", 3153 + "extensions": [".sv", ".svh", ".vh"] 3154 + }, 3155 + "tiprogram": { 3156 + "color": "#a0aa87", 3157 + "extensions": [".8xp", ".8xp.txt"] 3158 + }, 3159 + "tl-verilog": { 3160 + "extensions": [".tlv"], 3161 + "color": "#c40023" 3162 + }, 3163 + "tla": { 3164 + "color": "#4b0079", 3165 + "extensions": [".tla"] 3166 + }, 3167 + "toml": { 3168 + "color": "#9c4221", 3169 + "extensions": [".toml", ".toml.example"], 3170 + "filenames": [ 3171 + "cargo.lock", 3172 + "cargo.toml.orig", 3173 + "gopkg.lock", 3174 + "pipfile", 3175 + "pdm.lock", 3176 + "poetry.lock", 3177 + "uv.lock" 3178 + ] 3179 + }, 3180 + "tsplibdata": { 3181 + "extensions": [".tsp"] 3182 + }, 3183 + "tsql": { 3184 + "color": "#e38c00", 3185 + "extensions": [".sql"] 3186 + }, 3187 + "tsv": { 3188 + "color": "#237346", 3189 + "extensions": [".tsv", ".vcf"] 3190 + }, 3191 + "tsx": { 3192 + "color": "#3178c6", 3193 + "extensions": [".tsx"] 3194 + }, 3195 + "txl": { 3196 + "color": "#0178b8", 3197 + "extensions": [".txl"] 3198 + }, 3199 + "tact": { 3200 + "color": "#48b5ff", 3201 + "extensions": [".tact"] 3202 + }, 3203 + "talon": { 3204 + "color": "#333333", 3205 + "extensions": [".talon"] 3206 + }, 3207 + "tcl": { 3208 + "color": "#e4cc98", 3209 + "extensions": [".tcl", ".adp", ".sdc", ".tcl.in", ".tm", ".xdc"], 3210 + "filenames": ["owh", "starfield"] 3211 + }, 3212 + "tcsh": { 3213 + "extensions": [".tcsh", ".csh"] 3214 + }, 3215 + "tex": { 3216 + "color": "#3d6117", 3217 + "extensions": [ 3218 + ".tex", 3219 + ".aux", 3220 + ".bbx", 3221 + ".cbx", 3222 + ".cls", 3223 + ".dtx", 3224 + ".ins", 3225 + ".lbx", 3226 + ".ltx", 3227 + ".mkii", 3228 + ".mkiv", 3229 + ".mkvi", 3230 + ".sty", 3231 + ".toc" 3232 + ] 3233 + }, 3234 + "tea": { 3235 + "extensions": [".tea"] 3236 + }, 3237 + "teal": { 3238 + "extensions": [".tl"], 3239 + "color": "#00b1bc" 3240 + }, 3241 + "terra": { 3242 + "extensions": [".t"], 3243 + "color": "#00004c" 3244 + }, 3245 + "terraformtemplate": { 3246 + "extensions": [".tftpl"], 3247 + "color": "#7b42bb" 3248 + }, 3249 + "texinfo": { 3250 + "extensions": [".texinfo", ".texi", ".txi"] 3251 + }, 3252 + "text": { 3253 + "extensions": [".txt", ".fr", ".nb", ".ncl", ".no"], 3254 + "filenames": [ 3255 + "citation", 3256 + "citations", 3257 + "copying", 3258 + "copying.regex", 3259 + "copyright.regex", 3260 + "fontlog", 3261 + "install", 3262 + "install.mysql", 3263 + "license", 3264 + "license.mysql", 3265 + "news", 3266 + "readme.me", 3267 + "readme.mysql", 3268 + "readme.nss", 3269 + "click.me", 3270 + "delete.me", 3271 + "keep.me", 3272 + "package.mask", 3273 + "package.use.mask", 3274 + "package.use.stable.mask", 3275 + "read.me", 3276 + "readme.1st", 3277 + "test.me", 3278 + "use.mask", 3279 + "use.stable.mask" 3280 + ] 3281 + }, 3282 + "textgrid": { 3283 + "color": "#c8506d", 3284 + "extensions": [".textgrid"] 3285 + }, 3286 + "textmateproperties": { 3287 + "color": "#df66e4", 3288 + "filenames": [".tm_properties"] 3289 + }, 3290 + "textile": { 3291 + "color": "#ffe7ac", 3292 + "extensions": [".textile"] 3293 + }, 3294 + "thrift": { 3295 + "color": "#d12127", 3296 + "extensions": [".thrift"] 3297 + }, 3298 + "toit": { 3299 + "color": "#c2c9fb", 3300 + "extensions": [".toit"] 3301 + }, 3302 + "torconfig": { 3303 + "color": "#59316b", 3304 + "filenames": ["torrc"] 3305 + }, 3306 + "tree-sitterquery": { 3307 + "color": "#8ea64c", 3308 + "extensions": [".scm"] 3309 + }, 3310 + "turing": { 3311 + "color": "#cf142b", 3312 + "extensions": [".t", ".tu"] 3313 + }, 3314 + "turtle": { 3315 + "extensions": [".ttl"] 3316 + }, 3317 + "twig": { 3318 + "color": "#c1d026", 3319 + "extensions": [".twig"] 3320 + }, 3321 + "typelanguage": { 3322 + "extensions": [".tl"] 3323 + }, 3324 + "typescript": { 3325 + "color": "#3178c6", 3326 + "extensions": [".ts", ".cts", ".mts"] 3327 + }, 3328 + "typespec": { 3329 + "color": "#4a3665", 3330 + "extensions": [".tsp"] 3331 + }, 3332 + "typst": { 3333 + "color": "#239dad", 3334 + "extensions": [".typ"] 3335 + }, 3336 + "unifiedparallelc": { 3337 + "color": "#4e3617", 3338 + "extensions": [".upc"] 3339 + }, 3340 + "unity3dasset": { 3341 + "color": "#222c37", 3342 + "extensions": [ 3343 + ".anim", 3344 + ".asset", 3345 + ".mask", 3346 + ".mat", 3347 + ".meta", 3348 + ".prefab", 3349 + ".unity" 3350 + ] 3351 + }, 3352 + "unixassembly": { 3353 + "extensions": [".s", ".ms"] 3354 + }, 3355 + "uno": { 3356 + "color": "#9933cc", 3357 + "extensions": [".uno"] 3358 + }, 3359 + "unrealscript": { 3360 + "color": "#a54c4d", 3361 + "extensions": [".uc"] 3362 + }, 3363 + "untypedplutuscore": { 3364 + "color": "#36adbd", 3365 + "extensions": [".uplc"] 3366 + }, 3367 + "urweb": { 3368 + "color": "#ccccee", 3369 + "extensions": [".ur", ".urs"] 3370 + }, 3371 + "v": { 3372 + "color": "#4f87c4", 3373 + "extensions": [".v"] 3374 + }, 3375 + "vba": { 3376 + "color": "#867db1", 3377 + "extensions": [".bas", ".cls", ".frm", ".vba"] 3378 + }, 3379 + "vbscript": { 3380 + "color": "#15dcdc", 3381 + "extensions": [".vbs"] 3382 + }, 3383 + "vcl": { 3384 + "color": "#148aa8", 3385 + "extensions": [".vcl"] 3386 + }, 3387 + "vhdl": { 3388 + "color": "#adb2cb", 3389 + "extensions": [ 3390 + ".vhdl", 3391 + ".vhd", 3392 + ".vhf", 3393 + ".vhi", 3394 + ".vho", 3395 + ".vhs", 3396 + ".vht", 3397 + ".vhw" 3398 + ] 3399 + }, 3400 + "vala": { 3401 + "color": "#a56de2", 3402 + "extensions": [".vala", ".vapi"] 3403 + }, 3404 + "valvedataformat": { 3405 + "color": "#f26025", 3406 + "extensions": [".vdf"] 3407 + }, 3408 + "velocitytemplatelanguage": { 3409 + "color": "#507cff", 3410 + "extensions": [".vtl"] 3411 + }, 3412 + "vento": { 3413 + "color": "#ff0080", 3414 + "extensions": [".vto"] 3415 + }, 3416 + "verilog": { 3417 + "color": "#b2b7f8", 3418 + "extensions": [".v", ".veo"] 3419 + }, 3420 + "vimhelpfile": { 3421 + "color": "#199f4b", 3422 + "extensions": [".txt"] 3423 + }, 3424 + "vimscript": { 3425 + "color": "#199f4b", 3426 + "extensions": [".vim", ".vba", ".vimrc", ".vmb"], 3427 + "filenames": [ 3428 + ".exrc", 3429 + ".gvimrc", 3430 + ".nvimrc", 3431 + ".vimrc", 3432 + "_vimrc", 3433 + "gvimrc", 3434 + "nvimrc", 3435 + "vimrc" 3436 + ] 3437 + }, 3438 + "vimsnippet": { 3439 + "color": "#199f4b", 3440 + "extensions": [".snip", ".snippet", ".snippets"] 3441 + }, 3442 + "visualbasic .net": { 3443 + "color": "#945db7", 3444 + "extensions": [".vb", ".vbhtml"] 3445 + }, 3446 + "visualbasic 6.0": { 3447 + "color": "#2c6353", 3448 + "extensions": [".bas", ".cls", ".ctl", ".dsr", ".frm"] 3449 + }, 3450 + "volt": { 3451 + "color": "#1f1f1f", 3452 + "extensions": [".volt"] 3453 + }, 3454 + "vue": { 3455 + "color": "#41b883", 3456 + "extensions": [".vue"] 3457 + }, 3458 + "vyper": { 3459 + "extensions": [".vy"], 3460 + "color": "#9f4cf2" 3461 + }, 3462 + "wdl": { 3463 + "color": "#42f1f4", 3464 + "extensions": [".wdl"] 3465 + }, 3466 + "wgsl": { 3467 + "color": "#1a5e9a", 3468 + "extensions": [".wgsl"] 3469 + }, 3470 + "wavefrontmaterial": { 3471 + "extensions": [".mtl"] 3472 + }, 3473 + "wavefrontobject": { 3474 + "extensions": [".obj"] 3475 + }, 3476 + "webontologylanguage": { 3477 + "color": "#5b70bd", 3478 + "extensions": [".owl"] 3479 + }, 3480 + "webassembly": { 3481 + "color": "#04133b", 3482 + "extensions": [".wast", ".wat"] 3483 + }, 3484 + "webassemblyinterfacetype": { 3485 + "color": "#6250e7", 3486 + "extensions": [".wit"] 3487 + }, 3488 + "webidl": { 3489 + "extensions": [".webidl"] 3490 + }, 3491 + "webvtt": { 3492 + "extensions": [".vtt"] 3493 + }, 3494 + "wgetconfig": { 3495 + "filenames": [".wgetrc"] 3496 + }, 3497 + "whiley": { 3498 + "color": "#d5c397", 3499 + "extensions": [".whiley"] 3500 + }, 3501 + "wikitext": { 3502 + "color": "#fc5757", 3503 + "extensions": [".mediawiki", ".wiki", ".wikitext"] 3504 + }, 3505 + "win32messagefile": { 3506 + "extensions": [".mc"] 3507 + }, 3508 + "windowsregistryentries": { 3509 + "color": "#52d5ff", 3510 + "extensions": [".reg"] 3511 + }, 3512 + "witcherscript": { 3513 + "color": "#ff0000", 3514 + "extensions": [".ws"] 3515 + }, 3516 + "wolframlanguage": { 3517 + "color": "#dd1100", 3518 + "extensions": [ 3519 + ".mathematica", 3520 + ".cdf", 3521 + ".m", 3522 + ".ma", 3523 + ".mt", 3524 + ".nb", 3525 + ".nbp", 3526 + ".wl", 3527 + ".wls", 3528 + ".wlt" 3529 + ] 3530 + }, 3531 + "wollok": { 3532 + "color": "#a23738", 3533 + "extensions": [".wlk"] 3534 + }, 3535 + "worldofwarcraftaddondata": { 3536 + "color": "#f7e43f", 3537 + "extensions": [".toc"] 3538 + }, 3539 + "wren": { 3540 + "color": "#383838", 3541 + "extensions": [".wren"] 3542 + }, 3543 + "xbitmap": { 3544 + "extensions": [".xbm"] 3545 + }, 3546 + "xfontdirectoryindex": { 3547 + "filenames": ["encodings.dir", "fonts.alias", "fonts.dir", "fonts.scale"] 3548 + }, 3549 + "xpixmap": { 3550 + "extensions": [".xpm", ".pm"] 3551 + }, 3552 + "x10": { 3553 + "extensions": [".x10"], 3554 + "color": "#4b6bef" 3555 + }, 3556 + "xc": { 3557 + "color": "#99da07", 3558 + "extensions": [".xc"] 3559 + }, 3560 + "xcompose": { 3561 + "filenames": [".xcompose", "xcompose", "xcompose"] 3562 + }, 3563 + "xml": { 3564 + "color": "#0060ac", 3565 + "extensions": [".xml", ".adml", ".admx", ".ant", ".axaml", ".axml"], 3566 + "filenames": [ 3567 + ".classpath", 3568 + ".cproject", 3569 + ".project", 3570 + "app.config", 3571 + "nuget.config", 3572 + "settings.stylecop", 3573 + "web.debug.config", 3574 + "web.release.config", 3575 + "web.config", 3576 + "packages.config" 3577 + ] 3578 + }, 3579 + "xmlpropertylist": { 3580 + "color": "#0060ac", 3581 + "extensions": [ 3582 + ".plist", 3583 + ".sttheme", 3584 + ".tmcommand", 3585 + ".tmlanguage", 3586 + ".tmpreferences", 3587 + ".tmsnippet", 3588 + ".tmtheme" 3589 + ] 3590 + }, 3591 + "xpages": { 3592 + "extensions": [".xsp-config", ".xsp.metadata"] 3593 + }, 3594 + "xproc": { 3595 + "extensions": [".xpl", ".xproc"] 3596 + }, 3597 + "xquery": { 3598 + "color": "#5232e7", 3599 + "extensions": [".xquery", ".xq", ".xql", ".xqm", ".xqy"] 3600 + }, 3601 + "xs": { 3602 + "extensions": [".xs"] 3603 + }, 3604 + "xslt": { 3605 + "extensions": [".xslt", ".xsl"], 3606 + "color": "#eb8ceb" 3607 + }, 3608 + "xmake": { 3609 + "color": "#22a079", 3610 + "filenames": ["xmake.lua"] 3611 + }, 3612 + "xojo": { 3613 + "color": "#81bd41", 3614 + "extensions": [ 3615 + ".xojo_code", 3616 + ".xojo_menu", 3617 + ".xojo_report", 3618 + ".xojo_script", 3619 + ".xojo_toolbar", 3620 + ".xojo_window" 3621 + ] 3622 + }, 3623 + "xonsh": { 3624 + "color": "#285eef", 3625 + "extensions": [".xsh"] 3626 + }, 3627 + "xtend": { 3628 + "color": "#24255d", 3629 + "extensions": [".xtend"] 3630 + }, 3631 + "yaml": { 3632 + "color": "#cb171e", 3633 + "extensions": [ 3634 + ".yml", 3635 + ".mir", 3636 + ".reek", 3637 + ".rviz", 3638 + ".sublime-syntax", 3639 + ".syntax", 3640 + ".yaml", 3641 + ".yaml-tmlanguage", 3642 + ".yaml.sed", 3643 + ".yml.mysql" 3644 + ], 3645 + "filenames": [ 3646 + ".clang-format", 3647 + ".clang-tidy", 3648 + ".clangd", 3649 + ".gemrc", 3650 + "citation.cff", 3651 + "glide.lock", 3652 + "pixi.lock", 3653 + "yarn.lock" 3654 + ] 3655 + }, 3656 + "yang": { 3657 + "extensions": [".yang"] 3658 + }, 3659 + "yara": { 3660 + "color": "#220000", 3661 + "extensions": [".yar", ".yara"] 3662 + }, 3663 + "yasnippet": { 3664 + "color": "#32ab90", 3665 + "extensions": [".yasnippet"] 3666 + }, 3667 + "yacc": { 3668 + "extensions": [".y", ".yacc", ".yy"], 3669 + "color": "#4b6c4b" 3670 + }, 3671 + "yul": { 3672 + "color": "#794932", 3673 + "extensions": [".yul"] 3674 + }, 3675 + "zap": { 3676 + "color": "#0d665e", 3677 + "extensions": [".zap", ".xzap"] 3678 + }, 3679 + "zil": { 3680 + "color": "#dc75e5", 3681 + "extensions": [".zil", ".mud"] 3682 + }, 3683 + "zeek": { 3684 + "extensions": [".zeek", ".bro"] 3685 + }, 3686 + "zenscript": { 3687 + "color": "#00bcd1", 3688 + "extensions": [".zs"] 3689 + }, 3690 + "zephir": { 3691 + "color": "#118f9e", 3692 + "extensions": [".zep"] 3693 + }, 3694 + "zig": { 3695 + "color": "#ec915c", 3696 + "extensions": [".zig", ".zig.zon"] 3697 + }, 3698 + "zimpl": { 3699 + "color": "#d67711", 3700 + "extensions": [".zimpl", ".zmpl", ".zpl"] 3701 + }, 3702 + "zmodel": { 3703 + "color": "#ff7100", 3704 + "extensions": [".zmodel"] 3705 + }, 3706 + "curlconfig": { 3707 + "filenames": [".curlrc", "_curlrc"] 3708 + }, 3709 + "crontab": { 3710 + "color": "#ead7ac", 3711 + "filenames": ["crontab"] 3712 + }, 3713 + "desktop": { 3714 + "extensions": [".desktop", ".desktop.in", ".service"] 3715 + }, 3716 + "dircolors": { 3717 + "extensions": [".dircolors"], 3718 + "filenames": [ 3719 + ".dir_colors", 3720 + ".dircolors", 3721 + "dir_colors", 3722 + "_dir_colors", 3723 + "_dircolors", 3724 + "dir_colors" 3725 + ] 3726 + }, 3727 + "ec": { 3728 + "color": "#913960", 3729 + "extensions": [".ec", ".eh"] 3730 + }, 3731 + "edn": { 3732 + "extensions": [".edn"] 3733 + }, 3734 + "fish": { 3735 + "color": "#4aae47", 3736 + "extensions": [".fish"] 3737 + }, 3738 + "hoon": { 3739 + "color": "#00b171", 3740 + "extensions": [".hoon"] 3741 + }, 3742 + "icalendar": { 3743 + "color": "#ec564c", 3744 + "extensions": [".ics", ".ical"] 3745 + }, 3746 + "jq": { 3747 + "color": "#c7254e", 3748 + "extensions": [".jq"] 3749 + }, 3750 + "kvlang": { 3751 + "extensions": [".kv"], 3752 + "color": "#1da6e0" 3753 + }, 3754 + "mircscript": { 3755 + "color": "#3d57c3", 3756 + "extensions": [".mrc"] 3757 + }, 3758 + "mcfunction": { 3759 + "color": "#e22837", 3760 + "extensions": [".mcfunction"] 3761 + }, 3762 + "mdsvex": { 3763 + "color": "#5f9ea0", 3764 + "extensions": [".svx"] 3765 + }, 3766 + "mupad": { 3767 + "color": "#244963", 3768 + "extensions": [".mu"] 3769 + }, 3770 + "nanorc": { 3771 + "color": "#2d004d", 3772 + "extensions": [".nanorc"], 3773 + "filenames": [".nanorc", "nanorc"] 3774 + }, 3775 + "nesc": { 3776 + "color": "#94b0c7", 3777 + "extensions": [".nc"] 3778 + }, 3779 + "ooc": { 3780 + "color": "#b0b77e", 3781 + "extensions": [".ooc"] 3782 + }, 3783 + "q": { 3784 + "extensions": [".q"], 3785 + "color": "#0040cd" 3786 + }, 3787 + "restructuredtext": { 3788 + "color": "#141414", 3789 + "extensions": [".rst", ".rest", ".rest.txt", ".rst.txt"] 3790 + }, 3791 + "robots.txt": { 3792 + "filenames": ["robots.txt"] 3793 + }, 3794 + "sed": { 3795 + "color": "#64b970", 3796 + "extensions": [".sed"] 3797 + }, 3798 + "templ": { 3799 + "color": "#66d0dd", 3800 + "extensions": [".templ"] 3801 + }, 3802 + "vcard": { 3803 + "color": "#ee2647", 3804 + "extensions": [".vcf"] 3805 + }, 3806 + "wisp": { 3807 + "color": "#7582d1", 3808 + "extensions": [".wisp"] 3809 + }, 3810 + "xbase": { 3811 + "color": "#403a40", 3812 + "extensions": [".prg", ".ch", ".prw"] 3813 + } 3814 + }
+31
src/elements/code_block.tsx
··· 1 + import hljs from "highlight.js"; 2 + import { createResource, For } from "solid-js"; 3 + import "../styles/fileviewer.css"; 4 + import "../util/highlight.js/index"; 5 + 6 + export function CodeBlock(props: { code: string; language: string }) { 7 + const [codeBlock] = createResource( 8 + () => props, 9 + (props) => { 10 + const highlit = hljs.getLanguage(props.language) 11 + ? hljs.highlight(props.code, { language: props.language }).value 12 + : props.code; 13 + return ( 14 + <For each={highlit.split("\n")}> 15 + {(line, i) => ( 16 + <span class="line-wrapper"> 17 + <span class="line-number">{i() + 1}</span> 18 + <span class="line-content" innerHTML={line}></span> 19 + </span> 20 + )} 21 + </For> 22 + ); 23 + }, 24 + ); 25 + 26 + return ( 27 + <pre> 28 + <code class="flex flex-col text-wrap p-4">{codeBlock()}</code> 29 + </pre> 30 + ); 31 + }
+31
src/elements/icon_with_text.tsx
··· 1 + import { type ComponentProps, splitProps } from "solid-js"; 2 + import { Dynamic } from "solid-js/web"; 3 + 4 + type AllowedTags = "div" | "a" | "span" | "button"; 5 + 6 + export function IconWithText<T extends AllowedTags>( 7 + props: { 8 + type?: T; 9 + icon: string; 10 + text: string; 11 + style?: string; 12 + href?: string; 13 + } & ComponentProps<T>, 14 + ) { 15 + const [local, dynamic] = splitProps( 16 + props, 17 + ["type", "icon", "text", "style"], 18 + ["href"], 19 + ); 20 + 21 + return ( 22 + <Dynamic 23 + component={local.type || "span"} 24 + class={`flex flex-row items-center gap-1 ${local.style || ""}`} 25 + {...dynamic} 26 + > 27 + <div class={`iconify ${local.icon}`} /> 28 + <span>{local.text}</span> 29 + </Dynamic> 30 + ); 31 + }
+8
src/errors/404.tsx
··· 1 + export default function NotFound() { 2 + return ( 3 + <section class="text-gray-700 p-8"> 4 + <h1 class="text-2xl font-bold">404: Not Found</h1> 5 + <p class="mt-4">It's gone 😞</p> 6 + </section> 7 + ); 8 + }
+43
src/index.tsx
··· 1 + /* @refresh reload */ 2 + import "solid-devtools"; 3 + import "./styles/index.css"; 4 + 5 + import { Route, Router } from "@solidjs/router"; 6 + import { render } from "solid-js/web"; 7 + import App from "./app"; 8 + import NotFound from "./errors/404"; 9 + import RepoBlob, { preloadRepoBlob } from "./routes/repo/blob"; 10 + import RepoCommit from "./routes/repo/commit/commit"; 11 + import { RepoProvider } from "./routes/repo/context"; 12 + import RepoTree, { preloadRepoTree } from "./routes/repo/tree"; 13 + import User from "./routes/user"; 14 + 15 + const root = document.getElementById("root"); 16 + 17 + if (!(root instanceof HTMLElement)) { 18 + throw new Error("Root element not found."); 19 + } 20 + 21 + render( 22 + () => ( 23 + <Router root={(props) => <App>{props.children}</App>}> 24 + <Route path="/:user/:repo" component={RepoProvider}> 25 + <Route 26 + path="/tree/:ref/*path" 27 + component={RepoTree} 28 + preload={preloadRepoTree} 29 + /> 30 + <Route 31 + path="/blob/:ref/*path" 32 + component={RepoBlob} 33 + preload={preloadRepoBlob} 34 + /> 35 + <Route path="/commit/:ref" component={RepoCommit} /> 36 + <Route component={RepoTree} /> 37 + </Route> 38 + <Route path="/:user" component={User} /> 39 + <Route path="*" component={NotFound} /> 40 + </Router> 41 + ), 42 + root, 43 + );
+60
src/routes/repo/blob.tsx
··· 1 + import { 2 + createAsync, 3 + type Params, 4 + useNavigate, 5 + useParams, 6 + } from "@solidjs/router"; 7 + import { Show, Suspense } from "solid-js"; 8 + import { CodeBlock } from "../../elements/code_block"; 9 + import { getLanguage } from "../../util/get_language"; 10 + import { useDid } from "./context"; 11 + import { Header } from "./main"; 12 + import { getRepoBlob } from "./main.data"; 13 + import { figureOutDid } from "../../util/handle"; 14 + 15 + export async function preloadRepoBlob({ params }: { params: Params }) { 16 + const did = await figureOutDid(params.user) 17 + if (!did) return; 18 + getRepoBlob(did, params.repo, params.ref, params.path); 19 + } 20 + 21 + export default function RepoBlob() { 22 + const params = useParams(); 23 + const did = useDid(); 24 + const navigate = useNavigate(); 25 + 26 + const blob = createAsync(() => 27 + (async () => { 28 + const d = did(); 29 + if (!d) return; 30 + const res = await getRepoBlob(d, params.repo, params.ref, params.path); 31 + if (res.status === 404) { 32 + const split = window.location.pathname.split("/"); 33 + split[3] = "tree"; 34 + navigate(split.join("/"), { replace: true }); 35 + } 36 + if (!res.ok) return; 37 + return res.data; 38 + })(), 39 + ); 40 + 41 + return ( 42 + <div class="mx-auto max-w-5xl"> 43 + <Show when={did()}> 44 + {(did) => <Header did={did()} user={params.user} repo={params.repo} />} 45 + </Show> 46 + <Suspense> 47 + <Show when={blob()} keyed> 48 + {(data) => ( 49 + <div class="flex flex-col rounded bg-white dark:bg-gray-800"> 50 + <CodeBlock 51 + code={data.content} 52 + language={getLanguage(data.path.split("/").pop()) || "text"} 53 + /> 54 + </div> 55 + )} 56 + </Show> 57 + </Suspense> 58 + </div> 59 + ); 60 + }
+61
src/routes/repo/commit/commit.data.ts
··· 1 + export interface TreeNode { 2 + name: string; 3 + fullPath: string; 4 + type: "file" | "directory"; 5 + children?: TreeNode[]; 6 + } 7 + 8 + type BuildNode = { 9 + children: { [key: string]: BuildNode }; 10 + }; 11 + 12 + export function buildTree(paths: string[]): TreeNode { 13 + // sorry i used claude for this 14 + const root: { [key: string]: BuildNode } = {}; 15 + 16 + for (const path of paths) { 17 + const parts = path.split("/"); 18 + let current = root; 19 + 20 + for (let i = 0; i < parts.length; i++) { 21 + const part = parts[i]; 22 + current[part] ??= { children: {} }; 23 + if (i < parts.length - 1) { 24 + current = current[part].children; 25 + } 26 + } 27 + } 28 + 29 + const entries = (obj: BuildNode["children"], path: string) => 30 + Object.entries(obj) 31 + .map(([k, v]) => convert(path, v, k)) 32 + .sort((a, b) => { 33 + if (a.type !== b.type) return a.type === "directory" ? -1 : 1; 34 + 35 + const aDot = a.name.startsWith("."); 36 + const bDot = b.name.startsWith("."); 37 + if (aDot !== bDot) return aDot ? -1 : 1; 38 + 39 + return a.name.localeCompare(b.name, undefined, { numeric: true }); 40 + }); 41 + 42 + const convert = (path: string, node: BuildNode, name: string): TreeNode => { 43 + const hasChildren = Object.keys(node.children).length > 0; 44 + const fullPath = `${path}${name}`; 45 + return { 46 + name, 47 + type: hasChildren ? "directory" : "file", 48 + fullPath, 49 + children: hasChildren 50 + ? entries(node.children, `${fullPath}/`) 51 + : undefined, 52 + }; 53 + }; 54 + 55 + return { 56 + name: "", 57 + fullPath: "", 58 + type: "directory", 59 + children: entries(root, ""), 60 + }; 61 + }
+380
src/routes/repo/commit/commit.tsx
··· 1 + import { useParams } from "@solidjs/router"; 2 + import { 3 + createMemo, 4 + createResource, 5 + createSignal, 6 + For, 7 + Match, 8 + onMount, 9 + Show, 10 + Suspense, 11 + Switch, 12 + } from "solid-js"; 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 "./commit.data"; 18 + 19 + function RenderTree(props: { tree: TreeNode; skip?: boolean }) { 20 + if (props.skip) 21 + return ( 22 + <For each={props.tree.children}> 23 + {(node) => <RenderTree tree={node} />} 24 + </For> 25 + ); 26 + const [displayChildren, setDisplayChildren] = createSignal(true); 27 + return ( 28 + <Switch> 29 + <Match when={props.tree.type === "file"}> 30 + <a 31 + class="flex cursor-default select-none flex-row items-center gap-1 rounded p-1 text-xs hover:bg-gray-100 hover:dark:bg-gray-700" 32 + href={`#file-${props.tree.fullPath}`} 33 + > 34 + <div class="iconify gravity-ui--file" /> 35 + <span class="select-text">{props.tree.name}</span> 36 + </a> 37 + </Match> 38 + <Match when={props.tree.type === "directory"}> 39 + <div 40 + class="flex select-none flex-row items-center gap-1 rounded p-1 text-xs hover:bg-gray-100 hover:dark:bg-gray-700" 41 + onclick={() => setDisplayChildren(!displayChildren())} 42 + > 43 + <div class="iconify gravity-ui--folder-fill" /> 44 + <span class="select-text">{props.tree.name}</span> 45 + </div> 46 + <div 47 + class={`ml-1 flex flex-col border-gray-200 border-l pl-1 dark:border-gray-700 ${displayChildren() ? "" : "hidden"}`} 48 + > 49 + <For each={props.tree.children}> 50 + {(node) => <RenderTree tree={node} />} 51 + </For> 52 + </div> 53 + </Match> 54 + </Switch> 55 + ); 56 + } 57 + 58 + function Fragment(props: { 59 + file: string; 60 + data: DiffTextFragment; 61 + index: number; 62 + numberSize: number; 63 + }) { 64 + let lineNumber = props.data.NewPosition; 65 + let iOld = props.data.OldPosition; 66 + let iNew = props.data.NewPosition; 67 + 68 + return ( 69 + <Show when={!props.data.is_binary} fallback={<div>binary data</div>}> 70 + <Show when={props.index !== 0}> 71 + <div class="h-5 w-full select-none bg-gray-100 text-center font-mono text-gray-700 dark:bg-gray-700 dark:text-gray-300"> 72 + ··· 73 + </div> 74 + </Show> 75 + <div class="w-full whitespace-pre font-mono"> 76 + <For each={props.data.Lines}> 77 + {(line) => { 78 + const lineNumberOld = line.Op === 2 ? "" : (iOld++).toString(); 79 + const lineNumberNew = line.Op === 1 ? "" : (iNew++).toString(); 80 + const fillerOld = " ".repeat( 81 + props.numberSize - lineNumberOld.length, 82 + ); 83 + const fillerNew = " ".repeat( 84 + props.numberSize - lineNumberNew.length, 85 + ); 86 + return ( 87 + <Line 88 + file={props.file} 89 + index={props.index} 90 + line={line} 91 + lineNumber={lineNumber++} 92 + lineNumberNew={lineNumberNew} 93 + lineNumberOld={lineNumberOld} 94 + fillerOld={fillerOld} 95 + fillerNew={fillerNew} 96 + /> 97 + ); 98 + }} 99 + </For> 100 + </div> 101 + </Show> 102 + ); 103 + } 104 + 105 + function Line(props: { 106 + file: string; 107 + index: number; 108 + line: { Op: number; Line: string }; 109 + lineNumber: number; 110 + lineNumberOld: string; 111 + lineNumberNew: string; 112 + fillerOld: string; 113 + fillerNew: string; 114 + }) { 115 + const id = `line-${props.file}-${props.index}-${props.lineNumber.toString()}`; 116 + return ( 117 + <div 118 + class="flex scroll-mt-10 flex-row text-gray-400 *:flex *:flex-row dark:text-gray-500" 119 + id={id} 120 + > 121 + <div class="sticky left-0 select-none border-gray-200 border-r bg-white px-1 *:flex dark:border-gray-700 dark:bg-gray-800"> 122 + <span class="float-right mr-1 w-1/2 justify-end"> 123 + <span>{props.fillerOld}</span> 124 + <Show when={props.lineNumberOld}> 125 + <a 126 + class="hover:text-gray-700 hover:underline hover:dark:text-gray-200" 127 + href={`#${id}`} 128 + > 129 + {props.lineNumberOld} 130 + </a> 131 + </Show> 132 + </span> 133 + <span class="float-right mr-1 w-1/2 justify-end"> 134 + {props.fillerNew} 135 + <Show when={props.lineNumberNew}> 136 + <a 137 + class="hover:text-gray-700 hover:underline hover:dark:text-gray-200" 138 + href={`#${id}`} 139 + > 140 + {props.lineNumberNew} 141 + </a> 142 + </Show> 143 + </span> 144 + </div> 145 + <Switch> 146 + <Match when={props.line.Op === 0}> 147 + <div class="w-full text-gray-500 dark:text-gray-500"> 148 + <div class="select-none">{"   "}</div> 149 + {props.line.Line} 150 + </div> 151 + </Match> 152 + <Match when={props.line.Op === 2}> 153 + <div class="w-full bg-green-100 text-green-700 dark:bg-green-800/30 dark:text-green-400"> 154 + <div class="select-none">{" + "}</div> 155 + {props.line.Line} 156 + </div> 157 + </Match> 158 + <Match when={props.line.Op === 1}> 159 + <div class="w-full bg-red-100 text-red-700 dark:bg-red-800/30 dark:text-red-400"> 160 + <div class="select-none">{" - "}</div> 161 + {props.line.Line} 162 + </div> 163 + </Match> 164 + </Switch> 165 + </div> 166 + ); 167 + } 168 + 169 + function DiffView(props: { commit: Commit }) { 170 + return ( 171 + <For each={props.commit.diff.diff}> 172 + {(diff) => { 173 + const [show, setShow] = createSignal(true); 174 + const [addedLines, removedLines] = diff.text_fragments.reduce( 175 + (acc, v) => [acc[0] + v.NewLines, acc[1] + v.LinesDeleted], 176 + [0, 0], 177 + ); 178 + 179 + const lastFrag = diff.text_fragments[diff.text_fragments.length - 1]; 180 + const numberSize = Math.max( 181 + 2, 182 + ( 183 + Math.max(lastFrag.NewPosition, lastFrag.OldPosition) + 184 + lastFrag.Lines.length 185 + ).toString().length, 186 + ); 187 + 188 + return ( 189 + <div 190 + id={`file-${diff.name.new}`} 191 + class="not-last:mb-1 flex w-full flex-col rounded border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-800" 192 + > 193 + <div 194 + class={`sticky top-0 z-10 flex cursor-default select-none flex-row items-center gap-2 bg-white p-2 hover:bg-gray-100 dark:bg-gray-800 hover:dark:bg-gray-700 ${show() ? "rounded-t border-gray-200 border-b dark:border-gray-700" : "rounded"}`} 195 + onclick={() => setShow(!show())} 196 + > 197 + <div 198 + class={`iconify ${show() ? "gravity-ui--chevron-down" : "gravity-ui--chevron-right"}`} 199 + /> 200 + <div class="flex h-6 select-text flex-row items-center overflow-hidden rounded font-mono text-xs *:h-full *:content-center *:px-1"> 201 + <Show when={addedLines > 0}> 202 + <div class="bg-green-100 text-green-700 dark:bg-green-800/30 dark:text-green-400">{`+${addedLines}`}</div> 203 + </Show> 204 + <Show when={removedLines > 0}> 205 + <div class="bg-red-100 text-red-700 dark:bg-red-700/30 dark:text-red-400">{`-${removedLines}`}</div> 206 + </Show> 207 + </div> 208 + <Show 209 + when={diff.name.old !== "" && diff.name.new !== diff.name.old} 210 + > 211 + <div class="select-text">{diff.name.old}</div> 212 + <div class="iconify gravity-ui--arrow-right" /> 213 + </Show> 214 + <div class="select-text">{diff.name.new}</div> 215 + </div> 216 + <div 217 + class={`select-text overflow-x-auto rounded-b bg-white dark:bg-gray-800 ${show() ? "" : "hidden"}`} 218 + > 219 + <div class="min-w-max"> 220 + <For each={diff.text_fragments}> 221 + {(frag, i) => ( 222 + <Fragment 223 + file={diff.name.new} 224 + data={frag} 225 + index={i()} 226 + numberSize={numberSize} 227 + /> 228 + )} 229 + </For> 230 + </div> 231 + </div> 232 + </div> 233 + ); 234 + }} 235 + </For> 236 + ); 237 + } 238 + 239 + function CommitHeader(props: { 240 + did: DID; 241 + user: string; 242 + repo: string; 243 + message: { title: string; content: string }; 244 + commit: Commit; 245 + }) { 246 + return ( 247 + <div> 248 + <Header did={props.did} user={props.user} repo={props.repo} /> 249 + <div class="mx-1 flex flex-col gap-2 rounded bg-white p-4 dark:bg-gray-800"> 250 + <div>{props.message.title}</div> 251 + <Show when={props.message.content}> 252 + <div class="text-xs">{props.message.content}</div> 253 + </Show> 254 + <div class="text-gray-500 text-xs dark:text-gray-300"> 255 + <span>{`${new Date(props.commit.diff.commit.author.When).toLocaleDateString(undefined, { dateStyle: "long" })} at ${new Date(props.commit.diff.commit.author.When).toLocaleTimeString()}`}</span> 256 + <span class="select-none px-1 before:content-['\00B7']" /> 257 + <span>{`${props.commit.diff.commit.author.Name} <${props.commit.diff.commit.author.Email}>`}</span> 258 + <span class="select-none px-1 before:content-['\00B7']" /> 259 + <a 260 + class="hover:text-gray-600 hover:underline hover:dark:text-gray-200" 261 + href={`/${props.user}/${props.repo}/commit/${props.commit.ref}`} 262 + > 263 + {props.commit.ref.slice(0, 8)} 264 + </a> 265 + <Show when={props.commit.diff.commit.parent}> 266 + <div class="iconify gravity-ui--arrow-left mx-1 text-[0.6rem]" /> 267 + <a 268 + class="hover:text-gray-600 hover:underline hover:dark:text-gray-200" 269 + href={`/${props.user}/${props.repo}/commit/${props.commit.diff.commit.parent}`} 270 + > 271 + {props.commit.diff.commit.parent.slice(0, 8)} 272 + </a> 273 + </Show> 274 + </div> 275 + </div> 276 + </div> 277 + ); 278 + } 279 + 280 + export default function RepoCommit() { 281 + const params = useParams(); 282 + const did = useDid(); 283 + 284 + const [commit] = createResource( 285 + () => { 286 + const d = did(); 287 + if (!d) return; 288 + return [d, params.repo, params.ref]; 289 + }, 290 + async ([did, repo, ref]) => { 291 + const res = await getRepoCommit(did as DID, repo, ref); 292 + if (!res.ok) return; 293 + return res.data as Commit; 294 + }, 295 + ); 296 + 297 + const [sidebar] = createResource(commit, async (commit) => { 298 + if (!commit.diff.diff) 299 + return { name: "", fullPath: "", type: "directory" } as TreeNode; 300 + return buildTree(commit.diff.diff.map((v) => v.name.new)); 301 + }); 302 + 303 + const allData = createMemo(() => { 304 + const s = sidebar(); 305 + const c = commit(); 306 + if (!(s && c)) return; 307 + 308 + return [s, c] as const; 309 + }); 310 + 311 + const headerData = createMemo(() => { 312 + const c = commit(); 313 + const d = did(); 314 + 315 + if (!(c && d)) return; 316 + 317 + const titleEnd = c.diff.commit.message.indexOf("\n"); 318 + const message = { 319 + title: c.diff.commit.message.slice(0, titleEnd), 320 + content: c.diff.commit.message.slice(titleEnd + 1), 321 + }; 322 + 323 + return [c, d, message] as const; 324 + }); 325 + 326 + onMount(() => { 327 + if (window.location.hash) { 328 + const element = document.getElementById(window.location.hash.slice(1)); 329 + if (element) 330 + element.scrollIntoView({ behavior: "instant", block: "start" }); 331 + } 332 + }); 333 + 334 + return ( 335 + <div class="mx-auto max-w-10xl"> 336 + <Suspense> 337 + <Show when={headerData()} keyed> 338 + {([commit, did, message]) => ( 339 + <CommitHeader 340 + did={did} 341 + user={params.user} 342 + repo={params.repo} 343 + message={message} 344 + commit={commit} 345 + /> 346 + )} 347 + </Show> 348 + <Show when={allData()} keyed> 349 + {([sidebar, commit]) => ( 350 + <> 351 + <div class="flex flex-row gap-1"> 352 + <div class="sticky top-0 flex max-h-screen min-w-50 overflow-auto p-1 pr-0"> 353 + <Show when={sidebar.children}> 354 + <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"> 355 + <div class="flex flex-row items-center justify-between gap-1 p-1"> 356 + <div class="font-bold">CHANGED FILES</div> 357 + <div class="flex h-6 select-text flex-row items-center overflow-hidden rounded font-mono text-xs *:h-full *:content-center *:px-1"> 358 + <Show when={commit.diff.stat.insertions > 0}> 359 + <div class="bg-green-100 text-green-700 dark:bg-green-800/30 dark:text-green-400">{`+${commit.diff.stat.insertions}`}</div> 360 + </Show> 361 + <Show when={commit.diff.stat.deletions > 0}> 362 + <div class="bg-red-100 text-red-700 dark:bg-red-700/30 dark:text-red-400">{`-${commit.diff.stat.deletions}`}</div> 363 + </Show> 364 + </div> 365 + </div> 366 + <RenderTree tree={sidebar} skip={true} /> 367 + </div> 368 + </Show> 369 + </div> 370 + <div class="min-w-0 flex-1 flex-col gap-1 p-1 pl-0"> 371 + <DiffView commit={commit} /> 372 + </div> 373 + </div> 374 + </> 375 + )} 376 + </Show> 377 + </Suspense> 378 + </div> 379 + ); 380 + }
src/routes/repo/commits.tsx

This is a binary file and will not be displayed.

+60
src/routes/repo/context.tsx
··· 1 + import type { ShTangledRepo } from "@atcute/tangled"; 2 + import { useParams } from "@solidjs/router"; 3 + import { 4 + createContext, 5 + createResource, 6 + type ParentComponent, 7 + type Resource, 8 + useContext, 9 + } from "solid-js"; 10 + import { getUserRepo } from "../../util/get_repo"; 11 + import { figureOutDid } from "../../util/handle"; 12 + import type { DID } from "../../util/types"; 13 + import { getRepoForks, getRepoStars } from "./main.data"; 14 + 15 + const RepoContext = createContext<{ 16 + did: () => DID | undefined; 17 + repoInfo: Resource<{ 18 + repo: ShTangledRepo.Main & { rkey: string }; 19 + stars: number; 20 + forks: number; 21 + }>; 22 + }>(); 23 + 24 + export const RepoProvider: ParentComponent = (props) => { 25 + const params = useParams(); 26 + const [did] = createResource(() => params.user, figureOutDid); 27 + 28 + const [repoInfo] = createResource( 29 + () => { 30 + const d = did(); 31 + const r = params.repo; 32 + return d && r ? ([d, r] as const) : undefined; 33 + }, 34 + async ([did, repo]) => { 35 + return { 36 + repo: await getUserRepo(did, repo), 37 + stars: await getRepoStars(did, repo), 38 + forks: await getRepoForks(did, repo), 39 + }; 40 + }, 41 + ); 42 + 43 + return ( 44 + <RepoContext.Provider value={{ did, repoInfo }}> 45 + {props.children} 46 + </RepoContext.Provider> 47 + ); 48 + }; 49 + 50 + export function useDid() { 51 + const ctx = useContext(RepoContext); 52 + if (!ctx) throw new Error("useDid must be used within RepoProvider"); 53 + return ctx.did; 54 + } 55 + 56 + export function useRepoInfo() { 57 + const ctx = useContext(RepoContext); 58 + if (!ctx) throw new Error("useDid must be used within RepoProvider"); 59 + return ctx.repoInfo; 60 + }
+154
src/routes/repo/main.data.ts
··· 1 + import { Client, simpleFetchHandler } from "@atcute/client"; 2 + import { query } from "@solidjs/router"; 3 + import { getRepoKnot, getUserRepo } from "../../util/get_repo"; 4 + import { constellationUrl } from "../../util/microcosm"; 5 + import type { DID } from "../../util/types"; 6 + 7 + async function getKnotRpc(user: DID, repo: string) { 8 + const service = await getRepoKnot(user, repo); 9 + const handler = simpleFetchHandler({ service }); 10 + const rpc = new Client({ handler }); 11 + 12 + return rpc; 13 + } 14 + 15 + export const getRepoDefaultBranch = query(async (user: DID, repo: string) => { 16 + const rpc = await getKnotRpc(user, repo); 17 + 18 + return await rpc.get("sh.tangled.repo.getDefaultBranch", { 19 + params: { 20 + repo: `${user}/${repo}`, 21 + }, 22 + }); 23 + }, "RepoDefaultBranch"); 24 + 25 + export const getRepoTree = query( 26 + async (user: DID, repo: string, ref: string, path: string) => { 27 + const rpc = await getKnotRpc(user, repo); 28 + 29 + return await rpc.get("sh.tangled.repo.tree", { 30 + params: { 31 + repo: `${user}/${repo}`, 32 + ref, 33 + path, 34 + }, 35 + }); 36 + }, 37 + "RepoTreeData", 38 + ); 39 + 40 + export const getRepoBlob = query( 41 + async (user: DID, repo: string, ref: string, path: string) => { 42 + const rpc = await getKnotRpc(user, repo); 43 + 44 + return await rpc.get("sh.tangled.repo.blob", { 45 + params: { 46 + repo: `${user}/${repo}`, 47 + ref, 48 + path, 49 + }, 50 + }); 51 + }, 52 + "RepoBlob", 53 + ); 54 + 55 + export const getRepoLog = query( 56 + async (user: DID, repo: string, ref: string, path: string) => { 57 + const rpc = await getKnotRpc(user, repo); 58 + 59 + return await rpc.get("sh.tangled.repo.log", { 60 + as: "json", 61 + params: { 62 + repo: `${user}/${repo}`, 63 + ref, 64 + path, 65 + }, 66 + }); 67 + }, 68 + "RepoBlob", 69 + ); 70 + 71 + export const getRepoLanguages = query( 72 + async (user: DID, repo: string, ref: string) => { 73 + const rpc = await getKnotRpc(user, repo); 74 + 75 + return await rpc.get("sh.tangled.repo.languages", { 76 + params: { 77 + repo: `${user}/${repo}`, 78 + ref, 79 + }, 80 + }); 81 + }, 82 + "RepoLanguages", 83 + ); 84 + 85 + export const getRepoStars = query(async (user: DID, repo: string) => { 86 + const request = new URL(`${constellationUrl}/links/count/distinct-dids`); 87 + request.searchParams.set( 88 + "target", 89 + `at://${user}/sh.tangled.repo/${(await getUserRepo(user, repo))?.rkey}`, 90 + ); 91 + request.searchParams.set("collection", "sh.tangled.feed.star"); 92 + request.searchParams.set("path", ".subject"); 93 + 94 + const res = await fetch(request).then((res) => res.json()); 95 + return (res?.total as number) || 0; 96 + }, "RepoStars"); 97 + 98 + export const getRepoForks = query(async (user: DID, repo: string) => { 99 + const request = new URL(`${constellationUrl}/links/count/distinct-dids`); 100 + request.searchParams.set( 101 + "target", 102 + `at://${user}/sh.tangled.repo/${(await getUserRepo(user, repo))?.rkey}`, 103 + ); 104 + request.searchParams.set("collection", "sh.tangled.repo"); 105 + request.searchParams.set("path", ".source"); 106 + 107 + const res = await fetch(request).then((res) => res.json()); 108 + return (res?.total as number) || 0; 109 + }, "RepoForks"); 110 + 111 + export const getRepoCommit = query( 112 + async (user: DID, repo: string, ref: string) => { 113 + const rpc = await getKnotRpc(user, repo); 114 + 115 + return await rpc.get("sh.tangled.repo.diff", { 116 + as: "json", 117 + params: { 118 + repo: `${user}/${repo}`, 119 + ref, 120 + }, 121 + }); 122 + }, 123 + "RepoCommit", 124 + ); 125 + 126 + export const getRepoBranches = query( 127 + async (user: DID, repo: string, ref: string) => { 128 + const rpc = await getKnotRpc(user, repo); 129 + 130 + return await rpc.get("sh.tangled.repo.branches", { 131 + as: "json", 132 + params: { 133 + repo: `${user}/${repo}`, 134 + ref, 135 + }, 136 + }); 137 + }, 138 + "RepoBranches", 139 + ); 140 + 141 + export const getRepoTags = query( 142 + async (user: DID, repo: string, ref: string) => { 143 + const rpc = await getKnotRpc(user, repo); 144 + 145 + return await rpc.get("sh.tangled.repo.tags", { 146 + as: "json", 147 + params: { 148 + repo: `${user}/${repo}`, 149 + ref, 150 + }, 151 + }); 152 + }, 153 + "RepoTags", 154 + );
+86
src/routes/repo/main.tsx
··· 1 + import { type Accessor, createMemo, Show } from "solid-js"; 2 + import type { DID } from "../../util/types"; 3 + import { useRepoInfo } from "./context"; 4 + 5 + function HeaderItem(props: { 6 + path: string; 7 + title: string; 8 + icon: string; 9 + windowPath: Accessor<string>; 10 + }) { 11 + return ( 12 + <a 13 + class={`flex h-full w-min flex-row content-center items-center gap-2 rounded-t px-4 py-1 ${props.windowPath() === props.title ? "bg-white dark:bg-gray-800" : "hover:dark:bg-gray-700/25"}`} 14 + href={props.path} 15 + > 16 + <div class={`iconify ${props.icon}`} /> 17 + {props.title} 18 + </a> 19 + ); 20 + } 21 + 22 + export function Header(props: { did: DID; user: string; repo: string }) { 23 + const repoInfo = useRepoInfo(); 24 + const path = createMemo(() => { 25 + const path = window.location.pathname.split("/")[3]; 26 + return ["issues", "pulls", "pipelines"].includes(path) ? path : "overview"; 27 + }); 28 + 29 + return ( 30 + <Show when={repoInfo()} keyed> 31 + {(repoInfo) => ( 32 + <> 33 + <div class="m-5 mt-0 flex flex-row items-center justify-between gap-0.5"> 34 + <div class="flex flex-col gap-1"> 35 + <div class="flex flex-row items-center gap-1 text-base"> 36 + <a class="hover:underline" href={`/${props.user}`}> 37 + @{props.user} 38 + </a> 39 + <span class="select-none text-xl">/</span> 40 + <a 41 + class="font-bold hover:underline" 42 + href={`/${props.user}/${props.repo}`} 43 + > 44 + {props.repo} 45 + </a> 46 + </div> 47 + <Show when={repoInfo.repo} keyed> 48 + {(repo) => <div class="text-xs">{repo.description}</div>} 49 + </Show> 50 + </div> 51 + <div class="flex flex-row gap-2"> 52 + <button 53 + type="button" 54 + class="btn flex flex-row items-center gap-1" 55 + > 56 + <div class="iconify gravity-ui--star" /> 57 + {repoInfo.stars.toString() || "0"} 58 + </button> 59 + <button 60 + type="button" 61 + class="btn flex flex-row items-center gap-1" 62 + > 63 + <div class="iconify gravity-ui--code-fork" /> 64 + {repoInfo.forks.toString() || "0"} 65 + </button> 66 + </div> 67 + </div> 68 + <div class="mx-4 flex flex-row gap-1"> 69 + <HeaderItem 70 + title="overview" 71 + path={`/${props.user}/${props.repo}`} 72 + icon="gravity-ui--square-list-ul" 73 + windowPath={path} 74 + /> 75 + {/*<HeaderItem 76 + title="issues" 77 + path={`/${props.user}/${props.repo}/issues`} 78 + icon="gravity-ui--circle-minus" 79 + windowPath={path} 80 + />*/} 81 + </div> 82 + </> 83 + )} 84 + </Show> 85 + ); 86 + }
+343
src/routes/repo/tree.tsx
··· 1 + import type { 2 + ShTangledRepoLanguages, 3 + ShTangledRepoTree, 4 + } from "@atcute/tangled"; 5 + import { type Params, useParams } from "@solidjs/router"; 6 + import { 7 + createMemo, 8 + createResource, 9 + createSignal, 10 + For, 11 + Match, 12 + Show, 13 + Switch, 14 + } from "solid-js"; 15 + import { SolidMarkdown } from "solid-markdown"; 16 + import { IconWithText } from "../../elements/icon_with_text"; 17 + import { languageColors } from "../../util/get_language"; 18 + import type { RepoLog } from "../../util/types"; 19 + import { useDid } from "./context"; 20 + import { Header } from "./main"; 21 + import { 22 + getRepoBranches, 23 + getRepoDefaultBranch, 24 + getRepoLanguages, 25 + getRepoLog, 26 + getRepoTree, 27 + } from "./main.data"; 28 + import "../../styles/markdown.css"; 29 + import { figureOutDid } from "../../util/handle"; 30 + 31 + export async function preloadRepoTree({ params }: { params: Params }) { 32 + const did = await figureOutDid(params.user); 33 + if (!did) return; 34 + getRepoTree(did, params.repo, params.ref, params.path); 35 + } 36 + 37 + export default function RepoTree() { 38 + const params = useParams(); 39 + const did = useDid(); 40 + 41 + const [defaultBranch] = createResource(did, async (did) => { 42 + const res = await getRepoDefaultBranch(did, params.repo); 43 + if (!res.ok) return; 44 + return res.data.name; 45 + }); 46 + 47 + const [tree] = createResource( 48 + () => { 49 + const d = did(); 50 + return d && ([d, params.repo, params.ref, params.path] as const); 51 + }, 52 + async ([d, repo, ref, path]) => { 53 + const res = await getRepoTree(d, repo, ref, path); 54 + if (!res.ok) return; 55 + return res.data; 56 + }, 57 + ); 58 + 59 + const [languages] = createResource(did, async (did) => { 60 + const res = await getRepoLanguages(did, params.repo, params.ref); 61 + if (!res.ok) return; 62 + return res.data.languages.sort((a, b) => b.percentage - a.percentage); 63 + }); 64 + 65 + const [logs] = createResource( 66 + () => { 67 + const d = did(); 68 + return d && ([d, params.repo, params.ref, params.path] as const); 69 + }, 70 + async ([d, repo, ref, path]) => { 71 + const res = await getRepoLog(d, repo, ref, path); 72 + if (!res.ok) return; 73 + return res.data as RepoLog; 74 + }, 75 + ); 76 + 77 + const [branchesAndTags] = createResource( 78 + () => { 79 + const d = did(); 80 + return d && ([d, params.repo, params.ref] as const); 81 + }, 82 + async ([d, repo, ref]) => { 83 + const resBranches = await getRepoBranches(d, repo, ref); 84 + if (!resBranches.ok) return; 85 + return resBranches.data as RepoLog; 86 + }, 87 + ); 88 + 89 + const [readme] = createResource(tree, async (tree) => { 90 + if (!tree.readme) return; 91 + return { 92 + contents: tree.readme.contents, 93 + type: tree.readme.filename.toLowerCase().endsWith(".md") 94 + ? "markdown" 95 + : "plaintext", 96 + } as const; 97 + }); 98 + 99 + const [filesInOrder] = createResource(tree, (tree) => { 100 + if (!tree.files) return; 101 + return tree.files.sort((a, b) => { 102 + // Directories before files 103 + if (!a.is_file === b.is_file) return !a.is_file ? -1 : 1; 104 + 105 + // Dotfiles first 106 + const aDot = a.name.startsWith("."); 107 + const bDot = b.name.startsWith("."); 108 + if (aDot !== bDot) return aDot ? -1 : 1; 109 + 110 + // Name sorting (natural order) 111 + return a.name.localeCompare(b.name, undefined, { numeric: true }); 112 + }); 113 + }); 114 + 115 + const repoData = createMemo(() => { 116 + const db = defaultBranch(); 117 + const l = languages(); 118 + const d = did(); 119 + if (!(db && l && d)) return; 120 + return [db, l, d] as const; 121 + }); 122 + 123 + const pathData = createMemo(() => { 124 + const t = tree(); 125 + const f = filesInOrder(); 126 + const r = readme(); 127 + const l = logs(); 128 + if (!(t && f && r && l)) return; 129 + return [t, f, r, l] as const; 130 + }); 131 + 132 + return ( 133 + <div class="mx-auto max-w-5xl"> 134 + <Show when={repoData()} keyed> 135 + {([defaultBranch, languages, did]) => ( 136 + <Show when={pathData()} keyed> 137 + {([tree, files, readme, logs]) => ( 138 + <div> 139 + <Header did={did} user={params.user} repo={params.repo} /> 140 + <div class="mb-4 flex flex-col rounded bg-white dark:bg-gray-800"> 141 + <LanguageLine languages={languages} /> 142 + <div class="flex flex-row"> 143 + <div class="mr-1 flex w-1/2 flex-col border-gray-300 border-r p-2 pt-1 dark:border-gray-700"> 144 + <FileDirectory 145 + user={params.user} 146 + repo={params.repo} 147 + files={files} 148 + tree={tree} 149 + defaultBranch={defaultBranch} 150 + /> 151 + </div> 152 + <div class="ml-1 flex w-1/2 flex-col p-2 pt-1"> 153 + <LogData 154 + user={params.user} 155 + repo={params.repo} 156 + defaultBranch={defaultBranch} 157 + files={files} 158 + logs={logs} 159 + /> 160 + </div> 161 + </div> 162 + </div> 163 + <Show when={readme.contents}> 164 + <ReadmeCard 165 + path={`/${params.user}/${params.repo}/blob/${tree.ref || defaultBranch}`} 166 + readme={readme} 167 + /> 168 + </Show> 169 + </div> 170 + )} 171 + </Show> 172 + )} 173 + </Show> 174 + </div> 175 + ); 176 + } 177 + 178 + function ReadmeCard(props: { 179 + path: string; 180 + readme: { 181 + type: "markdown" | "plaintext"; 182 + contents: string; 183 + }; 184 + }) { 185 + return ( 186 + <div class="mb-4 rounded bg-white p-4 dark:bg-gray-800"> 187 + <Switch> 188 + <Match when={props.readme.type === "markdown"}> 189 + <SolidMarkdown 190 + class="markdown" 191 + transformImageUri={(href) => `${props.path}${href}`} 192 + transformLinkUri={(href) => `${props.path}${href}`} 193 + renderingStrategy="memo" 194 + children={props.readme.contents} 195 + /> 196 + </Match> 197 + <Match when={props.readme.type === "plaintext"}> 198 + <div class="font-mono"> {props.readme.contents}</div> 199 + </Match> 200 + </Switch> 201 + </div> 202 + ); 203 + } 204 + 205 + function LanguageLine(props: { languages: ShTangledRepoLanguages.Language[] }) { 206 + const [languageLineState, setLanguageLineState] = createSignal(false); 207 + const toggleLanguageLineState = () => 208 + setLanguageLineState(!languageLineState()); 209 + 210 + return ( 211 + <div class={languageLineState() ? "h-full" : "h-4"}> 212 + <div 213 + class={`flex w-full flex-row overflow-hidden rounded-t duration-75 hover:h-4 ${languageLineState() ? "h-4" : "h-2"}`} 214 + onclick={toggleLanguageLineState} 215 + > 216 + <For each={props.languages}> 217 + {(language) => ( 218 + <div 219 + class="h-full border-gray-50 border-r duration-75 hover:brightness-90 dark:border-gray-950 dark:hover:brightness-110" 220 + style={`width: ${language.percentage}%; background-color: ${languageColors.get(language.name.toLowerCase().replaceAll(" ", ""))}`} 221 + title={`${language.name} ${language.percentage}%`} 222 + ></div> 223 + )} 224 + </For> 225 + </div> 226 + <div 227 + class={`flex h-4 flex-row gap-3 border-gray-300 border-r border-b px-6 py-3.5 text-xs dark:border-gray-700 ${languageLineState() ? "" : "hidden"}`} 228 + > 229 + <For each={props.languages}> 230 + {(language) => ( 231 + <div class="flex flex-row items-center gap-2"> 232 + <div 233 + class="h-2 w-2 rounded-full" 234 + style={`background-color: ${languageColors.get(language.name.toLowerCase().replaceAll(" ", ""))}`} 235 + /> 236 + <span> 237 + <span>{language.name}</span>{" "} 238 + <span class="text-gray-600 dark:text-gray-400"> 239 + {language.percentage}% 240 + </span> 241 + </span> 242 + </div> 243 + )} 244 + </For> 245 + </div> 246 + </div> 247 + ); 248 + } 249 + 250 + function FileDirectory(props: { 251 + user: string; 252 + repo: string; 253 + files: ShTangledRepoTree.TreeEntry[]; 254 + tree: ShTangledRepoTree.$output; 255 + defaultBranch: string; 256 + }) { 257 + return ( 258 + <div class="flex w-full flex-col"> 259 + <Show when={props.tree.parent}> 260 + <a 261 + href={`/${props.user}/${props.repo}/tree/${props.tree.ref}/${props.tree.dotdot ? `/${props.tree.dotdot}` : ""}`} 262 + class="flex flex-row items-center gap-1 p-1 hover:underline" 263 + > 264 + <div class="iconify gravity-ui--folder-open-fill" /> 265 + <span>..</span> 266 + </a> 267 + </Show> 268 + 269 + <For each={props.files}> 270 + {(file) => ( 271 + <a 272 + href={`/${props.user}/${props.repo}/${file.is_file ? "blob" : "tree"}/${props.tree.ref || props.defaultBranch}/${props.tree.parent ? `${props.tree.parent}/` : ""}${file.name}`} 273 + class="flex flex-row items-center gap-1 p-1 hover:underline" 274 + > 275 + <div 276 + class={`iconify ${file.is_file ? "gravity-ui--file" : "gravity-ui--folder-fill"}`} 277 + /> 278 + <span>{file.name}</span> 279 + </a> 280 + )} 281 + </For> 282 + </div> 283 + ); 284 + } 285 + 286 + function LogData(props: { 287 + user: string; 288 + repo: string; 289 + defaultBranch: string; 290 + files: ShTangledRepoTree.TreeEntry[]; 291 + logs: RepoLog; 292 + }) { 293 + return ( 294 + <> 295 + <a 296 + class="mb-2 flex flex-row items-center gap-2 text-black hover:text-gray-600 dark:text-white hover:dark:text-gray-300" 297 + href={`/${props.user}/${props.repo}/commits/${props.logs.ref || props.defaultBranch}`} 298 + > 299 + <IconWithText 300 + icon="gravity-ui--code-commit" 301 + text="commits" 302 + style="font-bold" 303 + /> 304 + <div class="rounded bg-gray-300 px-1 text-xs dark:bg-gray-700"> 305 + {props.logs.total} 306 + </div> 307 + </a> 308 + <div class="mb-3 flex flex-col gap-4"> 309 + <For 310 + each={props.logs.commits.slice( 311 + 0, 312 + Math.max(3, Math.floor(props.files.length / 2)), 313 + )} 314 + > 315 + {(commit) => { 316 + const hash = commit.Hash.map((num) => 317 + num.toString(16).padStart(2, "0"), 318 + ).join(""); 319 + return ( 320 + <div class="flex flex-col gap-1"> 321 + <a 322 + class="text-black hover:text-gray-600 hover:underline dark:text-white hover:dark:text-gray-300" 323 + href={`/${props.user}/${props.repo}/commit/${hash}`} 324 + > 325 + {commit.Message.slice(0, commit.Message.indexOf("\n"))} 326 + </a> 327 + <span class="text-gray-500 text-xs dark:text-gray-300"> 328 + <span class="rounded bg-gray-100 p-1 font-mono dark:bg-gray-900"> 329 + {hash.slice(0, 8)} 330 + </span> 331 + <span class="select-none px-1 before:content-['\00B7']" /> 332 + <span>{commit.Author.Name}</span> 333 + <span class="select-none px-1 before:content-['\00B7']" /> 334 + <span>{`${new Date(commit.Author.When).toLocaleDateString(undefined, { dateStyle: "short" })} at ${new Date(commit.Author.When).toLocaleTimeString()}`}</span> 335 + </span> 336 + </div> 337 + ); 338 + }} 339 + </For> 340 + </div> 341 + </> 342 + ); 343 + }
+33
src/routes/user.tsx
··· 1 + import { createAsync, useParams } from "@solidjs/router"; 2 + import { createMemo, For } from "solid-js"; 3 + import { getUserRepos } from "../util/get_repo"; 4 + import { figureOutDid } from "../util/handle"; 5 + 6 + export default function User() { 7 + const params = useParams(); 8 + const did = createAsync(() => figureOutDid(params.user)); 9 + 10 + const repos = createAsync(() => { 11 + const d = did(); 12 + if (!d) return Promise.resolve(undefined); 13 + return getUserRepos(d); 14 + }); 15 + 16 + const data = createMemo(() => { 17 + const reposRes = repos(); 18 + 19 + if (!reposRes) return <div>No repositories found</div>; 20 + 21 + return ( 22 + <For each={Object.values(reposRes)}> 23 + {(repo) => <a href={`/${params.user}/${repo.name}`}>{repo.name}</a>} 24 + </For> 25 + ); 26 + }); 27 + 28 + return ( 29 + <div class="mx-auto max-w-5xl"> 30 + <div class="mb-4 rounded bg-white p-4 dark:bg-gray-800">{data()}</div> 31 + </div> 32 + ); 33 + }
+86
src/styles/fileviewer.css
··· 1 + @import "tailwindcss"; 2 + 3 + pre code .line-wrapper { 4 + @apply flex flex-row; 5 + } 6 + 7 + pre code .line-number { 8 + @apply opacity-50 shrink-0 w-12 text-right pr-4 select-none; 9 + } 10 + 11 + pre code .line-content { 12 + @apply flex-1 pl-4 whitespace-pre-wrap text-sm; 13 + } 14 + 15 + .hljs { 16 + @apply text-gray-900 dark:text-gray-300; 17 + } 18 + .hljs-doctag, 19 + .hljs-keyword, 20 + .hljs-meta .hljs-keyword, 21 + .hljs-template-tag, 22 + .hljs-template-variable, 23 + .hljs-type, 24 + .hljs-variable.language_ { 25 + @apply text-red-700 dark:text-red-400; 26 + } 27 + .hljs-title, 28 + .hljs-title.class_, 29 + .hljs-title.class_.inherited__, 30 + .hljs-title.function_ { 31 + @apply text-purple-700 dark:text-purple-400; 32 + } 33 + .hljs-attr, 34 + .hljs-attribute, 35 + .hljs-literal, 36 + .hljs-meta, 37 + .hljs-number, 38 + .hljs-operator, 39 + .hljs-variable, 40 + .hljs-selector-attr, 41 + .hljs-selector-class, 42 + .hljs-selector-id { 43 + @apply text-blue-700 dark:text-blue-400; 44 + } 45 + .hljs-regexp, 46 + .hljs-string, 47 + .hljs-meta .hljs-string { 48 + @apply text-cyan-800 dark:text-cyan-300; 49 + } 50 + .hljs-built_in, 51 + .hljs-symbol { 52 + @apply text-amber-700 dark:text-amber-400; 53 + } 54 + .hljs-comment, 55 + .hljs-code, 56 + .hljs-formula, 57 + pre code .line::before { 58 + @apply text-neutral-500 dark:text-neutral-500; 59 + } 60 + .hljs-name, 61 + .hljs-quote, 62 + .hljs-selector-tag, 63 + .hljs-selector-pseudo { 64 + @apply text-green-700 dark:text-green-400; 65 + } 66 + .hljs-subst { 67 + @apply text-neutral-800 dark:text-neutral-300; 68 + } 69 + .hljs-section { 70 + @apply font-bold text-blue-700 dark:text-blue-400; 71 + } 72 + .hljs-bullet { 73 + @apply text-yellow-900 dark:text-yellow-300; 74 + } 75 + .hljs-emphasis { 76 + @apply italic text-gray-900 dark:text-gray-400; 77 + } 78 + .hljs-strong { 79 + @apply font-bold text-gray-900 dark:text-gray-400; 80 + } 81 + .hljs-addition { 82 + @apply bg-green-100 text-green-700 dark:bg-green-800/30 dark:text-green-400; 83 + } 84 + .hljs-deletion { 85 + @apply bg-red-100 text-red-700 dark:bg-red-800/30 dark:text-red-400; 86 + }
+86
src/styles/index.css
··· 1 + @import "tailwindcss"; 2 + @import "../../static/fonts/inter/inter"; 3 + @import "../../static/fonts/ibm-plex-mono/ibm-plex-mono"; 4 + 5 + @plugin "@iconify/tailwind4" { 6 + /* biome-ignore lint/correctness/noUnknownProperty: this works dude idk how to set it properly */ 7 + prefixes: gravity-ui; 8 + } 9 + 10 + :root { 11 + --font-sans: "InterVariable", ui-sans-serif, sans-serif; 12 + --mono-font: "IBM Plex Mono", ui-monospace, monospace; 13 + } 14 + 15 + @supports (font-variation-settings: normal) { 16 + html { 17 + font-feature-settings: 18 + "kern" 1, 19 + "liga" 1, 20 + "cv05" 1, 21 + "tnum" 1; 22 + } 23 + } 24 + 25 + .btn { 26 + @apply relative z-10 inline-flex min-h-[30px] items-center justify-center bg-transparent pl-2 pr-2 text-sm text-gray-900 outline-none; 27 + } 28 + 29 + .btn::before { 30 + @apply absolute inset-0 -z-10 rounded border border-gray-200 bg-white duration-150 transition-all ease-in; 31 + --tw-shadow: 32 + inset 0 -2px 0 0 rgba(0, 0, 0, 0.1), 0 1px 0 0 rgba(0, 0, 0, 0.04); 33 + --tw-shadow-colored: 34 + inset 0 -2px 0 0 var(--tw-shadow-color), 0 1px 0 0 var(--tw-shadow-color); 35 + box-shadow: 36 + var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 37 + var(--tw-shadow); 38 + content: ""; 39 + } 40 + 41 + .btn:hover::before { 42 + @apply bg-gray-50; 43 + --tw-shadow: 44 + inset 0 -2px 0 0 rgba(0, 0, 0, 0.15), 0 2px 1px 0 rgba(0, 0, 0, 0.06); 45 + --tw-shadow-colored: 46 + inset 0 -2px 0 0 var(--tw-shadow-color), 0 2px 1px 0 var(--tw-shadow-color); 47 + box-shadow: 48 + var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 49 + var(--tw-shadow); 50 + content: ""; 51 + } 52 + 53 + .btn:focus { 54 + @apply outline-2 outline-offset-2; 55 + } 56 + 57 + .btn:focus-visible::before { 58 + @apply outline-solid outline-2 outline-gray-400; 59 + } 60 + 61 + .btn:active::before { 62 + --tw-shadow: inset 0 2px 2px 0 rgba(0, 0, 0, 0.1); 63 + --tw-shadow-colored: inset 0 2px 2px 0 var(--tw-shadow-color); 64 + box-shadow: 65 + var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), 66 + var(--tw-shadow); 67 + content: ""; 68 + } 69 + 70 + .btn:disabled { 71 + @apply cursor-not-allowed opacity-50; 72 + } 73 + 74 + @media (prefers-color-scheme: dark) { 75 + .btn { 76 + @apply text-gray-100; 77 + } 78 + 79 + .btn::before { 80 + @apply border-gray-700 bg-gray-800; 81 + } 82 + 83 + .btn:hover::before { 84 + @apply bg-gray-700; 85 + } 86 + }
+49
src/styles/markdown.css
··· 1 + @import "tailwindcss"; 2 + 3 + .markdown { 4 + h1, 5 + h2, 6 + h3, 7 + h4, 8 + h5, 9 + h6 { 10 + @apply py-2 my-2 font-bold border-gray-300 dark:border-gray-700 border-b; 11 + } 12 + h1 { 13 + @apply text-3xl; 14 + } 15 + h2 { 16 + @apply text-2xl; 17 + } 18 + h3 { 19 + @apply text-xl; 20 + } 21 + h4 { 22 + @apply text-lg; 23 + } 24 + h5 { 25 + @apply text-base; 26 + } 27 + h6 { 28 + @apply text-sm; 29 + } 30 + strong { 31 + @apply font-bold; 32 + } 33 + a { 34 + @apply underline; 35 + } 36 + p { 37 + @apply text-sm my-4; 38 + } 39 + ul { 40 + @apply my-1 pl-6; 41 + } 42 + ul > li { 43 + @apply text-sm; 44 + } 45 + ul > li:before { 46 + @apply text-gray-300 dark:text-gray-700 font-bold relative right-4; 47 + content: "•"; 48 + } 49 + }
+40
src/util/get_language.ts
··· 1 + import languages from "../data/languages.json"; 2 + 3 + const extensions = Object.entries(languages).reduce((map, [code, value]) => { 4 + if ("extensions" in value) { 5 + return value.extensions.reduce((map, ext) => map.set(ext, code), map); 6 + } else { 7 + return map; 8 + } 9 + }, new Map<string, string>()); 10 + 11 + const filenames = Object.entries(languages).reduce((map, [code, value]) => { 12 + if ("filenames" in value) { 13 + return value.filenames.reduce( 14 + (map, filename) => map.set(filename, code), 15 + map, 16 + ); 17 + } else { 18 + return map; 19 + } 20 + }, new Map<string, string>()); 21 + 22 + export const languageColors = Object.entries(languages).reduce( 23 + (map, [code, value]) => { 24 + if ("color" in value) { 25 + return map.set(code, value.color); 26 + } else { 27 + return map; 28 + } 29 + }, 30 + new Map<string, string>(), 31 + ); 32 + 33 + export function getLanguage(filename: string | undefined): string | undefined { 34 + if (!filename) return undefined; 35 + const filenameExtension = filenames.get(filename); 36 + if (filenameExtension) return filenameExtension; 37 + const extension = filename.split(".").pop(); 38 + if (extension) return extensions.get(`.${extension}`); 39 + return filenames.get(filename); 40 + }
+29
src/util/get_pds.ts
··· 1 + import { 2 + CompositeDidDocumentResolver, 3 + PlcDidDocumentResolver, 4 + WebDidDocumentResolver, 5 + } from "@atcute/identity-resolver"; 6 + import { createAsync, query } from "@solidjs/router"; 7 + 8 + const docResolver = new CompositeDidDocumentResolver({ 9 + methods: { 10 + plc: new PlcDidDocumentResolver(), 11 + web: new WebDidDocumentResolver(), 12 + }, 13 + }); 14 + 15 + export const getUserPDS = query( 16 + async (did: `did:plc:${string}` | `did:web:${string}`) => { 17 + const doc = await docResolver.resolve(did); 18 + const endpoint = doc.service?.find( 19 + (i) => i.id === "#atproto_pds", 20 + )?.serviceEndpoint; 21 + if (typeof endpoint === "string") return endpoint; 22 + return undefined; 23 + }, 24 + "user_pds", 25 + ); 26 + 27 + export const UserPDS = (did: `did:plc:${string}` | `did:web:${string}`) => { 28 + return createAsync(() => getUserPDS(did)); 29 + };
+62
src/util/get_repo.ts
··· 1 + import { Client, simpleFetchHandler } from "@atcute/client"; 2 + import type { ShTangledRepo } from "@atcute/tangled"; 3 + import { query } from "@solidjs/router"; 4 + import { getUserPDS } from "./get_pds"; 5 + import type { DID } from "./types"; 6 + 7 + export const getUserRepos = query( 8 + async ( 9 + did: DID, 10 + ): Promise<Record<string, ShTangledRepo.Main & { rkey: string }>> => { 11 + const pds = await getUserPDS(did); 12 + if (!pds) return {}; 13 + const handler = simpleFetchHandler({ service: pds }); 14 + const rpc = new Client({ handler }); 15 + 16 + const repos: Record<string, ShTangledRepo.Main & { rkey: string }> = {}; 17 + let cursor: string | undefined; 18 + 19 + while (true) { 20 + const { ok, data } = await rpc.get("com.atproto.repo.listRecords", { 21 + params: { 22 + repo: did, 23 + collection: "sh.tangled.repo", 24 + limit: 100, 25 + cursor, 26 + }, 27 + }); 28 + if (!ok) break; 29 + const length = data.records.length; 30 + const moreRepos = data.records.reduce( 31 + (acc, r) => { 32 + const record = Object.assign( 33 + { rkey: r.uri.slice(r.uri.lastIndexOf("/") + 1) }, 34 + r.value as ShTangledRepo.Main, 35 + ); 36 + acc[record.name] = record; 37 + return acc; 38 + }, 39 + new Object() as typeof repos, 40 + ); 41 + Object.assign(repos, moreRepos); 42 + cursor = data.cursor; 43 + if (length < 100) break; 44 + } 45 + 46 + return repos; 47 + }, 48 + "user_repos", 49 + ); 50 + 51 + export const getUserRepo = async ( 52 + did: DID, 53 + repo: string, 54 + ): Promise<ShTangledRepo.Main & { rkey: string }> => { 55 + const repos = await getUserRepos(did); 56 + return repos[repo]; 57 + }; 58 + 59 + export const getRepoKnot = async (did: DID, repo: string) => { 60 + const repos = await getUserRepos(did); 61 + return `https://${repos[repo].knot}`; 62 + };
+41
src/util/handle.ts
··· 1 + import { 2 + CompositeHandleResolver, 3 + DohJsonHandleResolver, 4 + WellKnownHandleResolver, 5 + } from "@atcute/identity-resolver"; 6 + import { query } from "@solidjs/router"; 7 + import { slingshotUrl } from "./microcosm"; 8 + import type { DID } from "./types"; 9 + 10 + const useSlingshot: boolean = true; 11 + 12 + const didMap = new Map<string, DID>(); 13 + 14 + const handleResolver = new CompositeHandleResolver({ 15 + strategy: "race", 16 + methods: { 17 + dns: new DohJsonHandleResolver({ 18 + dohUrl: "https://mozilla.cloudflare-dns.com/dns-query", 19 + }), 20 + http: new WellKnownHandleResolver(), 21 + }, 22 + }); 23 + 24 + export const figureOutDid = query(async (user: string): Promise<DID> => { 25 + const isDid = user.startsWith("did:"); 26 + if (!isDid && user.includes(".")) { 27 + let res = didMap.get(user); 28 + if (!res && useSlingshot) 29 + res = ( 30 + await ( 31 + await fetch( 32 + `${slingshotUrl}/xrpc/com.atproto.identity.resolveHandle?handle=${user}`, 33 + ) 34 + ).json() 35 + ).did; 36 + if (!res) res = await handleResolver.resolve(user as `${string}.${string}`); 37 + didMap.set(user, res); 38 + return res; 39 + } 40 + return user as DID; 41 + }, "handles");
+5
src/util/highlight.js/1c.ts
··· 1 + import hljs from "highlight.js"; 2 + 3 + import lang from "highlight.js/lib/languages/1c"; 4 + 5 + hljs.registerLanguage("1c", lang);
+252
src/util/highlight.js/common.ts
··· 1 + import gleam from "@gleam-lang/highlight.js-gleam"; 2 + import hljs from "highlight.js"; 3 + 4 + hljs.registerLanguage("gleam", gleam); 5 + 6 + import xml from "highlight.js/lib/languages/xml"; 7 + 8 + hljs.registerLanguage("xml", xml); 9 + 10 + import bash from "highlight.js/lib/languages/bash"; 11 + 12 + hljs.registerLanguage("bash", bash); 13 + 14 + import c from "highlight.js/lib/languages/c"; 15 + 16 + hljs.registerLanguage("c", c); 17 + 18 + import cpp from "highlight.js/lib/languages/cpp"; 19 + 20 + hljs.registerLanguage("cpp", cpp); 21 + 22 + import csharp from "highlight.js/lib/languages/csharp"; 23 + 24 + hljs.registerLanguage("csharp", csharp); 25 + 26 + import css from "highlight.js/lib/languages/css"; 27 + 28 + hljs.registerLanguage("css", css); 29 + 30 + import markdown from "highlight.js/lib/languages/markdown"; 31 + 32 + hljs.registerLanguage("markdown", markdown); 33 + 34 + import dart from "highlight.js/lib/languages/dart"; 35 + 36 + hljs.registerLanguage("dart", dart); 37 + 38 + import diff from "highlight.js/lib/languages/diff"; 39 + 40 + hljs.registerLanguage("diff", diff); 41 + 42 + import dockerfile from "highlight.js/lib/languages/dockerfile"; 43 + 44 + hljs.registerLanguage("dockerfile", dockerfile); 45 + 46 + import elixir from "highlight.js/lib/languages/elixir"; 47 + 48 + hljs.registerLanguage("elixir", elixir); 49 + 50 + import elm from "highlight.js/lib/languages/elm"; 51 + 52 + hljs.registerLanguage("elm", elm); 53 + 54 + import ruby from "highlight.js/lib/languages/ruby"; 55 + 56 + hljs.registerLanguage("ruby", ruby); 57 + 58 + import erlangrepl from "highlight.js/lib/languages/erlang-repl"; 59 + 60 + hljs.registerLanguage("erlang-repl", erlangrepl); 61 + 62 + import erlang from "highlight.js/lib/languages/erlang"; 63 + 64 + hljs.registerLanguage("erlang", erlang); 65 + 66 + import excel from "highlight.js/lib/languages/excel"; 67 + 68 + hljs.registerLanguage("excel", excel); 69 + 70 + import glsl from "highlight.js/lib/languages/glsl"; 71 + 72 + hljs.registerLanguage("glsl", glsl); 73 + 74 + import go from "highlight.js/lib/languages/go"; 75 + 76 + hljs.registerLanguage("go", go); 77 + 78 + import gradle from "highlight.js/lib/languages/gradle"; 79 + 80 + hljs.registerLanguage("gradle", gradle); 81 + 82 + import graphql from "highlight.js/lib/languages/graphql"; 83 + 84 + hljs.registerLanguage("graphql", graphql); 85 + 86 + import haskell from "highlight.js/lib/languages/haskell"; 87 + 88 + hljs.registerLanguage("haskell", haskell); 89 + 90 + import http from "highlight.js/lib/languages/http"; 91 + 92 + hljs.registerLanguage("http", http); 93 + 94 + import java from "highlight.js/lib/languages/java"; 95 + 96 + hljs.registerLanguage("java", java); 97 + 98 + import julia from "highlight.js/lib/languages/julia"; 99 + 100 + hljs.registerLanguage("julia", julia); 101 + 102 + import juliarepl from "highlight.js/lib/languages/julia-repl"; 103 + 104 + hljs.registerLanguage("julia-repl", juliarepl); 105 + 106 + import kotlin from "highlight.js/lib/languages/kotlin"; 107 + 108 + hljs.registerLanguage("kotlin", kotlin); 109 + 110 + import latex from "highlight.js/lib/languages/latex"; 111 + 112 + hljs.registerLanguage("latex", latex); 113 + 114 + import ini from "highlight.js/lib/languages/ini"; 115 + 116 + hljs.registerLanguage("ini", ini); 117 + 118 + import less from "highlight.js/lib/languages/less"; 119 + 120 + hljs.registerLanguage("less", less); 121 + 122 + import lisp from "highlight.js/lib/languages/lisp"; 123 + 124 + hljs.registerLanguage("lisp", lisp); 125 + 126 + import lua from "highlight.js/lib/languages/lua"; 127 + 128 + hljs.registerLanguage("lua", lua); 129 + 130 + import makefile from "highlight.js/lib/languages/makefile"; 131 + 132 + hljs.registerLanguage("makefile", makefile); 133 + 134 + import matlab from "highlight.js/lib/languages/matlab"; 135 + 136 + hljs.registerLanguage("matlab", matlab); 137 + 138 + import perl from "highlight.js/lib/languages/perl"; 139 + 140 + hljs.registerLanguage("perl", perl); 141 + 142 + import nginx from "highlight.js/lib/languages/nginx"; 143 + 144 + hljs.registerLanguage("nginx", nginx); 145 + 146 + import nim from "highlight.js/lib/languages/nim"; 147 + 148 + hljs.registerLanguage("nim", nim); 149 + 150 + import nix from "highlight.js/lib/languages/nix"; 151 + 152 + hljs.registerLanguage("nix", nix); 153 + 154 + import noderepl from "highlight.js/lib/languages/node-repl"; 155 + 156 + hljs.registerLanguage("node-repl", noderepl); 157 + 158 + import ocaml from "highlight.js/lib/languages/ocaml"; 159 + 160 + hljs.registerLanguage("ocaml", ocaml); 161 + 162 + import php from "highlight.js/lib/languages/php"; 163 + 164 + hljs.registerLanguage("php", php); 165 + 166 + import phptemplate from "highlight.js/lib/languages/php-template"; 167 + 168 + hljs.registerLanguage("php-template", phptemplate); 169 + 170 + import plaintext from "highlight.js/lib/languages/plaintext"; 171 + 172 + hljs.registerLanguage("plaintext", plaintext); 173 + 174 + import properties from "highlight.js/lib/languages/properties"; 175 + 176 + hljs.registerLanguage("properties", properties); 177 + 178 + import python from "highlight.js/lib/languages/python"; 179 + 180 + hljs.registerLanguage("python", python); 181 + 182 + import pythonrepl from "highlight.js/lib/languages/python-repl"; 183 + 184 + hljs.registerLanguage("python-repl", pythonrepl); 185 + 186 + import r from "highlight.js/lib/languages/r"; 187 + 188 + hljs.registerLanguage("r", r); 189 + 190 + import rust from "highlight.js/lib/languages/rust"; 191 + 192 + hljs.registerLanguage("rust", rust); 193 + 194 + import scala from "highlight.js/lib/languages/scala"; 195 + 196 + hljs.registerLanguage("scala", scala); 197 + 198 + import scheme from "highlight.js/lib/languages/scheme"; 199 + 200 + hljs.registerLanguage("scheme", scheme); 201 + 202 + import scss from "highlight.js/lib/languages/scss"; 203 + 204 + hljs.registerLanguage("scss", scss); 205 + 206 + import shell from "highlight.js/lib/languages/shell"; 207 + 208 + hljs.registerLanguage("shell", shell); 209 + 210 + import stylus from "highlight.js/lib/languages/stylus"; 211 + 212 + hljs.registerLanguage("stylus", stylus); 213 + 214 + import swift from "highlight.js/lib/languages/swift"; 215 + 216 + hljs.registerLanguage("swift", swift); 217 + 218 + import yaml from "highlight.js/lib/languages/yaml"; 219 + 220 + hljs.registerLanguage("yaml", yaml); 221 + 222 + import vala from "highlight.js/lib/languages/vala"; 223 + 224 + hljs.registerLanguage("vala", vala); 225 + 226 + import vim from "highlight.js/lib/languages/vim"; 227 + 228 + hljs.registerLanguage("vim", vim); 229 + 230 + import json from "highlight.js/lib/languages/json"; 231 + 232 + hljs.registerLanguage("json", json); 233 + 234 + import typescript from "highlight.js/lib/languages/typescript"; 235 + 236 + hljs.registerLanguage("typescript", typescript); 237 + 238 + import javascript from "highlight.js/lib/languages/javascript"; 239 + 240 + hljs.registerLanguage("javascript", javascript); 241 + 242 + import pgsql from "highlight.js/lib/languages/pgsql"; 243 + 244 + hljs.registerLanguage("pgsql", pgsql); 245 + 246 + import sql from "highlight.js/lib/languages/sql"; 247 + 248 + hljs.registerLanguage("sql", sql); 249 + 250 + import awk from "highlight.js/lib/languages/awk"; 251 + 252 + hljs.registerLanguage("awk", awk);
+5
src/util/highlight.js/gml.ts
··· 1 + import hljs from "highlight.js"; 2 + 3 + import gml from "highlight.js/lib/languages/gml"; 4 + 5 + hljs.registerLanguage("gml", gml);
+6
src/util/highlight.js/index.ts
··· 1 + import "./1c"; 2 + import "./common"; 3 + import "./gml"; 4 + import "./isbl"; 5 + import "./mathematica"; 6 + import "./rare";
+5
src/util/highlight.js/isbl.ts
··· 1 + import hljs from "highlight.js"; 2 + 3 + import isbl from "highlight.js/lib/languages/isbl"; 4 + 5 + hljs.registerLanguage("isbl", isbl);
+5
src/util/highlight.js/mathematica.ts
··· 1 + import hljs from "highlight.js"; 2 + 3 + import mathematica from "highlight.js/lib/languages/mathematica"; 4 + 5 + hljs.registerLanguage("mathematica", mathematica);
+505
src/util/highlight.js/rare.ts
··· 1 + import hljs from "highlight.js"; 2 + 3 + import abnf from "highlight.js/lib/languages/abnf"; 4 + 5 + hljs.registerLanguage("abnf", abnf); 6 + 7 + import accesslog from "highlight.js/lib/languages/accesslog"; 8 + 9 + hljs.registerLanguage("accesslog", accesslog); 10 + 11 + import ada from "highlight.js/lib/languages/ada"; 12 + 13 + hljs.registerLanguage("ada", ada); 14 + 15 + import angelscript from "highlight.js/lib/languages/angelscript"; 16 + 17 + hljs.registerLanguage("angelscript", angelscript); 18 + 19 + import apache from "highlight.js/lib/languages/apache"; 20 + 21 + hljs.registerLanguage("apache", apache); 22 + 23 + import applescript from "highlight.js/lib/languages/applescript"; 24 + 25 + hljs.registerLanguage("applescript", applescript); 26 + 27 + import arcade from "highlight.js/lib/languages/arcade"; 28 + 29 + hljs.registerLanguage("arcade", arcade); 30 + 31 + import aspectj from "highlight.js/lib/languages/aspectj"; 32 + 33 + hljs.registerLanguage("aspectj", aspectj); 34 + 35 + import autoit from "highlight.js/lib/languages/autoit"; 36 + 37 + hljs.registerLanguage("autoit", autoit); 38 + 39 + import axapta from "highlight.js/lib/languages/axapta"; 40 + 41 + hljs.registerLanguage("axapta", axapta); 42 + 43 + import bnf from "highlight.js/lib/languages/bnf"; 44 + 45 + hljs.registerLanguage("bnf", bnf); 46 + 47 + import brainfuck from "highlight.js/lib/languages/brainfuck"; 48 + 49 + hljs.registerLanguage("brainfuck", brainfuck); 50 + 51 + import cal from "highlight.js/lib/languages/cal"; 52 + 53 + hljs.registerLanguage("cal", cal); 54 + 55 + import capnproto from "highlight.js/lib/languages/capnproto"; 56 + 57 + hljs.registerLanguage("capnproto", capnproto); 58 + 59 + import ceylon from "highlight.js/lib/languages/ceylon"; 60 + 61 + hljs.registerLanguage("ceylon", ceylon); 62 + 63 + import clean from "highlight.js/lib/languages/clean"; 64 + 65 + hljs.registerLanguage("clean", clean); 66 + 67 + import clojure from "highlight.js/lib/languages/clojure"; 68 + 69 + hljs.registerLanguage("clojure", clojure); 70 + 71 + import clojurerepl from "highlight.js/lib/languages/clojure-repl"; 72 + 73 + hljs.registerLanguage("clojure-repl", clojurerepl); 74 + 75 + import cmake from "highlight.js/lib/languages/cmake"; 76 + 77 + hljs.registerLanguage("cmake", cmake); 78 + 79 + import coq from "highlight.js/lib/languages/coq"; 80 + 81 + hljs.registerLanguage("coq", coq); 82 + 83 + import cos from "highlight.js/lib/languages/cos"; 84 + 85 + hljs.registerLanguage("cos", cos); 86 + 87 + import crmsh from "highlight.js/lib/languages/crmsh"; 88 + 89 + hljs.registerLanguage("crmsh", crmsh); 90 + 91 + import crystal from "highlight.js/lib/languages/crystal"; 92 + 93 + hljs.registerLanguage("crystal", crystal); 94 + 95 + import csp from "highlight.js/lib/languages/csp"; 96 + 97 + hljs.registerLanguage("csp", csp); 98 + 99 + import d from "highlight.js/lib/languages/d"; 100 + 101 + hljs.registerLanguage("d", d); 102 + 103 + import delphi from "highlight.js/lib/languages/delphi"; 104 + 105 + hljs.registerLanguage("delphi", delphi); 106 + 107 + import django from "highlight.js/lib/languages/django"; 108 + 109 + hljs.registerLanguage("django", django); 110 + 111 + import dns from "highlight.js/lib/languages/dns"; 112 + 113 + hljs.registerLanguage("dns", dns); 114 + 115 + import dos from "highlight.js/lib/languages/dos"; 116 + 117 + hljs.registerLanguage("dos", dos); 118 + 119 + import dsconfig from "highlight.js/lib/languages/dsconfig"; 120 + 121 + hljs.registerLanguage("dsconfig", dsconfig); 122 + 123 + import dts from "highlight.js/lib/languages/dts"; 124 + 125 + hljs.registerLanguage("dts", dts); 126 + 127 + import dust from "highlight.js/lib/languages/dust"; 128 + 129 + hljs.registerLanguage("dust", dust); 130 + 131 + import ebnf from "highlight.js/lib/languages/ebnf"; 132 + 133 + hljs.registerLanguage("ebnf", ebnf); 134 + 135 + import erb from "highlight.js/lib/languages/erb"; 136 + 137 + hljs.registerLanguage("erb", erb); 138 + 139 + import fix from "highlight.js/lib/languages/fix"; 140 + 141 + hljs.registerLanguage("fix", fix); 142 + 143 + import flix from "highlight.js/lib/languages/flix"; 144 + 145 + hljs.registerLanguage("flix", flix); 146 + 147 + import fsharp from "highlight.js/lib/languages/fsharp"; 148 + 149 + hljs.registerLanguage("fsharp", fsharp); 150 + 151 + import gams from "highlight.js/lib/languages/gams"; 152 + 153 + hljs.registerLanguage("gams", gams); 154 + 155 + import gauss from "highlight.js/lib/languages/gauss"; 156 + 157 + hljs.registerLanguage("gauss", gauss); 158 + 159 + import gcode from "highlight.js/lib/languages/gcode"; 160 + 161 + hljs.registerLanguage("gcode", gcode); 162 + 163 + import gherkin from "highlight.js/lib/languages/gherkin"; 164 + 165 + hljs.registerLanguage("gherkin", gherkin); 166 + 167 + import golo from "highlight.js/lib/languages/golo"; 168 + 169 + hljs.registerLanguage("golo", golo); 170 + 171 + import groovy from "highlight.js/lib/languages/groovy"; 172 + 173 + hljs.registerLanguage("groovy", groovy); 174 + 175 + import haml from "highlight.js/lib/languages/haml"; 176 + 177 + hljs.registerLanguage("haml", haml); 178 + 179 + import handlebars from "highlight.js/lib/languages/handlebars"; 180 + 181 + hljs.registerLanguage("handlebars", handlebars); 182 + 183 + import haxe from "highlight.js/lib/languages/haxe"; 184 + 185 + hljs.registerLanguage("haxe", haxe); 186 + 187 + import hsp from "highlight.js/lib/languages/hsp"; 188 + 189 + hljs.registerLanguage("hsp", hsp); 190 + 191 + import hy from "highlight.js/lib/languages/hy"; 192 + 193 + hljs.registerLanguage("hy", hy); 194 + 195 + import inform7 from "highlight.js/lib/languages/inform7"; 196 + 197 + hljs.registerLanguage("inform7", inform7); 198 + 199 + import irpf90 from "highlight.js/lib/languages/irpf90"; 200 + 201 + hljs.registerLanguage("irpf90", irpf90); 202 + 203 + import jbosscli from "highlight.js/lib/languages/jboss-cli"; 204 + 205 + hljs.registerLanguage("jboss-cli", jbosscli); 206 + 207 + import lasso from "highlight.js/lib/languages/lasso"; 208 + 209 + hljs.registerLanguage("lasso", lasso); 210 + 211 + import ldif from "highlight.js/lib/languages/ldif"; 212 + 213 + hljs.registerLanguage("ldif", ldif); 214 + 215 + import leaf from "highlight.js/lib/languages/leaf"; 216 + 217 + hljs.registerLanguage("leaf", leaf); 218 + 219 + import livecodeserver from "highlight.js/lib/languages/livecodeserver"; 220 + 221 + hljs.registerLanguage("livecodeserver", livecodeserver); 222 + 223 + import livescript from "highlight.js/lib/languages/livescript"; 224 + 225 + hljs.registerLanguage("livescript", livescript); 226 + 227 + import lsl from "highlight.js/lib/languages/lsl"; 228 + 229 + hljs.registerLanguage("lsl", lsl); 230 + 231 + import mel from "highlight.js/lib/languages/mel"; 232 + 233 + hljs.registerLanguage("mel", mel); 234 + 235 + import mercury from "highlight.js/lib/languages/mercury"; 236 + 237 + hljs.registerLanguage("mercury", mercury); 238 + 239 + import mizar from "highlight.js/lib/languages/mizar"; 240 + 241 + hljs.registerLanguage("mizar", mizar); 242 + 243 + import mojolicious from "highlight.js/lib/languages/mojolicious"; 244 + 245 + hljs.registerLanguage("mojolicious", mojolicious); 246 + 247 + import monkey from "highlight.js/lib/languages/monkey"; 248 + 249 + hljs.registerLanguage("monkey", monkey); 250 + 251 + import moonscript from "highlight.js/lib/languages/moonscript"; 252 + 253 + hljs.registerLanguage("moonscript", moonscript); 254 + 255 + import n1ql from "highlight.js/lib/languages/n1ql"; 256 + 257 + hljs.registerLanguage("n1ql", n1ql); 258 + 259 + import nestedtext from "highlight.js/lib/languages/nestedtext"; 260 + 261 + hljs.registerLanguage("nestedtext", nestedtext); 262 + 263 + import nsis from "highlight.js/lib/languages/nsis"; 264 + 265 + hljs.registerLanguage("nsis", nsis); 266 + 267 + import objectivec from "highlight.js/lib/languages/objectivec"; 268 + 269 + hljs.registerLanguage("objectivec", objectivec); 270 + 271 + import oxygene from "highlight.js/lib/languages/oxygene"; 272 + 273 + hljs.registerLanguage("oxygene", oxygene); 274 + 275 + import parser3 from "highlight.js/lib/languages/parser3"; 276 + 277 + hljs.registerLanguage("parser3", parser3); 278 + 279 + import pf from "highlight.js/lib/languages/pf"; 280 + 281 + hljs.registerLanguage("pf", pf); 282 + 283 + import pony from "highlight.js/lib/languages/pony"; 284 + 285 + hljs.registerLanguage("pony", pony); 286 + 287 + import powershell from "highlight.js/lib/languages/powershell"; 288 + 289 + hljs.registerLanguage("powershell", powershell); 290 + 291 + import processing from "highlight.js/lib/languages/processing"; 292 + 293 + hljs.registerLanguage("processing", processing); 294 + 295 + import profile from "highlight.js/lib/languages/profile"; 296 + 297 + hljs.registerLanguage("profile", profile); 298 + 299 + import prolog from "highlight.js/lib/languages/prolog"; 300 + 301 + hljs.registerLanguage("prolog", prolog); 302 + 303 + import protobuf from "highlight.js/lib/languages/protobuf"; 304 + 305 + hljs.registerLanguage("protobuf", protobuf); 306 + 307 + import puppet from "highlight.js/lib/languages/puppet"; 308 + 309 + hljs.registerLanguage("puppet", puppet); 310 + 311 + import purebasic from "highlight.js/lib/languages/purebasic"; 312 + 313 + hljs.registerLanguage("purebasic", purebasic); 314 + 315 + import q from "highlight.js/lib/languages/q"; 316 + 317 + hljs.registerLanguage("q", q); 318 + 319 + import qml from "highlight.js/lib/languages/qml"; 320 + 321 + hljs.registerLanguage("qml", qml); 322 + 323 + import reasonml from "highlight.js/lib/languages/reasonml"; 324 + 325 + hljs.registerLanguage("reasonml", reasonml); 326 + 327 + import rib from "highlight.js/lib/languages/rib"; 328 + 329 + hljs.registerLanguage("rib", rib); 330 + 331 + import roboconf from "highlight.js/lib/languages/roboconf"; 332 + 333 + hljs.registerLanguage("roboconf", roboconf); 334 + 335 + import routeros from "highlight.js/lib/languages/routeros"; 336 + 337 + hljs.registerLanguage("routeros", routeros); 338 + 339 + import rsl from "highlight.js/lib/languages/rsl"; 340 + 341 + hljs.registerLanguage("rsl", rsl); 342 + 343 + import ruleslanguage from "highlight.js/lib/languages/ruleslanguage"; 344 + 345 + hljs.registerLanguage("ruleslanguage", ruleslanguage); 346 + 347 + import sas from "highlight.js/lib/languages/sas"; 348 + 349 + hljs.registerLanguage("sas", sas); 350 + 351 + import scilab from "highlight.js/lib/languages/scilab"; 352 + 353 + hljs.registerLanguage("scilab", scilab); 354 + 355 + import smali from "highlight.js/lib/languages/smali"; 356 + 357 + hljs.registerLanguage("smali", smali); 358 + 359 + import smalltalk from "highlight.js/lib/languages/smalltalk"; 360 + 361 + hljs.registerLanguage("smalltalk", smalltalk); 362 + 363 + import sml from "highlight.js/lib/languages/sml"; 364 + 365 + hljs.registerLanguage("sml", sml); 366 + 367 + import stan from "highlight.js/lib/languages/stan"; 368 + 369 + hljs.registerLanguage("stan", stan); 370 + 371 + import stata from "highlight.js/lib/languages/stata"; 372 + 373 + hljs.registerLanguage("stata", stata); 374 + 375 + import step21 from "highlight.js/lib/languages/step21"; 376 + 377 + hljs.registerLanguage("step21", step21); 378 + 379 + import subunit from "highlight.js/lib/languages/subunit"; 380 + 381 + hljs.registerLanguage("subunit", subunit); 382 + 383 + import taggerscript from "highlight.js/lib/languages/taggerscript"; 384 + 385 + hljs.registerLanguage("taggerscript", taggerscript); 386 + 387 + import tap from "highlight.js/lib/languages/tap"; 388 + 389 + hljs.registerLanguage("tap", tap); 390 + 391 + import tcl from "highlight.js/lib/languages/tcl"; 392 + 393 + hljs.registerLanguage("tcl", tcl); 394 + 395 + import thrift from "highlight.js/lib/languages/thrift"; 396 + 397 + hljs.registerLanguage("thrift", thrift); 398 + 399 + import tp from "highlight.js/lib/languages/tp"; 400 + 401 + hljs.registerLanguage("tp", tp); 402 + 403 + import twig from "highlight.js/lib/languages/twig"; 404 + 405 + hljs.registerLanguage("twig", twig); 406 + 407 + import vbnet from "highlight.js/lib/languages/vbnet"; 408 + 409 + hljs.registerLanguage("vbnet", vbnet); 410 + 411 + import vhdl from "highlight.js/lib/languages/vhdl"; 412 + 413 + hljs.registerLanguage("vhdl", vhdl); 414 + 415 + import xl from "highlight.js/lib/languages/xl"; 416 + 417 + hljs.registerLanguage("xl", xl); 418 + 419 + import xquery from "highlight.js/lib/languages/xquery"; 420 + 421 + hljs.registerLanguage("xquery", xquery); 422 + 423 + import zephir from "highlight.js/lib/languages/zephir"; 424 + 425 + hljs.registerLanguage("zephir", zephir); 426 + 427 + import sqf from "highlight.js/lib/languages/sqf"; 428 + 429 + hljs.registerLanguage("sqf", sqf); 430 + 431 + import maxima from "highlight.js/lib/languages/maxima"; 432 + 433 + hljs.registerLanguage("maxima", maxima); 434 + 435 + import wasm from "highlight.js/lib/languages/wasm"; 436 + 437 + hljs.registerLanguage("wasm", wasm); 438 + 439 + import wren from "highlight.js/lib/languages/wren"; 440 + 441 + hljs.registerLanguage("wren", wren); 442 + 443 + import x86asm from "highlight.js/lib/languages/x86asm"; 444 + 445 + hljs.registerLanguage("x86asm", x86asm); 446 + 447 + import armasm from "highlight.js/lib/languages/armasm"; 448 + 449 + hljs.registerLanguage("armasm", armasm); 450 + 451 + import asciidoc from "highlight.js/lib/languages/asciidoc"; 452 + 453 + hljs.registerLanguage("asciidoc", asciidoc); 454 + 455 + import avrasm from "highlight.js/lib/languages/avrasm"; 456 + 457 + hljs.registerLanguage("avrasm", avrasm); 458 + 459 + import mipsasm from "highlight.js/lib/languages/mipsasm"; 460 + 461 + hljs.registerLanguage("mipsasm", mipsasm); 462 + 463 + import vbscript from "highlight.js/lib/languages/vbscript"; 464 + 465 + hljs.registerLanguage("vbscript", vbscript); 466 + 467 + import vbscripthtml from "highlight.js/lib/languages/vbscript-html"; 468 + 469 + hljs.registerLanguage("vbscript-html", vbscripthtml); 470 + 471 + import verilog from "highlight.js/lib/languages/verilog"; 472 + 473 + hljs.registerLanguage("verilog", verilog); 474 + 475 + import fortran from "highlight.js/lib/languages/fortran"; 476 + 477 + hljs.registerLanguage("fortran", fortran); 478 + 479 + import autohotkey from "highlight.js/lib/languages/autohotkey"; 480 + 481 + hljs.registerLanguage("autohotkey", autohotkey); 482 + 483 + import actionscript from "highlight.js/lib/languages/actionscript"; 484 + 485 + hljs.registerLanguage("actionscript", actionscript); 486 + 487 + import basic from "highlight.js/lib/languages/basic"; 488 + 489 + hljs.registerLanguage("basic", basic); 490 + 491 + import arduino from "highlight.js/lib/languages/arduino"; 492 + 493 + hljs.registerLanguage("arduino", arduino); 494 + 495 + import llvm from "highlight.js/lib/languages/llvm"; 496 + 497 + hljs.registerLanguage("llvm", llvm); 498 + 499 + import openscad from "highlight.js/lib/languages/openscad"; 500 + 501 + hljs.registerLanguage("openscad", openscad); 502 + 503 + import coffeescript from "highlight.js/lib/languages/coffeescript"; 504 + 505 + hljs.registerLanguage("coffeescript", coffeescript);
+2
src/util/microcosm.ts
··· 1 + export const constellationUrl = "https://constellation.microcosm.blue"; 2 + export const slingshotUrl = "https://slingshot.microcosm.blue";
+59
src/util/types.ts
··· 1 + export type DID = `did:plc:${string}` | `did:web:${string}`; 2 + 3 + export type RepoLog = { 4 + commits: { 5 + Author: { Name: string; Email: string; When: string }; 6 + Committer: { Name: string; Email: string; When: string }; 7 + Encoding: string; 8 + Hash: number[]; 9 + MergeTag: string; 10 + Message: string; 11 + PGPSignature: string; 12 + ParentHashes: number[][]; 13 + TreeHash: number[]; 14 + }[]; 15 + ref: string; 16 + description: string; 17 + log: boolean; 18 + total: number; 19 + page: number; 20 + per_page: number; 21 + }; 22 + 23 + export type DiffTextFragment = { 24 + Comment: string; 25 + OldPosition: number; 26 + NewPosition: number; 27 + NewLines: number; 28 + LinesAdded: number; 29 + LinesDeleted: number; 30 + LeadingContext: number; 31 + TrailingContext: number; 32 + Lines: { Op: number; Line: string }[]; 33 + is_binary: boolean; 34 + is_new: boolean; 35 + is_delete: boolean; 36 + is_copy: boolean; 37 + is_rename: boolean; 38 + }; 39 + 40 + export type Commit = { 41 + ref: string; 42 + diff: { 43 + commit: { 44 + message: string; 45 + author: { Name: string; Email: string; When: string }; 46 + this: string; 47 + parent: string; 48 + pgp_signature: string; 49 + committer: { Name: string; Email: string; When: string }; 50 + tree: string; 51 + change_id: string; 52 + }; 53 + stat: { files_changed: number; insertions: number; deletions: number }; 54 + diff: { 55 + name: { old: string; new: string }; 56 + text_fragments: DiffTextFragment[]; 57 + }[]; 58 + }; 59 + };
static/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-BoldItalic.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-ExtraLight.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-ExtraLightItalic.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-Light.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-LightItalic.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-Medium.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-MediumItalic.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-SemiBold.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-SemiBoldItalic.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-Text.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-TextItalic.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-Thin.woff2

This is a binary file and will not be displayed.

static/fonts/ibm-plex-mono/IBMPlexMono-ThinItalic.woff2

This is a binary file and will not be displayed.

+163
static/fonts/ibm-plex-mono/ibm-plex-mono.css
··· 1 + @font-face { 2 + font-family: "IBM Plex Mono"; 3 + font-style: normal; 4 + font-weight: 700; 5 + src: 6 + local("IBM Plex Mono Bold"), 7 + local("IBMPlexMono-Bold"), 8 + url("../fonts/complete/woff2/IBMPlexMono-Bold.woff2") format("woff2"), 9 + url("../fonts/complete/woff/IBMPlexMono-Bold.woff") format("woff"); 10 + } 11 + @font-face { 12 + font-family: "IBM Plex Mono"; 13 + font-style: italic; 14 + font-weight: 700; 15 + src: 16 + local("IBM Plex Mono Bold Italic"), 17 + local("IBMPlexMono-BoldItalic"), 18 + url("../fonts/complete/woff2/IBMPlexMono-BoldItalic.woff2") format("woff2"), 19 + url("../fonts/complete/woff/IBMPlexMono-BoldItalic.woff") format("woff"); 20 + } 21 + @font-face { 22 + font-family: "IBM Plex Mono"; 23 + font-style: normal; 24 + font-weight: 200; 25 + src: 26 + local("IBM Plex Mono ExtraLight"), 27 + local("IBMPlexMono-ExtraLight"), 28 + url("../fonts/complete/woff2/IBMPlexMono-ExtraLight.woff2") format("woff2"), 29 + url("../fonts/complete/woff/IBMPlexMono-ExtraLight.woff") format("woff"); 30 + } 31 + @font-face { 32 + font-family: "IBM Plex Mono"; 33 + font-style: italic; 34 + font-weight: 200; 35 + src: 36 + local("IBM Plex Mono ExtraLight Italic"), 37 + 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"); 42 + } 43 + @font-face { 44 + font-family: "IBM Plex Mono"; 45 + font-style: italic; 46 + font-weight: 400; 47 + src: 48 + local("IBM Plex Mono Italic"), 49 + local("IBMPlexMono-Italic"), 50 + url("../fonts/complete/woff2/IBMPlexMono-Italic.woff2") format("woff2"), 51 + url("../fonts/complete/woff/IBMPlexMono-Italic.woff") format("woff"); 52 + } 53 + @font-face { 54 + font-family: "IBM Plex Mono"; 55 + font-style: normal; 56 + font-weight: 300; 57 + src: 58 + local("IBM Plex Mono Light"), 59 + local("IBMPlexMono-Light"), 60 + url("../fonts/complete/woff2/IBMPlexMono-Light.woff2") format("woff2"), 61 + url("../fonts/complete/woff/IBMPlexMono-Light.woff") format("woff"); 62 + } 63 + @font-face { 64 + font-family: "IBM Plex Mono"; 65 + font-style: italic; 66 + font-weight: 300; 67 + src: 68 + local("IBM Plex Mono Light Italic"), 69 + local("IBMPlexMono-LightItalic"), 70 + url("../fonts/complete/woff2/IBMPlexMono-LightItalic.woff2") format("woff2"),; 71 + } 72 + @font-face { 73 + font-family: "IBM Plex Mono"; 74 + font-style: normal; 75 + font-weight: 500; 76 + src: 77 + local("IBM Plex Mono Medium"), 78 + local("IBMPlexMono-Medium"), 79 + url("../fonts/complete/woff2/IBMPlexMono-Medium.woff2") format("woff2"), 80 + url("../fonts/complete/woff/IBMPlexMono-Medium.woff") format("woff"); 81 + } 82 + @font-face { 83 + font-family: "IBM Plex Mono"; 84 + font-style: italic; 85 + font-weight: 500; 86 + src: 87 + local("IBM Plex Mono Medium Italic"), 88 + local("IBMPlexMono-MediumItalic"), 89 + url("../fonts/complete/woff2/IBMPlexMono-MediumItalic.woff2") 90 + format("woff2"), 91 + url("../fonts/complete/woff/IBMPlexMono-MediumItalic.woff") format("woff"); 92 + } 93 + @font-face { 94 + font-family: "IBM Plex Mono"; 95 + font-style: normal; 96 + font-weight: 400; 97 + src: 98 + local("IBM Plex Mono"), 99 + local("IBMPlexMono"), 100 + url("../fonts/complete/woff2/IBMPlexMono-Regular.woff2") format("woff2"), 101 + url("../fonts/complete/woff/IBMPlexMono-Regular.woff") format("woff"); 102 + } 103 + @font-face { 104 + font-family: "IBM Plex Mono"; 105 + font-style: normal; 106 + font-weight: 600; 107 + src: 108 + local("IBM Plex Mono SemiBold"), 109 + local("IBMPlexMono-SemiBold"), 110 + url("../fonts/complete/woff2/IBMPlexMono-SemiBold.woff2") format("woff2"), 111 + url("../fonts/complete/woff/IBMPlexMono-SemiBold.woff") format("woff"); 112 + } 113 + @font-face { 114 + font-family: "IBM Plex Mono"; 115 + font-style: italic; 116 + font-weight: 600; 117 + src: 118 + local("IBM Plex Mono SemiBold Italic"), 119 + local("IBMPlexMono-SemiBoldItalic"), 120 + url("../fonts/complete/woff2/IBMPlexMono-SemiBoldItalic.woff2") 121 + format("woff2"), 122 + url("../fonts/complete/woff/IBMPlexMono-SemiBoldItalic.woff") format("woff"); 123 + } 124 + @font-face { 125 + font-family: "IBM Plex Mono"; 126 + font-style: normal; 127 + font-weight: 450; 128 + src: 129 + local("IBM Plex Mono Text"), 130 + local("IBMPlexMono-Text"), 131 + url("../fonts/complete/woff2/IBMPlexMono-Text.woff2") format("woff2"), 132 + url("../fonts/complete/woff/IBMPlexMono-Text.woff") format("woff"); 133 + } 134 + @font-face { 135 + font-family: "IBM Plex Mono"; 136 + font-style: italic; 137 + font-weight: 450; 138 + src: 139 + local("IBM Plex Mono Text Italic"), 140 + local("IBMPlexMono-TextItalic"), 141 + url("../fonts/complete/woff2/IBMPlexMono-TextItalic.woff2") format("woff2"), 142 + url("../fonts/complete/woff/IBMPlexMono-TextItalic.woff") format("woff"); 143 + } 144 + @font-face { 145 + font-family: "IBM Plex Mono"; 146 + font-style: normal; 147 + font-weight: 100; 148 + src: 149 + local("IBM Plex Mono Thin"), 150 + local("IBMPlexMono-Thin"), 151 + url("../fonts/complete/woff2/IBMPlexMono-Thin.woff2") format("woff2"), 152 + url("../fonts/complete/woff/IBMPlexMono-Thin.woff") format("woff"); 153 + } 154 + @font-face { 155 + font-family: "IBM Plex Mono"; 156 + font-style: italic; 157 + font-weight: 100; 158 + src: 159 + local("IBM Plex Mono Thin Italic"), 160 + local("IBMPlexMono-ThinItalic"), 161 + url("../fonts/complete/woff2/IBMPlexMono-ThinItalic.woff2") format("woff2"), 162 + url("../fonts/complete/woff/IBMPlexMono-ThinItalic.woff") format("woff"); 163 + }
+92
static/fonts/ibm-plex-mono/license.txt
··· 1 + Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" 2 + 3 + This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 + This license is copied below, and is also available with a FAQ at: 5 + http://scripts.sil.org/OFL 6 + 7 + ----------------------------------------------------------- 8 + SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 9 + ----------------------------------------------------------- 10 + 11 + PREAMBLE 12 + The goals of the Open Font License (OFL) are to stimulate worldwide 13 + development of collaborative font projects, to support the font creation 14 + efforts of academic and linguistic communities, and to provide a free and 15 + open framework in which fonts may be shared and improved in partnership 16 + with others. 17 + 18 + The OFL allows the licensed fonts to be used, studied, modified and 19 + redistributed freely as long as they are not sold by themselves. The 20 + fonts, including any derivative works, can be bundled, embedded, 21 + redistributed and/or sold with any software provided that any reserved 22 + names are not used by derivative works. The fonts and derivatives, 23 + however, cannot be released under any other type of license. The 24 + requirement for fonts to remain under this license does not apply 25 + to any document created using the fonts or their derivatives. 26 + 27 + DEFINITIONS 28 + "Font Software" refers to the set of files released by the Copyright 29 + Holder(s) under this license and clearly marked as such. This may 30 + include source files, build scripts and documentation. 31 + 32 + "Reserved Font Name" refers to any names specified as such after the 33 + copyright statement(s). 34 + 35 + "Original Version" refers to the collection of Font Software components as 36 + distributed by the Copyright Holder(s). 37 + 38 + "Modified Version" refers to any derivative made by adding to, deleting, 39 + or substituting -- in part or in whole -- any of the components of the 40 + Original Version, by changing formats or by porting the Font Software to a 41 + new environment. 42 + 43 + "Author" refers to any designer, engineer, programmer, technical 44 + writer or other person who contributed to the Font Software. 45 + 46 + PERMISSION & CONDITIONS 47 + Permission is hereby granted, free of charge, to any person obtaining 48 + a copy of the Font Software, to use, study, copy, merge, embed, modify, 49 + redistribute, and sell modified and unmodified copies of the Font 50 + Software, subject to the following conditions: 51 + 52 + 1) Neither the Font Software nor any of its individual components, 53 + in Original or Modified Versions, may be sold by itself. 54 + 55 + 2) Original or Modified Versions of the Font Software may be bundled, 56 + redistributed and/or sold with any software, provided that each copy 57 + contains the above copyright notice and this license. These can be 58 + included either as stand-alone text files, human-readable headers or 59 + in the appropriate machine-readable metadata fields within text or 60 + binary files as long as those fields can be easily viewed by the user. 61 + 62 + 3) No Modified Version of the Font Software may use the Reserved Font 63 + Name(s) unless explicit written permission is granted by the corresponding 64 + Copyright Holder. This restriction only applies to the primary font name as 65 + presented to the users. 66 + 67 + 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 68 + Software shall not be used to promote, endorse or advertise any 69 + Modified Version, except to acknowledge the contribution(s) of the 70 + Copyright Holder(s) and the Author(s) or with their explicit written 71 + permission. 72 + 73 + 5) The Font Software, modified or unmodified, in part or in whole, 74 + must be distributed entirely under this license, and must not be 75 + distributed under any other license. The requirement for fonts to 76 + remain under this license does not apply to any document created 77 + using the Font Software. 78 + 79 + TERMINATION 80 + This license becomes null and void if any of the above conditions are 81 + not met. 82 + 83 + DISCLAIMER 84 + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 85 + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 86 + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 87 + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 88 + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 89 + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 90 + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 91 + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 92 + OTHER DEALINGS IN THE FONT SOFTWARE.
static/fonts/inter/InterVariable-Italic.woff2

This is a binary file and will not be displayed.

static/fonts/inter/InterVariable.woff2

This is a binary file and will not be displayed.

+92
static/fonts/inter/LICENSE.txt
··· 1 + Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter) 2 + 3 + This Font Software is licensed under the SIL Open Font License, Version 1.1. 4 + This license is copied below, and is also available with a FAQ at: 5 + http://scripts.sil.org/OFL 6 + 7 + ----------------------------------------------------------- 8 + SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 9 + ----------------------------------------------------------- 10 + 11 + PREAMBLE 12 + The goals of the Open Font License (OFL) are to stimulate worldwide 13 + development of collaborative font projects, to support the font creation 14 + efforts of academic and linguistic communities, and to provide a free and 15 + open framework in which fonts may be shared and improved in partnership 16 + with others. 17 + 18 + The OFL allows the licensed fonts to be used, studied, modified and 19 + redistributed freely as long as they are not sold by themselves. The 20 + fonts, including any derivative works, can be bundled, embedded, 21 + redistributed and/or sold with any software provided that any reserved 22 + names are not used by derivative works. The fonts and derivatives, 23 + however, cannot be released under any other type of license. The 24 + requirement for fonts to remain under this license does not apply 25 + to any document created using the fonts or their derivatives. 26 + 27 + DEFINITIONS 28 + "Font Software" refers to the set of files released by the Copyright 29 + Holder(s) under this license and clearly marked as such. This may 30 + include source files, build scripts and documentation. 31 + 32 + "Reserved Font Name" refers to any names specified as such after the 33 + copyright statement(s). 34 + 35 + "Original Version" refers to the collection of Font Software components as 36 + distributed by the Copyright Holder(s). 37 + 38 + "Modified Version" refers to any derivative made by adding to, deleting, 39 + or substituting -- in part or in whole -- any of the components of the 40 + Original Version, by changing formats or by porting the Font Software to a 41 + new environment. 42 + 43 + "Author" refers to any designer, engineer, programmer, technical 44 + writer or other person who contributed to the Font Software. 45 + 46 + PERMISSION AND CONDITIONS 47 + Permission is hereby granted, free of charge, to any person obtaining 48 + a copy of the Font Software, to use, study, copy, merge, embed, modify, 49 + redistribute, and sell modified and unmodified copies of the Font 50 + Software, subject to the following conditions: 51 + 52 + 1) Neither the Font Software nor any of its individual components, 53 + in Original or Modified Versions, may be sold by itself. 54 + 55 + 2) Original or Modified Versions of the Font Software may be bundled, 56 + redistributed and/or sold with any software, provided that each copy 57 + contains the above copyright notice and this license. These can be 58 + included either as stand-alone text files, human-readable headers or 59 + in the appropriate machine-readable metadata fields within text or 60 + binary files as long as those fields can be easily viewed by the user. 61 + 62 + 3) No Modified Version of the Font Software may use the Reserved Font 63 + Name(s) unless explicit written permission is granted by the corresponding 64 + Copyright Holder. This restriction only applies to the primary font name as 65 + presented to the users. 66 + 67 + 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font 68 + Software shall not be used to promote, endorse or advertise any 69 + Modified Version, except to acknowledge the contribution(s) of the 70 + Copyright Holder(s) and the Author(s) or with their explicit written 71 + permission. 72 + 73 + 5) The Font Software, modified or unmodified, in part or in whole, 74 + must be distributed entirely under this license, and must not be 75 + distributed under any other license. The requirement for fonts to 76 + remain under this license does not apply to any document created 77 + using the Font Software. 78 + 79 + TERMINATION 80 + This license becomes null and void if any of the above conditions are 81 + not met. 82 + 83 + DISCLAIMER 84 + THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 85 + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF 86 + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 87 + OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE 88 + COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 89 + INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL 90 + DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 91 + FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM 92 + OTHER DEALINGS IN THE FONT SOFTWARE.
+70
static/fonts/inter/inter.css
··· 1 + /* biome-ignore-all lint/correctness/noUnknownProperty: don't know why you dont get it */ 2 + 3 + /* Variable fonts usage: 4 + :root { font-family: "Inter", sans-serif; } 5 + @supports (font-variation-settings: normal) { 6 + :root { font-family: "InterVariable", sans-serif; font-optical-sizing: auto; } 7 + } */ 8 + @font-face { 9 + font-family: InterVariable; 10 + font-style: normal; 11 + font-weight: 100 900; 12 + font-display: swap; 13 + src: url("InterVariable.woff2") format("woff2"); 14 + } 15 + @font-face { 16 + font-family: InterVariable; 17 + font-style: italic; 18 + font-weight: 100 900; 19 + font-display: swap; 20 + src: url("InterVariable-Italic.woff2") format("woff2"); 21 + } 22 + 23 + @font-feature-values InterVariable { 24 + @character-variant { 25 + cv01: 1; 26 + cv02: 2; 27 + cv03: 3; 28 + cv04: 4; 29 + cv05: 5; 30 + cv06: 6; 31 + cv07: 7; 32 + cv08: 8; 33 + cv09: 9; 34 + cv10: 10; 35 + cv11: 11; 36 + cv12: 12; 37 + cv13: 13; 38 + alt-1: 1; /* Alternate one */ 39 + alt-3: 9; /* Flat-top three */ 40 + open-4: 2; /* Open four */ 41 + open-6: 3; /* Open six */ 42 + open-9: 4; /* Open nine */ 43 + lc-l-with-tail: 5; /* Lower-case L with tail */ 44 + simplified-u: 6; /* Simplified u */ 45 + alt-double-s: 7; /* Alternate German double s */ 46 + uc-i-with-serif: 8; /* Upper-case i with serif */ 47 + uc-g-with-spur: 10; /* Capital G with spur */ 48 + single-story-a: 11; /* Single-story a */ 49 + compact-lc-f: 12; /* Compact f */ 50 + compact-lc-t: 13; /* Compact t */ 51 + } 52 + @styleset { 53 + ss01: 1; 54 + ss02: 2; 55 + ss03: 3; 56 + ss04: 4; 57 + ss05: 5; 58 + ss06: 6; 59 + ss07: 7; 60 + ss08: 8; 61 + open-digits: 1; /* Open digits */ 62 + disambiguation: 2; /* Disambiguation (with zero) */ 63 + disambiguation-except-zero: 4; /* Disambiguation (no zero) */ 64 + round-quotes-and-commas: 3; /* Round quotes &amp; commas */ 65 + square-punctuation: 7; /* Square punctuation */ 66 + square-quotes: 8; /* Square quotes */ 67 + circled-characters: 5; /* Circled characters */ 68 + squared-characters: 6; /* Squared characters */ 69 + } 70 + }
+20
tsconfig.json
··· 1 + { 2 + "compilerOptions": { 3 + // General 4 + "jsx": "preserve", 5 + "jsxImportSource": "solid-js", 6 + "target": "ESNext", 7 + 8 + // Modules 9 + "allowSyntheticDefaultImports": true, 10 + "esModuleInterop": true, 11 + "isolatedModules": true, 12 + "module": "ESNext", 13 + "moduleResolution": "bundler", 14 + "noEmit": true, 15 + 16 + // Type Checking & Safety 17 + "strict": true, 18 + "types": ["vite/client", "solid-js", "@atcute/tangled", "@atcute/atproto"] 19 + } 20 + }
+33
vite.config.ts
··· 1 + import tailwindcss from "@tailwindcss/vite"; 2 + import devtools from "solid-devtools/vite"; 3 + import { defineConfig } from "vite"; 4 + import solidPlugin from "vite-plugin-solid"; 5 + 6 + export default defineConfig({ 7 + plugins: [devtools(), solidPlugin(), tailwindcss()], 8 + server: { 9 + port: 3000, 10 + }, 11 + build: { 12 + target: "esnext", 13 + rollupOptions: { 14 + output: { 15 + manualChunks: { 16 + hljs: [ 17 + "src/util/highlight.js/common", 18 + "highlight.js", 19 + "@gleam-lang/highlight.js-gleam", 20 + ], 21 + hljs1c: ["src/util/highlight.js/1c"], 22 + hljsGml: ["src/util/highlight.js/gml"], 23 + hljsIsbl: ["src/util/highlight.js/isbl"], 24 + hljsMathematica: ["src/util/highlight.js/mathematica"], 25 + hljsRare: ["src/util/highlight.js/rare"], 26 + }, 27 + }, 28 + }, 29 + }, 30 + optimizeDeps: { 31 + include: ["micromark", "unified"], 32 + }, 33 + });