Procedurally generates a radio weather report

Compare changes

Choose any two refs to compare.

+10
.github/workflows/test.yml
··· 14 14 timeout-minutes: 20 15 15 strategy: 16 16 fail-fast: true 17 + matrix: 18 + nodever: 19 + [ 20 + 'latest', 21 + 'lts/*', 22 + 'lts/hydrogen' 23 + ] 17 24 permissions: 18 25 contents: read 19 26 ··· 23 30 24 31 - name: Setup nodejs 25 32 uses: https://github.com/actions/setup-node@v4 33 + with: 34 + node-version: "${{ matrix.nodever }}" 35 + check-latest: true 26 36 27 37 - name: Install dependencies 28 38 run: npm ci
+2
.gitignore
··· 103 103 distribution/ 104 104 .env 105 105 test/*.js* 106 + output.wav 107 + output.mp3
+18
.tangled/workflows/audit.yml
··· 1 + when: 2 + - event: ["push"] 3 + branch: ["master"] 4 + 5 + engine: "nixery" 6 + 7 + dependencies: 8 + nixpkgs: 9 + - nodejs 10 + 11 + steps: 12 + - name: "NPM Audit" 13 + command: "npm audit" 14 + 15 + clone: 16 + skip: false 17 + depth: 3 18 + submodules: false
+24
.tangled/workflows/test.yml
··· 1 + when: 2 + - event: ["push"] 3 + branch: ["master"] 4 + 5 + engine: "nixery" 6 + 7 + dependencies: 8 + nixpkgs: 9 + - nodejs 10 + 11 + steps: 12 + - name: "Install dependencies" 13 + command: "npm ci" 14 + 15 + - name: "tsc" 16 + command: "npm run build && echo 'done.'" 17 + 18 + - name: "tests" 19 + command: "npm test" 20 + 21 + clone: 22 + skip: false 23 + depth: 3 24 + submodules: false
+294 -260
package-lock.json
··· 1 1 { 2 2 "name": "morning-report", 3 - "version": "0.0.1", 3 + "version": "0.0.5", 4 4 "lockfileVersion": 3, 5 5 "requires": true, 6 6 "packages": { 7 7 "": { 8 8 "name": "morning-report", 9 - "version": "0.0.1", 9 + "version": "0.0.5", 10 10 "license": "MIT", 11 11 "dependencies": { 12 12 "json5": "2.2.3", 13 13 "openweather-api-node": "3.1.5" 14 14 }, 15 + "bin": { 16 + "morning-report": "distribution/src/index.js" 17 + }, 15 18 "devDependencies": { 16 - "@types/node": "24.3.0", 19 + "@types/node": "24.10.1", 17 20 "@vitest/coverage-v8": "3.2.4", 18 - "typescript": "5.9.2", 21 + "typescript": "5.9.3", 19 22 "vitest": "3.2.4" 20 23 } 21 24 }, ··· 44 47 } 45 48 }, 46 49 "node_modules/@babel/helper-validator-identifier": { 47 - "version": "7.27.1", 48 - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", 49 - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", 50 + "version": "7.28.5", 51 + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", 52 + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", 50 53 "dev": true, 51 54 "license": "MIT", 52 55 "engines": { ··· 54 57 } 55 58 }, 56 59 "node_modules/@babel/parser": { 57 - "version": "7.28.3", 58 - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", 59 - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", 60 + "version": "7.28.5", 61 + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", 62 + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", 60 63 "dev": true, 61 64 "license": "MIT", 62 65 "dependencies": { 63 - "@babel/types": "^7.28.2" 66 + "@babel/types": "^7.28.5" 64 67 }, 65 68 "bin": { 66 69 "parser": "bin/babel-parser.js" ··· 70 73 } 71 74 }, 72 75 "node_modules/@babel/types": { 73 - "version": "7.28.2", 74 - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", 75 - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", 76 + "version": "7.28.5", 77 + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", 78 + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", 76 79 "dev": true, 77 80 "license": "MIT", 78 81 "dependencies": { 79 82 "@babel/helper-string-parser": "^7.27.1", 80 - "@babel/helper-validator-identifier": "^7.27.1" 83 + "@babel/helper-validator-identifier": "^7.28.5" 81 84 }, 82 85 "engines": { 83 86 "node": ">=6.9.0" ··· 94 97 } 95 98 }, 96 99 "node_modules/@esbuild/aix-ppc64": { 97 - "version": "0.25.9", 98 - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", 99 - "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", 100 + "version": "0.25.12", 101 + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", 102 + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", 100 103 "cpu": [ 101 104 "ppc64" 102 105 ], ··· 111 114 } 112 115 }, 113 116 "node_modules/@esbuild/android-arm": { 114 - "version": "0.25.9", 115 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", 116 - "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", 117 + "version": "0.25.12", 118 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", 119 + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", 117 120 "cpu": [ 118 121 "arm" 119 122 ], ··· 128 131 } 129 132 }, 130 133 "node_modules/@esbuild/android-arm64": { 131 - "version": "0.25.9", 132 - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", 133 - "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", 134 + "version": "0.25.12", 135 + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", 136 + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", 134 137 "cpu": [ 135 138 "arm64" 136 139 ], ··· 145 148 } 146 149 }, 147 150 "node_modules/@esbuild/android-x64": { 148 - "version": "0.25.9", 149 - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", 150 - "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", 151 + "version": "0.25.12", 152 + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", 153 + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", 151 154 "cpu": [ 152 155 "x64" 153 156 ], ··· 162 165 } 163 166 }, 164 167 "node_modules/@esbuild/darwin-arm64": { 165 - "version": "0.25.9", 166 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", 167 - "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", 168 + "version": "0.25.12", 169 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", 170 + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", 168 171 "cpu": [ 169 172 "arm64" 170 173 ], ··· 179 182 } 180 183 }, 181 184 "node_modules/@esbuild/darwin-x64": { 182 - "version": "0.25.9", 183 - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", 184 - "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", 185 + "version": "0.25.12", 186 + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", 187 + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", 185 188 "cpu": [ 186 189 "x64" 187 190 ], ··· 196 199 } 197 200 }, 198 201 "node_modules/@esbuild/freebsd-arm64": { 199 - "version": "0.25.9", 200 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", 201 - "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", 202 + "version": "0.25.12", 203 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", 204 + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", 202 205 "cpu": [ 203 206 "arm64" 204 207 ], ··· 213 216 } 214 217 }, 215 218 "node_modules/@esbuild/freebsd-x64": { 216 - "version": "0.25.9", 217 - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", 218 - "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", 219 + "version": "0.25.12", 220 + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", 221 + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", 219 222 "cpu": [ 220 223 "x64" 221 224 ], ··· 230 233 } 231 234 }, 232 235 "node_modules/@esbuild/linux-arm": { 233 - "version": "0.25.9", 234 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", 235 - "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", 236 + "version": "0.25.12", 237 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", 238 + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", 236 239 "cpu": [ 237 240 "arm" 238 241 ], ··· 247 250 } 248 251 }, 249 252 "node_modules/@esbuild/linux-arm64": { 250 - "version": "0.25.9", 251 - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", 252 - "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", 253 + "version": "0.25.12", 254 + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", 255 + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", 253 256 "cpu": [ 254 257 "arm64" 255 258 ], ··· 264 267 } 265 268 }, 266 269 "node_modules/@esbuild/linux-ia32": { 267 - "version": "0.25.9", 268 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", 269 - "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", 270 + "version": "0.25.12", 271 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", 272 + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", 270 273 "cpu": [ 271 274 "ia32" 272 275 ], ··· 281 284 } 282 285 }, 283 286 "node_modules/@esbuild/linux-loong64": { 284 - "version": "0.25.9", 285 - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", 286 - "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", 287 + "version": "0.25.12", 288 + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", 289 + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", 287 290 "cpu": [ 288 291 "loong64" 289 292 ], ··· 298 301 } 299 302 }, 300 303 "node_modules/@esbuild/linux-mips64el": { 301 - "version": "0.25.9", 302 - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", 303 - "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", 304 + "version": "0.25.12", 305 + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", 306 + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", 304 307 "cpu": [ 305 308 "mips64el" 306 309 ], ··· 315 318 } 316 319 }, 317 320 "node_modules/@esbuild/linux-ppc64": { 318 - "version": "0.25.9", 319 - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", 320 - "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", 321 + "version": "0.25.12", 322 + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", 323 + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", 321 324 "cpu": [ 322 325 "ppc64" 323 326 ], ··· 332 335 } 333 336 }, 334 337 "node_modules/@esbuild/linux-riscv64": { 335 - "version": "0.25.9", 336 - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", 337 - "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", 338 + "version": "0.25.12", 339 + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", 340 + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", 338 341 "cpu": [ 339 342 "riscv64" 340 343 ], ··· 349 352 } 350 353 }, 351 354 "node_modules/@esbuild/linux-s390x": { 352 - "version": "0.25.9", 353 - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", 354 - "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", 355 + "version": "0.25.12", 356 + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", 357 + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", 355 358 "cpu": [ 356 359 "s390x" 357 360 ], ··· 366 369 } 367 370 }, 368 371 "node_modules/@esbuild/linux-x64": { 369 - "version": "0.25.9", 370 - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", 371 - "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", 372 + "version": "0.25.12", 373 + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", 374 + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", 372 375 "cpu": [ 373 376 "x64" 374 377 ], ··· 383 386 } 384 387 }, 385 388 "node_modules/@esbuild/netbsd-arm64": { 386 - "version": "0.25.9", 387 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", 388 - "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", 389 + "version": "0.25.12", 390 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", 391 + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", 389 392 "cpu": [ 390 393 "arm64" 391 394 ], ··· 400 403 } 401 404 }, 402 405 "node_modules/@esbuild/netbsd-x64": { 403 - "version": "0.25.9", 404 - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", 405 - "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", 406 + "version": "0.25.12", 407 + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", 408 + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", 406 409 "cpu": [ 407 410 "x64" 408 411 ], ··· 417 420 } 418 421 }, 419 422 "node_modules/@esbuild/openbsd-arm64": { 420 - "version": "0.25.9", 421 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", 422 - "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", 423 + "version": "0.25.12", 424 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", 425 + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", 423 426 "cpu": [ 424 427 "arm64" 425 428 ], ··· 434 437 } 435 438 }, 436 439 "node_modules/@esbuild/openbsd-x64": { 437 - "version": "0.25.9", 438 - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", 439 - "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", 440 + "version": "0.25.12", 441 + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", 442 + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", 440 443 "cpu": [ 441 444 "x64" 442 445 ], ··· 451 454 } 452 455 }, 453 456 "node_modules/@esbuild/openharmony-arm64": { 454 - "version": "0.25.9", 455 - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", 456 - "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", 457 + "version": "0.25.12", 458 + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", 459 + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", 457 460 "cpu": [ 458 461 "arm64" 459 462 ], ··· 468 471 } 469 472 }, 470 473 "node_modules/@esbuild/sunos-x64": { 471 - "version": "0.25.9", 472 - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", 473 - "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", 474 + "version": "0.25.12", 475 + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", 476 + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", 474 477 "cpu": [ 475 478 "x64" 476 479 ], ··· 485 488 } 486 489 }, 487 490 "node_modules/@esbuild/win32-arm64": { 488 - "version": "0.25.9", 489 - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", 490 - "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", 491 + "version": "0.25.12", 492 + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", 493 + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", 491 494 "cpu": [ 492 495 "arm64" 493 496 ], ··· 502 505 } 503 506 }, 504 507 "node_modules/@esbuild/win32-ia32": { 505 - "version": "0.25.9", 506 - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", 507 - "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", 508 + "version": "0.25.12", 509 + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", 510 + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", 508 511 "cpu": [ 509 512 "ia32" 510 513 ], ··· 519 522 } 520 523 }, 521 524 "node_modules/@esbuild/win32-x64": { 522 - "version": "0.25.9", 523 - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", 524 - "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", 525 + "version": "0.25.12", 526 + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", 527 + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", 525 528 "cpu": [ 526 529 "x64" 527 530 ], ··· 592 595 "license": "MIT" 593 596 }, 594 597 "node_modules/@jridgewell/trace-mapping": { 595 - "version": "0.3.30", 596 - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", 597 - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", 598 + "version": "0.3.31", 599 + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", 600 + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", 598 601 "dev": true, 599 602 "license": "MIT", 600 603 "dependencies": { ··· 614 617 } 615 618 }, 616 619 "node_modules/@rollup/rollup-android-arm-eabi": { 617 - "version": "4.48.0", 618 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.48.0.tgz", 619 - "integrity": "sha512-aVzKH922ogVAWkKiyKXorjYymz2084zrhrZRXtLrA5eEx5SO8Dj0c/4FpCHZyn7MKzhW2pW4tK28vVr+5oQ2xw==", 620 + "version": "4.53.3", 621 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.3.tgz", 622 + "integrity": "sha512-mRSi+4cBjrRLoaal2PnqH82Wqyb+d3HsPUN/W+WslCXsZsyHa9ZeQQX/pQsZaVIWDkPcpV6jJ+3KLbTbgnwv8w==", 620 623 "cpu": [ 621 624 "arm" 622 625 ], ··· 628 631 ] 629 632 }, 630 633 "node_modules/@rollup/rollup-android-arm64": { 631 - "version": "4.48.0", 632 - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.48.0.tgz", 633 - "integrity": "sha512-diOdQuw43xTa1RddAFbhIA8toirSzFMcnIg8kvlzRbK26xqEnKJ/vqQnghTAajy2Dcy42v+GMPMo6jq67od+Dw==", 634 + "version": "4.53.3", 635 + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.3.tgz", 636 + "integrity": "sha512-CbDGaMpdE9sh7sCmTrTUyllhrg65t6SwhjlMJsLr+J8YjFuPmCEjbBSx4Z/e4SmDyH3aB5hGaJUP2ltV/vcs4w==", 634 637 "cpu": [ 635 638 "arm64" 636 639 ], ··· 642 645 ] 643 646 }, 644 647 "node_modules/@rollup/rollup-darwin-arm64": { 645 - "version": "4.48.0", 646 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.48.0.tgz", 647 - "integrity": "sha512-QhR2KA18fPlJWFefySJPDYZELaVqIUVnYgAOdtJ+B/uH96CFg2l1TQpX19XpUMWUqMyIiyY45wje8K6F4w4/CA==", 648 + "version": "4.53.3", 649 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.3.tgz", 650 + "integrity": "sha512-Nr7SlQeqIBpOV6BHHGZgYBuSdanCXuw09hon14MGOLGmXAFYjx1wNvquVPmpZnl0tLjg25dEdr4IQ6GgyToCUA==", 648 651 "cpu": [ 649 652 "arm64" 650 653 ], ··· 656 659 ] 657 660 }, 658 661 "node_modules/@rollup/rollup-darwin-x64": { 659 - "version": "4.48.0", 660 - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.48.0.tgz", 661 - "integrity": "sha512-Q9RMXnQVJ5S1SYpNSTwXDpoQLgJ/fbInWOyjbCnnqTElEyeNvLAB3QvG5xmMQMhFN74bB5ZZJYkKaFPcOG8sGg==", 662 + "version": "4.53.3", 663 + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.3.tgz", 664 + "integrity": "sha512-DZ8N4CSNfl965CmPktJ8oBnfYr3F8dTTNBQkRlffnUarJ2ohudQD17sZBa097J8xhQ26AwhHJ5mvUyQW8ddTsQ==", 662 665 "cpu": [ 663 666 "x64" 664 667 ], ··· 670 673 ] 671 674 }, 672 675 "node_modules/@rollup/rollup-freebsd-arm64": { 673 - "version": "4.48.0", 674 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.48.0.tgz", 675 - "integrity": "sha512-3jzOhHWM8O8PSfyft+ghXZfBkZawQA0PUGtadKYxFqpcYlOYjTi06WsnYBsbMHLawr+4uWirLlbhcYLHDXR16w==", 676 + "version": "4.53.3", 677 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.3.tgz", 678 + "integrity": "sha512-yMTrCrK92aGyi7GuDNtGn2sNW+Gdb4vErx4t3Gv/Tr+1zRb8ax4z8GWVRfr3Jw8zJWvpGHNpss3vVlbF58DZ4w==", 676 679 "cpu": [ 677 680 "arm64" 678 681 ], ··· 684 687 ] 685 688 }, 686 689 "node_modules/@rollup/rollup-freebsd-x64": { 687 - "version": "4.48.0", 688 - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.48.0.tgz", 689 - "integrity": "sha512-NcD5uVUmE73C/TPJqf78hInZmiSBsDpz3iD5MF/BuB+qzm4ooF2S1HfeTChj5K4AV3y19FFPgxonsxiEpy8v/A==", 690 + "version": "4.53.3", 691 + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.3.tgz", 692 + "integrity": "sha512-lMfF8X7QhdQzseM6XaX0vbno2m3hlyZFhwcndRMw8fbAGUGL3WFMBdK0hbUBIUYcEcMhVLr1SIamDeuLBnXS+Q==", 690 693 "cpu": [ 691 694 "x64" 692 695 ], ··· 698 701 ] 699 702 }, 700 703 "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 701 - "version": "4.48.0", 702 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.48.0.tgz", 703 - "integrity": "sha512-JWnrj8qZgLWRNHr7NbpdnrQ8kcg09EBBq8jVOjmtlB3c8C6IrynAJSMhMVGME4YfTJzIkJqvSUSVJRqkDnu/aA==", 704 + "version": "4.53.3", 705 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.3.tgz", 706 + "integrity": "sha512-k9oD15soC/Ln6d2Wv/JOFPzZXIAIFLp6B+i14KhxAfnq76ajt0EhYc5YPeX6W1xJkAdItcVT+JhKl1QZh44/qw==", 704 707 "cpu": [ 705 708 "arm" 706 709 ], ··· 712 715 ] 713 716 }, 714 717 "node_modules/@rollup/rollup-linux-arm-musleabihf": { 715 - "version": "4.48.0", 716 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.48.0.tgz", 717 - "integrity": "sha512-9xu92F0TxuMH0tD6tG3+GtngwdgSf8Bnz+YcsPG91/r5Vgh5LNofO48jV55priA95p3c92FLmPM7CvsVlnSbGQ==", 718 + "version": "4.53.3", 719 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.3.tgz", 720 + "integrity": "sha512-vTNlKq+N6CK/8UktsrFuc+/7NlEYVxgaEgRXVUVK258Z5ymho29skzW1sutgYjqNnquGwVUObAaxae8rZ6YMhg==", 718 721 "cpu": [ 719 722 "arm" 720 723 ], ··· 726 729 ] 727 730 }, 728 731 "node_modules/@rollup/rollup-linux-arm64-gnu": { 729 - "version": "4.48.0", 730 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.48.0.tgz", 731 - "integrity": "sha512-NLtvJB5YpWn7jlp1rJiY0s+G1Z1IVmkDuiywiqUhh96MIraC0n7XQc2SZ1CZz14shqkM+XN2UrfIo7JB6UufOA==", 732 + "version": "4.53.3", 733 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.3.tgz", 734 + "integrity": "sha512-RGrFLWgMhSxRs/EWJMIFM1O5Mzuz3Xy3/mnxJp/5cVhZ2XoCAxJnmNsEyeMJtpK+wu0FJFWz+QF4mjCA7AUQ3w==", 732 735 "cpu": [ 733 736 "arm64" 734 737 ], ··· 740 743 ] 741 744 }, 742 745 "node_modules/@rollup/rollup-linux-arm64-musl": { 743 - "version": "4.48.0", 744 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.48.0.tgz", 745 - "integrity": "sha512-QJ4hCOnz2SXgCh+HmpvZkM+0NSGcZACyYS8DGbWn2PbmA0e5xUk4bIP8eqJyNXLtyB4gZ3/XyvKtQ1IFH671vQ==", 746 + "version": "4.53.3", 747 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.3.tgz", 748 + "integrity": "sha512-kASyvfBEWYPEwe0Qv4nfu6pNkITLTb32p4yTgzFCocHnJLAHs+9LjUu9ONIhvfT/5lv4YS5muBHyuV84epBo/A==", 746 749 "cpu": [ 747 750 "arm64" 748 751 ], ··· 753 756 "linux" 754 757 ] 755 758 }, 756 - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { 757 - "version": "4.48.0", 758 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.48.0.tgz", 759 - "integrity": "sha512-Pk0qlGJnhILdIC5zSKQnprFjrGmjfDM7TPZ0FKJxRkoo+kgMRAg4ps1VlTZf8u2vohSicLg7NP+cA5qE96PaFg==", 759 + "node_modules/@rollup/rollup-linux-loong64-gnu": { 760 + "version": "4.53.3", 761 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.3.tgz", 762 + "integrity": "sha512-JiuKcp2teLJwQ7vkJ95EwESWkNRFJD7TQgYmCnrPtlu50b4XvT5MOmurWNrCj3IFdyjBQ5p9vnrX4JM6I8OE7g==", 760 763 "cpu": [ 761 764 "loong64" 762 765 ], ··· 768 771 ] 769 772 }, 770 773 "node_modules/@rollup/rollup-linux-ppc64-gnu": { 771 - "version": "4.48.0", 772 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.48.0.tgz", 773 - "integrity": "sha512-/dNFc6rTpoOzgp5GKoYjT6uLo8okR/Chi2ECOmCZiS4oqh3mc95pThWma7Bgyk6/WTEvjDINpiBCuecPLOgBLQ==", 774 + "version": "4.53.3", 775 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.3.tgz", 776 + "integrity": "sha512-EoGSa8nd6d3T7zLuqdojxC20oBfNT8nexBbB/rkxgKj5T5vhpAQKKnD+h3UkoMuTyXkP5jTjK/ccNRmQrPNDuw==", 774 777 "cpu": [ 775 778 "ppc64" 776 779 ], ··· 782 785 ] 783 786 }, 784 787 "node_modules/@rollup/rollup-linux-riscv64-gnu": { 785 - "version": "4.48.0", 786 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.48.0.tgz", 787 - "integrity": "sha512-YBwXsvsFI8CVA4ej+bJF2d9uAeIiSkqKSPQNn0Wyh4eMDY4wxuSp71BauPjQNCKK2tD2/ksJ7uhJ8X/PVY9bHQ==", 788 + "version": "4.53.3", 789 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.3.tgz", 790 + "integrity": "sha512-4s+Wped2IHXHPnAEbIB0YWBv7SDohqxobiiPA1FIWZpX+w9o2i4LezzH/NkFUl8LRci/8udci6cLq+jJQlh+0g==", 788 791 "cpu": [ 789 792 "riscv64" 790 793 ], ··· 796 799 ] 797 800 }, 798 801 "node_modules/@rollup/rollup-linux-riscv64-musl": { 799 - "version": "4.48.0", 800 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.48.0.tgz", 801 - "integrity": "sha512-FI3Rr2aGAtl1aHzbkBIamsQyuauYtTF9SDUJ8n2wMXuuxwchC3QkumZa1TEXYIv/1AUp1a25Kwy6ONArvnyeVQ==", 802 + "version": "4.53.3", 803 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.3.tgz", 804 + "integrity": "sha512-68k2g7+0vs2u9CxDt5ktXTngsxOQkSEV/xBbwlqYcUrAVh6P9EgMZvFsnHy4SEiUl46Xf0IObWVbMvPrr2gw8A==", 802 805 "cpu": [ 803 806 "riscv64" 804 807 ], ··· 810 813 ] 811 814 }, 812 815 "node_modules/@rollup/rollup-linux-s390x-gnu": { 813 - "version": "4.48.0", 814 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.48.0.tgz", 815 - "integrity": "sha512-Dx7qH0/rvNNFmCcIRe1pyQ9/H0XO4v/f0SDoafwRYwc2J7bJZ5N4CHL/cdjamISZ5Cgnon6iazAVRFlxSoHQnQ==", 816 + "version": "4.53.3", 817 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.3.tgz", 818 + "integrity": "sha512-VYsFMpULAz87ZW6BVYw3I6sWesGpsP9OPcyKe8ofdg9LHxSbRMd7zrVrr5xi/3kMZtpWL/wC+UIJWJYVX5uTKg==", 816 819 "cpu": [ 817 820 "s390x" 818 821 ], ··· 824 827 ] 825 828 }, 826 829 "node_modules/@rollup/rollup-linux-x64-gnu": { 827 - "version": "4.48.0", 828 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.48.0.tgz", 829 - "integrity": "sha512-GUdZKTeKBq9WmEBzvFYuC88yk26vT66lQV8D5+9TgkfbewhLaTHRNATyzpQwwbHIfJvDJ3N9WJ90wK/uR3cy3Q==", 830 + "version": "4.53.3", 831 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.3.tgz", 832 + "integrity": "sha512-3EhFi1FU6YL8HTUJZ51imGJWEX//ajQPfqWLI3BQq4TlvHy4X0MOr5q3D2Zof/ka0d5FNdPwZXm3Yyib/UEd+w==", 830 833 "cpu": [ 831 834 "x64" 832 835 ], ··· 838 841 ] 839 842 }, 840 843 "node_modules/@rollup/rollup-linux-x64-musl": { 841 - "version": "4.48.0", 842 - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.48.0.tgz", 843 - "integrity": "sha512-ao58Adz/v14MWpQgYAb4a4h3fdw73DrDGtaiF7Opds5wNyEQwtO6M9dBh89nke0yoZzzaegq6J/EXs7eBebG8A==", 844 + "version": "4.53.3", 845 + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.3.tgz", 846 + "integrity": "sha512-eoROhjcc6HbZCJr+tvVT8X4fW3/5g/WkGvvmwz/88sDtSJzO7r/blvoBDgISDiCjDRZmHpwud7h+6Q9JxFwq1Q==", 844 847 "cpu": [ 845 848 "x64" 846 849 ], ··· 851 854 "linux" 852 855 ] 853 856 }, 857 + "node_modules/@rollup/rollup-openharmony-arm64": { 858 + "version": "4.53.3", 859 + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.3.tgz", 860 + "integrity": "sha512-OueLAWgrNSPGAdUdIjSWXw+u/02BRTcnfw9PN41D2vq/JSEPnJnVuBgw18VkN8wcd4fjUs+jFHVM4t9+kBSNLw==", 861 + "cpu": [ 862 + "arm64" 863 + ], 864 + "dev": true, 865 + "license": "MIT", 866 + "optional": true, 867 + "os": [ 868 + "openharmony" 869 + ] 870 + }, 854 871 "node_modules/@rollup/rollup-win32-arm64-msvc": { 855 - "version": "4.48.0", 856 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.48.0.tgz", 857 - "integrity": "sha512-kpFno46bHtjZVdRIOxqaGeiABiToo2J+st7Yce+aiAoo1H0xPi2keyQIP04n2JjDVuxBN6bSz9R6RdTK5hIppw==", 872 + "version": "4.53.3", 873 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.3.tgz", 874 + "integrity": "sha512-GOFuKpsxR/whszbF/bzydebLiXIHSgsEUp6M0JI8dWvi+fFa1TD6YQa4aSZHtpmh2/uAlj/Dy+nmby3TJ3pkTw==", 858 875 "cpu": [ 859 876 "arm64" 860 877 ], ··· 866 883 ] 867 884 }, 868 885 "node_modules/@rollup/rollup-win32-ia32-msvc": { 869 - "version": "4.48.0", 870 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.48.0.tgz", 871 - "integrity": "sha512-rFYrk4lLk9YUTIeihnQMiwMr6gDhGGSbWThPEDfBoU/HdAtOzPXeexKi7yU8jO+LWRKnmqPN9NviHQf6GDwBcQ==", 886 + "version": "4.53.3", 887 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.3.tgz", 888 + "integrity": "sha512-iah+THLcBJdpfZ1TstDFbKNznlzoxa8fmnFYK4V67HvmuNYkVdAywJSoteUszvBQ9/HqN2+9AZghbajMsFT+oA==", 872 889 "cpu": [ 873 890 "ia32" 874 891 ], ··· 879 896 "win32" 880 897 ] 881 898 }, 899 + "node_modules/@rollup/rollup-win32-x64-gnu": { 900 + "version": "4.53.3", 901 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.3.tgz", 902 + "integrity": "sha512-J9QDiOIZlZLdcot5NXEepDkstocktoVjkaKUtqzgzpt2yWjGlbYiKyp05rWwk4nypbYUNoFAztEgixoLaSETkg==", 903 + "cpu": [ 904 + "x64" 905 + ], 906 + "dev": true, 907 + "license": "MIT", 908 + "optional": true, 909 + "os": [ 910 + "win32" 911 + ] 912 + }, 882 913 "node_modules/@rollup/rollup-win32-x64-msvc": { 883 - "version": "4.48.0", 884 - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.48.0.tgz", 885 - "integrity": "sha512-sq0hHLTgdtwOPDB5SJOuaoHyiP1qSwg+71TQWk8iDS04bW1wIE0oQ6otPiRj2ZvLYNASLMaTp8QRGUVZ+5OL5A==", 914 + "version": "4.53.3", 915 + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.3.tgz", 916 + "integrity": "sha512-UhTd8u31dXadv0MopwGgNOBpUVROFKWVQgAg5N1ESyCz8AuBcMqm4AuTjrwgQKGDfoFuz02EuMRHQIw/frmYKQ==", 886 917 "cpu": [ 887 918 "x64" 888 919 ], ··· 894 925 ] 895 926 }, 896 927 "node_modules/@types/chai": { 897 - "version": "5.2.2", 898 - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", 899 - "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", 928 + "version": "5.2.3", 929 + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", 930 + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", 900 931 "dev": true, 901 932 "license": "MIT", 902 933 "dependencies": { 903 - "@types/deep-eql": "*" 934 + "@types/deep-eql": "*", 935 + "assertion-error": "^2.0.1" 904 936 } 905 937 }, 906 938 "node_modules/@types/deep-eql": { ··· 918 950 "license": "MIT" 919 951 }, 920 952 "node_modules/@types/node": { 921 - "version": "24.3.0", 922 - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.3.0.tgz", 923 - "integrity": "sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==", 953 + "version": "24.10.1", 954 + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", 955 + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", 924 956 "dev": true, 925 957 "license": "MIT", 926 958 "dependencies": { 927 - "undici-types": "~7.10.0" 959 + "undici-types": "~7.16.0" 928 960 } 929 961 }, 930 962 "node_modules/@vitest/coverage-v8": { ··· 1077 1109 } 1078 1110 }, 1079 1111 "node_modules/ansi-regex": { 1080 - "version": "6.2.0", 1081 - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", 1082 - "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", 1112 + "version": "6.2.2", 1113 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", 1114 + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", 1083 1115 "dev": true, 1084 1116 "license": "MIT", 1085 1117 "engines": { ··· 1090 1122 } 1091 1123 }, 1092 1124 "node_modules/ansi-styles": { 1093 - "version": "6.2.1", 1094 - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 1095 - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 1125 + "version": "6.2.3", 1126 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", 1127 + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", 1096 1128 "dev": true, 1097 1129 "license": "MIT", 1098 1130 "engines": { ··· 1113 1145 } 1114 1146 }, 1115 1147 "node_modules/ast-v8-to-istanbul": { 1116 - "version": "0.3.4", 1117 - "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.4.tgz", 1118 - "integrity": "sha512-cxrAnZNLBnQwBPByK4CeDaw5sWZtMilJE/Q3iDA0aamgaIVNDF9T6K2/8DfYDZEejZ2jNnDrG9m8MY72HFd0KA==", 1148 + "version": "0.3.8", 1149 + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", 1150 + "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", 1119 1151 "dev": true, 1120 1152 "license": "MIT", 1121 1153 "dependencies": { 1122 - "@jridgewell/trace-mapping": "^0.3.29", 1154 + "@jridgewell/trace-mapping": "^0.3.31", 1123 1155 "estree-walker": "^3.0.3", 1124 1156 "js-tokens": "^9.0.1" 1125 1157 } ··· 1263 1295 "license": "MIT" 1264 1296 }, 1265 1297 "node_modules/esbuild": { 1266 - "version": "0.25.9", 1267 - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", 1268 - "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", 1298 + "version": "0.25.12", 1299 + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", 1300 + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", 1269 1301 "dev": true, 1270 1302 "hasInstallScript": true, 1271 1303 "license": "MIT", ··· 1276 1308 "node": ">=18" 1277 1309 }, 1278 1310 "optionalDependencies": { 1279 - "@esbuild/aix-ppc64": "0.25.9", 1280 - "@esbuild/android-arm": "0.25.9", 1281 - "@esbuild/android-arm64": "0.25.9", 1282 - "@esbuild/android-x64": "0.25.9", 1283 - "@esbuild/darwin-arm64": "0.25.9", 1284 - "@esbuild/darwin-x64": "0.25.9", 1285 - "@esbuild/freebsd-arm64": "0.25.9", 1286 - "@esbuild/freebsd-x64": "0.25.9", 1287 - "@esbuild/linux-arm": "0.25.9", 1288 - "@esbuild/linux-arm64": "0.25.9", 1289 - "@esbuild/linux-ia32": "0.25.9", 1290 - "@esbuild/linux-loong64": "0.25.9", 1291 - "@esbuild/linux-mips64el": "0.25.9", 1292 - "@esbuild/linux-ppc64": "0.25.9", 1293 - "@esbuild/linux-riscv64": "0.25.9", 1294 - "@esbuild/linux-s390x": "0.25.9", 1295 - "@esbuild/linux-x64": "0.25.9", 1296 - "@esbuild/netbsd-arm64": "0.25.9", 1297 - "@esbuild/netbsd-x64": "0.25.9", 1298 - "@esbuild/openbsd-arm64": "0.25.9", 1299 - "@esbuild/openbsd-x64": "0.25.9", 1300 - "@esbuild/openharmony-arm64": "0.25.9", 1301 - "@esbuild/sunos-x64": "0.25.9", 1302 - "@esbuild/win32-arm64": "0.25.9", 1303 - "@esbuild/win32-ia32": "0.25.9", 1304 - "@esbuild/win32-x64": "0.25.9" 1311 + "@esbuild/aix-ppc64": "0.25.12", 1312 + "@esbuild/android-arm": "0.25.12", 1313 + "@esbuild/android-arm64": "0.25.12", 1314 + "@esbuild/android-x64": "0.25.12", 1315 + "@esbuild/darwin-arm64": "0.25.12", 1316 + "@esbuild/darwin-x64": "0.25.12", 1317 + "@esbuild/freebsd-arm64": "0.25.12", 1318 + "@esbuild/freebsd-x64": "0.25.12", 1319 + "@esbuild/linux-arm": "0.25.12", 1320 + "@esbuild/linux-arm64": "0.25.12", 1321 + "@esbuild/linux-ia32": "0.25.12", 1322 + "@esbuild/linux-loong64": "0.25.12", 1323 + "@esbuild/linux-mips64el": "0.25.12", 1324 + "@esbuild/linux-ppc64": "0.25.12", 1325 + "@esbuild/linux-riscv64": "0.25.12", 1326 + "@esbuild/linux-s390x": "0.25.12", 1327 + "@esbuild/linux-x64": "0.25.12", 1328 + "@esbuild/netbsd-arm64": "0.25.12", 1329 + "@esbuild/netbsd-x64": "0.25.12", 1330 + "@esbuild/openbsd-arm64": "0.25.12", 1331 + "@esbuild/openbsd-x64": "0.25.12", 1332 + "@esbuild/openharmony-arm64": "0.25.12", 1333 + "@esbuild/sunos-x64": "0.25.12", 1334 + "@esbuild/win32-arm64": "0.25.12", 1335 + "@esbuild/win32-ia32": "0.25.12", 1336 + "@esbuild/win32-x64": "0.25.12" 1305 1337 } 1306 1338 }, 1307 1339 "node_modules/estree-walker": { ··· 1375 1407 } 1376 1408 }, 1377 1409 "node_modules/glob": { 1378 - "version": "10.4.5", 1379 - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", 1380 - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", 1410 + "version": "10.5.0", 1411 + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", 1412 + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", 1381 1413 "dev": true, 1382 1414 "license": "ISC", 1383 1415 "dependencies": { ··· 1533 1565 "license": "ISC" 1534 1566 }, 1535 1567 "node_modules/magic-string": { 1536 - "version": "0.30.18", 1537 - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.18.tgz", 1538 - "integrity": "sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==", 1568 + "version": "0.30.21", 1569 + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", 1570 + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", 1539 1571 "dev": true, 1540 1572 "license": "MIT", 1541 1573 "dependencies": { ··· 1729 1761 } 1730 1762 }, 1731 1763 "node_modules/rollup": { 1732 - "version": "4.48.0", 1733 - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.48.0.tgz", 1734 - "integrity": "sha512-BXHRqK1vyt9XVSEHZ9y7xdYtuYbwVod2mLwOMFP7t/Eqoc1pHRlG/WdV2qNeNvZHRQdLedaFycljaYYM96RqJQ==", 1764 + "version": "4.53.3", 1765 + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.3.tgz", 1766 + "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", 1735 1767 "dev": true, 1736 1768 "license": "MIT", 1737 1769 "dependencies": { ··· 1745 1777 "npm": ">=8.0.0" 1746 1778 }, 1747 1779 "optionalDependencies": { 1748 - "@rollup/rollup-android-arm-eabi": "4.48.0", 1749 - "@rollup/rollup-android-arm64": "4.48.0", 1750 - "@rollup/rollup-darwin-arm64": "4.48.0", 1751 - "@rollup/rollup-darwin-x64": "4.48.0", 1752 - "@rollup/rollup-freebsd-arm64": "4.48.0", 1753 - "@rollup/rollup-freebsd-x64": "4.48.0", 1754 - "@rollup/rollup-linux-arm-gnueabihf": "4.48.0", 1755 - "@rollup/rollup-linux-arm-musleabihf": "4.48.0", 1756 - "@rollup/rollup-linux-arm64-gnu": "4.48.0", 1757 - "@rollup/rollup-linux-arm64-musl": "4.48.0", 1758 - "@rollup/rollup-linux-loongarch64-gnu": "4.48.0", 1759 - "@rollup/rollup-linux-ppc64-gnu": "4.48.0", 1760 - "@rollup/rollup-linux-riscv64-gnu": "4.48.0", 1761 - "@rollup/rollup-linux-riscv64-musl": "4.48.0", 1762 - "@rollup/rollup-linux-s390x-gnu": "4.48.0", 1763 - "@rollup/rollup-linux-x64-gnu": "4.48.0", 1764 - "@rollup/rollup-linux-x64-musl": "4.48.0", 1765 - "@rollup/rollup-win32-arm64-msvc": "4.48.0", 1766 - "@rollup/rollup-win32-ia32-msvc": "4.48.0", 1767 - "@rollup/rollup-win32-x64-msvc": "4.48.0", 1780 + "@rollup/rollup-android-arm-eabi": "4.53.3", 1781 + "@rollup/rollup-android-arm64": "4.53.3", 1782 + "@rollup/rollup-darwin-arm64": "4.53.3", 1783 + "@rollup/rollup-darwin-x64": "4.53.3", 1784 + "@rollup/rollup-freebsd-arm64": "4.53.3", 1785 + "@rollup/rollup-freebsd-x64": "4.53.3", 1786 + "@rollup/rollup-linux-arm-gnueabihf": "4.53.3", 1787 + "@rollup/rollup-linux-arm-musleabihf": "4.53.3", 1788 + "@rollup/rollup-linux-arm64-gnu": "4.53.3", 1789 + "@rollup/rollup-linux-arm64-musl": "4.53.3", 1790 + "@rollup/rollup-linux-loong64-gnu": "4.53.3", 1791 + "@rollup/rollup-linux-ppc64-gnu": "4.53.3", 1792 + "@rollup/rollup-linux-riscv64-gnu": "4.53.3", 1793 + "@rollup/rollup-linux-riscv64-musl": "4.53.3", 1794 + "@rollup/rollup-linux-s390x-gnu": "4.53.3", 1795 + "@rollup/rollup-linux-x64-gnu": "4.53.3", 1796 + "@rollup/rollup-linux-x64-musl": "4.53.3", 1797 + "@rollup/rollup-openharmony-arm64": "4.53.3", 1798 + "@rollup/rollup-win32-arm64-msvc": "4.53.3", 1799 + "@rollup/rollup-win32-ia32-msvc": "4.53.3", 1800 + "@rollup/rollup-win32-x64-gnu": "4.53.3", 1801 + "@rollup/rollup-win32-x64-msvc": "4.53.3", 1768 1802 "fsevents": "~2.3.2" 1769 1803 } 1770 1804 }, ··· 1842 1876 "license": "MIT" 1843 1877 }, 1844 1878 "node_modules/std-env": { 1845 - "version": "3.9.0", 1846 - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", 1847 - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", 1879 + "version": "3.10.0", 1880 + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", 1881 + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", 1848 1882 "dev": true, 1849 1883 "license": "MIT" 1850 1884 }, ··· 1913 1947 } 1914 1948 }, 1915 1949 "node_modules/strip-ansi": { 1916 - "version": "7.1.0", 1917 - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 1918 - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 1950 + "version": "7.1.2", 1951 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", 1952 + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", 1919 1953 "dev": true, 1920 1954 "license": "MIT", 1921 1955 "dependencies": { ··· 1953 1987 } 1954 1988 }, 1955 1989 "node_modules/strip-literal": { 1956 - "version": "3.0.0", 1957 - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", 1958 - "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", 1990 + "version": "3.1.0", 1991 + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", 1992 + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", 1959 1993 "dev": true, 1960 1994 "license": "MIT", 1961 1995 "dependencies": { ··· 2008 2042 "license": "MIT" 2009 2043 }, 2010 2044 "node_modules/tinyglobby": { 2011 - "version": "0.2.14", 2012 - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", 2013 - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", 2045 + "version": "0.2.15", 2046 + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", 2047 + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", 2014 2048 "dev": true, 2015 2049 "license": "MIT", 2016 2050 "dependencies": { 2017 - "fdir": "^6.4.4", 2018 - "picomatch": "^4.0.2" 2051 + "fdir": "^6.5.0", 2052 + "picomatch": "^4.0.3" 2019 2053 }, 2020 2054 "engines": { 2021 2055 "node": ">=12.0.0" ··· 2045 2079 } 2046 2080 }, 2047 2081 "node_modules/tinyspy": { 2048 - "version": "4.0.3", 2049 - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz", 2050 - "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==", 2082 + "version": "4.0.4", 2083 + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.4.tgz", 2084 + "integrity": "sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==", 2051 2085 "dev": true, 2052 2086 "license": "MIT", 2053 2087 "engines": { ··· 2055 2089 } 2056 2090 }, 2057 2091 "node_modules/typescript": { 2058 - "version": "5.9.2", 2059 - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", 2060 - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", 2092 + "version": "5.9.3", 2093 + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", 2094 + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", 2061 2095 "dev": true, 2062 2096 "license": "Apache-2.0", 2063 2097 "bin": { ··· 2069 2103 } 2070 2104 }, 2071 2105 "node_modules/undici-types": { 2072 - "version": "7.10.0", 2073 - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.10.0.tgz", 2074 - "integrity": "sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==", 2106 + "version": "7.16.0", 2107 + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", 2108 + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", 2075 2109 "dev": true, 2076 2110 "license": "MIT" 2077 2111 }, 2078 2112 "node_modules/vite": { 2079 - "version": "7.1.3", 2080 - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", 2081 - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", 2113 + "version": "7.2.6", 2114 + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.6.tgz", 2115 + "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==", 2082 2116 "dev": true, 2083 2117 "license": "MIT", 2084 2118 "dependencies": { ··· 2087 2121 "picomatch": "^4.0.3", 2088 2122 "postcss": "^8.5.6", 2089 2123 "rollup": "^4.43.0", 2090 - "tinyglobby": "^0.2.14" 2124 + "tinyglobby": "^0.2.15" 2091 2125 }, 2092 2126 "bin": { 2093 2127 "vite": "bin/vite.js"
+9 -3
package.json
··· 1 1 { 2 2 "name": "morning-report", 3 - "version": "0.0.1", 3 + "version": "0.0.5", 4 4 "description": "Procedurally generates a radio weather report", 5 5 "keywords": [ 6 6 "weather", ··· 19 19 }, 20 20 "type": "module", 21 21 "main": "distribution/index.js", 22 + "bin": { 23 + "morning-report": "./distribution/src/index.js" 24 + }, 25 + "files": [ 26 + "distribution" 27 + ], 22 28 "scripts": { 23 29 "build": "tsc", 24 30 "start": "node distribution/src/index.js", ··· 29 35 "openweather-api-node": "3.1.5" 30 36 }, 31 37 "devDependencies": { 32 - "typescript": "5.9.2", 33 - "@types/node": "24.3.0", 38 + "typescript": "5.9.3", 39 + "@types/node": "24.10.1", 34 40 "vitest": "3.2.4", 35 41 "@vitest/coverage-v8": "3.2.4" 36 42 }
+1
src/index.ts
··· 1 + #!/usr/bin/env node 1 2 import path from 'path'; 2 3 import fsp from 'fs/promises'; 3 4 import json5 from 'json5';
+2 -1
src/sequencer.ts
··· 2 2 import { voiceLines } from './voice.js'; 3 3 import type { Config } from './index.js'; 4 4 import type { Voice } from './voice.js'; 5 + import crypto from 'crypto'; 5 6 6 7 type SegmentName = string; 7 8 type SequenceName = string; ··· 16 17 let config: Config = null; 17 18 18 19 function selectOne<T>(arr: T[]): T { 19 - return arr[Math.floor(Math.random() * arr.length)]; 20 + return arr[crypto.randomInt(0, arr.length)]; 20 21 } 21 22 22 23 function resolveSide(side: string, currentWeather: DailyWeather) {
+1 -1
src/stitcher.ts
··· 26 26 const args: string[] = []; 27 27 files.forEach(f => args.push('-i', f)); 28 28 args.push('-filter_complex', `[0:a][1:a][2:a]concat=n=${files.length}:v=0:a=1[out]`); 29 - args.push('-map', '[out]', '-ar', '44100', '-ac', '2', '-c:a', 'pcm_s16le', 'output.wav'); 29 + args.push('-map', '[out]', '-ar', '44100', '-ac', '2', '-c:a', 'pcm_s16le', 'output.wav', '-y'); 30 30 await ffmpeg(args, files.length); 31 31 } 32 32
+1 -2
test/sequencer.test.ts
··· 1 1 import { describe, expect, it, vi } from 'vitest'; 2 - import { type CurrentWeather, type Options } from 'openweather-api-node'; 2 + import { type Options } from 'openweather-api-node'; 3 3 import { Sequencer } from '../src/sequencer.js'; 4 - import type { Config } from '../src/index.js'; 5 4 6 5 const dummyWeather: Options = { key: 'dummy' }; 7 6
+6 -3
test/stitcher.test.ts
··· 41 41 '2', 42 42 '-c:a', 43 43 'pcm_s16le', 44 - 'output.wav' 44 + 'output.wav', 45 + '-y' 45 46 ]); 46 47 }); 47 48 ··· 62 63 '2', 63 64 '-c:a', 64 65 'pcm_s16le', 65 - 'output.wav' 66 + 'output.wav', 67 + '-y' 66 68 ]); 67 69 }); 68 70 ··· 81 83 '2', 82 84 '-c:a', 83 85 'pcm_s16le', 84 - 'output.wav' 86 + 'output.wav', 87 + '-y' 85 88 ]); 86 89 }); 87 90 });