[READ-ONLY] Mirror of https://github.com/plttn/mkd.
0

Configure Feed

Select the types of activity you want to include in your feed.

create test folder to simulate SSG folder

Jack Platten (May 24, 2026, 11:36 AM -0700) b6f14214 7992a003

+697 -388
+1
.gitignore
··· 1 1 /dist 2 2 node_modules 3 + /test
+2
.prettierignore
··· 1 + # Ignore artifacts: 2 + dist
+1
.prettierrc
··· 1 + {}
+4
mkd.json
··· 1 + // this is so that testing works locally 2 + { 3 + "blogDir": "./test/src/blog" 4 + }
+43 -41
package.json
··· 1 1 { 2 - "name": "mkd", 3 - "version": "1.0.0", 4 - "description": "", 5 - "scripts": { 6 - "dev": "tsx src/index.ts", 7 - "build": "tsc --build --clean && tsc --build" 8 - }, 9 - "type": "module", 10 - "bin": { 11 - "mkd": "dist/index.js" 12 - }, 13 - "files": [ 14 - "dist", 15 - "README.md", 16 - "sequoia.schema.json" 17 - ], 18 - "main": "./dist/index.js", 19 - "exports": { 20 - ".": "./dist/index.js" 21 - }, 22 - "keywords": [], 23 - "author": "", 24 - "license": "MIT", 25 - "devEngines": { 26 - "packageManager": { 27 - "name": "pnpm", 28 - "version": "^11.2.1", 29 - "onFail": "download" 30 - } 31 - }, 32 - "devDependencies": { 33 - "@types/node": "^25.9.1", 34 - "tsx": "^4.22.3", 35 - "typescript": "^6.0.3" 36 - }, 37 - "dependencies": { 38 - "@clack/prompts": "^1.4.0", 39 - "@sindresorhus/slugify": "^3.0.0", 40 - "cmd-ts": "^0.15.0", 41 - "filenamify": "^7.0.1", 42 - "gray-matter": "^4.0.3" 2 + "name": "mkd", 3 + "version": "1.0.0", 4 + "description": "", 5 + "scripts": { 6 + "dev": "tsx ./src/index.ts", 7 + "build": "tsc --build --clean && tsc --build" 8 + }, 9 + "type": "module", 10 + "bin": { 11 + "mkd": "dist/index.js" 12 + }, 13 + "files": [ 14 + "dist", 15 + "README.md", 16 + "src/index.ts" 17 + ], 18 + "main": "./dist/index.js", 19 + "exports": { 20 + ".": "./dist/index.js" 21 + }, 22 + "keywords": [], 23 + "author": "", 24 + "license": "MIT", 25 + "devEngines": { 26 + "packageManager": { 27 + "name": "pnpm", 28 + "version": "^11.2.1", 29 + "onFail": "download" 43 30 } 31 + }, 32 + "devDependencies": { 33 + "@types/node": "^25.9.1", 34 + "prettier": "3.8.3", 35 + "tsx": "^4.22.3", 36 + "typescript": "^6.0.3" 37 + }, 38 + "dependencies": { 39 + "@clack/prompts": "^1.4.0", 40 + "@sindresorhus/slugify": "^3.0.0", 41 + "cmd-ts": "^0.15.0", 42 + "filenamify": "^7.0.1", 43 + "gray-matter": "^4.0.3", 44 + "pwd-fs": "^3.5.4" 45 + } 44 46 }
+547 -291
pnpm-lock.yaml
··· 1 1 --- 2 - lockfileVersion: '9.0' 2 + lockfileVersion: "9.0" 3 3 4 4 importers: 5 - 6 5 .: 7 6 configDependencies: {} 8 7 packageManagerDependencies: 9 - '@pnpm/exe': 8 + "@pnpm/exe": 10 9 specifier: ^11.2.1 11 10 version: 11.2.2 12 11 pnpm: ··· 14 13 version: 11.2.2 15 14 16 15 packages: 17 - 18 - '@pnpm/exe@11.2.2': 19 - resolution: {integrity: sha512-9AGho6f10GYF/XHvnpO6wnzDIAiHNSs2PyOTelrNNyUiHwfTVtnJoXwRz/6yPJAYOF3erhPauv5oxf62uh581w==} 16 + "@pnpm/exe@11.2.2": 17 + resolution: 18 + { 19 + integrity: sha512-9AGho6f10GYF/XHvnpO6wnzDIAiHNSs2PyOTelrNNyUiHwfTVtnJoXwRz/6yPJAYOF3erhPauv5oxf62uh581w==, 20 + } 20 21 hasBin: true 21 22 22 - '@pnpm/linux-arm64@11.2.2': 23 - resolution: {integrity: sha512-cMEqyEwpghHb1UggKuowTuGKvbWe1Ra6bK3SF9CWoIrz36mzQz3FXxYXx1Theo8lmkwWH2MZdUGHKgtUoqEGKg==} 23 + "@pnpm/linux-arm64@11.2.2": 24 + resolution: 25 + { 26 + integrity: sha512-cMEqyEwpghHb1UggKuowTuGKvbWe1Ra6bK3SF9CWoIrz36mzQz3FXxYXx1Theo8lmkwWH2MZdUGHKgtUoqEGKg==, 27 + } 24 28 cpu: [arm64] 25 29 os: [linux] 26 30 27 - '@pnpm/linux-x64@11.2.2': 28 - resolution: {integrity: sha512-AShxDdan9wfAFbIGAO5YnbGRf3zuETOZVMuWqmx4mJLaAOR3kiA3Rwhzj3jyTsAoodn7Xdaxq9G1M3FpB92mkQ==} 31 + "@pnpm/linux-x64@11.2.2": 32 + resolution: 33 + { 34 + integrity: sha512-AShxDdan9wfAFbIGAO5YnbGRf3zuETOZVMuWqmx4mJLaAOR3kiA3Rwhzj3jyTsAoodn7Xdaxq9G1M3FpB92mkQ==, 35 + } 29 36 cpu: [x64] 30 37 os: [linux] 31 38 32 - '@pnpm/linuxstatic-arm64@11.2.2': 33 - resolution: {integrity: sha512-m7BCdqFdMFo3fkiOpcOLa70c3Ppy5OKv78HXSIfzL4ajHBdPQfmv03VgC3U08l1ST/EeQFuSt+Za0azmOJyYqA==} 39 + "@pnpm/linuxstatic-arm64@11.2.2": 40 + resolution: 41 + { 42 + integrity: sha512-m7BCdqFdMFo3fkiOpcOLa70c3Ppy5OKv78HXSIfzL4ajHBdPQfmv03VgC3U08l1ST/EeQFuSt+Za0azmOJyYqA==, 43 + } 34 44 cpu: [arm64] 35 45 os: [linux] 36 46 libc: [musl] 37 47 38 - '@pnpm/linuxstatic-x64@11.2.2': 39 - resolution: {integrity: sha512-UABTQUhdn6eCx/IlGVrdwklKT00pTHrjLNXdviP4OReJa1trM5HDWcDnreIg89ghCFmee+UTBKDx1FYlLON8EQ==} 48 + "@pnpm/linuxstatic-x64@11.2.2": 49 + resolution: 50 + { 51 + integrity: sha512-UABTQUhdn6eCx/IlGVrdwklKT00pTHrjLNXdviP4OReJa1trM5HDWcDnreIg89ghCFmee+UTBKDx1FYlLON8EQ==, 52 + } 40 53 cpu: [x64] 41 54 os: [linux] 42 55 libc: [musl] 43 56 44 - '@pnpm/macos-arm64@11.2.2': 45 - resolution: {integrity: sha512-EakwHSWIxzza6fO6zQkmkUphoadjer9VXCsWRax1D4qNWmChKfn2muYFj6BOChS999lwb4fb42gc61Nbx0X6iw==} 57 + "@pnpm/macos-arm64@11.2.2": 58 + resolution: 59 + { 60 + integrity: sha512-EakwHSWIxzza6fO6zQkmkUphoadjer9VXCsWRax1D4qNWmChKfn2muYFj6BOChS999lwb4fb42gc61Nbx0X6iw==, 61 + } 46 62 cpu: [arm64] 47 63 os: [darwin] 48 64 49 - '@pnpm/win-arm64@11.2.2': 50 - resolution: {integrity: sha512-eXzlXAnwRAI9Uff1U2pfTJxC78vL8aGxU/fsUt/RzWjS09xMQZ2qtAunKg869fAi6xfsquDbogkdTZA3163lIw==} 65 + "@pnpm/win-arm64@11.2.2": 66 + resolution: 67 + { 68 + integrity: sha512-eXzlXAnwRAI9Uff1U2pfTJxC78vL8aGxU/fsUt/RzWjS09xMQZ2qtAunKg869fAi6xfsquDbogkdTZA3163lIw==, 69 + } 51 70 cpu: [arm64] 52 71 os: [win32] 53 72 54 - '@pnpm/win-x64@11.2.2': 55 - resolution: {integrity: sha512-X74bQ4bvjSCYapcupRsGrse8cAg7XhPKXRn1o1qOouux1nJquz9lh2h5uKz8GPx816OUsYo9FS8DV3N9W+L8QA==} 73 + "@pnpm/win-x64@11.2.2": 74 + resolution: 75 + { 76 + integrity: sha512-X74bQ4bvjSCYapcupRsGrse8cAg7XhPKXRn1o1qOouux1nJquz9lh2h5uKz8GPx816OUsYo9FS8DV3N9W+L8QA==, 77 + } 56 78 cpu: [x64] 57 79 os: [win32] 58 80 59 - '@reflink/reflink-darwin-arm64@0.1.19': 60 - resolution: {integrity: sha512-ruy44Lpepdk1FqDz38vExBY/PVUsjxZA+chd9wozjUH9JjuDT/HEaQYA6wYN9mf041l0yLVar6BCZuWABJvHSA==} 61 - engines: {node: '>= 10'} 81 + "@reflink/reflink-darwin-arm64@0.1.19": 82 + resolution: 83 + { 84 + integrity: sha512-ruy44Lpepdk1FqDz38vExBY/PVUsjxZA+chd9wozjUH9JjuDT/HEaQYA6wYN9mf041l0yLVar6BCZuWABJvHSA==, 85 + } 86 + engines: { node: ">= 10" } 62 87 cpu: [arm64] 63 88 os: [darwin] 64 89 65 - '@reflink/reflink-darwin-x64@0.1.19': 66 - resolution: {integrity: sha512-By85MSWrMZa+c26TcnAy8SDk0sTUkYlNnwknSchkhHpGXOtjNDUOxJE9oByBnGbeuIE1PiQsxDG3Ud+IVV9yuA==} 67 - engines: {node: '>= 10'} 90 + "@reflink/reflink-darwin-x64@0.1.19": 91 + resolution: 92 + { 93 + integrity: sha512-By85MSWrMZa+c26TcnAy8SDk0sTUkYlNnwknSchkhHpGXOtjNDUOxJE9oByBnGbeuIE1PiQsxDG3Ud+IVV9yuA==, 94 + } 95 + engines: { node: ">= 10" } 68 96 cpu: [x64] 69 97 os: [darwin] 70 98 71 - '@reflink/reflink-linux-arm64-gnu@0.1.19': 72 - resolution: {integrity: sha512-7P+er8+rP9iNeN+bfmccM4hTAaLP6PQJPKWSA4iSk2bNvo6KU6RyPgYeHxXmzNKzPVRcypZQTpFgstHam6maVg==} 73 - engines: {node: '>= 10'} 99 + "@reflink/reflink-linux-arm64-gnu@0.1.19": 100 + resolution: 101 + { 102 + integrity: sha512-7P+er8+rP9iNeN+bfmccM4hTAaLP6PQJPKWSA4iSk2bNvo6KU6RyPgYeHxXmzNKzPVRcypZQTpFgstHam6maVg==, 103 + } 104 + engines: { node: ">= 10" } 74 105 cpu: [arm64] 75 106 os: [linux] 76 107 libc: [glibc] 77 108 78 - '@reflink/reflink-linux-arm64-musl@0.1.19': 79 - resolution: {integrity: sha512-37iO/Dp6m5DDaC2sf3zPtx/hl9FV3Xze4xoYidrxxS9bgP3S8ALroxRK6xBG/1TtfXKTvolvp+IjrUU6ujIGmA==} 80 - engines: {node: '>= 10'} 109 + "@reflink/reflink-linux-arm64-musl@0.1.19": 110 + resolution: 111 + { 112 + integrity: sha512-37iO/Dp6m5DDaC2sf3zPtx/hl9FV3Xze4xoYidrxxS9bgP3S8ALroxRK6xBG/1TtfXKTvolvp+IjrUU6ujIGmA==, 113 + } 114 + engines: { node: ">= 10" } 81 115 cpu: [arm64] 82 116 os: [linux] 83 117 libc: [musl] 84 118 85 - '@reflink/reflink-linux-x64-gnu@0.1.19': 86 - resolution: {integrity: sha512-jbI8jvuYCaA3MVUdu8vLoLAFqC+iNMpiSuLbxlAgg7x3K5bsS8nOpTRnkLF7vISJ+rVR8W+7ThXlXlUQ93ulkw==} 87 - engines: {node: '>= 10'} 119 + "@reflink/reflink-linux-x64-gnu@0.1.19": 120 + resolution: 121 + { 122 + integrity: sha512-jbI8jvuYCaA3MVUdu8vLoLAFqC+iNMpiSuLbxlAgg7x3K5bsS8nOpTRnkLF7vISJ+rVR8W+7ThXlXlUQ93ulkw==, 123 + } 124 + engines: { node: ">= 10" } 88 125 cpu: [x64] 89 126 os: [linux] 90 127 libc: [glibc] 91 128 92 - '@reflink/reflink-linux-x64-musl@0.1.19': 93 - resolution: {integrity: sha512-e9FBWDe+lv7QKAwtKOt6A2W/fyy/aEEfr0g6j/hWzvQcrzHCsz07BNQYlNOjTfeytrtLU7k449H1PI95jA4OjQ==} 94 - engines: {node: '>= 10'} 129 + "@reflink/reflink-linux-x64-musl@0.1.19": 130 + resolution: 131 + { 132 + integrity: sha512-e9FBWDe+lv7QKAwtKOt6A2W/fyy/aEEfr0g6j/hWzvQcrzHCsz07BNQYlNOjTfeytrtLU7k449H1PI95jA4OjQ==, 133 + } 134 + engines: { node: ">= 10" } 95 135 cpu: [x64] 96 136 os: [linux] 97 137 libc: [musl] 98 138 99 - '@reflink/reflink-win32-arm64-msvc@0.1.19': 100 - resolution: {integrity: sha512-09PxnVIQcd+UOn4WAW73WU6PXL7DwGS6wPlkMhMg2zlHHG65F3vHepOw06HFCq+N42qkaNAc8AKIabWvtk6cIQ==} 101 - engines: {node: '>= 10'} 139 + "@reflink/reflink-win32-arm64-msvc@0.1.19": 140 + resolution: 141 + { 142 + integrity: sha512-09PxnVIQcd+UOn4WAW73WU6PXL7DwGS6wPlkMhMg2zlHHG65F3vHepOw06HFCq+N42qkaNAc8AKIabWvtk6cIQ==, 143 + } 144 + engines: { node: ">= 10" } 102 145 cpu: [arm64] 103 146 os: [win32] 104 147 105 - '@reflink/reflink-win32-x64-msvc@0.1.19': 106 - resolution: {integrity: sha512-E//yT4ni2SyhwP8JRjVGWr3cbnhWDiPLgnQ66qqaanjjnMiu3O/2tjCPQXlcGc/DEYofpDc9fvhv6tALQsMV9w==} 107 - engines: {node: '>= 10'} 148 + "@reflink/reflink-win32-x64-msvc@0.1.19": 149 + resolution: 150 + { 151 + integrity: sha512-E//yT4ni2SyhwP8JRjVGWr3cbnhWDiPLgnQ66qqaanjjnMiu3O/2tjCPQXlcGc/DEYofpDc9fvhv6tALQsMV9w==, 152 + } 153 + engines: { node: ">= 10" } 108 154 cpu: [x64] 109 155 os: [win32] 110 156 111 - '@reflink/reflink@0.1.19': 112 - resolution: {integrity: sha512-DmCG8GzysnCZ15bres3N5AHCmwBwYgp0As6xjhQ47rAUTUXxJiK+lLUxaGsX3hd/30qUpVElh05PbGuxRPgJwA==} 113 - engines: {node: '>= 10'} 157 + "@reflink/reflink@0.1.19": 158 + resolution: 159 + { 160 + integrity: sha512-DmCG8GzysnCZ15bres3N5AHCmwBwYgp0As6xjhQ47rAUTUXxJiK+lLUxaGsX3hd/30qUpVElh05PbGuxRPgJwA==, 161 + } 162 + engines: { node: ">= 10" } 114 163 115 164 detect-libc@2.1.2: 116 - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 117 - engines: {node: '>=8'} 165 + resolution: 166 + { 167 + integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==, 168 + } 169 + engines: { node: ">=8" } 118 170 119 171 pnpm@11.2.2: 120 - resolution: {integrity: sha512-NuZiH61QYXiTZFXnAke4gI707CV5ep9DepMoGgIEhOJgf2pGmiLpgph8PbuIZuMHFRSrEKShdJ4G7c0ewRhDbw==} 121 - engines: {node: '>=22.13'} 172 + resolution: 173 + { 174 + integrity: sha512-NuZiH61QYXiTZFXnAke4gI707CV5ep9DepMoGgIEhOJgf2pGmiLpgph8PbuIZuMHFRSrEKShdJ4G7c0ewRhDbw==, 175 + } 176 + engines: { node: ">=22.13" } 122 177 hasBin: true 123 178 124 179 snapshots: 125 - 126 - '@pnpm/exe@11.2.2': 180 + "@pnpm/exe@11.2.2": 127 181 dependencies: 128 - '@reflink/reflink': 0.1.19 182 + "@reflink/reflink": 0.1.19 129 183 detect-libc: 2.1.2 130 184 optionalDependencies: 131 - '@pnpm/linux-arm64': 11.2.2 132 - '@pnpm/linux-x64': 11.2.2 133 - '@pnpm/linuxstatic-arm64': 11.2.2 134 - '@pnpm/linuxstatic-x64': 11.2.2 135 - '@pnpm/macos-arm64': 11.2.2 136 - '@pnpm/win-arm64': 11.2.2 137 - '@pnpm/win-x64': 11.2.2 185 + "@pnpm/linux-arm64": 11.2.2 186 + "@pnpm/linux-x64": 11.2.2 187 + "@pnpm/linuxstatic-arm64": 11.2.2 188 + "@pnpm/linuxstatic-x64": 11.2.2 189 + "@pnpm/macos-arm64": 11.2.2 190 + "@pnpm/win-arm64": 11.2.2 191 + "@pnpm/win-x64": 11.2.2 138 192 139 - '@pnpm/linux-arm64@11.2.2': 193 + "@pnpm/linux-arm64@11.2.2": 140 194 optional: true 141 195 142 - '@pnpm/linux-x64@11.2.2': 196 + "@pnpm/linux-x64@11.2.2": 143 197 optional: true 144 198 145 - '@pnpm/linuxstatic-arm64@11.2.2': 199 + "@pnpm/linuxstatic-arm64@11.2.2": 146 200 optional: true 147 201 148 - '@pnpm/linuxstatic-x64@11.2.2': 202 + "@pnpm/linuxstatic-x64@11.2.2": 149 203 optional: true 150 204 151 - '@pnpm/macos-arm64@11.2.2': 205 + "@pnpm/macos-arm64@11.2.2": 152 206 optional: true 153 207 154 - '@pnpm/win-arm64@11.2.2': 208 + "@pnpm/win-arm64@11.2.2": 155 209 optional: true 156 210 157 - '@pnpm/win-x64@11.2.2': 211 + "@pnpm/win-x64@11.2.2": 158 212 optional: true 159 213 160 - '@reflink/reflink-darwin-arm64@0.1.19': 214 + "@reflink/reflink-darwin-arm64@0.1.19": 161 215 optional: true 162 216 163 - '@reflink/reflink-darwin-x64@0.1.19': 217 + "@reflink/reflink-darwin-x64@0.1.19": 164 218 optional: true 165 219 166 - '@reflink/reflink-linux-arm64-gnu@0.1.19': 220 + "@reflink/reflink-linux-arm64-gnu@0.1.19": 167 221 optional: true 168 222 169 - '@reflink/reflink-linux-arm64-musl@0.1.19': 223 + "@reflink/reflink-linux-arm64-musl@0.1.19": 170 224 optional: true 171 225 172 - '@reflink/reflink-linux-x64-gnu@0.1.19': 226 + "@reflink/reflink-linux-x64-gnu@0.1.19": 173 227 optional: true 174 228 175 - '@reflink/reflink-linux-x64-musl@0.1.19': 229 + "@reflink/reflink-linux-x64-musl@0.1.19": 176 230 optional: true 177 231 178 - '@reflink/reflink-win32-arm64-msvc@0.1.19': 232 + "@reflink/reflink-win32-arm64-msvc@0.1.19": 179 233 optional: true 180 234 181 - '@reflink/reflink-win32-x64-msvc@0.1.19': 235 + "@reflink/reflink-win32-x64-msvc@0.1.19": 182 236 optional: true 183 237 184 - '@reflink/reflink@0.1.19': 238 + "@reflink/reflink@0.1.19": 185 239 optionalDependencies: 186 - '@reflink/reflink-darwin-arm64': 0.1.19 187 - '@reflink/reflink-darwin-x64': 0.1.19 188 - '@reflink/reflink-linux-arm64-gnu': 0.1.19 189 - '@reflink/reflink-linux-arm64-musl': 0.1.19 190 - '@reflink/reflink-linux-x64-gnu': 0.1.19 191 - '@reflink/reflink-linux-x64-musl': 0.1.19 192 - '@reflink/reflink-win32-arm64-msvc': 0.1.19 193 - '@reflink/reflink-win32-x64-msvc': 0.1.19 240 + "@reflink/reflink-darwin-arm64": 0.1.19 241 + "@reflink/reflink-darwin-x64": 0.1.19 242 + "@reflink/reflink-linux-arm64-gnu": 0.1.19 243 + "@reflink/reflink-linux-arm64-musl": 0.1.19 244 + "@reflink/reflink-linux-x64-gnu": 0.1.19 245 + "@reflink/reflink-linux-x64-musl": 0.1.19 246 + "@reflink/reflink-win32-arm64-msvc": 0.1.19 247 + "@reflink/reflink-win32-x64-msvc": 0.1.19 194 248 195 249 detect-libc@2.1.2: {} 196 250 197 251 pnpm@11.2.2: {} 198 252 199 253 --- 200 - lockfileVersion: '9.0' 254 + lockfileVersion: "9.0" 201 255 202 256 settings: 203 257 autoInstallPeers: true 204 258 excludeLinksFromLockfile: false 205 259 206 260 importers: 207 - 208 261 .: 209 262 dependencies: 210 - '@clack/prompts': 263 + "@clack/prompts": 211 264 specifier: ^1.4.0 212 265 version: 1.4.0 213 - '@sindresorhus/slugify': 266 + "@sindresorhus/slugify": 214 267 specifier: ^3.0.0 215 268 version: 3.0.0 216 269 cmd-ts: ··· 222 275 gray-matter: 223 276 specifier: ^4.0.3 224 277 version: 4.0.3 278 + pwd-fs: 279 + specifier: ^3.5.4 280 + version: 3.5.4 225 281 devDependencies: 226 - '@types/node': 282 + "@types/node": 227 283 specifier: ^25.9.1 228 284 version: 25.9.1 285 + prettier: 286 + specifier: 3.8.3 287 + version: 3.8.3 229 288 tsx: 230 289 specifier: ^4.22.3 231 290 version: 4.22.3 ··· 234 293 version: 6.0.3 235 294 236 295 packages: 296 + "@clack/core@1.3.1": 297 + resolution: 298 + { 299 + integrity: sha512-fT1qHVGAag4IEkrupZ6lRRbNCs1vS9P01KB/sG8zKgvUztbYtFBtQpjSITNwooDZ83tpsPzP0mRNs1/KVszCRA==, 300 + } 301 + engines: { node: ">= 20.12.0" } 237 302 238 - '@clack/core@1.3.1': 239 - resolution: {integrity: sha512-fT1qHVGAag4IEkrupZ6lRRbNCs1vS9P01KB/sG8zKgvUztbYtFBtQpjSITNwooDZ83tpsPzP0mRNs1/KVszCRA==} 240 - engines: {node: '>= 20.12.0'} 303 + "@clack/prompts@1.4.0": 304 + resolution: 305 + { 306 + integrity: sha512-S0My7XPGIgpRWMDG8uRqalbgT+a6FmCUdOW+HaIOVVpUPHOb7RrpvjTjiODadKp06fsrVDJZlIzc6yCTp4AnxA==, 307 + } 308 + engines: { node: ">= 20.12.0" } 241 309 242 - '@clack/prompts@1.4.0': 243 - resolution: {integrity: sha512-S0My7XPGIgpRWMDG8uRqalbgT+a6FmCUdOW+HaIOVVpUPHOb7RrpvjTjiODadKp06fsrVDJZlIzc6yCTp4AnxA==} 244 - engines: {node: '>= 20.12.0'} 245 - 246 - '@esbuild/aix-ppc64@0.28.0': 247 - resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} 248 - engines: {node: '>=18'} 310 + "@esbuild/aix-ppc64@0.28.0": 311 + resolution: 312 + { 313 + integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==, 314 + } 315 + engines: { node: ">=18" } 249 316 cpu: [ppc64] 250 317 os: [aix] 251 318 252 - '@esbuild/android-arm64@0.28.0': 253 - resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} 254 - engines: {node: '>=18'} 319 + "@esbuild/android-arm64@0.28.0": 320 + resolution: 321 + { 322 + integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==, 323 + } 324 + engines: { node: ">=18" } 255 325 cpu: [arm64] 256 326 os: [android] 257 327 258 - '@esbuild/android-arm@0.28.0': 259 - resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} 260 - engines: {node: '>=18'} 328 + "@esbuild/android-arm@0.28.0": 329 + resolution: 330 + { 331 + integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==, 332 + } 333 + engines: { node: ">=18" } 261 334 cpu: [arm] 262 335 os: [android] 263 336 264 - '@esbuild/android-x64@0.28.0': 265 - resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} 266 - engines: {node: '>=18'} 337 + "@esbuild/android-x64@0.28.0": 338 + resolution: 339 + { 340 + integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==, 341 + } 342 + engines: { node: ">=18" } 267 343 cpu: [x64] 268 344 os: [android] 269 345 270 - '@esbuild/darwin-arm64@0.28.0': 271 - resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} 272 - engines: {node: '>=18'} 346 + "@esbuild/darwin-arm64@0.28.0": 347 + resolution: 348 + { 349 + integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==, 350 + } 351 + engines: { node: ">=18" } 273 352 cpu: [arm64] 274 353 os: [darwin] 275 354 276 - '@esbuild/darwin-x64@0.28.0': 277 - resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} 278 - engines: {node: '>=18'} 355 + "@esbuild/darwin-x64@0.28.0": 356 + resolution: 357 + { 358 + integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==, 359 + } 360 + engines: { node: ">=18" } 279 361 cpu: [x64] 280 362 os: [darwin] 281 363 282 - '@esbuild/freebsd-arm64@0.28.0': 283 - resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} 284 - engines: {node: '>=18'} 364 + "@esbuild/freebsd-arm64@0.28.0": 365 + resolution: 366 + { 367 + integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==, 368 + } 369 + engines: { node: ">=18" } 285 370 cpu: [arm64] 286 371 os: [freebsd] 287 372 288 - '@esbuild/freebsd-x64@0.28.0': 289 - resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} 290 - engines: {node: '>=18'} 373 + "@esbuild/freebsd-x64@0.28.0": 374 + resolution: 375 + { 376 + integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==, 377 + } 378 + engines: { node: ">=18" } 291 379 cpu: [x64] 292 380 os: [freebsd] 293 381 294 - '@esbuild/linux-arm64@0.28.0': 295 - resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} 296 - engines: {node: '>=18'} 382 + "@esbuild/linux-arm64@0.28.0": 383 + resolution: 384 + { 385 + integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==, 386 + } 387 + engines: { node: ">=18" } 297 388 cpu: [arm64] 298 389 os: [linux] 299 390 300 - '@esbuild/linux-arm@0.28.0': 301 - resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} 302 - engines: {node: '>=18'} 391 + "@esbuild/linux-arm@0.28.0": 392 + resolution: 393 + { 394 + integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==, 395 + } 396 + engines: { node: ">=18" } 303 397 cpu: [arm] 304 398 os: [linux] 305 399 306 - '@esbuild/linux-ia32@0.28.0': 307 - resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} 308 - engines: {node: '>=18'} 400 + "@esbuild/linux-ia32@0.28.0": 401 + resolution: 402 + { 403 + integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==, 404 + } 405 + engines: { node: ">=18" } 309 406 cpu: [ia32] 310 407 os: [linux] 311 408 312 - '@esbuild/linux-loong64@0.28.0': 313 - resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} 314 - engines: {node: '>=18'} 409 + "@esbuild/linux-loong64@0.28.0": 410 + resolution: 411 + { 412 + integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==, 413 + } 414 + engines: { node: ">=18" } 315 415 cpu: [loong64] 316 416 os: [linux] 317 417 318 - '@esbuild/linux-mips64el@0.28.0': 319 - resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} 320 - engines: {node: '>=18'} 418 + "@esbuild/linux-mips64el@0.28.0": 419 + resolution: 420 + { 421 + integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==, 422 + } 423 + engines: { node: ">=18" } 321 424 cpu: [mips64el] 322 425 os: [linux] 323 426 324 - '@esbuild/linux-ppc64@0.28.0': 325 - resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} 326 - engines: {node: '>=18'} 427 + "@esbuild/linux-ppc64@0.28.0": 428 + resolution: 429 + { 430 + integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==, 431 + } 432 + engines: { node: ">=18" } 327 433 cpu: [ppc64] 328 434 os: [linux] 329 435 330 - '@esbuild/linux-riscv64@0.28.0': 331 - resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} 332 - engines: {node: '>=18'} 436 + "@esbuild/linux-riscv64@0.28.0": 437 + resolution: 438 + { 439 + integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==, 440 + } 441 + engines: { node: ">=18" } 333 442 cpu: [riscv64] 334 443 os: [linux] 335 444 336 - '@esbuild/linux-s390x@0.28.0': 337 - resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} 338 - engines: {node: '>=18'} 445 + "@esbuild/linux-s390x@0.28.0": 446 + resolution: 447 + { 448 + integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==, 449 + } 450 + engines: { node: ">=18" } 339 451 cpu: [s390x] 340 452 os: [linux] 341 453 342 - '@esbuild/linux-x64@0.28.0': 343 - resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} 344 - engines: {node: '>=18'} 454 + "@esbuild/linux-x64@0.28.0": 455 + resolution: 456 + { 457 + integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==, 458 + } 459 + engines: { node: ">=18" } 345 460 cpu: [x64] 346 461 os: [linux] 347 462 348 - '@esbuild/netbsd-arm64@0.28.0': 349 - resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} 350 - engines: {node: '>=18'} 463 + "@esbuild/netbsd-arm64@0.28.0": 464 + resolution: 465 + { 466 + integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==, 467 + } 468 + engines: { node: ">=18" } 351 469 cpu: [arm64] 352 470 os: [netbsd] 353 471 354 - '@esbuild/netbsd-x64@0.28.0': 355 - resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} 356 - engines: {node: '>=18'} 472 + "@esbuild/netbsd-x64@0.28.0": 473 + resolution: 474 + { 475 + integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==, 476 + } 477 + engines: { node: ">=18" } 357 478 cpu: [x64] 358 479 os: [netbsd] 359 480 360 - '@esbuild/openbsd-arm64@0.28.0': 361 - resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} 362 - engines: {node: '>=18'} 481 + "@esbuild/openbsd-arm64@0.28.0": 482 + resolution: 483 + { 484 + integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==, 485 + } 486 + engines: { node: ">=18" } 363 487 cpu: [arm64] 364 488 os: [openbsd] 365 489 366 - '@esbuild/openbsd-x64@0.28.0': 367 - resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} 368 - engines: {node: '>=18'} 490 + "@esbuild/openbsd-x64@0.28.0": 491 + resolution: 492 + { 493 + integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==, 494 + } 495 + engines: { node: ">=18" } 369 496 cpu: [x64] 370 497 os: [openbsd] 371 498 372 - '@esbuild/openharmony-arm64@0.28.0': 373 - resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} 374 - engines: {node: '>=18'} 499 + "@esbuild/openharmony-arm64@0.28.0": 500 + resolution: 501 + { 502 + integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==, 503 + } 504 + engines: { node: ">=18" } 375 505 cpu: [arm64] 376 506 os: [openharmony] 377 507 378 - '@esbuild/sunos-x64@0.28.0': 379 - resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} 380 - engines: {node: '>=18'} 508 + "@esbuild/sunos-x64@0.28.0": 509 + resolution: 510 + { 511 + integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==, 512 + } 513 + engines: { node: ">=18" } 381 514 cpu: [x64] 382 515 os: [sunos] 383 516 384 - '@esbuild/win32-arm64@0.28.0': 385 - resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} 386 - engines: {node: '>=18'} 517 + "@esbuild/win32-arm64@0.28.0": 518 + resolution: 519 + { 520 + integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==, 521 + } 522 + engines: { node: ">=18" } 387 523 cpu: [arm64] 388 524 os: [win32] 389 525 390 - '@esbuild/win32-ia32@0.28.0': 391 - resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} 392 - engines: {node: '>=18'} 526 + "@esbuild/win32-ia32@0.28.0": 527 + resolution: 528 + { 529 + integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==, 530 + } 531 + engines: { node: ">=18" } 393 532 cpu: [ia32] 394 533 os: [win32] 395 534 396 - '@esbuild/win32-x64@0.28.0': 397 - resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} 398 - engines: {node: '>=18'} 535 + "@esbuild/win32-x64@0.28.0": 536 + resolution: 537 + { 538 + integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==, 539 + } 540 + engines: { node: ">=18" } 399 541 cpu: [x64] 400 542 os: [win32] 401 543 402 - '@sindresorhus/slugify@3.0.0': 403 - resolution: {integrity: sha512-SCrKh1zS96q+CuH5GumHcyQEVPsM4Ve8oE0E6tw7AAhGq50K8ojbTUOQnX/j9Mhcv/AXiIsbCfquovyGOo5fGw==} 404 - engines: {node: '>=20'} 544 + "@sindresorhus/slugify@3.0.0": 545 + resolution: 546 + { 547 + integrity: sha512-SCrKh1zS96q+CuH5GumHcyQEVPsM4Ve8oE0E6tw7AAhGq50K8ojbTUOQnX/j9Mhcv/AXiIsbCfquovyGOo5fGw==, 548 + } 549 + engines: { node: ">=20" } 405 550 406 - '@sindresorhus/transliterate@2.3.1': 407 - resolution: {integrity: sha512-gVaaGtKYMYAMmI8buULVH3A2TXVJ98QiwGwI7ddrWGuGidGC2uRt4FHs22+8iROJ0QTzju9CuMjlVsrvpqsdhA==} 408 - engines: {node: '>=20'} 551 + "@sindresorhus/transliterate@2.3.1": 552 + resolution: 553 + { 554 + integrity: sha512-gVaaGtKYMYAMmI8buULVH3A2TXVJ98QiwGwI7ddrWGuGidGC2uRt4FHs22+8iROJ0QTzju9CuMjlVsrvpqsdhA==, 555 + } 556 + engines: { node: ">=20" } 409 557 410 - '@types/node@25.9.1': 411 - resolution: {integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==} 558 + "@types/node@25.9.1": 559 + resolution: 560 + { 561 + integrity: sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==, 562 + } 412 563 413 564 ansi-regex@6.2.2: 414 - resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} 415 - engines: {node: '>=12'} 565 + resolution: 566 + { 567 + integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==, 568 + } 569 + engines: { node: ">=12" } 416 570 417 571 argparse@1.0.10: 418 - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 572 + resolution: 573 + { 574 + integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, 575 + } 419 576 420 577 chalk@5.6.2: 421 - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} 422 - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 578 + resolution: 579 + { 580 + integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==, 581 + } 582 + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } 423 583 424 584 cmd-ts@0.15.0: 425 - resolution: {integrity: sha512-ASyAx+P6DNzNEZ6OYmvjjaLAQeI3L+4lm5rX2Jg8tondXdj06o9JTxi9mfC92KoVbrVFKhZ+j2TfBF8fcura6g==} 585 + resolution: 586 + { 587 + integrity: sha512-ASyAx+P6DNzNEZ6OYmvjjaLAQeI3L+4lm5rX2Jg8tondXdj06o9JTxi9mfC92KoVbrVFKhZ+j2TfBF8fcura6g==, 588 + } 426 589 427 590 debug@4.4.3: 428 - resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 429 - engines: {node: '>=6.0'} 591 + resolution: 592 + { 593 + integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==, 594 + } 595 + engines: { node: ">=6.0" } 430 596 peerDependencies: 431 - supports-color: '*' 597 + supports-color: "*" 432 598 peerDependenciesMeta: 433 599 supports-color: 434 600 optional: true 435 601 436 602 didyoumean@1.2.2: 437 - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 603 + resolution: 604 + { 605 + integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==, 606 + } 438 607 439 608 esbuild@0.28.0: 440 - resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} 441 - engines: {node: '>=18'} 609 + resolution: 610 + { 611 + integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==, 612 + } 613 + engines: { node: ">=18" } 442 614 hasBin: true 443 615 444 616 escape-string-regexp@5.0.0: 445 - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 446 - engines: {node: '>=12'} 617 + resolution: 618 + { 619 + integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, 620 + } 621 + engines: { node: ">=12" } 447 622 448 623 esprima@4.0.1: 449 - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 450 - engines: {node: '>=4'} 624 + resolution: 625 + { 626 + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, 627 + } 628 + engines: { node: ">=4" } 451 629 hasBin: true 452 630 453 631 extend-shallow@2.0.1: 454 - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} 455 - engines: {node: '>=0.10.0'} 632 + resolution: 633 + { 634 + integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, 635 + } 636 + engines: { node: ">=0.10.0" } 456 637 457 638 fast-string-truncated-width@3.0.3: 458 - resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} 639 + resolution: 640 + { 641 + integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==, 642 + } 459 643 460 644 fast-string-width@3.0.2: 461 - resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} 645 + resolution: 646 + { 647 + integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==, 648 + } 462 649 463 650 fast-wrap-ansi@0.2.2: 464 - resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} 651 + resolution: 652 + { 653 + integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==, 654 + } 465 655 466 656 filename-reserved-regex@4.0.0: 467 - resolution: {integrity: sha512-9ZT504KxEQDamsOogZImAWGEN24R1uFAxU3ZS4AZqn2ooidmN68Olh7n4/RcA4lLatZztjA0ZSuxeLHVoCc8JA==} 468 - engines: {node: '>=20'} 657 + resolution: 658 + { 659 + integrity: sha512-9ZT504KxEQDamsOogZImAWGEN24R1uFAxU3ZS4AZqn2ooidmN68Olh7n4/RcA4lLatZztjA0ZSuxeLHVoCc8JA==, 660 + } 661 + engines: { node: ">=20" } 469 662 470 663 filenamify@7.0.1: 471 - resolution: {integrity: sha512-9b4rfnaX2MkJCgp27wypV6DAMvj4WMOSgJ+TdcpJIO84Dql+Cv6iJjdG4XDTLubOWkfNiBv3joO59sau/TXw+Q==} 472 - engines: {node: '>=20'} 664 + resolution: 665 + { 666 + integrity: sha512-9b4rfnaX2MkJCgp27wypV6DAMvj4WMOSgJ+TdcpJIO84Dql+Cv6iJjdG4XDTLubOWkfNiBv3joO59sau/TXw+Q==, 667 + } 668 + engines: { node: ">=20" } 473 669 474 670 fsevents@2.3.3: 475 - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 476 - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 671 + resolution: 672 + { 673 + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, 674 + } 675 + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } 477 676 os: [darwin] 478 677 479 678 gray-matter@4.0.3: 480 - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} 481 - engines: {node: '>=6.0'} 679 + resolution: 680 + { 681 + integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==, 682 + } 683 + engines: { node: ">=6.0" } 482 684 483 685 is-extendable@0.1.1: 484 - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 485 - engines: {node: '>=0.10.0'} 686 + resolution: 687 + { 688 + integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, 689 + } 690 + engines: { node: ">=0.10.0" } 486 691 487 692 js-yaml@3.14.2: 488 - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} 693 + resolution: 694 + { 695 + integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==, 696 + } 489 697 hasBin: true 490 698 491 699 kind-of@6.0.3: 492 - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} 493 - engines: {node: '>=0.10.0'} 700 + resolution: 701 + { 702 + integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, 703 + } 704 + engines: { node: ">=0.10.0" } 494 705 495 706 ms@2.1.3: 496 - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 707 + resolution: 708 + { 709 + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, 710 + } 711 + 712 + prettier@3.8.3: 713 + resolution: 714 + { 715 + integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==, 716 + } 717 + engines: { node: ">=14" } 718 + hasBin: true 719 + 720 + pwd-fs@3.5.4: 721 + resolution: 722 + { 723 + integrity: sha512-VLvaxqHcZC4+eCOBGnCKprIT7B2XGbdH2TusJF3z4CiAiHKB6l0D43b0hgZ5NzdstPTduapa0Hg7EuX0Lwu9/g==, 724 + } 725 + engines: { node: ">=18" } 497 726 498 727 section-matter@1.0.0: 499 - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} 500 - engines: {node: '>=4'} 728 + resolution: 729 + { 730 + integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==, 731 + } 732 + engines: { node: ">=4" } 501 733 502 734 sisteransi@1.0.5: 503 - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 735 + resolution: 736 + { 737 + integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, 738 + } 504 739 505 740 sprintf-js@1.0.3: 506 - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 741 + resolution: 742 + { 743 + integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, 744 + } 507 745 508 746 strip-ansi@7.2.0: 509 - resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} 510 - engines: {node: '>=12'} 747 + resolution: 748 + { 749 + integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==, 750 + } 751 + engines: { node: ">=12" } 511 752 512 753 strip-bom-string@1.0.0: 513 - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} 514 - engines: {node: '>=0.10.0'} 754 + resolution: 755 + { 756 + integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==, 757 + } 758 + engines: { node: ">=0.10.0" } 515 759 516 760 tsx@4.22.3: 517 - resolution: {integrity: sha512-mdoNxBC/cSQObGGVQ5Bpn5i+yv7j68gk3Nfm3wFjcJg3Z0Mix9jzAFfP12prmm5eVGmDKtp0yyArrs0Q+8gZHg==} 518 - engines: {node: '>=18.0.0'} 761 + resolution: 762 + { 763 + integrity: sha512-mdoNxBC/cSQObGGVQ5Bpn5i+yv7j68gk3Nfm3wFjcJg3Z0Mix9jzAFfP12prmm5eVGmDKtp0yyArrs0Q+8gZHg==, 764 + } 765 + engines: { node: ">=18.0.0" } 519 766 hasBin: true 520 767 521 768 typescript@6.0.3: 522 - resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} 523 - engines: {node: '>=14.17'} 769 + resolution: 770 + { 771 + integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==, 772 + } 773 + engines: { node: ">=14.17" } 524 774 hasBin: true 525 775 526 776 undici-types@7.24.6: 527 - resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} 777 + resolution: 778 + { 779 + integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==, 780 + } 528 781 529 782 snapshots: 530 - 531 - '@clack/core@1.3.1': 783 + "@clack/core@1.3.1": 532 784 dependencies: 533 785 fast-wrap-ansi: 0.2.2 534 786 sisteransi: 1.0.5 535 787 536 - '@clack/prompts@1.4.0': 788 + "@clack/prompts@1.4.0": 537 789 dependencies: 538 - '@clack/core': 1.3.1 790 + "@clack/core": 1.3.1 539 791 fast-string-width: 3.0.2 540 792 fast-wrap-ansi: 0.2.2 541 793 sisteransi: 1.0.5 542 794 543 - '@esbuild/aix-ppc64@0.28.0': 795 + "@esbuild/aix-ppc64@0.28.0": 544 796 optional: true 545 797 546 - '@esbuild/android-arm64@0.28.0': 798 + "@esbuild/android-arm64@0.28.0": 547 799 optional: true 548 800 549 - '@esbuild/android-arm@0.28.0': 801 + "@esbuild/android-arm@0.28.0": 550 802 optional: true 551 803 552 - '@esbuild/android-x64@0.28.0': 804 + "@esbuild/android-x64@0.28.0": 553 805 optional: true 554 806 555 - '@esbuild/darwin-arm64@0.28.0': 807 + "@esbuild/darwin-arm64@0.28.0": 556 808 optional: true 557 809 558 - '@esbuild/darwin-x64@0.28.0': 810 + "@esbuild/darwin-x64@0.28.0": 559 811 optional: true 560 812 561 - '@esbuild/freebsd-arm64@0.28.0': 813 + "@esbuild/freebsd-arm64@0.28.0": 562 814 optional: true 563 815 564 - '@esbuild/freebsd-x64@0.28.0': 816 + "@esbuild/freebsd-x64@0.28.0": 565 817 optional: true 566 818 567 - '@esbuild/linux-arm64@0.28.0': 819 + "@esbuild/linux-arm64@0.28.0": 568 820 optional: true 569 821 570 - '@esbuild/linux-arm@0.28.0': 822 + "@esbuild/linux-arm@0.28.0": 571 823 optional: true 572 824 573 - '@esbuild/linux-ia32@0.28.0': 825 + "@esbuild/linux-ia32@0.28.0": 574 826 optional: true 575 827 576 - '@esbuild/linux-loong64@0.28.0': 828 + "@esbuild/linux-loong64@0.28.0": 577 829 optional: true 578 830 579 - '@esbuild/linux-mips64el@0.28.0': 831 + "@esbuild/linux-mips64el@0.28.0": 580 832 optional: true 581 833 582 - '@esbuild/linux-ppc64@0.28.0': 834 + "@esbuild/linux-ppc64@0.28.0": 583 835 optional: true 584 836 585 - '@esbuild/linux-riscv64@0.28.0': 837 + "@esbuild/linux-riscv64@0.28.0": 586 838 optional: true 587 839 588 - '@esbuild/linux-s390x@0.28.0': 840 + "@esbuild/linux-s390x@0.28.0": 589 841 optional: true 590 842 591 - '@esbuild/linux-x64@0.28.0': 843 + "@esbuild/linux-x64@0.28.0": 592 844 optional: true 593 845 594 - '@esbuild/netbsd-arm64@0.28.0': 846 + "@esbuild/netbsd-arm64@0.28.0": 595 847 optional: true 596 848 597 - '@esbuild/netbsd-x64@0.28.0': 849 + "@esbuild/netbsd-x64@0.28.0": 598 850 optional: true 599 851 600 - '@esbuild/openbsd-arm64@0.28.0': 852 + "@esbuild/openbsd-arm64@0.28.0": 601 853 optional: true 602 854 603 - '@esbuild/openbsd-x64@0.28.0': 855 + "@esbuild/openbsd-x64@0.28.0": 604 856 optional: true 605 857 606 - '@esbuild/openharmony-arm64@0.28.0': 858 + "@esbuild/openharmony-arm64@0.28.0": 607 859 optional: true 608 860 609 - '@esbuild/sunos-x64@0.28.0': 861 + "@esbuild/sunos-x64@0.28.0": 610 862 optional: true 611 863 612 - '@esbuild/win32-arm64@0.28.0': 864 + "@esbuild/win32-arm64@0.28.0": 613 865 optional: true 614 866 615 - '@esbuild/win32-ia32@0.28.0': 867 + "@esbuild/win32-ia32@0.28.0": 616 868 optional: true 617 869 618 - '@esbuild/win32-x64@0.28.0': 870 + "@esbuild/win32-x64@0.28.0": 619 871 optional: true 620 872 621 - '@sindresorhus/slugify@3.0.0': 873 + "@sindresorhus/slugify@3.0.0": 622 874 dependencies: 623 - '@sindresorhus/transliterate': 2.3.1 875 + "@sindresorhus/transliterate": 2.3.1 624 876 escape-string-regexp: 5.0.0 625 877 626 - '@sindresorhus/transliterate@2.3.1': {} 878 + "@sindresorhus/transliterate@2.3.1": {} 627 879 628 - '@types/node@25.9.1': 880 + "@types/node@25.9.1": 629 881 dependencies: 630 882 undici-types: 7.24.6 631 883 ··· 654 906 655 907 esbuild@0.28.0: 656 908 optionalDependencies: 657 - '@esbuild/aix-ppc64': 0.28.0 658 - '@esbuild/android-arm': 0.28.0 659 - '@esbuild/android-arm64': 0.28.0 660 - '@esbuild/android-x64': 0.28.0 661 - '@esbuild/darwin-arm64': 0.28.0 662 - '@esbuild/darwin-x64': 0.28.0 663 - '@esbuild/freebsd-arm64': 0.28.0 664 - '@esbuild/freebsd-x64': 0.28.0 665 - '@esbuild/linux-arm': 0.28.0 666 - '@esbuild/linux-arm64': 0.28.0 667 - '@esbuild/linux-ia32': 0.28.0 668 - '@esbuild/linux-loong64': 0.28.0 669 - '@esbuild/linux-mips64el': 0.28.0 670 - '@esbuild/linux-ppc64': 0.28.0 671 - '@esbuild/linux-riscv64': 0.28.0 672 - '@esbuild/linux-s390x': 0.28.0 673 - '@esbuild/linux-x64': 0.28.0 674 - '@esbuild/netbsd-arm64': 0.28.0 675 - '@esbuild/netbsd-x64': 0.28.0 676 - '@esbuild/openbsd-arm64': 0.28.0 677 - '@esbuild/openbsd-x64': 0.28.0 678 - '@esbuild/openharmony-arm64': 0.28.0 679 - '@esbuild/sunos-x64': 0.28.0 680 - '@esbuild/win32-arm64': 0.28.0 681 - '@esbuild/win32-ia32': 0.28.0 682 - '@esbuild/win32-x64': 0.28.0 909 + "@esbuild/aix-ppc64": 0.28.0 910 + "@esbuild/android-arm": 0.28.0 911 + "@esbuild/android-arm64": 0.28.0 912 + "@esbuild/android-x64": 0.28.0 913 + "@esbuild/darwin-arm64": 0.28.0 914 + "@esbuild/darwin-x64": 0.28.0 915 + "@esbuild/freebsd-arm64": 0.28.0 916 + "@esbuild/freebsd-x64": 0.28.0 917 + "@esbuild/linux-arm": 0.28.0 918 + "@esbuild/linux-arm64": 0.28.0 919 + "@esbuild/linux-ia32": 0.28.0 920 + "@esbuild/linux-loong64": 0.28.0 921 + "@esbuild/linux-mips64el": 0.28.0 922 + "@esbuild/linux-ppc64": 0.28.0 923 + "@esbuild/linux-riscv64": 0.28.0 924 + "@esbuild/linux-s390x": 0.28.0 925 + "@esbuild/linux-x64": 0.28.0 926 + "@esbuild/netbsd-arm64": 0.28.0 927 + "@esbuild/netbsd-x64": 0.28.0 928 + "@esbuild/openbsd-arm64": 0.28.0 929 + "@esbuild/openbsd-x64": 0.28.0 930 + "@esbuild/openharmony-arm64": 0.28.0 931 + "@esbuild/sunos-x64": 0.28.0 932 + "@esbuild/win32-arm64": 0.28.0 933 + "@esbuild/win32-ia32": 0.28.0 934 + "@esbuild/win32-x64": 0.28.0 683 935 684 936 escape-string-regexp@5.0.0: {} 685 937 ··· 725 977 kind-of@6.0.3: {} 726 978 727 979 ms@2.1.3: {} 980 + 981 + prettier@3.8.3: {} 982 + 983 + pwd-fs@3.5.4: {} 728 984 729 985 section-matter@1.0.0: 730 986 dependencies:
+28 -11
src/commands/new.ts
··· 2 2 import path from "node:path"; 3 3 import slugify from "@sindresorhus/slugify"; 4 4 import filenamify from "filenamify"; 5 + import matter from "gray-matter"; 6 + import type { Deps } from "../deps"; 5 7 6 - export const newCommand = command({ 8 + export function makeNewCommand({ config, pfs }: Deps) { 9 + return command({ 7 10 name: "new", 8 11 description: "Create a new markdown file", 9 12 args: { 10 - new: restPositionals({ 11 - type: string, 12 - displayName: "file", 13 - description: "name of the new post", 14 - }), 13 + new: restPositionals({ 14 + type: string, 15 + displayName: "file", 16 + description: "name of the new post", 17 + }), 15 18 }, 16 - handler: ({ new: titleArray }) => { 17 - const title = titleArray.join(" "); 18 - const slug = slugify(title); 19 - console.log(slug); 19 + handler: async ({ new: titleArray }) => { 20 + const title = titleArray.join(" "); 21 + const slug = slugify(title); 22 + const fileName = filenamify(slug); 23 + const frontmatter = generateFrontmatter(title); 24 + const filePath = path.join(config.blogDir, `${fileName}.md`); 25 + 26 + await pfs.write(filePath, frontmatter); 20 27 }, 21 - }); 28 + }); 29 + } 30 + 31 + function generateFrontmatter(title: string): string { 32 + const data = { 33 + title, 34 + date: new Date().toISOString(), 35 + }; 36 + 37 + return matter.stringify("", data); 38 + }
+31
src/deps.ts
··· 1 + import type { PoweredFileSystem } from "pwd-fs"; 2 + 3 + export type Config = { 4 + blogDir: string; 5 + }; 6 + 7 + export type Deps = { 8 + config: Config; 9 + pfs: PoweredFileSystem; 10 + }; 11 + 12 + const defaultConfig: Config = { 13 + blogDir: "./src/blog", 14 + }; 15 + 16 + export async function loadConfig(pfs: PoweredFileSystem): Promise<Config> { 17 + try { 18 + const raw = await pfs.read("./mkd.json"); 19 + 20 + if (!raw.trim()) { 21 + return defaultConfig; 22 + } 23 + 24 + return { 25 + ...defaultConfig, 26 + ...JSON.parse(raw), 27 + }; 28 + } catch { 29 + return defaultConfig; 30 + } 31 + }
+18 -5
src/index.ts
··· 1 1 #!/usr/bin/env node 2 2 import { run, subcommands } from "cmd-ts"; 3 - import { newCommand } from "./commands/new"; 3 + import { PoweredFileSystem } from "pwd-fs"; 4 + import { loadConfig } from "./deps"; 5 + import { makeNewCommand } from "./commands/new"; 4 6 5 - const app = subcommands({ 7 + async function main() { 8 + const pfs = new PoweredFileSystem(); 9 + const config = await loadConfig(pfs); 10 + const deps = { config, pfs }; 11 + 12 + const app = subcommands({ 6 13 name: "mkd", 7 14 cmds: { 8 - new: newCommand, 15 + new: makeNewCommand(deps), 9 16 }, 17 + }); 18 + 19 + await run(app, process.argv.slice(2)); 20 + } 21 + 22 + main().catch((error) => { 23 + console.error(error); 24 + process.exit(1); 10 25 }); 11 - 12 - run(app, process.argv.slice(2));
-18
test.md
··· 1 - --- 2 - author: Jack Platten 3 - createdAt: 2025-11-24T06:18:20.000Z 4 - modifiedAt: null 5 - title: Self hosting your PDS with Podman 6 - featured: true 7 - draft: false 8 - tags: 9 - - atproto 10 - - server 11 - description: A writeup of gotchas and other fun stuff along the way of deploying a PDS 12 - atUri: 'at://did:plc:cwdkf4xxjpznceembuuspt3d/site.standard.document/3mdrs3mtops2m' 13 - --- 14 - 15 - Bluesky is great (as evidenced by my multiple posts on it), but I wanted to own 16 - my data more than it living on the Bluesky servers. Now I could have just used 17 - the standard deployment as shown [in the PDS repo](https://github.com/bluesky-social/pds), 18 - but I wanted to do something a little more fitting my deployment practices.
+21 -21
tsconfig.json
··· 1 1 { 2 - "compilerOptions": { 3 - "lib": ["ES2022", "DOM"], 4 - "target": "ES2022", 5 - "module": "ESNext", 6 - "moduleResolution": "bundler", 7 - "outDir": "./dist", 8 - "rootDir": "./src", 9 - "declaration": true, 10 - "sourceMap": true, 11 - "strict": true, 12 - "skipLibCheck": true, 13 - "esModuleInterop": true, 14 - "resolveJsonModule": true, 15 - "forceConsistentCasingInFileNames": true, 16 - "noFallthroughCasesInSwitch": true, 17 - "noUncheckedIndexedAccess": true, 18 - "noUnusedLocals": false, 19 - "noUnusedParameters": false, 20 - "types": ["node"], 21 - }, 22 - "include": ["src/**/*"], 2 + "compilerOptions": { 3 + "lib": ["ES2022", "DOM"], 4 + "target": "ES2022", 5 + "module": "ESNext", 6 + "moduleResolution": "bundler", 7 + "outDir": "./dist", 8 + "rootDir": "./src", 9 + "declaration": true, 10 + "sourceMap": true, 11 + "strict": true, 12 + "skipLibCheck": true, 13 + "esModuleInterop": true, 14 + "resolveJsonModule": true, 15 + "forceConsistentCasingInFileNames": true, 16 + "noFallthroughCasesInSwitch": true, 17 + "noUncheckedIndexedAccess": true, 18 + "noUnusedLocals": false, 19 + "noUnusedParameters": false, 20 + "types": ["node"], 21 + }, 22 + "include": ["src/**/*"], 23 23 }
+1 -1
tsconfig.tsbuildinfo
··· 1 - {"root":["./src/index.ts","./src/commands/new.ts"],"version":"6.0.3"} 1 + {"root":["./src/deps.ts","./src/index.ts","./src/commands/new.ts"],"version":"6.0.3"}