diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45dde77..ff56d19 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,17 +16,6 @@ jobs: - name: Setup uses: actions/checkout@v6 - - name: Setup Node - uses: actions/setup-node@v6 - with: - node-version: lts/* - - - name: Install Dependencies - run: npm ci - - - name: Build - run: npm run build - - name: Setup Deno uses: denoland/setup-deno@v2 with: diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 37cd71e..766a55f 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -33,10 +33,10 @@ jobs: npm install - name: Build - run: npm run build + run: npm run build -- --mode lib - name: Publish to npm - run: npm publish --access public + run: npm publish --access public --provenance - name: Publish to JSR run: npx jsr publish diff --git a/deno.json b/deno.json index 9967d5a..c9b63a2 100644 --- a/deno.json +++ b/deno.json @@ -2,39 +2,21 @@ "name": "@lcweden/jsontext", "version": "0.1.0", "license": "MIT", - "exports": { - ".": "./src/index.ts" - }, "tasks": { "bench": "deno bench --allow-all", - "check": "deno check && deno fmt --check && deno lint", + "check": "deno check src/index.ts", "format": "deno fmt", "lint": "deno lint", "test": "deno test --coverage --allow-all" }, "imports": { - "#src/*": "./src/*.ts", + "#src/": "./src/", "#std/assert": "jsr:@std/assert@1" }, - "fmt": { - "lineWidth": 100 - }, - "lint": { - "rules": { - "tags": [ - "recommended" - ], - "exclude": [ - "no-sloppy-imports" - ] - } - }, - "exclude": [ - "node_modules/", - "public/", - "dist/", - "vite.config.ts" - ], + "exports": { ".": "./src/index.ts" }, + "fmt": { "lineWidth": 100 }, + "lint": { "rules": { "tags": ["recommended"], "include": ["no-slow-types"] } }, + "exclude": ["node_modules/", "public/", "dist/", "vite.config.ts"], "publish": { "include": ["src/", "README.md", "LICENSE", "deno.json"], "exclude": ["tests/", ".github/", ".vscode/", "dist/", "public/"] diff --git a/deno.lock b/deno.lock index 3a70853..7a4b627 100644 --- a/deno.lock +++ b/deno.lock @@ -2,10 +2,7 @@ "version": "5", "specifiers": { "jsr:@std/assert@1": "1.0.19", - "jsr:@std/internal@^1.0.12": "1.0.13", - "npm:@types/node@^25.6.0": "25.6.2", - "npm:typescript@~6.0.2": "6.0.3", - "npm:vite@^8.0.9": "8.0.12_@types+node@25.6.2" + "jsr:@std/internal@^1.0.12": "1.0.13" }, "jsr": { "@std/assert@1.0.19": { @@ -18,312 +15,15 @@ "integrity": "2f9546691d4ac2d32859c82dff284aaeac980ddeca38430d07941e7e288725c0" } }, - "npm": { - "@emnapi/core@1.10.0": { - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dependencies": [ - "@emnapi/wasi-threads", - "tslib" - ] - }, - "@emnapi/runtime@1.10.0": { - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "dependencies": [ - "tslib" - ] - }, - "@emnapi/wasi-threads@1.2.1": { - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", - "dependencies": [ - "tslib" - ] - }, - "@napi-rs/wasm-runtime@1.1.4_@emnapi+core@1.10.0_@emnapi+runtime@1.10.0": { - "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", - "dependencies": [ - "@emnapi/core", - "@emnapi/runtime", - "@tybys/wasm-util" - ] - }, - "@oxc-project/types@0.129.0": { - "integrity": "sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==" - }, - "@rolldown/binding-android-arm64@1.0.0": { - "integrity": "sha512-TWMZnRLMe63C2Lhyicviu7ZHaU4kxa6PS3rofvc9GmcvptzNN11BcfQ4Sl7MwTOsisQoa2keB/EBdNCAnUo8vA==", - "os": ["android"], - "cpu": ["arm64"] - }, - "@rolldown/binding-darwin-arm64@1.0.0": { - "integrity": "sha512-6XcD+8k0gPVItNagEw78/qqcBDwKcwDYS8V2hRmVsfUSIrd8cWe/CBvRDI5toqFyPfj+FJr6t8U6Xj2P2prEew==", - "os": ["darwin"], - "cpu": ["arm64"] - }, - "@rolldown/binding-darwin-x64@1.0.0": { - "integrity": "sha512-iN/tWVXRQDWvmZlKdceP1Dwug9GDpEymhb9p4xnEe6zvCg5lFmzVljl+1qR1NVx3yfGpr2Na+CuLmv5IU8uzfQ==", - "os": ["darwin"], - "cpu": ["x64"] - }, - "@rolldown/binding-freebsd-x64@1.0.0": { - "integrity": "sha512-jjQMDvvwSOuhOwMszD/klSOjyWMM3zI64hWTj9KT5x4MxRbZAf+7vLQ6qouRhtsLVFHr3f0ILaJAfgENPiQdAQ==", - "os": ["freebsd"], - "cpu": ["x64"] - }, - "@rolldown/binding-linux-arm-gnueabihf@1.0.0": { - "integrity": "sha512-d//Dtg2x6/m3mbV64yUGNnDGNZaDGRpDLLNGerHQUVObuNaIQaaDp25yUiqGXtHEXX+NP2d0wAlmKgpYgIAJ2A==", - "os": ["linux"], - "cpu": ["arm"] - }, - "@rolldown/binding-linux-arm64-gnu@1.0.0": { - "integrity": "sha512-n7Ofp0mx+aB2cC+Sdy5YtMnXtY9lchnHbY+3Yt0uq9JsWQExf4f5Whu0tK0R8Jdc9S6RchTHjIFY7uc92puOVQ==", - "os": ["linux"], - "cpu": ["arm64"] - }, - "@rolldown/binding-linux-arm64-musl@1.0.0": { - "integrity": "sha512-EIVjy2cgd7uuMMo94FVkBp7F6DhcZAUwNURkSG3RwUmvAXR6s0ISxM81U+IydcZByPG0pZIHsf1b6kTxoFDgJA==", - "os": ["linux"], - "cpu": ["arm64"] - }, - "@rolldown/binding-linux-ppc64-gnu@1.0.0": { - "integrity": "sha512-JEwwOPcwTLAcpDQlqSmjEmfs63xJnSiUNIGvLcDLUHCWK4XowpS/7c7tUsUH6uT/ct6bMUTdXKfI8967FYj6mg==", - "os": ["linux"], - "cpu": ["ppc64"] - }, - "@rolldown/binding-linux-s390x-gnu@1.0.0": { - "integrity": "sha512-0wjCFhLrihtAubnT9iA0N++0pSV0z5Hg7tNGdNJ4RFaINceHadoF+kiFGyY1qSSNVIAZtLotG8Ju1bgDPkjnFA==", - "os": ["linux"], - "cpu": ["s390x"] - }, - "@rolldown/binding-linux-x64-gnu@1.0.0": { - "integrity": "sha512-Dfn7iak9BcMMePxcoJfpSbWqnEyrp/dRF63/8qW/eHBdOZov6x5aShLLEYGYdIeSJ6vMLK/XCVB+lGIxm41bQA==", - "os": ["linux"], - "cpu": ["x64"] - }, - "@rolldown/binding-linux-x64-musl@1.0.0": { - "integrity": "sha512-5/utzzDmD/pD/bmuaUcbTf/sZYy0aztwIVlfpoW1fTjCZ0BaPOMVWGZL1zvgxyi7ZIVYWlxKONHmSbHuiOh8Jw==", - "os": ["linux"], - "cpu": ["x64"] - }, - "@rolldown/binding-openharmony-arm64@1.0.0": { - "integrity": "sha512-ouJs8VcUomfLfpbUECqFMRqdV4x6aeAK3MA4m6vTrJJjKyWTV5KnxZx7Jd9G+GlDaQQxubcba00x16OyJ1meig==", - "os": ["openharmony"], - "cpu": ["arm64"] - }, - "@rolldown/binding-wasm32-wasi@1.0.0": { - "integrity": "sha512-E+oHKGiDA+lsKMmFtffDDw91EryDT7uJocrIuCHqhm6bCTM6xFK+3gaCkYOHfPwQr0cCNarSM2xaELoQDz9jJg==", - "dependencies": [ - "@emnapi/core", - "@emnapi/runtime", - "@napi-rs/wasm-runtime" - ], - "cpu": ["wasm32"] - }, - "@rolldown/binding-win32-arm64-msvc@1.0.0": { - "integrity": "sha512-yYK02n8Rngo+gbm1y6G0+7jk1sJ/2Wt7K0me0Y7k/ErBpyf+LJ2gFpqWVTcRV1rUepBlQRmpgWkTQCiiwrK0Ow==", - "os": ["win32"], - "cpu": ["arm64"] - }, - "@rolldown/binding-win32-x64-msvc@1.0.0": { - "integrity": "sha512-14bpChMahXRRXiTwahSl+zzHPW6qQTXtkMuJBFlbo+pqSAews2d4BdCSHfrJ/MBsCZtpmTafsY+1QhBzitcmdg==", - "os": ["win32"], - "cpu": ["x64"] - }, - "@rolldown/pluginutils@1.0.0": { - "integrity": "sha512-aKs/3GSWyV0mrhNmt/96/Z3yczC3yvrzYATCiCXQebBsGyYzjNdUphRVLeJQ67ySKVXRfMxt2lm12pmXvbPFQQ==" - }, - "@tybys/wasm-util@0.10.2": { - "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", - "dependencies": [ - "tslib" - ] - }, - "@types/node@25.6.2": { - "integrity": "sha512-sokuT28dxf9JT5Kady1fsXOvI4HVpjZa95NKT5y9PNTIrs2AsobR4GFAA90ZG8M+nxVRLysCXsVj6eGC7Vbrlw==", - "dependencies": [ - "undici-types" - ] - }, - "detect-libc@2.1.2": { - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==" - }, - "fdir@6.5.0_picomatch@4.0.4": { - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dependencies": [ - "picomatch" - ], - "optionalPeers": [ - "picomatch" - ] - }, - "fsevents@2.3.3": { - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "os": ["darwin"], - "scripts": true - }, - "lightningcss-android-arm64@1.32.0": { - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "os": ["android"], - "cpu": ["arm64"] - }, - "lightningcss-darwin-arm64@1.32.0": { - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "os": ["darwin"], - "cpu": ["arm64"] - }, - "lightningcss-darwin-x64@1.32.0": { - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "os": ["darwin"], - "cpu": ["x64"] - }, - "lightningcss-freebsd-x64@1.32.0": { - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "os": ["freebsd"], - "cpu": ["x64"] - }, - "lightningcss-linux-arm-gnueabihf@1.32.0": { - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "os": ["linux"], - "cpu": ["arm"] - }, - "lightningcss-linux-arm64-gnu@1.32.0": { - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "os": ["linux"], - "cpu": ["arm64"] - }, - "lightningcss-linux-arm64-musl@1.32.0": { - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "os": ["linux"], - "cpu": ["arm64"] - }, - "lightningcss-linux-x64-gnu@1.32.0": { - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "os": ["linux"], - "cpu": ["x64"] - }, - "lightningcss-linux-x64-musl@1.32.0": { - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "os": ["linux"], - "cpu": ["x64"] - }, - "lightningcss-win32-arm64-msvc@1.32.0": { - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "os": ["win32"], - "cpu": ["arm64"] - }, - "lightningcss-win32-x64-msvc@1.32.0": { - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", - "os": ["win32"], - "cpu": ["x64"] - }, - "lightningcss@1.32.0": { - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dependencies": [ - "detect-libc" - ], - "optionalDependencies": [ - "lightningcss-android-arm64", - "lightningcss-darwin-arm64", - "lightningcss-darwin-x64", - "lightningcss-freebsd-x64", - "lightningcss-linux-arm-gnueabihf", - "lightningcss-linux-arm64-gnu", - "lightningcss-linux-arm64-musl", - "lightningcss-linux-x64-gnu", - "lightningcss-linux-x64-musl", - "lightningcss-win32-arm64-msvc", - "lightningcss-win32-x64-msvc" - ] - }, - "nanoid@3.3.12": { - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", - "bin": true - }, - "picocolors@1.1.1": { - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "picomatch@4.0.4": { - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==" - }, - "postcss@8.5.14": { - "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", - "dependencies": [ - "nanoid", - "picocolors", - "source-map-js" - ] - }, - "rolldown@1.0.0": { - "integrity": "sha512-yD986aXDESFGS95spT1LAv0jssywP4npMEjmMHyN2/5+eE8qQJUype2AaKkRiLgBgyD0LFlubwAht7VmY8rGoA==", - "dependencies": [ - "@oxc-project/types", - "@rolldown/pluginutils" - ], - "optionalDependencies": [ - "@rolldown/binding-android-arm64", - "@rolldown/binding-darwin-arm64", - "@rolldown/binding-darwin-x64", - "@rolldown/binding-freebsd-x64", - "@rolldown/binding-linux-arm-gnueabihf", - "@rolldown/binding-linux-arm64-gnu", - "@rolldown/binding-linux-arm64-musl", - "@rolldown/binding-linux-ppc64-gnu", - "@rolldown/binding-linux-s390x-gnu", - "@rolldown/binding-linux-x64-gnu", - "@rolldown/binding-linux-x64-musl", - "@rolldown/binding-openharmony-arm64", - "@rolldown/binding-wasm32-wasi", - "@rolldown/binding-win32-arm64-msvc", - "@rolldown/binding-win32-x64-msvc" - ], - "bin": true - }, - "source-map-js@1.2.1": { - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" - }, - "tinyglobby@0.2.16": { - "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", - "dependencies": [ - "fdir", - "picomatch" - ] - }, - "tslib@2.8.1": { - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - }, - "typescript@6.0.3": { - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", - "bin": true - }, - "undici-types@7.19.2": { - "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==" - }, - "vite@8.0.12_@types+node@25.6.2": { - "integrity": "sha512-w2dDofOWv2QB09ZITZBsvKTVAlYvPR4IAmrY/v0ir9KvLs0xybR7i48wxhM1/oyBWO34wPns+bPGw5ZrZqDpZg==", - "dependencies": [ - "@types/node", - "lightningcss", - "picomatch", - "postcss", - "rolldown", - "tinyglobby" - ], - "optionalDependencies": [ - "fsevents" - ], - "optionalPeers": [ - "@types/node" - ], - "bin": true - } - }, "workspace": { "dependencies": [ "jsr:@std/assert@1" ], "packageJson": { "dependencies": [ - "npm:@types/node@^25.6.0", + "npm:@types/node@^25.9.1", "npm:typescript@~6.0.2", + "npm:unplugin-dts@^1.0.1", "npm:vite@^8.0.9" ] } diff --git a/package-lock.json b/package-lock.json index c5cff9c..f5e41c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,24 @@ { "name": "jsontext", - "version": "0.0.0", + "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "jsontext", - "version": "0.0.0", + "version": "0.1.0", + "license": "MIT", "devDependencies": { - "@types/node": "^25.6.0", + "@types/node": "^25.9.1", "typescript": "~6.0.2", + "unplugin-dts": "^1.0.1", "vite": "^8.0.9" } }, "node_modules/@emnapi/core": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", - "integrity": "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "dev": true, "license": "MIT", "optional": true, @@ -26,9 +28,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.2.tgz", - "integrity": "sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "dev": true, "license": "MIT", "optional": true, @@ -47,6 +49,56 @@ "tslib": "^2.4.0" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", @@ -66,20 +118,10 @@ "@emnapi/runtime": "^1.7.1" } }, - "node_modules/@oxc-project/types": { - "version": "0.126.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.126.0.tgz", - "integrity": "sha512-oGfVtjAgwQVVpfBrbtk4e1XDyWHRFta6BS3GWVzrF8xYBT2VGQAk39yJS/wFSMrZqoiCU4oghT3Ch0HaHGIHcQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/Boshen" - } - }, "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.16.tgz", - "integrity": "sha512-rhY3k7Bsae9qQfOtph2Pm2jZEA+s8Gmjoz4hhmx70K9iMQ/ddeae+xhRQcM5IuVx5ry1+bGfkvMn7D6MJggVSA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz", + "integrity": "sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==", "cpu": [ "arm64" ], @@ -94,9 +136,9 @@ } }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.16.tgz", - "integrity": "sha512-rNz0yK078yrNn3DrdgN+PKiMOW8HfQ92jQiXxwX8yW899ayV00MLVdaCNeVBhG/TbH3ouYVObo8/yrkiectkcQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz", + "integrity": "sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==", "cpu": [ "arm64" ], @@ -111,9 +153,9 @@ } }, "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.16.tgz", - "integrity": "sha512-r/OmdR00HmD4i79Z//xO06uEPOq5hRXdhw7nzkxQxwSavs3PSHa1ijntdpOiZ2mzOQ3fVVu8C1M19FoNM+dMUQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz", + "integrity": "sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==", "cpu": [ "x64" ], @@ -128,9 +170,9 @@ } }, "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.16.tgz", - "integrity": "sha512-KcRE5w8h0OnjUatG8pldyD14/CQ5Phs1oxfR+3pKDjboHRo9+MkqQaiIZlZRpsxC15paeXme/I127tUa9TXJ6g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz", + "integrity": "sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==", "cpu": [ "x64" ], @@ -145,9 +187,9 @@ } }, "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.16.tgz", - "integrity": "sha512-bT0guA1bpxEJ/ZhTRniQf7rNF8ybvXOuWbNIeLABaV5NGjx4EtOWBTSRGWFU9ZWVkPOZ+HNFP8RMcBokBiZ0Kg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz", + "integrity": "sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==", "cpu": [ "arm" ], @@ -162,13 +204,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.16.tgz", - "integrity": "sha512-+tHktCHWV8BDQSjemUqm/Jl/TPk3QObCTIjmdDy/nlupcujZghmKK2962LYrqFpWu+ai01AN/REOH3NEpqvYQg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz", + "integrity": "sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -179,13 +224,16 @@ } }, "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.16.tgz", - "integrity": "sha512-3fPzdREH806oRLxpTWW1Gt4tQHs0TitZFOECB2xzCFLPKnSOy90gwA7P29cksYilFO6XVRY1kzga0cL2nRjKPg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz", + "integrity": "sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -196,13 +244,16 @@ } }, "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.16.tgz", - "integrity": "sha512-EKwI1tSrLs7YVw+JPJT/G2dJQ1jl9qlTTTEG0V2Ok/RdOenRfBw2PQdLPyjhIu58ocdBfP7vIRN/pvMsPxs/AQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz", + "integrity": "sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -213,13 +264,16 @@ } }, "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.16.tgz", - "integrity": "sha512-Uknladnb3Sxqu6SEcqBldQyJUpk8NleooZEc0MbRBJ4inEhRYWZX0NJu12vNf2mqAq7gsofAxHrGghiUYjhaLQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz", + "integrity": "sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -230,13 +284,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.16.tgz", - "integrity": "sha512-FIb8+uG49sZBtLTn+zt1AJ20TqVcqWeSIyoVt0or7uAWesgKaHbiBh6OpA/k9v0LTt+PTrb1Lao133kP4uVxkg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz", + "integrity": "sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -247,13 +304,16 @@ } }, "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.16.tgz", - "integrity": "sha512-RuERhF9/EgWxZEXYWCOaViUWHIboceK4/ivdtQ3R0T44NjLkIIlGIAVAuCddFxsZ7vnRHtNQUrt2vR2n2slB2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz", + "integrity": "sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -264,9 +324,9 @@ } }, "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.16.tgz", - "integrity": "sha512-mXcXnvd9GpazCxeUCCnZ2+YF7nut+ZOEbE4GtaiPtyY6AkhZWbK70y1KK3j+RDhjVq5+U8FySkKRb/+w0EeUwA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz", + "integrity": "sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==", "cpu": [ "arm64" ], @@ -281,9 +341,9 @@ } }, "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.16.tgz", - "integrity": "sha512-3Q2KQxnC8IJOLqXmUMoYwyIPZU9hzRbnHaoV3Euz+VVnjZKcY8ktnNP8T9R4/GGQtb27C/UYKABxesKWb8lsvQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz", + "integrity": "sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==", "cpu": [ "wasm32" ], @@ -291,8 +351,8 @@ "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "1.9.2", - "@emnapi/runtime": "1.9.2", + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { @@ -300,9 +360,9 @@ } }, "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.16.tgz", - "integrity": "sha512-tj7XRemQcOcFwv7qhpUxMTBbI5mWMlE4c1Omhg5+h8GuLXzyj8HviYgR+bB2DMDgRqUE+jiDleqSCRjx4aYk/Q==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz", + "integrity": "sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==", "cpu": [ "arm64" ], @@ -317,9 +377,9 @@ } }, "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.16.tgz", - "integrity": "sha512-PH5DRZT+F4f2PTXRXR8uJxnBq2po/xFtddyabTJVJs/ZYVHqXPEgNIr35IHTEa6bpa0Q8Awg+ymkTaGnKITw4g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz", + "integrity": "sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==", "cpu": [ "x64" ], @@ -334,16 +394,39 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.16.tgz", - "integrity": "sha512-45+YtqxLYKDWQouLKCrpIZhke+nXxhsw+qAHVzHDVwttyBlHNBVs2K25rDXrZzhpTp9w1FlAlvweV1H++fdZoA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, "license": "MIT" }, + "node_modules/@rollup/pluginutils": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz", + "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", "dev": true, "license": "MIT", "optional": true, @@ -351,14 +434,95 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { - "version": "25.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", - "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "version": "25.9.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.1.tgz", + "integrity": "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": ">=7.24.0 <7.24.7" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", + "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.28" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", + "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", + "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~7.19.0" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/detect-libc": { @@ -371,6 +535,20 @@ "node": ">=8" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "dev": true, + "license": "MIT" + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -404,6 +582,13 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, "node_modules/lightningcss": { "version": "1.32.0", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", @@ -547,6 +732,9 @@ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -568,6 +756,9 @@ "arm64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -589,6 +780,9 @@ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -610,6 +804,9 @@ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MPL-2.0", "optional": true, "os": [ @@ -665,10 +862,77 @@ "url": "https://opencollective.com/parcel" } }, + "node_modules/local-pkg": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-1.2.1.tgz", + "integrity": "sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", "dev": true, "funding": [ { @@ -684,6 +948,20 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -704,10 +982,22 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkg-types": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-2.3.1.tgz", + "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.2.4", + "exsolve": "^1.0.8", + "pathe": "^2.0.3" + } + }, "node_modules/postcss": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", - "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", "dev": true, "funding": [ { @@ -725,7 +1015,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -733,15 +1023,32 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, "node_modules/rolldown": { - "version": "1.0.0-rc.16", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-rc.16.tgz", - "integrity": "sha512-rzi5WqKzEZw3SooTt7cgm4eqIoujPIyGcJNGFL7iPEuajQw7vxMHUkXylu4/vhCkJGXsgRmxqMKXUpT6FEgl0g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.2.tgz", + "integrity": "sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.126.0", - "@rolldown/pluginutils": "1.0.0-rc.16" + "@oxc-project/types": "=0.132.0", + "@rolldown/pluginutils": "^1.0.0" }, "bin": { "rolldown": "bin/cli.mjs" @@ -750,21 +1057,31 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.0-rc.16", - "@rolldown/binding-darwin-arm64": "1.0.0-rc.16", - "@rolldown/binding-darwin-x64": "1.0.0-rc.16", - "@rolldown/binding-freebsd-x64": "1.0.0-rc.16", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.16", - "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.16", - "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.16", - "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.16", - "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.16", - "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.16", - "@rolldown/binding-linux-x64-musl": "1.0.0-rc.16", - "@rolldown/binding-openharmony-arm64": "1.0.0-rc.16", - "@rolldown/binding-wasm32-wasi": "1.0.0-rc.16", - "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.16", - "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.16" + "@rolldown/binding-android-arm64": "1.0.2", + "@rolldown/binding-darwin-arm64": "1.0.2", + "@rolldown/binding-darwin-x64": "1.0.2", + "@rolldown/binding-freebsd-x64": "1.0.2", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.2", + "@rolldown/binding-linux-arm64-gnu": "1.0.2", + "@rolldown/binding-linux-arm64-musl": "1.0.2", + "@rolldown/binding-linux-ppc64-gnu": "1.0.2", + "@rolldown/binding-linux-s390x-gnu": "1.0.2", + "@rolldown/binding-linux-x64-gnu": "1.0.2", + "@rolldown/binding-linux-x64-musl": "1.0.2", + "@rolldown/binding-openharmony-arm64": "1.0.2", + "@rolldown/binding-wasm32-wasi": "1.0.2", + "@rolldown/binding-win32-arm64-msvc": "1.0.2", + "@rolldown/binding-win32-x64-msvc": "1.0.2" + } + }, + "node_modules/rolldown/node_modules/@oxc-project/types": { + "version": "0.132.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.132.0.tgz", + "integrity": "sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" } }, "node_modules/source-map-js": { @@ -816,24 +1133,101 @@ "node": ">=14.17" } }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "dev": true, + "license": "MIT" + }, "node_modules/undici-types": { - "version": "7.19.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", - "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz", + "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==", "dev": true, "license": "MIT" }, + "node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-dts": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unplugin-dts/-/unplugin-dts-1.0.1.tgz", + "integrity": "sha512-EdJZxdWP4Tm/xhe58/zAge3Tu0OKDYygm8rucRrcCZ4XzgA31jexUKhaJuEMddOPBDs9ONnq6vwigbjeBqkfuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^5.1.4", + "@volar/typescript": "^2.4.26", + "compare-versions": "^6.1.1", + "debug": "^4.4.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.1.1", + "magic-string": "^0.30.17", + "unplugin": "^2.3.2" + }, + "peerDependencies": { + "@microsoft/api-extractor": ">=7", + "@rspack/core": "^1", + "@vue/language-core": "~3.1.5", + "esbuild": "*", + "rolldown": "*", + "rollup": ">=3", + "typescript": ">=4", + "vite": ">=3", + "webpack": "^4 || ^5" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@rspack/core": { + "optional": true + }, + "@vue/language-core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "rolldown": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, "node_modules/vite": { - "version": "8.0.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.9.tgz", - "integrity": "sha512-t7g7GVRpMXjNpa67HaVWI/8BWtdVIQPCL2WoozXXA7LBGEFK4AkkKkHx2hAQf5x1GZSlcmEDPkVLSGahxnEEZw==", + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.14.tgz", + "integrity": "sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==", "dev": true, "license": "MIT", "dependencies": { "lightningcss": "^1.32.0", "picomatch": "^4.0.4", - "postcss": "^8.5.10", - "rolldown": "1.0.0-rc.16", + "postcss": "^8.5.15", + "rolldown": "1.0.2", "tinyglobby": "^0.2.16" }, "bin": { @@ -850,7 +1244,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.0", + "@vitejs/devtools": "^0.1.18", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -900,6 +1294,20 @@ "optional": true } } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true, + "license": "MIT" } } } diff --git a/package.json b/package.json index f15f8f0..4e67c04 100644 --- a/package.json +++ b/package.json @@ -1,31 +1,25 @@ { "name": "jsontext", "version": "0.1.0", - "description": "A streaming JSON parser and serializer for JavaScript.", - "keywords": ["json", "stream", "decoder", "encoder"], + "license": "MIT", + "description": "State machine for incremental JSON processing.", + "keywords": ["json", "stream"], "type": "module", - "sideEffects": false, - "main": "./dist/index.js", - "module": "./dist/index.js", "types": "./dist/index.d.ts", + "imports": { + "#src/*": "./src/*" + }, "exports": { ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js" } }, - "imports": { - "#src/*": { - "types": "./dist/*.d.ts", - "default": "./src/*.ts" - } - }, "files": ["dist/**/*", "!dist/**/*.map"], "author": { "name": "lcweden", "url": "https://github.com/lcweden" }, - "license": "MIT", "homepage": "https://github.com/lcweden/jsontext", "repository": { "type": "git", @@ -35,7 +29,7 @@ "url": "https://github.com/lcweden/jsontext/issues" }, "scripts": { - "build": "vite build && tsc -p tsconfig.build.json", + "build": "vite build", "bench": "deno task bench", "dev": "vite", "format": "deno task format", @@ -43,9 +37,11 @@ "preview": "vite preview", "test": "deno task test" }, + "sideEffects": false, "devDependencies": { - "@types/node": "^25.6.0", + "@types/node": "^25.9.1", "typescript": "~6.0.2", + "unplugin-dts": "^1.0.1", "vite": "^8.0.9" } } diff --git a/src/api/decoder.ts b/src/api/decoder.ts index 89f2fda..c9445d3 100644 --- a/src/api/decoder.ts +++ b/src/api/decoder.ts @@ -1,9 +1,9 @@ -import { DEFAULT_DECODER_OPTIONS } from "#src/common/constants"; -import Decoder from "#src/modules/decoder"; -import type Token from "#src/modules/token"; -import type Value from "#src/modules/value"; -import type { Kind } from "#src/types/kind"; -import type { DecoderOptions } from "#src/types/options"; +import { DEFAULT_DECODER_OPTIONS } from "#src/common/constants.ts"; +import Decoder from "#src/modules/decoder.ts"; +import type Token from "#src/modules/token.ts"; +import type Value from "#src/modules/value.ts"; +import type { Kind } from "#src/types/kind.ts"; +import type { DecoderOptions } from "#src/types/options.ts"; type JSONTextDecoderOptions = DecoderOptions; diff --git a/src/api/encoder.ts b/src/api/encoder.ts index 609938f..d20c210 100644 --- a/src/api/encoder.ts +++ b/src/api/encoder.ts @@ -1,8 +1,8 @@ -import { DEFAULT_ENCODER_OPTIONS } from "#src/common/constants"; -import Encoder from "#src/modules/encoder"; -import type Token from "#src/modules/token"; -import type Value from "#src/modules/value"; -import type { EncoderOptions } from "#src/types/options"; +import { DEFAULT_ENCODER_OPTIONS } from "#src/common/constants.ts"; +import Encoder from "#src/modules/encoder.ts"; +import type Token from "#src/modules/token.ts"; +import type Value from "#src/modules/value.ts"; +import type { EncoderOptions } from "#src/types/options.ts"; type JSONTextEncoderOptions = EncoderOptions; diff --git a/src/index.ts b/src/index.ts index 842ff66..04fcc5f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,21 +1,21 @@ -export type { JSONTextDecoderOptions } from "#src/api/decoder"; -export type { JSONTextEncoderOptions } from "#src/api/encoder"; -export type { JSONTextDecoderStreamOptions } from "#src/libs/stream-decoder"; -export type { JSONTextEncoderStreamOptions } from "#src/libs/stream-encoder"; -export type { JSONTextLineStreamOptions } from "#src/libs/stream-line"; -export type { JSONTextSelectorStreamOptions } from "#src/libs/stream-selector"; +export type { JSONTextDecoderOptions } from "#src/api/decoder.ts"; +export type { JSONTextEncoderOptions } from "#src/api/encoder.ts"; +export type { JSONTextDecoderStreamOptions } from "#src/libs/stream-decoder.ts"; +export type { JSONTextEncoderStreamOptions } from "#src/libs/stream-encoder.ts"; +export type { JSONTextLineStreamOptions } from "#src/libs/stream-line.ts"; +export type { JSONTextSelectorStreamOptions } from "#src/libs/stream-selector.ts"; -export type { Kind } from "#src/types/kind"; +export type { Kind } from "#src/types/kind.ts"; -export { default as JSONTextDecoder } from "#src/api/decoder"; -export { default as JSONTextEncoder } from "#src/api/encoder"; -export { default as Token } from "#src/modules/token"; -export { default as Value } from "#src/modules/value"; +export { default as JSONTextDecoder } from "#src/api/decoder.ts"; +export { default as JSONTextEncoder } from "#src/api/encoder.ts"; +export { default as Token } from "#src/modules/token.ts"; +export { default as Value } from "#src/modules/value.ts"; -export { default as JSONTextDecoderStream } from "#src/libs/stream-decoder"; -export { default as JSONTextEncoderStream } from "#src/libs/stream-encoder"; -export { default as JSONTextLineStream } from "#src/libs/stream-line"; -export { default as JSONTextSelectorStream } from "#src/libs/stream-selector"; +export { default as JSONTextDecoderStream } from "#src/libs/stream-decoder.ts"; +export { default as JSONTextEncoderStream } from "#src/libs/stream-encoder.ts"; +export { default as JSONTextLineStream } from "#src/libs/stream-line.ts"; +export { default as JSONTextSelectorStream } from "#src/libs/stream-selector.ts"; -export { KIND } from "#src/common/constants"; -export { SyntacticError } from "#src/common/errors"; +export { KIND } from "#src/common/constants.ts"; +export { SyntacticError } from "#src/common/errors.ts"; diff --git a/src/libs/stream-decoder.ts b/src/libs/stream-decoder.ts index da47942..5f4e589 100644 --- a/src/libs/stream-decoder.ts +++ b/src/libs/stream-decoder.ts @@ -1,7 +1,7 @@ -import { DEFAULT_DECODER_OPTIONS } from "#src/common/constants"; -import Decoder from "#src/modules/decoder"; -import type Token from "#src/modules/token"; -import type { DecoderOptions } from "#src/types/options"; +import { DEFAULT_DECODER_OPTIONS } from "#src/common/constants.ts"; +import Decoder from "#src/modules/decoder.ts"; +import type Token from "#src/modules/token.ts"; +import type { DecoderOptions } from "#src/types/options.ts"; type JSONTextDecoderStreamOptions = DecoderOptions & { writableStrategy?: QueuingStrategy; diff --git a/src/libs/stream-encoder.ts b/src/libs/stream-encoder.ts index 7950854..2da09b3 100644 --- a/src/libs/stream-encoder.ts +++ b/src/libs/stream-encoder.ts @@ -1,7 +1,7 @@ -import { DEFAULT_ENCODER_OPTIONS } from "#src/common/constants"; -import Encoder from "#src/modules/encoder"; -import type Token from "#src/modules/token"; -import type { EncoderOptions } from "#src/types/options"; +import { DEFAULT_ENCODER_OPTIONS } from "#src/common/constants.ts"; +import Encoder from "#src/modules/encoder.ts"; +import type Token from "#src/modules/token.ts"; +import type { EncoderOptions } from "#src/types/options.ts"; type JSONTextEncoderStreamOptions = EncoderOptions & { writableStrategy?: QueuingStrategy; diff --git a/src/libs/stream-line.ts b/src/libs/stream-line.ts index e0c834a..801a5b4 100644 --- a/src/libs/stream-line.ts +++ b/src/libs/stream-line.ts @@ -1,7 +1,7 @@ -import { DEFAULT_DECODER_OPTIONS } from "#src/common/constants"; -import Decoder from "#src/modules/decoder"; -import type Value from "#src/modules/value"; -import type { DecoderOptions } from "#src/types/options"; +import { DEFAULT_DECODER_OPTIONS } from "#src/common/constants.ts"; +import Decoder from "#src/modules/decoder.ts"; +import type Value from "#src/modules/value.ts"; +import type { DecoderOptions } from "#src/types/options.ts"; type JSONTextLineStreamOptions = DecoderOptions & { writableStrategy?: QueuingStrategy; diff --git a/src/libs/stream-selector.ts b/src/libs/stream-selector.ts index c6967f4..6d68e2a 100644 --- a/src/libs/stream-selector.ts +++ b/src/libs/stream-selector.ts @@ -1,10 +1,10 @@ -import { DEFAULT_DECODER_OPTIONS, KIND, MAX_NESTING_DEPTH } from "#src/common/constants"; -import Decoder from "#src/modules/decoder"; -import type { Matcher } from "#src/modules/path"; -import Path from "#src/modules/path"; -import type Value from "#src/modules/value"; -import type { DecoderOptions } from "#src/types/options"; -import { encodeText } from "#src/utils/text"; +import { DEFAULT_DECODER_OPTIONS, KIND, MAX_NESTING_DEPTH } from "#src/common/constants.ts"; +import Decoder from "#src/modules/decoder.ts"; +import type { Matcher } from "#src/modules/path.ts"; +import Path from "#src/modules/path.ts"; +import type Value from "#src/modules/value.ts"; +import type { DecoderOptions } from "#src/types/options.ts"; +import { encodeText } from "#src/utils/text.ts"; type JSONTextSelectorStreamOptions = DecoderOptions & { writableStrategy?: QueuingStrategy; diff --git a/src/modules/automaton.ts b/src/modules/automaton.ts index cb2f291..e972f00 100644 --- a/src/modules/automaton.ts +++ b/src/modules/automaton.ts @@ -1,6 +1,6 @@ -import { MAX_NESTING_DEPTH } from "#src/common/constants"; -import Entry from "#src/modules/entry"; -import type { Kind } from "#src/types/kind"; +import { MAX_NESTING_DEPTH } from "#src/common/constants.ts"; +import Entry from "#src/modules/entry.ts"; +import type { Kind } from "#src/types/kind.ts"; class Automaton { #last: Entry; diff --git a/src/modules/decoder.ts b/src/modules/decoder.ts index 037cd07..3759df0 100644 --- a/src/modules/decoder.ts +++ b/src/modules/decoder.ts @@ -1,14 +1,14 @@ -import { ASCII, KIND } from "#src/common/constants"; -import { SyntacticError } from "#src/common/errors"; -import Cursor from "#src/modules/cursor"; -import type Pointer from "#src/modules/pointer"; -import State from "#src/modules/state"; -import Token from "#src/modules/token"; -import Value from "#src/modules/value"; -import type { Kind } from "#src/types/kind"; -import type { DecoderOptions } from "#src/types/options"; -import { normalize } from "#src/utils/kind"; -import { decodeText } from "#src/utils/text"; +import { ASCII, KIND } from "#src/common/constants.ts"; +import { SyntacticError } from "#src/common/errors.ts"; +import Cursor from "#src/modules/cursor.ts"; +import type Pointer from "#src/modules/pointer.ts"; +import State from "#src/modules/state.ts"; +import Token from "#src/modules/token.ts"; +import Value from "#src/modules/value.ts"; +import type { Kind } from "#src/types/kind.ts"; +import type { DecoderOptions } from "#src/types/options.ts"; +import { normalize } from "#src/utils/kind.ts"; +import { decodeText } from "#src/utils/text.ts"; import { consumeFalse, consumeNull, @@ -18,7 +18,7 @@ import { consumeString, consumeTrue, consumeWhitespace, -} from "#src/utils/wire"; +} from "#src/utils/wire.ts"; class Decoder { #cursor: Cursor; diff --git a/src/modules/encoder.ts b/src/modules/encoder.ts index 2431386..389c617 100644 --- a/src/modules/encoder.ts +++ b/src/modules/encoder.ts @@ -1,13 +1,13 @@ -import { ASCII, KIND, UNICODE } from "#src/common/constants"; -import { SyntacticError } from "#src/common/errors"; -import type Pointer from "#src/modules/pointer"; -import State from "#src/modules/state"; -import Tape from "#src/modules/tape"; -import Token from "#src/modules/token"; -import Value from "#src/modules/value"; -import type { Kind } from "#src/types/kind"; -import type { EncoderOptions } from "#src/types/options"; -import { decodeText, encodeText } from "#src/utils/text"; +import { ASCII, KIND, UNICODE } from "#src/common/constants.ts"; +import { SyntacticError } from "#src/common/errors.ts"; +import type Pointer from "#src/modules/pointer.ts"; +import State from "#src/modules/state.ts"; +import Tape from "#src/modules/tape.ts"; +import Token from "#src/modules/token.ts"; +import Value from "#src/modules/value.ts"; +import type { Kind } from "#src/types/kind.ts"; +import type { EncoderOptions } from "#src/types/options.ts"; +import { decodeText, encodeText } from "#src/utils/text.ts"; class Encoder { #tape: Tape; diff --git a/src/modules/entry.ts b/src/modules/entry.ts index 8d12bf2..7452533 100644 --- a/src/modules/entry.ts +++ b/src/modules/entry.ts @@ -1,5 +1,5 @@ -import { KIND } from "#src/common/constants"; -import type { Kind } from "#src/types/kind"; +import { KIND } from "#src/common/constants.ts"; +import type { Kind } from "#src/types/kind.ts"; class Entry { #type: "object" | "array"; diff --git a/src/modules/path.ts b/src/modules/path.ts index d7a3ad3..602581f 100644 --- a/src/modules/path.ts +++ b/src/modules/path.ts @@ -1,4 +1,4 @@ -import { ASCII, SEGMENT, SELECTOR } from "#src/common/constants"; +import { ASCII, SEGMENT, SELECTOR } from "#src/common/constants.ts"; import type { ArraySliceSelector, IndexSelector, @@ -6,9 +6,9 @@ import type { Segment, Selector, WildcardSelector, -} from "#src/types/path"; -import { decodeText } from "#src/utils/text"; -import { consumeNumber, consumeWhitespace } from "#src/utils/wire"; +} from "#src/types/path.ts"; +import { decodeText } from "#src/utils/text.ts"; +import { consumeNumber, consumeWhitespace } from "#src/utils/wire.ts"; /** * Supports a subset of JSON Path syntax and provides an NFA-based matcher. diff --git a/src/modules/state.ts b/src/modules/state.ts index cac49e0..e5ab82a 100644 --- a/src/modules/state.ts +++ b/src/modules/state.ts @@ -1,8 +1,8 @@ -import Automaton from "#src/modules/automaton"; -import Pointer from "#src/modules/pointer"; -import { ObjectNamespaceStack, ObjectNameStack } from "#src/modules/stack"; -import type { Kind } from "#src/types/kind"; -import type { BaseOptions } from "#src/types/options"; +import Automaton from "#src/modules/automaton.ts"; +import Pointer from "#src/modules/pointer.ts"; +import { ObjectNamespaceStack, ObjectNameStack } from "#src/modules/stack.ts"; +import type { Kind } from "#src/types/kind.ts"; +import type { BaseOptions } from "#src/types/options.ts"; class State { #automaton: Automaton; diff --git a/src/modules/token.ts b/src/modules/token.ts index 3c8d3ed..f6bb345 100644 --- a/src/modules/token.ts +++ b/src/modules/token.ts @@ -1,7 +1,7 @@ -import { KIND } from "#src/common/constants"; -import type { Kind } from "#src/types/kind"; -import { normalize } from "#src/utils/kind"; -import { decodeText, encodeText } from "#src/utils/text"; +import { KIND } from "#src/common/constants.ts"; +import type { Kind } from "#src/types/kind.ts"; +import { normalize } from "#src/utils/kind.ts"; +import { decodeText, encodeText } from "#src/utils/text.ts"; /** * Represents a single JSON token. diff --git a/src/modules/value.ts b/src/modules/value.ts index 8b5ceaf..c6772dd 100644 --- a/src/modules/value.ts +++ b/src/modules/value.ts @@ -1,10 +1,10 @@ -import { ASCII, DEFAULT_DECODER_OPTIONS, KIND } from "#src/common/constants"; -import Decoder from "#src/modules/decoder"; -import type Token from "#src/modules/token"; -import type { Kind } from "#src/types/kind"; -import { normalize } from "#src/utils/kind"; -import { decodeText, encodeText } from "#src/utils/text"; -import { compareUTF16, consumeWhitespace } from "#src/utils/wire"; +import { ASCII, DEFAULT_DECODER_OPTIONS, KIND } from "#src/common/constants.ts"; +import Decoder from "#src/modules/decoder.ts"; +import type Token from "#src/modules/token.ts"; +import type { Kind } from "#src/types/kind.ts"; +import { normalize } from "#src/utils/kind.ts"; +import { decodeText, encodeText } from "#src/utils/text.ts"; +import { compareUTF16, consumeWhitespace } from "#src/utils/wire.ts"; /** * Represents a complete JSON value. diff --git a/src/types/kind.ts b/src/types/kind.ts index ea61ada..9055ba8 100644 --- a/src/types/kind.ts +++ b/src/types/kind.ts @@ -1,3 +1,3 @@ -import type { KIND } from "#src/common/constants"; +import type { KIND } from "#src/common/constants.ts"; export type Kind = typeof KIND[keyof typeof KIND]; diff --git a/src/types/path.ts b/src/types/path.ts index 80fc017..0017e51 100644 --- a/src/types/path.ts +++ b/src/types/path.ts @@ -1,4 +1,4 @@ -import { IDENTIFIER, SEGMENT, SELECTOR } from "#src/common/constants"; +import { IDENTIFIER, SEGMENT, SELECTOR } from "#src/common/constants.ts"; export type NameSelector = { type: typeof SELECTOR.NAME; name: string }; diff --git a/src/utils/kind.ts b/src/utils/kind.ts index 7f0fedf..5a55c42 100644 --- a/src/utils/kind.ts +++ b/src/utils/kind.ts @@ -1,5 +1,5 @@ -import { ASCII, KIND } from "#src/common/constants"; -import type { Kind } from "#src/types/kind"; +import { ASCII, KIND } from "#src/common/constants.ts"; +import type { Kind } from "#src/types/kind.ts"; const NORM_KIND: Record = { [ASCII.LOWER_CASE_N]: KIND.NULL, diff --git a/src/utils/wire.ts b/src/utils/wire.ts index 1269522..6739bc3 100644 --- a/src/utils/wire.ts +++ b/src/utils/wire.ts @@ -1,5 +1,5 @@ -import { ASCII } from "#src/common/constants"; -import { decodeText } from "#src/utils/text"; +import { ASCII } from "#src/common/constants.ts"; +import { decodeText } from "#src/utils/text.ts"; /** * Compares two strings by UTF-16 code unit order, as required by RFC 8785 ยง3.2.3. diff --git a/tests/e2e/correctness.test.ts b/tests/e2e/correctness.test.ts index 1da1ec9..e5ba1bf 100644 --- a/tests/e2e/correctness.test.ts +++ b/tests/e2e/correctness.test.ts @@ -1,5 +1,5 @@ -import { KIND } from "#src/common/constants"; -import { JSONTextDecoderStream, JSONTextLineStream, Token } from "#src/index"; +import { KIND } from "#src/common/constants.ts"; +import { JSONTextDecoderStream, JSONTextLineStream, Token } from "#src/index.ts"; import { assert, assertEquals } from "#std/assert"; const GITHUB_TOKEN = Deno.env.get("GITHUB_TOKEN"); diff --git a/tests/e2e/query.test.ts b/tests/e2e/query.test.ts index 91d6be1..60a32ec 100644 --- a/tests/e2e/query.test.ts +++ b/tests/e2e/query.test.ts @@ -1,5 +1,5 @@ -import { KIND } from "#src/common/constants"; -import { JSONTextSelectorStream } from "#src/index"; +import { KIND } from "#src/common/constants.ts"; +import { JSONTextSelectorStream } from "#src/index.ts"; import { assert, assertEquals } from "#std/assert"; const GITHUB_TOKEN = Deno.env.get("GITHUB_TOKEN"); diff --git a/tests/e2e/round-trip.test.ts b/tests/e2e/round-trip.test.ts index 925a389..57a6122 100644 --- a/tests/e2e/round-trip.test.ts +++ b/tests/e2e/round-trip.test.ts @@ -1,5 +1,5 @@ -import { KIND } from "#src/common/constants"; -import { JSONTextSelectorStream } from "#src/index"; +import { KIND } from "#src/common/constants.ts"; +import { JSONTextSelectorStream } from "#src/index.ts"; import { assert, assertEquals } from "#std/assert"; const GITHUB_TOKEN = Deno.env.get("GITHUB_TOKEN"); diff --git a/tests/e2e/streaming.test.ts b/tests/e2e/streaming.test.ts index 5c31d91..18317b0 100644 --- a/tests/e2e/streaming.test.ts +++ b/tests/e2e/streaming.test.ts @@ -1,4 +1,4 @@ -import { JSONTextDecoderStream } from "#src/index"; +import { JSONTextDecoderStream } from "#src/index.ts"; import { assert } from "#std/assert"; const GITHUB_TOKEN = Deno.env.get("GITHUB_TOKEN"); diff --git a/tests/integration/decoder.test.ts b/tests/integration/decoder.test.ts index f8342e5..afd71e0 100644 --- a/tests/integration/decoder.test.ts +++ b/tests/integration/decoder.test.ts @@ -1,7 +1,7 @@ -import { KIND } from "#src/common/constants"; -import { SyntacticError } from "#src/common/errors"; -import { JSONTextDecoder } from "#src/index"; -import { encodeText } from "#src/utils/text"; +import { KIND } from "#src/common/constants.ts"; +import { SyntacticError } from "#src/common/errors.ts"; +import { JSONTextDecoder } from "#src/index.ts"; +import { encodeText } from "#src/utils/text.ts"; import { assertEquals, assertThrows } from "#std/assert"; Deno.test("[integration] JSONTextDecoder", async (test) => { diff --git a/tests/integration/encoder.test.ts b/tests/integration/encoder.test.ts index 554f7e3..5dad492 100644 --- a/tests/integration/encoder.test.ts +++ b/tests/integration/encoder.test.ts @@ -1,8 +1,8 @@ -import { SyntacticError } from "#src/common/errors"; -import { JSONTextEncoder } from "#src/index"; -import Token from "#src/modules/token"; -import Value from "#src/modules/value"; -import { decodeText, encodeText } from "#src/utils/text"; +import { SyntacticError } from "#src/common/errors.ts"; +import { JSONTextEncoder } from "#src/index.ts"; +import Token from "#src/modules/token.ts"; +import Value from "#src/modules/value.ts"; +import { decodeText, encodeText } from "#src/utils/text.ts"; import { assertEquals, assertThrows } from "#std/assert"; Deno.test("[integration] JSONTextEncoder", async (test) => { diff --git a/tests/integration/stream-decoder.test.ts b/tests/integration/stream-decoder.test.ts index e5df894..2d02068 100644 --- a/tests/integration/stream-decoder.test.ts +++ b/tests/integration/stream-decoder.test.ts @@ -1,6 +1,6 @@ -import { JSONTextDecoderStream } from "#src/index"; -import type Token from "#src/modules/token"; -import { encodeText } from "#src/utils/text"; +import { JSONTextDecoderStream } from "#src/index.ts"; +import type Token from "#src/modules/token.ts"; +import { encodeText } from "#src/utils/text.ts"; import { assertEquals, assertRejects } from "#std/assert"; Deno.test("[integration] JSONTextDecoderStream", async (test) => { diff --git a/tests/integration/stream-encoder.test.ts b/tests/integration/stream-encoder.test.ts index 4595670..684e617 100644 --- a/tests/integration/stream-encoder.test.ts +++ b/tests/integration/stream-encoder.test.ts @@ -1,6 +1,6 @@ -import { JSONTextEncoderStream } from "#src/index"; -import Token from "#src/modules/token"; -import { decodeText } from "#src/utils/text"; +import { JSONTextEncoderStream } from "#src/index.ts"; +import Token from "#src/modules/token.ts"; +import { decodeText } from "#src/utils/text.ts"; import { assertEquals, assertRejects } from "#std/assert"; Deno.test("[integration] JSONTextEncoderStream", async (test) => { diff --git a/tests/integration/stream-line.test.ts b/tests/integration/stream-line.test.ts index 0c92d25..b5955b4 100644 --- a/tests/integration/stream-line.test.ts +++ b/tests/integration/stream-line.test.ts @@ -1,5 +1,5 @@ -import { JSONTextLineStream } from "#src/index"; -import { encodeText } from "#src/utils/text"; +import { JSONTextLineStream } from "#src/index.ts"; +import { encodeText } from "#src/utils/text.ts"; import { assertEquals } from "#std/assert"; Deno.test("[integration] JSONTextLineStream", async (test) => { diff --git a/tests/path.test.ts b/tests/path.test.ts index c1964c4..9b55ade 100644 --- a/tests/path.test.ts +++ b/tests/path.test.ts @@ -1,5 +1,5 @@ -import Path from "#src/modules/path"; -import { encodeText } from "#src/utils/text"; +import Path from "#src/modules/path.ts"; +import { encodeText } from "#src/utils/text.ts"; import { assert, assertThrows } from "#std/assert"; Deno.test("[module] path", async (test) => { diff --git a/tests/state.test.ts b/tests/state.test.ts index a9a3819..faa0c5e 100644 --- a/tests/state.test.ts +++ b/tests/state.test.ts @@ -1,6 +1,6 @@ -import State from "#src/modules/state"; +import { KIND, MAX_NESTING_DEPTH } from "#src/common/constants.ts"; +import State from "#src/modules/state.ts"; import { assertEquals, assertExists, assertThrows } from "#std/assert"; -import { KIND, MAX_NESTING_DEPTH } from "../src/common/constants.ts"; Deno.test("[module] state", async (test) => { await test.step("[function] constructor", async (test) => { diff --git a/tests/token.test.ts b/tests/token.test.ts index 517b2f8..5278b84 100644 --- a/tests/token.test.ts +++ b/tests/token.test.ts @@ -1,6 +1,6 @@ -import { KIND } from "#src/common/constants"; -import Token from "#src/modules/token"; -import { encodeText as e } from "#src/utils/text"; +import { KIND } from "#src/common/constants.ts"; +import Token from "#src/modules/token.ts"; +import { encodeText as e } from "#src/utils/text.ts"; import { assertEquals, assertThrows } from "#std/assert"; Deno.test("[module] token", async (test) => { diff --git a/tests/value.test.ts b/tests/value.test.ts index 4023538..498459c 100644 --- a/tests/value.test.ts +++ b/tests/value.test.ts @@ -1,6 +1,6 @@ -import { KIND } from "#src/common/constants"; -import Value from "#src/modules/value"; -import { encodeText as e } from "#src/utils/text"; +import { KIND } from "#src/common/constants.ts"; +import Value from "#src/modules/value.ts"; +import { encodeText as e } from "#src/utils/text.ts"; import { assertEquals, assertFalse, assertThrows } from "#std/assert"; Deno.test("[module] value", async (test) => { diff --git a/tests/wire.test.ts b/tests/wire.test.ts index a529c74..e11f474 100644 --- a/tests/wire.test.ts +++ b/tests/wire.test.ts @@ -1,4 +1,4 @@ -import { encodeText as e } from "#src/utils/text"; +import { encodeText as e } from "#src/utils/text.ts"; import { compareUTF16, consumeFalse, @@ -9,7 +9,7 @@ import { consumeString, consumeTrue, consumeWhitespace, -} from "#src/utils/wire"; +} from "#src/utils/wire.ts"; import { assertEquals } from "#std/assert"; Deno.test("[utils] wire", async (test) => { diff --git a/tsconfig.build.json b/tsconfig.build.json deleted file mode 100644 index 4468d28..0000000 --- a/tsconfig.build.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "noEmit": false, - "declaration": true, - "emitDeclarationOnly": true, - "rootDir": "./src", - "declarationDir": "./dist", - "declarationMap": true - }, - "include": ["src"] -} diff --git a/tsconfig.json b/tsconfig.json index 32d96d6..37c2a57 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,34 +2,18 @@ "compilerOptions": { "target": "esnext", "module": "esnext", - "lib": [ - "ESNext", - "DOM" - ], - "types": [ - "node", - "vite/client" - ], - "skipLibCheck": true, + "lib": ["ESNext", "DOM"], + "paths": { "#src/*": ["./src/*"] }, "moduleResolution": "bundler", - "allowImportingTsExtensions": false, + "allowImportingTsExtensions": true, "verbatimModuleSyntax": true, "moduleDetection": "force", + "skipLibCheck": true, "noEmit": true, "noUnusedLocals": true, "noUnusedParameters": true, - "erasableSyntaxOnly": true, "noFallthroughCasesInSwitch": true, - "paths": { - "#src/*": ["./src/*"] - } + "erasableSyntaxOnly": true }, - "include": [ - "src", - "web", - "tests" - ], - "exclude": [ - "tests/" - ] + "include": ["src", "web"] } diff --git a/vite.config.ts b/vite.config.ts index ba569b7..4556148 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,13 +1,26 @@ +import { resolve } from "node:path"; +import dts from "unplugin-dts/vite"; import { defineConfig } from "vite"; -export default defineConfig({ - publicDir: false, - build: { - lib: { - entry: new URL("src/index.ts", import.meta.url).pathname, - fileName: "index", - formats: ["es"], - }, - sourcemap: "hidden", - }, +export default defineConfig(({ mode }) => { + if (mode === "lib") { + return { + publicDir: false, + plugins: [dts({ include: ["src"], outDirs: "dist", entryRoot: "src" })], + build: { + lib: { + entry: resolve("./src/index.ts"), + fileName: "index", + formats: ["es"], + }, + sourcemap: "hidden", + }, + }; + } + + return { + server: { + host: true + } + } });