diff --git a/package-lock.json b/package-lock.json index 4f6fb7f..174b9a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,10 +17,90 @@ "globals": "17.6.0", "prettier": "3.8.3", "rimraf": "6.1.3", + "tsdown": "0.22.0", "typescript": "5.9.3", "typescript-eslint": "8.59.1" } }, + "node_modules/@babel/generator": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0-rc.4.tgz", + "integrity": "sha512-YZ+FuIgkj7KrIb2a2X1XiY0QYgDxAbVbYP64SjwJzOK3euCsUerzenh2oqdsmKuPSlhzmFOOklnxzHAzXagvpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0-rc.4", + "@babel/types": "^8.0.0-rc.4", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", + "jsesc": "^3.0.2" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0-rc.4.tgz", + "integrity": "sha512-dluR3v287dp6YPF57kyKKrHPKffUeuxH1zQcF1WD30TeFzWXhDiVi1U6PkqaDB0++H1PeCwRhmYl4DvoerlPIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.0-rc.4.tgz", + "integrity": "sha512-HTD3bskipk5MSm08twTW6832jzIXUhxMddy4NPPzIMuyMEsrs0ZgwAaMj5ubB5+6hMlUjDu17vNconEmwsmpYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@babel/parser": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0-rc.4.tgz", + "integrity": "sha512-0S/1yefMa15N4i2v3t8Fw9pgMHhf2gF6Lc1UEXI96Ls6FNAjqvHHZouZ2ZS/deqLhbMFtmfVeFac6iTsvFbLwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^8.0.0-rc.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@babel/types": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0-rc.4.tgz", + "integrity": "sha512-bw30DV880P/VYtsjWWdoWmJpb9S2Vn1/PqayyccTELzRQ/HslIO7+BD9rNoZ4AAFOAjC1vrNeBCkAsyh6Ibfww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^8.0.0-rc.4", + "@babel/helper-validator-identifier": "^8.0.0-rc.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", @@ -220,6 +300,74 @@ "node": ">=18" } }, + "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/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", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.130.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.130.0.tgz", + "integrity": "sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, "node_modules/@pkgr/core": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", @@ -233,6 +381,294 @@ "url": "https://opencollective.com/pkgr" } }, + "node_modules/@quansync/fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@quansync/fs/-/fs-1.0.0.tgz", + "integrity": "sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "quansync": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.1.tgz", + "integrity": "sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.1.tgz", + "integrity": "sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.1.tgz", + "integrity": "sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.1.tgz", + "integrity": "sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.1.tgz", + "integrity": "sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.1.tgz", + "integrity": "sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.1.tgz", + "integrity": "sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.1.tgz", + "integrity": "sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.1.tgz", + "integrity": "sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.1.tgz", + "integrity": "sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.1.tgz", + "integrity": "sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.1.tgz", + "integrity": "sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.1.tgz", + "integrity": "sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.1.tgz", + "integrity": "sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "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/@tybys/wasm-util": { + "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, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/esrecurse": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", @@ -247,6 +683,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -309,6 +752,7 @@ "integrity": "sha512-HDQH9O/47Dxi1ceDhBXdaldtf/WV9yRYMjbjCuNk3qnaTD564qwv61Y7+gTxwxRKzSrgO5uhtw584igXVuuZkA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.59.1", "@typescript-eslint/types": "8.59.1", @@ -500,6 +944,7 @@ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -534,6 +979,54 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansis": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.3.0.tgz", + "integrity": "sha512-44mvgtPvohuU/70DdY5Oz2AIrLJ9k6/5x4KmoSvPwO+5Moijo0+N9D0fKbbYZQWP1hNm5CpOf+E01jhxG/r8xg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/ast-kit": { + "version": "3.0.0-beta.1", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-3.0.0-beta.1.tgz", + "integrity": "sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^8.0.0-beta.4", + "estree-walker": "^3.0.3", + "pathe": "^2.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/birpc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-4.0.0.tgz", + "integrity": "sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/cac": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cac/-/cac-7.0.0.tgz", + "integrity": "sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.19.0" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -572,6 +1065,44 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dts-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dts-resolver/-/dts-resolver-3.0.0.tgz", + "integrity": "sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "oxc-resolver": ">=11.0.0" + }, + "peerDependenciesMeta": { + "oxc-resolver": { + "optional": true + } + } + }, + "node_modules/empathic": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.1.tgz", + "integrity": "sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -590,6 +1121,7 @@ "integrity": "sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.2", @@ -646,6 +1178,7 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -773,6 +1306,16 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -874,6 +1417,22 @@ "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true }, + "node_modules/get-tsconfig": { + "version": "5.0.0-beta.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.5.tgz", + "integrity": "sha512-/6gFNr0N04nob252sTQxyFLi3eKFRqIg1I87YcqAMT1i6SQrSF6KujUEQrtrjMV0H/eejTCltLdDSTEMzHbnsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "engines": { + "node": ">=20.20.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "13.0.3", "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.3.tgz", @@ -917,6 +1476,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/hookable": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.1.tgz", + "integrity": "sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==", + "dev": true, + "license": "MIT" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -927,6 +1493,19 @@ "node": ">= 4" } }, + "node_modules/import-without-cache": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/import-without-cache/-/import-without-cache-0.4.0.tgz", + "integrity": "sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^22.18.0 || >=24.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -979,6 +1558,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -1109,6 +1701,17 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, + "node_modules/obug": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", + "integrity": "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT" + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -1198,6 +1801,13 @@ "url": "https://github.com/sponsors/isaacs" } }, + "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/picomatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", @@ -1226,6 +1836,7 @@ "integrity": "sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -1259,6 +1870,33 @@ "node": ">=6" } }, + "node_modules/quansync": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-1.0.0.tgz", + "integrity": "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/rimraf": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.3.tgz", @@ -1279,6 +1917,41 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rolldown": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.1.tgz", + "integrity": "sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@oxc-project/types": "=0.130.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.1", + "@rolldown/binding-darwin-arm64": "1.0.1", + "@rolldown/binding-darwin-x64": "1.0.1", + "@rolldown/binding-freebsd-x64": "1.0.1", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.1", + "@rolldown/binding-linux-arm64-gnu": "1.0.1", + "@rolldown/binding-linux-arm64-musl": "1.0.1", + "@rolldown/binding-linux-ppc64-gnu": "1.0.1", + "@rolldown/binding-linux-s390x-gnu": "1.0.1", + "@rolldown/binding-linux-x64-gnu": "1.0.1", + "@rolldown/binding-linux-x64-musl": "1.0.1", + "@rolldown/binding-openharmony-arm64": "1.0.1", + "@rolldown/binding-wasm32-wasi": "1.0.1", + "@rolldown/binding-win32-arm64-msvc": "1.0.1", + "@rolldown/binding-win32-x64-msvc": "1.0.1" + } + }, "node_modules/semver": { "version": "7.7.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", @@ -1329,6 +2002,16 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tinyexec": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.1.2.tgz", + "integrity": "sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/tinyglobby": { "version": "0.2.16", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", @@ -1346,6 +2029,16 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/ts-api-utils": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", @@ -1359,6 +2052,131 @@ "typescript": ">=4.8.4" } }, + "node_modules/tsdown": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/tsdown/-/tsdown-0.22.0.tgz", + "integrity": "sha512-FgW0hHb27nGQA/+F3d5+U9wKXkfilk9DVkc5+7x/ZqF03g+Hoz/eeApT32jqxATt9eRoR+1jxk7MUMON+O4CXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansis": "^4.2.0", + "cac": "^7.0.0", + "defu": "^6.1.7", + "empathic": "^2.0.0", + "hookable": "^6.1.1", + "import-without-cache": "^0.4.0", + "obug": "^2.1.1", + "picomatch": "^4.0.4", + "rolldown": "^1.0.0", + "rolldown-plugin-dts": "^0.25.0", + "semver": "^7.7.4", + "tinyexec": "^1.1.2", + "tinyglobby": "^0.2.16", + "tree-kill": "^1.2.2", + "unconfig-core": "^7.5.0" + }, + "bin": { + "tsdown": "dist/run.mjs" + }, + "engines": { + "node": "^22.18.0 || >=24.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@arethetypeswrong/core": "^0.18.1", + "@tsdown/css": "0.22.0", + "@tsdown/exe": "0.22.0", + "@vitejs/devtools": "*", + "publint": "^0.3.8", + "tsx": "*", + "typescript": "^5.0.0 || ^6.0.0", + "unplugin-unused": "^0.5.0", + "unrun": "*" + }, + "peerDependenciesMeta": { + "@arethetypeswrong/core": { + "optional": true + }, + "@tsdown/css": { + "optional": true + }, + "@tsdown/exe": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "publint": { + "optional": true + }, + "tsx": { + "optional": true + }, + "typescript": { + "optional": true + }, + "unplugin-unused": { + "optional": true + }, + "unrun": { + "optional": true + } + } + }, + "node_modules/tsdown/node_modules/rolldown-plugin-dts": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/rolldown-plugin-dts/-/rolldown-plugin-dts-0.25.0.tgz", + "integrity": "sha512-GE3uDZgUuA9l6g+1u928TRmadd5IVhaWiwpWast2kCyLv9tYJJCC6E5HHkV0HGmwC5ZL73xh12/PRZI+KZ2vdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "8.0.0-rc.4", + "@babel/helper-validator-identifier": "8.0.0-rc.4", + "@babel/parser": "8.0.0-rc.4", + "ast-kit": "^3.0.0-beta.1", + "birpc": "^4.0.0", + "dts-resolver": "^3.0.0", + "get-tsconfig": "5.0.0-beta.5", + "obug": "^2.1.1" + }, + "engines": { + "node": "^22.18.0 || >=24.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@ts-macro/tsc": "^0.3.6", + "@typescript/native-preview": ">=7.0.0-dev.20260325.1", + "rolldown": "^1.0.0", + "typescript": "^6.0.0", + "vue-tsc": "~3.2.0" + }, + "peerDependenciesMeta": { + "@ts-macro/tsc": { + "optional": true + }, + "@typescript/native-preview": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -1377,6 +2195,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -1409,6 +2228,20 @@ "typescript": ">=4.8.4 <6.1.0" } }, + "node_modules/unconfig-core": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/unconfig-core/-/unconfig-core-7.5.0.tgz", + "integrity": "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@quansync/fs": "^1.0.0", + "quansync": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/undici-types": { "version": "7.14.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz", diff --git a/package.json b/package.json index 2caf78c..de8051c 100644 --- a/package.json +++ b/package.json @@ -2,22 +2,19 @@ "name": "@jwetzell/posistagenet", "version": "2.1.1", "description": "", - "main": "./dist/cjs/index.js", - "module": "./dist/esm/index.js", - "types": "./dist/types/index.d.ts", + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.cts", "exports": { ".": { - "import": "./dist/esm/index.js", - "require": "./dist/cjs/index.js", - "types": "./dist/types/index.d.ts" - } + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + }, + "./package.json": "./package.json" }, "scripts": { "prebuild": "rimraf dist", - "build": "npm run build:cjs && npm run build:esm && npm run build:types", - "build:cjs": "tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json", - "build:esm": "tsc -p tsconfig.esm.json && echo '{\"type\": \"module\"}' > dist/esm/package.json", - "build:types": "tsc -p tsconfig.types.json", + "build": "tsdown", "example:client": "node examples/psn_client.js", "example:server": "node examples/psn_server.js", "prepublishOnly": "npm run build", @@ -46,6 +43,7 @@ "globals": "17.6.0", "prettier": "3.8.3", "rimraf": "6.1.3", + "tsdown": "0.22.0", "typescript": "5.9.3", "typescript-eslint": "8.59.1" } diff --git a/src/decoder.ts b/src/decoder.ts index f4b0e47..24bd59f 100644 --- a/src/decoder.ts +++ b/src/decoder.ts @@ -1,5 +1,11 @@ import { Decoders } from './index.js'; -import { DataPacketChunk, InfoPacketChunk, Tracker, TrackerFromData, TrackerFromInfo } from './models/index.js'; +import { + type DataPacketChunk, + type InfoPacketChunk, + Tracker, + TrackerFromData, + TrackerFromInfo, +} from './models/index.js'; export class Decoder { infoPacketFrames: { [key: number]: InfoPacketChunk[] } = {}; diff --git a/src/decoders/chunk.ts b/src/decoders/chunk.ts index b9e3e38..5dbb371 100644 --- a/src/decoders/chunk.ts +++ b/src/decoders/chunk.ts @@ -1,4 +1,4 @@ -import { Chunk } from '../models/chunk.js'; +import type { Chunk } from '../models/chunk.js'; export default (buffer: Uint8Array): Chunk => { if (buffer.length < 4) { diff --git a/src/decoders/data/data-packet-chunk.ts b/src/decoders/data/data-packet-chunk.ts index 3d4626e..3310172 100644 --- a/src/decoders/data/data-packet-chunk.ts +++ b/src/decoders/data/data-packet-chunk.ts @@ -1,5 +1,5 @@ import { Constants } from '../../constants.js'; -import { DataPacketChunk, DataPacketChunkData } from '../../models/data/data-packet-chunk.js'; +import type { DataPacketChunk, DataPacketChunkData } from '../../models/data/data-packet-chunk.js'; import { Decoders } from '../index.js'; export default (buffer: Uint8Array): DataPacketChunk => { diff --git a/src/decoders/data/data-tracker-chunk.ts b/src/decoders/data/data-tracker-chunk.ts index a4b90a8..6b0b478 100644 --- a/src/decoders/data/data-tracker-chunk.ts +++ b/src/decoders/data/data-tracker-chunk.ts @@ -1,5 +1,5 @@ import { Constants } from '../../constants.js'; -import { DataTrackerChunk, DataTrackerChunkData } from '../../models/data/data-tracker-chunk.js'; +import type { DataTrackerChunk, DataTrackerChunkData } from '../../models/data/data-tracker-chunk.js'; import { Decoders } from '../index.js'; export default (buffer: Uint8Array): DataTrackerChunk => { diff --git a/src/decoders/data/data-tracker-list-chunk.ts b/src/decoders/data/data-tracker-list-chunk.ts index ca2efb7..2958135 100644 --- a/src/decoders/data/data-tracker-list-chunk.ts +++ b/src/decoders/data/data-tracker-list-chunk.ts @@ -1,6 +1,6 @@ import { Constants } from '../../constants.js'; -import { DataTrackerListChunk, DataTrackerListChunkData } from '../../models/data/data-tracker-list-chunk.js'; -import { DataTrackerChunk } from '../../models/index.js'; +import type { DataTrackerListChunk, DataTrackerListChunkData } from '../../models/data/data-tracker-list-chunk.js'; +import type { DataTrackerChunk } from '../../models/index.js'; import { Decoders } from '../index.js'; export default (buffer: Uint8Array): DataTrackerListChunk => { diff --git a/src/decoders/data/data-tracker-status-chunk.ts b/src/decoders/data/data-tracker-status-chunk.ts index 5f32841..666430d 100644 --- a/src/decoders/data/data-tracker-status-chunk.ts +++ b/src/decoders/data/data-tracker-status-chunk.ts @@ -1,4 +1,7 @@ -import { DataTrackerStatusChunk, DataTrackerStatusChunkData } from '../../models/data/data-tracker-status-chunk.js'; +import type { + DataTrackerStatusChunk, + DataTrackerStatusChunkData, +} from '../../models/data/data-tracker-status-chunk.js'; import { Decoders } from '../index.js'; export default (buffer: Uint8Array): DataTrackerStatusChunk => { diff --git a/src/decoders/data/data-tracker-timestamp-chunk.ts b/src/decoders/data/data-tracker-timestamp-chunk.ts index 9cade29..f9cc3f6 100644 --- a/src/decoders/data/data-tracker-timestamp-chunk.ts +++ b/src/decoders/data/data-tracker-timestamp-chunk.ts @@ -1,4 +1,4 @@ -import { +import type { DataTrackerTimestampChunk, DataTrackerTimestampChunkData, } from '../../models/data/data-tracker-timestamp-chunk.js'; diff --git a/src/decoders/data/data-tracker-xyz-chunk.ts b/src/decoders/data/data-tracker-xyz-chunk.ts index e79f5ed..55b0e0d 100644 --- a/src/decoders/data/data-tracker-xyz-chunk.ts +++ b/src/decoders/data/data-tracker-xyz-chunk.ts @@ -1,4 +1,4 @@ -import { DataTrackerXYZChunk, DataTrackerXYZChunkData } from '../../models/data/data-tracker-xyz-chunk.js'; +import type { DataTrackerXYZChunk, DataTrackerXYZChunkData } from '../../models/data/data-tracker-xyz-chunk.js'; import { Decoders } from '../index.js'; export default (buffer: Uint8Array): DataTrackerXYZChunk => { diff --git a/src/decoders/info/info-packet-chunk.ts b/src/decoders/info/info-packet-chunk.ts index 81968a7..3c28dfc 100644 --- a/src/decoders/info/info-packet-chunk.ts +++ b/src/decoders/info/info-packet-chunk.ts @@ -1,5 +1,5 @@ import { Constants } from '../../constants.js'; -import { InfoPacketChunk, InfoPacketChunkData } from '../../models/info/info-packet-chunk.js'; +import type { InfoPacketChunk, InfoPacketChunkData } from '../../models/info/info-packet-chunk.js'; import { Decoders } from '../index.js'; export default (buffer: Uint8Array): InfoPacketChunk => { diff --git a/src/decoders/info/info-system-name-chunk.ts b/src/decoders/info/info-system-name-chunk.ts index 480520c..29a0675 100644 --- a/src/decoders/info/info-system-name-chunk.ts +++ b/src/decoders/info/info-system-name-chunk.ts @@ -1,4 +1,4 @@ -import { InfoSystemNameChunk, InfoSystemNameChunkData } from '../../models/info/info-system-name-chunk.js'; +import type { InfoSystemNameChunk, InfoSystemNameChunkData } from '../../models/info/info-system-name-chunk.js'; import { Decoders } from '../index.js'; const nameDecoder = new TextDecoder(); diff --git a/src/decoders/info/info-tracker-chunk.ts b/src/decoders/info/info-tracker-chunk.ts index 21376eb..022f423 100644 --- a/src/decoders/info/info-tracker-chunk.ts +++ b/src/decoders/info/info-tracker-chunk.ts @@ -1,5 +1,5 @@ import { Constants } from '../../constants.js'; -import { InfoTrackerChunk, InfoTrackerChunkData } from '../../models/info/info-tracker-chunk.js'; +import type { InfoTrackerChunk, InfoTrackerChunkData } from '../../models/info/info-tracker-chunk.js'; import { Decoders } from '../index.js'; export default (buffer: Uint8Array): InfoTrackerChunk => { diff --git a/src/decoders/info/info-tracker-list-chunk.ts b/src/decoders/info/info-tracker-list-chunk.ts index 014ded0..80d9594 100644 --- a/src/decoders/info/info-tracker-list-chunk.ts +++ b/src/decoders/info/info-tracker-list-chunk.ts @@ -1,6 +1,6 @@ import { Constants } from '../../constants.js'; -import { InfoTrackerChunk } from '../../models/info/info-tracker-chunk.js'; -import { InfoTrackerListChunk, InfoTrackerListChunkData } from '../../models/info/info-tracker-list-chunk.js'; +import type { InfoTrackerChunk } from '../../models/info/info-tracker-chunk.js'; +import type { InfoTrackerListChunk, InfoTrackerListChunkData } from '../../models/info/info-tracker-list-chunk.js'; import { Decoders } from '../index.js'; export default (buffer: Uint8Array): InfoTrackerListChunk => { diff --git a/src/decoders/info/info-tracker-name-chunk.ts b/src/decoders/info/info-tracker-name-chunk.ts index 33d0ad0..1e93e16 100644 --- a/src/decoders/info/info-tracker-name-chunk.ts +++ b/src/decoders/info/info-tracker-name-chunk.ts @@ -1,4 +1,4 @@ -import { InfoTrackerNameChunk, InfoTrackerNameChunkData } from '../../models/info/info-tracker-name-chunk.js'; +import type { InfoTrackerNameChunk, InfoTrackerNameChunkData } from '../../models/info/info-tracker-name-chunk.js'; import { Decoders } from '../index.js'; const nameDecoder = new TextDecoder(); diff --git a/src/decoders/packet-header-chunk.ts b/src/decoders/packet-header-chunk.ts index 19e2a11..c083921 100644 --- a/src/decoders/packet-header-chunk.ts +++ b/src/decoders/packet-header-chunk.ts @@ -1,4 +1,4 @@ -import { PacketHeaderChunk, PacketHeaderChunkData } from '../models/packet-header-chunk.js'; +import type { PacketHeaderChunk, PacketHeaderChunkData } from '../models/packet-header-chunk.js'; import { Decoders } from './index.js'; export default (buffer: Uint8Array): PacketHeaderChunk => { diff --git a/src/models/data/data-packet-chunk.ts b/src/models/data/data-packet-chunk.ts index 742a9cb..c4430ae 100644 --- a/src/models/data/data-packet-chunk.ts +++ b/src/models/data/data-packet-chunk.ts @@ -1,6 +1,6 @@ -import { Chunk } from '../chunk.js'; -import { PacketHeaderChunk } from '../packet-header-chunk.js'; -import { DataTrackerListChunk } from './data-tracker-list-chunk.js'; +import type { Chunk } from '../chunk.js'; +import type { PacketHeaderChunk } from '../packet-header-chunk.js'; +import type { DataTrackerListChunk } from './data-tracker-list-chunk.js'; export interface DataPacketChunkData { packetHeader?: PacketHeaderChunk; diff --git a/src/models/data/data-tracker-chunk.ts b/src/models/data/data-tracker-chunk.ts index 9c1cebf..090e00b 100644 --- a/src/models/data/data-tracker-chunk.ts +++ b/src/models/data/data-tracker-chunk.ts @@ -1,7 +1,7 @@ -import { Chunk } from '../chunk.js'; -import { DataTrackerStatusChunk } from './data-tracker-status-chunk.js'; -import { DataTrackerTimestampChunk } from './data-tracker-timestamp-chunk.js'; -import { DataTrackerXYZChunk } from './data-tracker-xyz-chunk.js'; +import type { Chunk } from '../chunk.js'; +import type { DataTrackerStatusChunk } from './data-tracker-status-chunk.js'; +import type { DataTrackerTimestampChunk } from './data-tracker-timestamp-chunk.js'; +import type { DataTrackerXYZChunk } from './data-tracker-xyz-chunk.js'; export interface DataTrackerChunkData { pos?: DataTrackerXYZChunk; diff --git a/src/models/data/data-tracker-list-chunk.ts b/src/models/data/data-tracker-list-chunk.ts index e60888a..4bd8f52 100644 --- a/src/models/data/data-tracker-list-chunk.ts +++ b/src/models/data/data-tracker-list-chunk.ts @@ -1,5 +1,5 @@ -import { Chunk } from '../chunk.js'; -import { DataTrackerChunk } from './data-tracker-chunk.js'; +import type { Chunk } from '../chunk.js'; +import type { DataTrackerChunk } from './data-tracker-chunk.js'; export interface DataTrackerListChunkData { trackers: DataTrackerChunk[]; diff --git a/src/models/data/data-tracker-status-chunk.ts b/src/models/data/data-tracker-status-chunk.ts index 9f42847..dd3d0e8 100644 --- a/src/models/data/data-tracker-status-chunk.ts +++ b/src/models/data/data-tracker-status-chunk.ts @@ -1,4 +1,4 @@ -import { Chunk } from '../chunk.js'; +import type { Chunk } from '../chunk.js'; export interface DataTrackerStatusChunkData { validity: number; diff --git a/src/models/data/data-tracker-timestamp-chunk.ts b/src/models/data/data-tracker-timestamp-chunk.ts index 202796a..459740f 100644 --- a/src/models/data/data-tracker-timestamp-chunk.ts +++ b/src/models/data/data-tracker-timestamp-chunk.ts @@ -1,4 +1,4 @@ -import { Chunk } from '../chunk.js'; +import type { Chunk } from '../chunk.js'; export interface DataTrackerTimestampChunkData { timestamp: bigint; diff --git a/src/models/data/data-tracker-xyz-chunk.ts b/src/models/data/data-tracker-xyz-chunk.ts index 93439e7..21df4a1 100644 --- a/src/models/data/data-tracker-xyz-chunk.ts +++ b/src/models/data/data-tracker-xyz-chunk.ts @@ -1,4 +1,4 @@ -import { Chunk } from '../chunk.js'; +import type { Chunk } from '../chunk.js'; export interface DataTrackerXYZChunkData { x: number; diff --git a/src/models/info/info-packet-chunk.ts b/src/models/info/info-packet-chunk.ts index 5c1bea2..0b15fd4 100644 --- a/src/models/info/info-packet-chunk.ts +++ b/src/models/info/info-packet-chunk.ts @@ -1,7 +1,7 @@ -import { Chunk } from '../chunk.js'; -import { PacketHeaderChunk } from '../packet-header-chunk.js'; -import { InfoSystemNameChunk } from './info-system-name-chunk.js'; -import { InfoTrackerListChunk } from './info-tracker-list-chunk.js'; +import type { Chunk } from '../chunk.js'; +import type { PacketHeaderChunk } from '../packet-header-chunk.js'; +import type { InfoSystemNameChunk } from './info-system-name-chunk.js'; +import type { InfoTrackerListChunk } from './info-tracker-list-chunk.js'; export interface InfoPacketChunkData { packetHeader?: PacketHeaderChunk; diff --git a/src/models/info/info-system-name-chunk.ts b/src/models/info/info-system-name-chunk.ts index 30383ac..62383e3 100644 --- a/src/models/info/info-system-name-chunk.ts +++ b/src/models/info/info-system-name-chunk.ts @@ -1,4 +1,4 @@ -import { Chunk } from '../chunk.js'; +import type { Chunk } from '../chunk.js'; export interface InfoSystemNameChunkData { systemName: string; diff --git a/src/models/info/info-tracker-chunk.ts b/src/models/info/info-tracker-chunk.ts index ca8681f..9da27ec 100644 --- a/src/models/info/info-tracker-chunk.ts +++ b/src/models/info/info-tracker-chunk.ts @@ -1,5 +1,5 @@ -import { Chunk } from '../chunk.js'; -import { InfoTrackerNameChunk } from './info-tracker-name-chunk.js'; +import type { Chunk } from '../chunk.js'; +import type { InfoTrackerNameChunk } from './info-tracker-name-chunk.js'; export interface InfoTrackerChunkData { trackerName: InfoTrackerNameChunk; diff --git a/src/models/info/info-tracker-list-chunk.ts b/src/models/info/info-tracker-list-chunk.ts index b0117d4..66428c7 100644 --- a/src/models/info/info-tracker-list-chunk.ts +++ b/src/models/info/info-tracker-list-chunk.ts @@ -1,5 +1,5 @@ -import { Chunk } from '../chunk.js'; -import { InfoTrackerChunk } from './info-tracker-chunk.js'; +import type { Chunk } from '../chunk.js'; +import type { InfoTrackerChunk } from './info-tracker-chunk.js'; export interface InfoTrackerListChunkData { trackers: InfoTrackerChunk[]; diff --git a/src/models/info/info-tracker-name-chunk.ts b/src/models/info/info-tracker-name-chunk.ts index 9e9255a..ea527b2 100644 --- a/src/models/info/info-tracker-name-chunk.ts +++ b/src/models/info/info-tracker-name-chunk.ts @@ -1,4 +1,4 @@ -import { Chunk } from '../chunk.js'; +import type { Chunk } from '../chunk.js'; export interface InfoTrackerNameChunkData { trackerName: string; diff --git a/src/models/packet-header-chunk.ts b/src/models/packet-header-chunk.ts index 047e0cf..96b4154 100644 --- a/src/models/packet-header-chunk.ts +++ b/src/models/packet-header-chunk.ts @@ -1,4 +1,4 @@ -import { Chunk } from './chunk.js'; +import type { Chunk } from './chunk.js'; export interface PacketHeaderChunkData { packetTimestamp: bigint; diff --git a/src/models/tracker.ts b/src/models/tracker.ts index d7679a2..edc4392 100644 --- a/src/models/tracker.ts +++ b/src/models/tracker.ts @@ -8,8 +8,8 @@ import dataTrackerTimestampChunk from '../encoders/data/data-tracker-timestamp-c import dataTrackerTrgtposChunk from '../encoders/data/data-tracker-trgtpos-chunk.js'; import infoTrackerChunk from '../encoders/info/info-tracker-chunk.js'; import infoTrackerNameChunk from '../encoders/info/info-tracker-name-chunk.js'; -import { DataTrackerChunk } from './data/data-tracker-chunk.js'; -import { InfoTrackerChunk } from './info/info-tracker-chunk.js'; +import type { DataTrackerChunk } from './data/data-tracker-chunk.js'; +import type { InfoTrackerChunk } from './info/info-tracker-chunk.js'; export type XYZData = { x: number; diff --git a/tests/decode.test.js b/tests/decode.test.js index 03a2aed..8fb100c 100644 --- a/tests/decode.test.js +++ b/tests/decode.test.js @@ -1,6 +1,6 @@ const { deepEqual, throws } = require('assert'); const { describe, it } = require('node:test'); -const { Decoders } = require('../dist/cjs/decoders'); +const { Decoders } = require('../'); const goodTests = [ { diff --git a/tests/encode.test.js b/tests/encode.test.js index 6c44db1..33dd19e 100644 --- a/tests/encode.test.js +++ b/tests/encode.test.js @@ -1,6 +1,6 @@ const { deepEqual, throws, equal } = require('assert'); const { describe, it } = require('node:test'); -const { Encoders } = require('../dist/cjs/encoders'); +const { Encoders } = require('../'); const goodTests = [ { diff --git a/tsconfig.cjs.json b/tsconfig.cjs.json deleted file mode 100644 index 265ef58..0000000 --- a/tsconfig.cjs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "module": "CommonJS", - "declaration": false, - "outDir": "./dist/cjs" - } -} diff --git a/tsconfig.esm.json b/tsconfig.esm.json deleted file mode 100644 index 547b0be..0000000 --- a/tsconfig.esm.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "module": "ESNext", - "declaration": false, - "outDir": "./dist/esm" - } -} diff --git a/tsconfig.json b/tsconfig.json index a5d4c1d..77b838a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,12 +1,20 @@ { "compilerOptions": { - "moduleResolution": "Node", - "lib": ["ESNext"], - "target": "ESNext", + "target": "esnext", + "lib": ["es2023"], + "moduleDetection": "force", + "module": "preserve", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "types": ["node"], + "strict": true, + "noUnusedLocals": true, + "declaration": true, + "emitDeclarationOnly": true, "esModuleInterop": true, "isolatedModules": true, - "rootDir": "src/", - "strict": true + "verbatimModuleSyntax": true, + "skipLibCheck": true }, - "include": ["src/"] + "include": ["src"] } diff --git a/tsconfig.types.json b/tsconfig.types.json deleted file mode 100644 index 2497e33..0000000 --- a/tsconfig.types.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "emitDeclarationOnly": true, - "declaration": true, - "outDir": "./dist/types" - } -} diff --git a/tsdown.config.ts b/tsdown.config.ts new file mode 100644 index 0000000..82aa151 --- /dev/null +++ b/tsdown.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'tsdown' + +export default defineConfig({ + entry: 'src/index.ts', + exports: true, + format: { + esm: {}, + cjs: {}, + }, +}) \ No newline at end of file