refactor: enhance RouteOpts and Route class generics for improved type safety

- Updated RouteOpts to accept an additional generic parameter for metadata type.
- Modified Route class to utilize the new generic parameter for metadata.
- Adjusted the run method in QueryRouterServer for consistent type definitions.
- Improved getList method in QueryRouter to allow filtering of routes.
This commit is contained in:
2025-12-17 11:31:52 +08:00
parent a997dad00b
commit 90ecb8eb93
3 changed files with 357 additions and 194 deletions

View File

@@ -1,7 +1,7 @@
{ {
"$schema": "https://json.schemastore.org/package", "$schema": "https://json.schemastore.org/package",
"name": "@kevisual/router", "name": "@kevisual/router",
"version": "0.0.37", "version": "0.0.38",
"description": "", "description": "",
"type": "module", "type": "module",
"main": "./dist/router.js", "main": "./dist/router.js",

531
pnpm-lock.yaml generated
View File

@@ -12,36 +12,36 @@ importers:
specifier: ^8.3.0 specifier: ^8.3.0
version: 8.3.0 version: 8.3.0
selfsigned: selfsigned:
specifier: ^4.0.0 specifier: ^5.2.0
version: 4.0.0 version: 5.2.0
send: send:
specifier: ^1.2.0 specifier: ^1.2.0
version: 1.2.0 version: 1.2.0
devDependencies: devDependencies:
'@kevisual/local-proxy': '@kevisual/local-proxy':
specifier: ^0.0.6 specifier: ^0.0.8
version: 0.0.6 version: 0.0.8
'@kevisual/query': '@kevisual/query':
specifier: ^0.0.29 specifier: ^0.0.31
version: 0.0.29(@kevisual/ws@8.0.0)(zod@4.1.12) version: 0.0.31
'@rollup/plugin-alias': '@rollup/plugin-alias':
specifier: ^6.0.0 specifier: ^6.0.0
version: 6.0.0(rollup@4.53.2) version: 6.0.0(rollup@4.53.5)
'@rollup/plugin-commonjs': '@rollup/plugin-commonjs':
specifier: 29.0.0 specifier: 29.0.0
version: 29.0.0(rollup@4.53.2) version: 29.0.0(rollup@4.53.5)
'@rollup/plugin-node-resolve': '@rollup/plugin-node-resolve':
specifier: ^16.0.3 specifier: ^16.0.3
version: 16.0.3(rollup@4.53.2) version: 16.0.3(rollup@4.53.5)
'@rollup/plugin-typescript': '@rollup/plugin-typescript':
specifier: ^12.3.0 specifier: ^12.3.0
version: 12.3.0(rollup@4.53.2)(tslib@2.8.1)(typescript@5.9.3) version: 12.3.0(rollup@4.53.5)(tslib@2.8.1)(typescript@5.9.3)
'@types/lodash-es': '@types/lodash-es':
specifier: ^4.17.12 specifier: ^4.17.12
version: 4.17.12 version: 4.17.12
'@types/node': '@types/node':
specifier: ^24.10.1 specifier: ^24.10.2
version: 24.10.1 version: 24.10.4
'@types/send': '@types/send':
specifier: ^1.2.1 specifier: ^1.2.1
version: 1.2.1 version: 1.2.1
@@ -52,8 +52,8 @@ importers:
specifier: ^0.4.14 specifier: ^0.4.14
version: 0.4.14 version: 0.4.14
cookie: cookie:
specifier: ^1.0.2 specifier: ^1.1.1
version: 1.0.2 version: 1.1.1
lodash-es: lodash-es:
specifier: ^4.17.21 specifier: ^4.17.21
version: 4.17.21 version: 4.17.21
@@ -61,17 +61,17 @@ importers:
specifier: ^5.1.6 specifier: ^5.1.6
version: 5.1.6 version: 5.1.6
rollup: rollup:
specifier: ^4.53.2 specifier: ^4.53.3
version: 4.53.2 version: 4.53.5
rollup-plugin-dts: rollup-plugin-dts:
specifier: ^6.2.3 specifier: ^6.3.0
version: 6.2.3(rollup@4.53.2)(typescript@5.9.3) version: 6.3.0(rollup@4.53.5)(typescript@5.9.3)
ts-loader: ts-loader:
specifier: ^9.5.4 specifier: ^9.5.4
version: 9.5.4(typescript@5.9.3)(webpack@5.102.1) version: 9.5.4(typescript@5.9.3)(webpack@5.102.1)
ts-node: ts-node:
specifier: ^10.9.2 specifier: ^10.9.2
version: 10.9.2(@types/node@24.10.1)(typescript@5.9.3) version: 10.9.2(@types/node@24.10.4)(typescript@5.9.3)
tslib: tslib:
specifier: ^2.8.1 specifier: ^2.8.1
version: 2.8.1 version: 2.8.1
@@ -85,8 +85,8 @@ importers:
specifier: ^0.6.2 specifier: ^0.6.2
version: 0.6.2 version: 0.6.2
zod: zod:
specifier: ^4.1.12 specifier: ^4.1.13
version: 4.1.12 version: 4.2.1
packages: packages:
@@ -121,16 +121,54 @@ packages:
'@jridgewell/trace-mapping@0.3.9': '@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
'@kevisual/local-proxy@0.0.6': '@kevisual/local-proxy@0.0.8':
resolution: {integrity: sha512-FL6m84FGPLf+WtcNVfKtwcmOtY+iVb5VPEXlKPv2JzzZKLkuEzEjtm8iLAuawwfr+8/MONMt1L7M0dTTR0JcEw==} resolution: {integrity: sha512-VX/P+6/Cc8ruqp34ag6gVX073BchUmf5VNZcTV/6MJtjrNE76G8V6TLpBE8bywLnrqyRtFLIspk4QlH8up9B5Q==}
'@kevisual/query@0.0.29': '@kevisual/query@0.0.31':
resolution: {integrity: sha512-rQZk0J073UuC1QGzuyq+pb4Y0hu8/Qx/xYHs9NbsmslM+RuMnd1zpXmvhXNj7Kn1MdYTH90ng2MlFLBkkQFaIg==} resolution: {integrity: sha512-bBdepjmMICLpcj/a9fnn82/0CGGYUZiCV+usWsJZKAwVlZcnj+WtKmbgKT09KpP6g3jjYzYOaXHiNFB8N0bQAQ==}
'@kevisual/ws@8.0.0': '@kevisual/ws@8.0.0':
resolution: {integrity: sha512-jlFxSlXUEz93cFW+UYT5BXv/rFVgiMQnIfqRYZ0gj1hSP8PMGRqMqUoHSLfKvfRRS4jseLSvTTeEKSQpZJtURg==} resolution: {integrity: sha512-jlFxSlXUEz93cFW+UYT5BXv/rFVgiMQnIfqRYZ0gj1hSP8PMGRqMqUoHSLfKvfRRS4jseLSvTTeEKSQpZJtURg==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
'@noble/hashes@1.4.0':
resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
engines: {node: '>= 16'}
'@peculiar/asn1-cms@2.6.0':
resolution: {integrity: sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==}
'@peculiar/asn1-csr@2.6.0':
resolution: {integrity: sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==}
'@peculiar/asn1-ecc@2.6.0':
resolution: {integrity: sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==}
'@peculiar/asn1-pfx@2.6.0':
resolution: {integrity: sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==}
'@peculiar/asn1-pkcs8@2.6.0':
resolution: {integrity: sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==}
'@peculiar/asn1-pkcs9@2.6.0':
resolution: {integrity: sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==}
'@peculiar/asn1-rsa@2.6.0':
resolution: {integrity: sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==}
'@peculiar/asn1-schema@2.6.0':
resolution: {integrity: sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==}
'@peculiar/asn1-x509-attr@2.6.0':
resolution: {integrity: sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==}
'@peculiar/asn1-x509@2.6.0':
resolution: {integrity: sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==}
'@peculiar/x509@1.14.2':
resolution: {integrity: sha512-r2w1Hg6pODDs0zfAKHkSS5HLkOLSeburtcgwvlLLWWCixw+MmW3U6kD5ddyvc2Y2YdbGuVwCF2S2ASoU1cFAag==}
engines: {node: '>=22.0.0'}
'@rollup/plugin-alias@6.0.0': '@rollup/plugin-alias@6.0.0':
resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==} resolution: {integrity: sha512-tPCzJOtS7uuVZd+xPhoy5W4vThe6KWXNmsFCNktaAh5RTqcLiSfT4huPQIXkgJ6YCOjJHvecOAzQxLFhPxKr+g==}
engines: {node: '>=20.19.0'} engines: {node: '>=20.19.0'}
@@ -180,113 +218,113 @@ packages:
rollup: rollup:
optional: true optional: true
'@rollup/rollup-android-arm-eabi@4.53.2': '@rollup/rollup-android-arm-eabi@4.53.5':
resolution: {integrity: sha512-yDPzwsgiFO26RJA4nZo8I+xqzh7sJTZIWQOxn+/XOdPE31lAvLIYCKqjV+lNH/vxE2L2iH3plKxDCRK6i+CwhA==} resolution: {integrity: sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
'@rollup/rollup-android-arm64@4.53.2': '@rollup/rollup-android-arm64@4.53.5':
resolution: {integrity: sha512-k8FontTxIE7b0/OGKeSN5B6j25EuppBcWM33Z19JoVT7UTXFSo3D9CdU39wGTeb29NO3XxpMNauh09B+Ibw+9g==} resolution: {integrity: sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==}
cpu: [arm64] cpu: [arm64]
os: [android] os: [android]
'@rollup/rollup-darwin-arm64@4.53.2': '@rollup/rollup-darwin-arm64@4.53.5':
resolution: {integrity: sha512-A6s4gJpomNBtJ2yioj8bflM2oogDwzUiMl2yNJ2v9E7++sHrSrsQ29fOfn5DM/iCzpWcebNYEdXpaK4tr2RhfQ==} resolution: {integrity: sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
'@rollup/rollup-darwin-x64@4.53.2': '@rollup/rollup-darwin-x64@4.53.5':
resolution: {integrity: sha512-e6XqVmXlHrBlG56obu9gDRPW3O3hLxpwHpLsBJvuI8qqnsrtSZ9ERoWUXtPOkY8c78WghyPHZdmPhHLWNdAGEw==} resolution: {integrity: sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
'@rollup/rollup-freebsd-arm64@4.53.2': '@rollup/rollup-freebsd-arm64@4.53.5':
resolution: {integrity: sha512-v0E9lJW8VsrwPux5Qe5CwmH/CF/2mQs6xU1MF3nmUxmZUCHazCjLgYvToOk+YuuUqLQBio1qkkREhxhc656ViA==} resolution: {integrity: sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==}
cpu: [arm64] cpu: [arm64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-freebsd-x64@4.53.2': '@rollup/rollup-freebsd-x64@4.53.5':
resolution: {integrity: sha512-ClAmAPx3ZCHtp6ysl4XEhWU69GUB1D+s7G9YjHGhIGCSrsg00nEGRRZHmINYxkdoJehde8VIsDC5t9C0gb6yqA==} resolution: {integrity: sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==}
cpu: [x64] cpu: [x64]
os: [freebsd] os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.53.2': '@rollup/rollup-linux-arm-gnueabihf@4.53.5':
resolution: {integrity: sha512-EPlb95nUsz6Dd9Qy13fI5kUPXNSljaG9FiJ4YUGU1O/Q77i5DYFW5KR8g1OzTcdZUqQQ1KdDqsTohdFVwCwjqg==} resolution: {integrity: sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.53.2': '@rollup/rollup-linux-arm-musleabihf@4.53.5':
resolution: {integrity: sha512-BOmnVW+khAUX+YZvNfa0tGTEMVVEerOxN0pDk2E6N6DsEIa2Ctj48FOMfNDdrwinocKaC7YXUZ1pHlKpnkja/Q==} resolution: {integrity: sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==}
cpu: [arm] cpu: [arm]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.53.2': '@rollup/rollup-linux-arm64-gnu@4.53.5':
resolution: {integrity: sha512-Xt2byDZ+6OVNuREgBXr4+CZDJtrVso5woFtpKdGPhpTPHcNG7D8YXeQzpNbFRxzTVqJf7kvPMCub/pcGUWgBjA==} resolution: {integrity: sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-arm64-musl@4.53.2': '@rollup/rollup-linux-arm64-musl@4.53.5':
resolution: {integrity: sha512-+LdZSldy/I9N8+klim/Y1HsKbJ3BbInHav5qE9Iy77dtHC/pibw1SR/fXlWyAk0ThnpRKoODwnAuSjqxFRDHUQ==} resolution: {integrity: sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
'@rollup/rollup-linux-loong64-gnu@4.53.2': '@rollup/rollup-linux-loong64-gnu@4.53.5':
resolution: {integrity: sha512-8ms8sjmyc1jWJS6WdNSA23rEfdjWB30LH8Wqj0Cqvv7qSHnvw6kgMMXRdop6hkmGPlyYBdRPkjJnj3KCUHV/uQ==} resolution: {integrity: sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
'@rollup/rollup-linux-ppc64-gnu@4.53.2': '@rollup/rollup-linux-ppc64-gnu@4.53.5':
resolution: {integrity: sha512-3HRQLUQbpBDMmzoxPJYd3W6vrVHOo2cVW8RUo87Xz0JPJcBLBr5kZ1pGcQAhdZgX9VV7NbGNipah1omKKe23/g==} resolution: {integrity: sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==}
cpu: [ppc64] cpu: [ppc64]
os: [linux] os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.53.2': '@rollup/rollup-linux-riscv64-gnu@4.53.5':
resolution: {integrity: sha512-fMjKi+ojnmIvhk34gZP94vjogXNNUKMEYs+EDaB/5TG/wUkoeua7p7VCHnE6T2Tx+iaghAqQX8teQzcvrYpaQA==} resolution: {integrity: sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@rollup/rollup-linux-riscv64-musl@4.53.2': '@rollup/rollup-linux-riscv64-musl@4.53.5':
resolution: {integrity: sha512-XuGFGU+VwUUV5kLvoAdi0Wz5Xbh2SrjIxCtZj6Wq8MDp4bflb/+ThZsVxokM7n0pcbkEr2h5/pzqzDYI7cCgLQ==} resolution: {integrity: sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==}
cpu: [riscv64] cpu: [riscv64]
os: [linux] os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.53.2': '@rollup/rollup-linux-s390x-gnu@4.53.5':
resolution: {integrity: sha512-w6yjZF0P+NGzWR3AXWX9zc0DNEGdtvykB03uhonSHMRa+oWA6novflo2WaJr6JZakG2ucsyb+rvhrKac6NIy+w==} resolution: {integrity: sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==}
cpu: [s390x] cpu: [s390x]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-gnu@4.53.2': '@rollup/rollup-linux-x64-gnu@4.53.5':
resolution: {integrity: sha512-yo8d6tdfdeBArzC7T/PnHd7OypfI9cbuZzPnzLJIyKYFhAQ8SvlkKtKBMbXDxe1h03Rcr7u++nFS7tqXz87Gtw==} resolution: {integrity: sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-linux-x64-musl@4.53.2': '@rollup/rollup-linux-x64-musl@4.53.5':
resolution: {integrity: sha512-ah59c1YkCxKExPP8O9PwOvs+XRLKwh/mV+3YdKqQ5AMQ0r4M4ZDuOrpWkUaqO7fzAHdINzV9tEVu8vNw48z0lA==} resolution: {integrity: sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
'@rollup/rollup-openharmony-arm64@4.53.2': '@rollup/rollup-openharmony-arm64@4.53.5':
resolution: {integrity: sha512-4VEd19Wmhr+Zy7hbUsFZ6YXEiP48hE//KPLCSVNY5RMGX2/7HZ+QkN55a3atM1C/BZCGIgqN+xrVgtdak2S9+A==} resolution: {integrity: sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==}
cpu: [arm64] cpu: [arm64]
os: [openharmony] os: [openharmony]
'@rollup/rollup-win32-arm64-msvc@4.53.2': '@rollup/rollup-win32-arm64-msvc@4.53.5':
resolution: {integrity: sha512-IlbHFYc/pQCgew/d5fslcy1KEaYVCJ44G8pajugd8VoOEI8ODhtb/j8XMhLpwHCMB3yk2J07ctup10gpw2nyMA==} resolution: {integrity: sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.53.2': '@rollup/rollup-win32-ia32-msvc@4.53.5':
resolution: {integrity: sha512-lNlPEGgdUfSzdCWU176ku/dQRnA7W+Gp8d+cWv73jYrb8uT7HTVVxq62DUYxjbaByuf1Yk0RIIAbDzp+CnOTFg==} resolution: {integrity: sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-gnu@4.53.2': '@rollup/rollup-win32-x64-gnu@4.53.5':
resolution: {integrity: sha512-S6YojNVrHybQis2lYov1sd+uj7K0Q05NxHcGktuMMdIQ2VixGwAfbJ23NnlvvVV1bdpR2m5MsNBViHJKcA4ADw==} resolution: {integrity: sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@rollup/rollup-win32-x64-msvc@4.53.2': '@rollup/rollup-win32-x64-msvc@4.53.5':
resolution: {integrity: sha512-k+/Rkcyx//P6fetPoLMb8pBeqJBNGx81uuf7iljX9++yNBVRDQgD04L+SVXmXmh5ZP4/WOp4mWF0kmi06PW2tA==} resolution: {integrity: sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@@ -320,8 +358,8 @@ packages:
'@types/lodash@4.17.20': '@types/lodash@4.17.20':
resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
'@types/node@24.10.1': '@types/node@24.10.4':
resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==} resolution: {integrity: sha512-vnDVpYPMzs4wunl27jHrfmwojOGKya0xyM3sH+UE5iv5uPS6vX7UIoh6m+vQc5LGBq52HBKPIn/zcSZVzeDEZg==}
'@types/resolve@1.20.2': '@types/resolve@1.20.2':
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
@@ -424,6 +462,10 @@ packages:
arg@4.1.3: arg@4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
asn1js@3.0.7:
resolution: {integrity: sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==}
engines: {node: '>=12.0.0'}
baseline-browser-mapping@2.8.28: baseline-browser-mapping@2.8.28:
resolution: {integrity: sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==} resolution: {integrity: sha512-gYjt7OIqdM0PcttNYP2aVrr2G0bMALkBaoehD4BuRGjAOtipg0b6wHg1yNL+s5zSnLZZrGHOw4IrND8CD+3oIQ==}
hasBin: true hasBin: true
@@ -440,6 +482,10 @@ packages:
buffer-from@1.1.2: buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
bytestreamjs@2.0.1:
resolution: {integrity: sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==}
engines: {node: '>=6.0.0'}
caniuse-lite@1.0.30001754: caniuse-lite@1.0.30001754:
resolution: {integrity: sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==} resolution: {integrity: sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==}
@@ -464,8 +510,8 @@ packages:
commondir@1.0.1: commondir@1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
cookie@1.0.2: cookie@1.1.1:
resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==}
engines: {node: '>=18'} engines: {node: '>=18'}
create-require@1.1.1: create-require@1.1.1:
@@ -669,10 +715,6 @@ packages:
neo-async@2.6.2: neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
node-forge@1.3.1:
resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
engines: {node: '>= 6.13.0'}
node-releases@2.0.27: node-releases@2.0.27:
resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
@@ -680,18 +722,6 @@ packages:
resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
openai@5.23.2:
resolution: {integrity: sha512-MQBzmTulj+MM5O8SKEk/gL8a7s5mktS9zUtAkU257WjvobGc9nKcBuVwjyEEcb9SI8a8Y2G/mzn3vm9n1Jlleg==}
hasBin: true
peerDependencies:
ws: ^8.18.0
zod: ^3.23.8
peerDependenciesMeta:
ws:
optional: true
zod:
optional: true
path-parse@1.0.7: path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
@@ -709,6 +739,17 @@ packages:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'} engines: {node: '>=12'}
pkijs@3.3.3:
resolution: {integrity: sha512-+KD8hJtqQMYoTuL1bbGOqxb4z+nZkTAwVdNtWwe8Tc2xNbEmdJYIYoc6Qt0uF55e6YW6KuTHw1DjQ18gMhzepw==}
engines: {node: '>=16.0.0'}
pvtsutils@1.3.6:
resolution: {integrity: sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==}
pvutils@1.1.5:
resolution: {integrity: sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==}
engines: {node: '>=16.0.0'}
randombytes@2.1.0: randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@@ -716,6 +757,9 @@ packages:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'} engines: {node: '>= 0.6'}
reflect-metadata@0.2.2:
resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
require-from-string@2.0.2: require-from-string@2.0.2:
resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@@ -725,15 +769,15 @@ packages:
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
hasBin: true hasBin: true
rollup-plugin-dts@6.2.3: rollup-plugin-dts@6.3.0:
resolution: {integrity: sha512-UgnEsfciXSPpASuOelix7m4DrmyQgiaWBnvI0TM4GxuDh5FkqW8E5hu57bCxXB90VvR1WNfLV80yEDN18UogSA==} resolution: {integrity: sha512-d0UrqxYd8KyZ6i3M2Nx7WOMy708qsV/7fTHMHxCMCBOAe3V/U7OMPu5GkX8hC+cmkHhzGnfeYongl1IgiooddA==}
engines: {node: '>=16'} engines: {node: '>=16'}
peerDependencies: peerDependencies:
rollup: ^3.29.4 || ^4 rollup: ^3.29.4 || ^4
typescript: ^4.5 || ^5.0 typescript: ^4.5 || ^5.0
rollup@4.53.2: rollup@4.53.5:
resolution: {integrity: sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==} resolution: {integrity: sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'} engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
@@ -747,9 +791,9 @@ packages:
resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==}
engines: {node: '>= 10.13.0'} engines: {node: '>= 10.13.0'}
selfsigned@4.0.0: selfsigned@5.2.0:
resolution: {integrity: sha512-eP/1BEUCziBF/7p96ergE2JlGOMsGj9kIe77pD99G3ValgxDFwHA2oNCYW4rjlmYp8LXc684ypH0836GjSKw0A==} resolution: {integrity: sha512-QKF6fsJgdKn5Cy1SekTuwUQ6LOLUdnO4gVne1+TGSAyL/CD1aznNCmBna+bQB9xyon7DiYbDtTR1cLaxDXuaVA==}
engines: {node: '>=10'} engines: {node: '>=15.6.0'}
semver@7.7.3: semver@7.7.3:
resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
@@ -851,9 +895,16 @@ packages:
'@swc/wasm': '@swc/wasm':
optional: true optional: true
tslib@1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
tslib@2.8.1: tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
tsyringe@4.10.0:
resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==}
engines: {node: '>= 6.0.0'}
typescript@5.9.3: typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'} engines: {node: '>=14.17'}
@@ -901,8 +952,8 @@ packages:
resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
engines: {node: '>=6'} engines: {node: '>=6'}
zod@4.1.12: zod@4.2.1:
resolution: {integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==} resolution: {integrity: sha512-0wZ1IRqGGhMP76gLqz8EyfBXKk0J2qo2+H3fi4mcUP/KtTocoX08nmIAHl1Z2kJIZbZee8KOpBCSNPRgauucjw==}
snapshots: snapshots:
@@ -944,24 +995,111 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2 '@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5
'@kevisual/local-proxy@0.0.6': {} '@kevisual/local-proxy@0.0.8': {}
'@kevisual/query@0.0.29(@kevisual/ws@8.0.0)(zod@4.1.12)': '@kevisual/query@0.0.31': {}
dependencies:
openai: 5.23.2(@kevisual/ws@8.0.0)(zod@4.1.12)
transitivePeerDependencies:
- ws
- zod
'@kevisual/ws@8.0.0': {} '@kevisual/ws@8.0.0': {}
'@rollup/plugin-alias@6.0.0(rollup@4.53.2)': '@noble/hashes@1.4.0': {}
optionalDependencies:
rollup: 4.53.2
'@rollup/plugin-commonjs@29.0.0(rollup@4.53.2)': '@peculiar/asn1-cms@2.6.0':
dependencies: dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.53.2) '@peculiar/asn1-schema': 2.6.0
'@peculiar/asn1-x509': 2.6.0
'@peculiar/asn1-x509-attr': 2.6.0
asn1js: 3.0.7
tslib: 2.8.1
'@peculiar/asn1-csr@2.6.0':
dependencies:
'@peculiar/asn1-schema': 2.6.0
'@peculiar/asn1-x509': 2.6.0
asn1js: 3.0.7
tslib: 2.8.1
'@peculiar/asn1-ecc@2.6.0':
dependencies:
'@peculiar/asn1-schema': 2.6.0
'@peculiar/asn1-x509': 2.6.0
asn1js: 3.0.7
tslib: 2.8.1
'@peculiar/asn1-pfx@2.6.0':
dependencies:
'@peculiar/asn1-cms': 2.6.0
'@peculiar/asn1-pkcs8': 2.6.0
'@peculiar/asn1-rsa': 2.6.0
'@peculiar/asn1-schema': 2.6.0
asn1js: 3.0.7
tslib: 2.8.1
'@peculiar/asn1-pkcs8@2.6.0':
dependencies:
'@peculiar/asn1-schema': 2.6.0
'@peculiar/asn1-x509': 2.6.0
asn1js: 3.0.7
tslib: 2.8.1
'@peculiar/asn1-pkcs9@2.6.0':
dependencies:
'@peculiar/asn1-cms': 2.6.0
'@peculiar/asn1-pfx': 2.6.0
'@peculiar/asn1-pkcs8': 2.6.0
'@peculiar/asn1-schema': 2.6.0
'@peculiar/asn1-x509': 2.6.0
'@peculiar/asn1-x509-attr': 2.6.0
asn1js: 3.0.7
tslib: 2.8.1
'@peculiar/asn1-rsa@2.6.0':
dependencies:
'@peculiar/asn1-schema': 2.6.0
'@peculiar/asn1-x509': 2.6.0
asn1js: 3.0.7
tslib: 2.8.1
'@peculiar/asn1-schema@2.6.0':
dependencies:
asn1js: 3.0.7
pvtsutils: 1.3.6
tslib: 2.8.1
'@peculiar/asn1-x509-attr@2.6.0':
dependencies:
'@peculiar/asn1-schema': 2.6.0
'@peculiar/asn1-x509': 2.6.0
asn1js: 3.0.7
tslib: 2.8.1
'@peculiar/asn1-x509@2.6.0':
dependencies:
'@peculiar/asn1-schema': 2.6.0
asn1js: 3.0.7
pvtsutils: 1.3.6
tslib: 2.8.1
'@peculiar/x509@1.14.2':
dependencies:
'@peculiar/asn1-cms': 2.6.0
'@peculiar/asn1-csr': 2.6.0
'@peculiar/asn1-ecc': 2.6.0
'@peculiar/asn1-pkcs9': 2.6.0
'@peculiar/asn1-rsa': 2.6.0
'@peculiar/asn1-schema': 2.6.0
'@peculiar/asn1-x509': 2.6.0
pvtsutils: 1.3.6
reflect-metadata: 0.2.2
tslib: 2.8.1
tsyringe: 4.10.0
'@rollup/plugin-alias@6.0.0(rollup@4.53.5)':
optionalDependencies:
rollup: 4.53.5
'@rollup/plugin-commonjs@29.0.0(rollup@4.53.5)':
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.53.5)
commondir: 1.0.1 commondir: 1.0.1
estree-walker: 2.0.2 estree-walker: 2.0.2
fdir: 6.5.0(picomatch@4.0.3) fdir: 6.5.0(picomatch@4.0.3)
@@ -969,99 +1107,99 @@ snapshots:
magic-string: 0.30.21 magic-string: 0.30.21
picomatch: 4.0.3 picomatch: 4.0.3
optionalDependencies: optionalDependencies:
rollup: 4.53.2 rollup: 4.53.5
'@rollup/plugin-node-resolve@16.0.3(rollup@4.53.2)': '@rollup/plugin-node-resolve@16.0.3(rollup@4.53.5)':
dependencies: dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.53.2) '@rollup/pluginutils': 5.3.0(rollup@4.53.5)
'@types/resolve': 1.20.2 '@types/resolve': 1.20.2
deepmerge: 4.3.1 deepmerge: 4.3.1
is-module: 1.0.0 is-module: 1.0.0
resolve: 1.22.11 resolve: 1.22.11
optionalDependencies: optionalDependencies:
rollup: 4.53.2 rollup: 4.53.5
'@rollup/plugin-typescript@12.3.0(rollup@4.53.2)(tslib@2.8.1)(typescript@5.9.3)': '@rollup/plugin-typescript@12.3.0(rollup@4.53.5)(tslib@2.8.1)(typescript@5.9.3)':
dependencies: dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.53.2) '@rollup/pluginutils': 5.3.0(rollup@4.53.5)
resolve: 1.22.11 resolve: 1.22.11
typescript: 5.9.3 typescript: 5.9.3
optionalDependencies: optionalDependencies:
rollup: 4.53.2 rollup: 4.53.5
tslib: 2.8.1 tslib: 2.8.1
'@rollup/pluginutils@5.3.0(rollup@4.53.2)': '@rollup/pluginutils@5.3.0(rollup@4.53.5)':
dependencies: dependencies:
'@types/estree': 1.0.8 '@types/estree': 1.0.8
estree-walker: 2.0.2 estree-walker: 2.0.2
picomatch: 4.0.3 picomatch: 4.0.3
optionalDependencies: optionalDependencies:
rollup: 4.53.2 rollup: 4.53.5
'@rollup/rollup-android-arm-eabi@4.53.2': '@rollup/rollup-android-arm-eabi@4.53.5':
optional: true optional: true
'@rollup/rollup-android-arm64@4.53.2': '@rollup/rollup-android-arm64@4.53.5':
optional: true optional: true
'@rollup/rollup-darwin-arm64@4.53.2': '@rollup/rollup-darwin-arm64@4.53.5':
optional: true optional: true
'@rollup/rollup-darwin-x64@4.53.2': '@rollup/rollup-darwin-x64@4.53.5':
optional: true optional: true
'@rollup/rollup-freebsd-arm64@4.53.2': '@rollup/rollup-freebsd-arm64@4.53.5':
optional: true optional: true
'@rollup/rollup-freebsd-x64@4.53.2': '@rollup/rollup-freebsd-x64@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.53.2': '@rollup/rollup-linux-arm-gnueabihf@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-arm-musleabihf@4.53.2': '@rollup/rollup-linux-arm-musleabihf@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-arm64-gnu@4.53.2': '@rollup/rollup-linux-arm64-gnu@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-arm64-musl@4.53.2': '@rollup/rollup-linux-arm64-musl@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-loong64-gnu@4.53.2': '@rollup/rollup-linux-loong64-gnu@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-ppc64-gnu@4.53.2': '@rollup/rollup-linux-ppc64-gnu@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-riscv64-gnu@4.53.2': '@rollup/rollup-linux-riscv64-gnu@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-riscv64-musl@4.53.2': '@rollup/rollup-linux-riscv64-musl@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-s390x-gnu@4.53.2': '@rollup/rollup-linux-s390x-gnu@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-x64-gnu@4.53.2': '@rollup/rollup-linux-x64-gnu@4.53.5':
optional: true optional: true
'@rollup/rollup-linux-x64-musl@4.53.2': '@rollup/rollup-linux-x64-musl@4.53.5':
optional: true optional: true
'@rollup/rollup-openharmony-arm64@4.53.2': '@rollup/rollup-openharmony-arm64@4.53.5':
optional: true optional: true
'@rollup/rollup-win32-arm64-msvc@4.53.2': '@rollup/rollup-win32-arm64-msvc@4.53.5':
optional: true optional: true
'@rollup/rollup-win32-ia32-msvc@4.53.2': '@rollup/rollup-win32-ia32-msvc@4.53.5':
optional: true optional: true
'@rollup/rollup-win32-x64-gnu@4.53.2': '@rollup/rollup-win32-x64-gnu@4.53.5':
optional: true optional: true
'@rollup/rollup-win32-x64-msvc@4.53.2': '@rollup/rollup-win32-x64-msvc@4.53.5':
optional: true optional: true
'@tsconfig/node10@1.0.12': {} '@tsconfig/node10@1.0.12': {}
@@ -1092,7 +1230,7 @@ snapshots:
'@types/lodash@4.17.20': {} '@types/lodash@4.17.20': {}
'@types/node@24.10.1': '@types/node@24.10.4':
dependencies: dependencies:
undici-types: 7.16.0 undici-types: 7.16.0
@@ -1100,15 +1238,15 @@ snapshots:
'@types/send@1.2.1': '@types/send@1.2.1':
dependencies: dependencies:
'@types/node': 24.10.1 '@types/node': 24.10.4
'@types/ws@8.18.1': '@types/ws@8.18.1':
dependencies: dependencies:
'@types/node': 24.10.1 '@types/node': 24.10.4
'@types/xml2js@0.4.14': '@types/xml2js@0.4.14':
dependencies: dependencies:
'@types/node': 24.10.1 '@types/node': 24.10.4
'@webassemblyjs/ast@1.14.1': '@webassemblyjs/ast@1.14.1':
dependencies: dependencies:
@@ -1222,6 +1360,12 @@ snapshots:
arg@4.1.3: {} arg@4.1.3: {}
asn1js@3.0.7:
dependencies:
pvtsutils: 1.3.6
pvutils: 1.1.5
tslib: 2.8.1
baseline-browser-mapping@2.8.28: {} baseline-browser-mapping@2.8.28: {}
braces@3.0.3: braces@3.0.3:
@@ -1238,6 +1382,8 @@ snapshots:
buffer-from@1.1.2: {} buffer-from@1.1.2: {}
bytestreamjs@2.0.1: {}
caniuse-lite@1.0.30001754: {} caniuse-lite@1.0.30001754: {}
chalk@4.1.2: chalk@4.1.2:
@@ -1257,7 +1403,7 @@ snapshots:
commondir@1.0.1: {} commondir@1.0.1: {}
cookie@1.0.2: {} cookie@1.1.1: {}
create-require@1.1.1: {} create-require@1.1.1: {}
@@ -1360,7 +1506,7 @@ snapshots:
jest-worker@27.5.1: jest-worker@27.5.1:
dependencies: dependencies:
'@types/node': 24.10.1 '@types/node': 24.10.4
merge-stream: 2.0.0 merge-stream: 2.0.0
supports-color: 8.1.1 supports-color: 8.1.1
@@ -1406,19 +1552,12 @@ snapshots:
neo-async@2.6.2: {} neo-async@2.6.2: {}
node-forge@1.3.1: {}
node-releases@2.0.27: {} node-releases@2.0.27: {}
on-finished@2.4.1: on-finished@2.4.1:
dependencies: dependencies:
ee-first: 1.1.1 ee-first: 1.1.1
openai@5.23.2(@kevisual/ws@8.0.0)(zod@4.1.12):
optionalDependencies:
ws: '@kevisual/ws@8.0.0'
zod: 4.1.12
path-parse@1.0.7: {} path-parse@1.0.7: {}
path-to-regexp@8.3.0: {} path-to-regexp@8.3.0: {}
@@ -1429,12 +1568,29 @@ snapshots:
picomatch@4.0.3: {} picomatch@4.0.3: {}
pkijs@3.3.3:
dependencies:
'@noble/hashes': 1.4.0
asn1js: 3.0.7
bytestreamjs: 2.0.1
pvtsutils: 1.3.6
pvutils: 1.1.5
tslib: 2.8.1
pvtsutils@1.3.6:
dependencies:
tslib: 2.8.1
pvutils@1.1.5: {}
randombytes@2.1.0: randombytes@2.1.0:
dependencies: dependencies:
safe-buffer: 5.2.1 safe-buffer: 5.2.1
range-parser@1.2.1: {} range-parser@1.2.1: {}
reflect-metadata@0.2.2: {}
require-from-string@2.0.2: {} require-from-string@2.0.2: {}
resolve@1.22.11: resolve@1.22.11:
@@ -1443,40 +1599,40 @@ snapshots:
path-parse: 1.0.7 path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0 supports-preserve-symlinks-flag: 1.0.0
rollup-plugin-dts@6.2.3(rollup@4.53.2)(typescript@5.9.3): rollup-plugin-dts@6.3.0(rollup@4.53.5)(typescript@5.9.3):
dependencies: dependencies:
magic-string: 0.30.21 magic-string: 0.30.21
rollup: 4.53.2 rollup: 4.53.5
typescript: 5.9.3 typescript: 5.9.3
optionalDependencies: optionalDependencies:
'@babel/code-frame': 7.27.1 '@babel/code-frame': 7.27.1
rollup@4.53.2: rollup@4.53.5:
dependencies: dependencies:
'@types/estree': 1.0.8 '@types/estree': 1.0.8
optionalDependencies: optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.53.2 '@rollup/rollup-android-arm-eabi': 4.53.5
'@rollup/rollup-android-arm64': 4.53.2 '@rollup/rollup-android-arm64': 4.53.5
'@rollup/rollup-darwin-arm64': 4.53.2 '@rollup/rollup-darwin-arm64': 4.53.5
'@rollup/rollup-darwin-x64': 4.53.2 '@rollup/rollup-darwin-x64': 4.53.5
'@rollup/rollup-freebsd-arm64': 4.53.2 '@rollup/rollup-freebsd-arm64': 4.53.5
'@rollup/rollup-freebsd-x64': 4.53.2 '@rollup/rollup-freebsd-x64': 4.53.5
'@rollup/rollup-linux-arm-gnueabihf': 4.53.2 '@rollup/rollup-linux-arm-gnueabihf': 4.53.5
'@rollup/rollup-linux-arm-musleabihf': 4.53.2 '@rollup/rollup-linux-arm-musleabihf': 4.53.5
'@rollup/rollup-linux-arm64-gnu': 4.53.2 '@rollup/rollup-linux-arm64-gnu': 4.53.5
'@rollup/rollup-linux-arm64-musl': 4.53.2 '@rollup/rollup-linux-arm64-musl': 4.53.5
'@rollup/rollup-linux-loong64-gnu': 4.53.2 '@rollup/rollup-linux-loong64-gnu': 4.53.5
'@rollup/rollup-linux-ppc64-gnu': 4.53.2 '@rollup/rollup-linux-ppc64-gnu': 4.53.5
'@rollup/rollup-linux-riscv64-gnu': 4.53.2 '@rollup/rollup-linux-riscv64-gnu': 4.53.5
'@rollup/rollup-linux-riscv64-musl': 4.53.2 '@rollup/rollup-linux-riscv64-musl': 4.53.5
'@rollup/rollup-linux-s390x-gnu': 4.53.2 '@rollup/rollup-linux-s390x-gnu': 4.53.5
'@rollup/rollup-linux-x64-gnu': 4.53.2 '@rollup/rollup-linux-x64-gnu': 4.53.5
'@rollup/rollup-linux-x64-musl': 4.53.2 '@rollup/rollup-linux-x64-musl': 4.53.5
'@rollup/rollup-openharmony-arm64': 4.53.2 '@rollup/rollup-openharmony-arm64': 4.53.5
'@rollup/rollup-win32-arm64-msvc': 4.53.2 '@rollup/rollup-win32-arm64-msvc': 4.53.5
'@rollup/rollup-win32-ia32-msvc': 4.53.2 '@rollup/rollup-win32-ia32-msvc': 4.53.5
'@rollup/rollup-win32-x64-gnu': 4.53.2 '@rollup/rollup-win32-x64-gnu': 4.53.5
'@rollup/rollup-win32-x64-msvc': 4.53.2 '@rollup/rollup-win32-x64-msvc': 4.53.5
fsevents: 2.3.3 fsevents: 2.3.3
safe-buffer@5.2.1: {} safe-buffer@5.2.1: {}
@@ -1490,9 +1646,10 @@ snapshots:
ajv-formats: 2.1.1(ajv@8.17.1) ajv-formats: 2.1.1(ajv@8.17.1)
ajv-keywords: 5.1.0(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1)
selfsigned@4.0.0: selfsigned@5.2.0:
dependencies: dependencies:
node-forge: 1.3.1 '@peculiar/x509': 1.14.2
pkijs: 3.3.3
semver@7.7.3: {} semver@7.7.3: {}
@@ -1575,14 +1732,14 @@ snapshots:
typescript: 5.9.3 typescript: 5.9.3
webpack: 5.102.1 webpack: 5.102.1
ts-node@10.9.2(@types/node@24.10.1)(typescript@5.9.3): ts-node@10.9.2(@types/node@24.10.4)(typescript@5.9.3):
dependencies: dependencies:
'@cspotcode/source-map-support': 0.8.1 '@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.12 '@tsconfig/node10': 1.0.12
'@tsconfig/node12': 1.0.11 '@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3 '@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4 '@tsconfig/node16': 1.0.4
'@types/node': 24.10.1 '@types/node': 24.10.4
acorn: 8.15.0 acorn: 8.15.0
acorn-walk: 8.3.4 acorn-walk: 8.3.4
arg: 4.1.3 arg: 4.1.3
@@ -1593,8 +1750,14 @@ snapshots:
v8-compile-cache-lib: 3.0.1 v8-compile-cache-lib: 3.0.1
yn: 3.1.1 yn: 3.1.1
tslib@1.14.1: {}
tslib@2.8.1: {} tslib@2.8.1: {}
tsyringe@4.10.0:
dependencies:
tslib: 1.14.1
typescript@5.9.3: {} typescript@5.9.3: {}
undici-types@7.16.0: {} undici-types@7.16.0: {}
@@ -1655,4 +1818,4 @@ snapshots:
yn@3.1.1: {} yn@3.1.1: {}
zod@4.1.12: {} zod@4.2.1: {}

View File

@@ -63,14 +63,14 @@ export type RouteMiddleware =
id?: string; id?: string;
} }
| string; | string;
export type RouteOpts<T = {}> = { export type RouteOpts<U = {}, T = SimpleObject> = {
path?: string; path?: string;
key?: string; key?: string;
id?: string; id?: string;
run?: Run<T>; run?: Run<U>;
nextRoute?: NextRoute; // route to run after this route nextRoute?: NextRoute; // route to run after this route
description?: string; description?: string;
metadata?: { [key: string]: any }; metadata?: T;
middleware?: RouteMiddleware[]; // middleware middleware?: RouteMiddleware[]; // middleware
type?: 'route' | 'middleware'; type?: 'route' | 'middleware';
/** /**
@@ -86,7 +86,7 @@ export type RouteOpts<T = {}> = {
export type DefineRouteOpts = Omit<RouteOpts, 'idUsePath' | 'nextRoute'>; export type DefineRouteOpts = Omit<RouteOpts, 'idUsePath' | 'nextRoute'>;
const pickValue = ['path', 'key', 'id', 'description', 'type', 'middleware', 'metadata'] as const; const pickValue = ['path', 'key', 'id', 'description', 'type', 'middleware', 'metadata'] as const;
export type RouteInfo = Pick<Route, (typeof pickValue)[number]>; export type RouteInfo = Pick<Route, (typeof pickValue)[number]>;
export class Route<U = { [key: string]: any }> { export class Route<U = { [key: string]: any }, T extends SimpleObject =SimpleObject> {
/** /**
* 一级路径 * 一级路径
*/ */
@@ -99,7 +99,7 @@ export class Route<U = { [key: string]: any }> {
run?: Run; run?: Run;
nextRoute?: NextRoute; // route to run after this route nextRoute?: NextRoute; // route to run after this route
description?: string; description?: string;
metadata?: { [key: string]: any }; metadata?: T;
middleware?: RouteMiddleware[]; // middleware middleware?: RouteMiddleware[]; // middleware
type? = 'route'; type? = 'route';
data?: any; data?: any;
@@ -124,7 +124,7 @@ export class Route<U = { [key: string]: any }> {
this.run = opts.run; this.run = opts.run;
this.nextRoute = opts.nextRoute; this.nextRoute = opts.nextRoute;
this.description = opts.description; this.description = opts.description;
this.metadata = opts.metadata; this.metadata = opts.metadata as T;
this.type = opts.type || 'route'; this.type = opts.type || 'route';
this.middleware = opts.middleware || []; this.middleware = opts.middleware || [];
this.key = opts.key || key; this.key = opts.key || key;
@@ -511,8 +511,8 @@ export class QueryRouter {
setContext(ctx: RouteContext) { setContext(ctx: RouteContext) {
this.context = ctx; this.context = ctx;
} }
getList(): RouteInfo[] { getList(filter?: (route: Route) => boolean): RouteInfo[] {
return this.routes.map((r) => { return this.routes.filter(filter || (() => true)).map((r) => {
return pick(r, pickValue as any); return pick(r, pickValue as any);
}); });
} }