From ce64de5b3d1ea14ab9cad0587a7466630ed70725 Mon Sep 17 00:00:00 2001 From: YHH <359807859@qq.com> Date: Mon, 9 Jun 2025 10:42:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=B8=BAes2020=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E9=80=82=E5=BA=94Cocos/laya=E5=BC=95=E6=93=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/package-lock.json | 1108 +++++++++++++++++++++++++++++--- source/package.json | 23 +- source/scripts/build-single.js | 279 ++++++++ source/scripts/bundle.js | 210 ++++++ source/scripts/compress.js | 165 +++++ source/src/Utils/index.ts | 8 +- source/src/index.ts | 19 +- source/tsconfig.json | 7 +- 8 files changed, 1706 insertions(+), 113 deletions(-) create mode 100644 source/scripts/build-single.js create mode 100644 source/scripts/bundle.js create mode 100644 source/scripts/compress.js diff --git a/source/package-lock.json b/source/package-lock.json index f175daed..ad30a72b 100644 --- a/source/package-lock.json +++ b/source/package-lock.json @@ -1,20 +1,422 @@ { "name": "@esengine/ecs-framework", - "version": "2.1.0", + "version": "2.1.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@esengine/ecs-framework", - "version": "2.1.0", + "version": "2.1.6", "license": "MIT", "devDependencies": { "@types/node": "^20.19.0", - "assemblyscript": "^0.27.0", + "archiver": "^7.0.1", + "esbuild": "^0.25.5", "rimraf": "^5.0.0", + "terser": "^5.41.0", "typescript": "^5.8.3" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz", + "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz", + "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz", + "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz", + "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz", + "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz", + "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz", + "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz", + "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz", + "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz", + "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz", + "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz", + "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz", + "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz", + "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz", + "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz", + "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz", + "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz", + "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz", + "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz", + "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz", + "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz", + "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz", + "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz", + "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz", + "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -118,6 +520,64 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -139,6 +599,30 @@ "undici-types": "~6.21.0" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dev": true, + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -165,47 +649,135 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/assemblyscript": { - "version": "0.27.37", - "resolved": "https://registry.npmjs.org/assemblyscript/-/assemblyscript-0.27.37.tgz", - "integrity": "sha512-YtY5k3PiV3SyUQ6gRlR2OCn8dcVRwkpiG/k2T5buoL2ymH/Z/YbaYWbk/f9mO2HTgEtGWjPiAQrIuvA7G/63Gg==", + "node_modules/archiver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-7.0.1.tgz", + "integrity": "sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "binaryen": "116.0.0-nightly.20240114", - "long": "^5.2.4" - }, - "bin": { - "asc": "bin/asc.js", - "asinit": "bin/asinit.js" + "archiver-utils": "^5.0.2", + "async": "^3.2.4", + "buffer-crc32": "^1.0.0", + "readable-stream": "^4.0.0", + "readdir-glob": "^1.1.2", + "tar-stream": "^3.0.0", + "zip-stream": "^6.0.1" }, "engines": { - "node": ">=18", - "npm": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/assemblyscript" + "node": ">= 14" } }, + "node_modules/archiver-utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-5.0.2.tgz", + "integrity": "sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==", + "dev": true, + "dependencies": { + "glob": "^10.0.0", + "graceful-fs": "^4.2.0", + "is-stream": "^2.0.1", + "lazystream": "^1.0.0", + "lodash": "^4.17.15", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true + }, + "node_modules/b4a": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", + "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==", + "dev": true + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" + "dev": true }, - "node_modules/binaryen": { - "version": "116.0.0-nightly.20240114", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20240114.tgz", - "integrity": "sha512-0GZrojJnuhoe+hiwji7QFaL3tBlJoA+KFUN7ouYSDGZLSo9CKM8swQX8n/UcbR0d1VuZKU+nhogNzv423JEu5A==", + "node_modules/bare-events": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.4.tgz", + "integrity": "sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==", "dev": true, - "license": "Apache-2.0", - "bin": { - "wasm-opt": "bin/wasm-opt", - "wasm2js": "bin/wasm2js" + "optional": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -226,6 +798,59 @@ "dev": true, "license": "MIT" }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/compress-commons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz", + "integrity": "sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "crc32-stream": "^6.0.0", + "is-stream": "^2.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "dev": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-6.0.0.tgz", + "integrity": "sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==", + "dev": true, + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -271,6 +896,70 @@ "dev": true, "license": "MIT" }, + "node_modules/esbuild": { + "version": "0.25.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz", + "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.5", + "@esbuild/android-arm": "0.25.5", + "@esbuild/android-arm64": "0.25.5", + "@esbuild/android-x64": "0.25.5", + "@esbuild/darwin-arm64": "0.25.5", + "@esbuild/darwin-x64": "0.25.5", + "@esbuild/freebsd-arm64": "0.25.5", + "@esbuild/freebsd-x64": "0.25.5", + "@esbuild/linux-arm": "0.25.5", + "@esbuild/linux-arm64": "0.25.5", + "@esbuild/linux-ia32": "0.25.5", + "@esbuild/linux-loong64": "0.25.5", + "@esbuild/linux-mips64el": "0.25.5", + "@esbuild/linux-ppc64": "0.25.5", + "@esbuild/linux-riscv64": "0.25.5", + "@esbuild/linux-s390x": "0.25.5", + "@esbuild/linux-x64": "0.25.5", + "@esbuild/netbsd-arm64": "0.25.5", + "@esbuild/netbsd-x64": "0.25.5", + "@esbuild/openbsd-arm64": "0.25.5", + "@esbuild/openbsd-x64": "0.25.5", + "@esbuild/sunos-x64": "0.25.5", + "@esbuild/win32-arm64": "0.25.5", + "@esbuild/win32-ia32": "0.25.5", + "@esbuild/win32-x64": "0.25.5" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -288,6 +977,58 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -298,6 +1039,24 @@ "node": ">=8" } }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -321,12 +1080,68 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/long": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", - "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, - "license": "Apache-2.0" + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lazystream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/lazystream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/lazystream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, "node_modules/minipass": { "version": "7.1.2", @@ -338,6 +1153,15 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/package-json-from-dist": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", @@ -379,6 +1203,58 @@ "dev": true, "license": "ISC" }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dev": true, + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/rimraf": { "version": "5.0.10", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", @@ -395,52 +1271,25 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/shebang-command": { "version": "2.0.0", @@ -478,6 +1327,47 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/streamx": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.22.1.tgz", + "integrity": "sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -536,6 +1426,44 @@ "node": ">=8" } }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/terser": { + "version": "5.41.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.41.0.tgz", + "integrity": "sha512-H406eLPXpZbAX14+B8psIuvIr8+3c+2hkuYzpMkoE0ij+NdsVATbA78vb8neA/eqrj7rywa2pIkdmWRsXW6wmw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", @@ -557,6 +1485,12 @@ "dev": true, "license": "MIT" }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", @@ -575,6 +1509,20 @@ "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } + }, + "node_modules/zip-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-6.0.1.tgz", + "integrity": "sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==", + "dev": true, + "dependencies": { + "archiver-utils": "^5.0.0", + "compress-commons": "^6.0.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">= 14" + } } } } diff --git a/source/package.json b/source/package.json index 654a7522..b17c4c6a 100644 --- a/source/package.json +++ b/source/package.json @@ -1,6 +1,6 @@ { "name": "@esengine/ecs-framework", - "version": "2.1.0", + "version": "2.1.6", "description": "用于Laya、Cocos等游戏引擎的高性能ECS框架", "main": "bin/index.js", "types": "bin/index.d.ts", @@ -19,7 +19,7 @@ "egret" ], "scripts": { - "clean": "rimraf bin wasm", + "clean": "rimraf bin wasm dist", "clean:wasm": "rimraf src/wasm/rust-ecs-core/pkg src/wasm/rust-ecs-core/target", "build:wasm": "cd src/wasm/rust-ecs-core && wasm-pack build --target web --out-dir ../../../bin/wasm --release", "build:ts": "tsc", @@ -27,21 +27,27 @@ "build": "npm run build:wasm && npm run build:ts", "build:watch": "tsc --watch", "rebuild": "npm run clean && npm run clean:wasm && npm run build", + "bundle": "npm run build && node scripts/bundle.js", + "compress": "npm run build && node scripts/compress.js", + "package": "npm run bundle && npm run compress", + "build:npm": "npm run build && node scripts/build-single.js", "test:benchmark": "npm run build && node bin/Testing/Performance/benchmark.js", "test:unit": "npm run build && node bin/Testing/test-runner.js", "benchmark": "node scripts/benchmark.js", "preversion": "npm run rebuild", - "postversion": "npm publish", - "publish:patch": "npm version patch", - "publish:minor": "npm version minor", - "publish:major": "npm version major", - "publish": "npm publish" + "publish:patch": "npm version patch && npm run build:npm && cd dist && npm publish", + "publish:minor": "npm version minor && npm run build:npm && cd dist && npm publish", + "publish:major": "npm version major && npm run build:npm && cd dist && npm publish", + "publish:npm": "npm run build:npm && cd dist && npm publish" }, "author": "yhh", "license": "MIT", "devDependencies": { "@types/node": "^20.19.0", + "archiver": "^7.0.1", + "esbuild": "^0.25.5", "rimraf": "^5.0.0", + "terser": "^5.41.0", "typescript": "^5.8.3" }, "publishConfig": { @@ -50,6 +56,5 @@ "repository": { "type": "git", "url": "https://github.com/esengine/ecs-framework.git" - }, - "optionalDependencies": {} + } } diff --git a/source/scripts/build-single.js b/source/scripts/build-single.js new file mode 100644 index 00000000..45b80d1a --- /dev/null +++ b/source/scripts/build-single.js @@ -0,0 +1,279 @@ +#!/usr/bin/env node + +const esbuild = require('esbuild'); +const fs = require('fs'); +const path = require('path'); + +/** + * ECS Framework 单文件构建脚本 + * 专门用于npm包发布的单文件版本 + */ + +const config = { + // 输入配置 + entryPoint: './bin/index.js', + + // 输出配置 + outputDir: './dist', + outputFile: 'index.js', + + // 压缩配置 + minify: true, + sourcemap: true, + + // 目标环境 - 适配更多平台 + target: ['es2017'], + format: 'esm', + + // npm包配置 + generatePackageJson: true, + generateTypes: true +}; + +async function buildSingleFile() { + console.log('🚀 构建单文件npm包...'); + + try { + // 确保输出目录存在 + if (!fs.existsSync(config.outputDir)) { + fs.mkdirSync(config.outputDir, { recursive: true }); + } + + // 第一步:使用esbuild打包 + console.log('📦 使用 esbuild 打包...'); + + const result = await esbuild.build({ + entryPoints: [config.entryPoint], + bundle: true, + minify: config.minify, + sourcemap: config.sourcemap, + target: config.target, + format: config.format, + outfile: path.join(config.outputDir, config.outputFile), + platform: 'neutral', // 支持多平台 + + // 外部依赖 + external: [], + + // 定义全局变量 + define: { + 'process.env.NODE_ENV': '"production"' + }, + + // 元信息 + metafile: true, + + // 日志级别 + logLevel: 'info', + + // 保持类名(便于调试) + keepNames: true, + + // 生成更兼容的代码 + legalComments: 'none' + }); + + // 显示打包结果 + if (result.metafile) { + const analysis = await esbuild.analyzeMetafile(result.metafile); + console.log('📊 打包分析:'); + console.log(analysis); + } + + // 第二步:生成类型定义文件 + if (config.generateTypes) { + console.log('📝 生成类型定义文件...'); + await generateTypeDefinitions(); + } + + // 第三步:生成package.json + if (config.generatePackageJson) { + console.log('📋 生成package.json...'); + await generatePackageJson(); + } + + // 第四步:复制必要文件 + await copyEssentialFiles(); + + console.log('✅ 单文件构建完成!'); + console.log(`📄 主文件: ${path.join(config.outputDir, config.outputFile)}`); + + // 显示文件大小 + const stats = fs.statSync(path.join(config.outputDir, config.outputFile)); + console.log(`📏 文件大小: ${(stats.size / 1024).toFixed(2)} KB`); + + console.log('\n🚀 发布到npm:'); + console.log('cd dist && npm publish'); + + } catch (error) { + console.error('❌ 构建失败:', error); + process.exit(1); + } +} + +/** + * 生成类型定义文件 + */ +async function generateTypeDefinitions() { + const sourceTypesFile = './bin/index.d.ts'; + const targetTypesFile = path.join(config.outputDir, 'index.d.ts'); + + if (fs.existsSync(sourceTypesFile)) { + // 读取原始类型定义 + let typesContent = fs.readFileSync(sourceTypesFile, 'utf8'); + + // 处理相对路径导入,将其转换为绝对导入 + typesContent = typesContent.replace(/from ['"]\.\//g, "from './"); + typesContent = typesContent.replace(/from ['"]\.\.\//g, "from './"); + + // 添加版本信息注释 + const header = `/** + * @esengine/ecs-framework + * 高性能ECS框架 - 适用于Cocos Creator和Laya引擎 + * 版本: ${require('../package.json').version} + * 构建时间: ${new Date().toISOString()} + */ + +`; + + fs.writeFileSync(targetTypesFile, header + typesContent); + console.log(` ✓ 生成: ${targetTypesFile}`); + } +} + +/** + * 生成npm包的package.json + */ +async function generatePackageJson() { + const sourcePackage = require('../package.json'); + + // 创建完全干净的package.json,只包含发布必需的字段 + const distPackage = {}; + + // 按顺序添加字段,确保没有任何开发相关字段 + distPackage.name = sourcePackage.name; + distPackage.version = sourcePackage.version; + distPackage.description = sourcePackage.description; + distPackage.main = 'index.js'; + distPackage.types = 'index.d.ts'; + distPackage.module = 'index.js'; + distPackage.type = 'module'; + + // 导出配置 + distPackage.exports = { + ".": { + "import": "./index.js", + "types": "./index.d.ts" + } + }; + + // 文件配置 + distPackage.files = [ + 'index.js', + 'index.js.map', + 'index.d.ts', + 'wasm/**/*', + 'README.md', + 'LICENSE' + ]; + + // 关键词 + distPackage.keywords = [ + ...sourcePackage.keywords, + 'single-file', + 'bundled', + 'minified' + ]; + + // 元信息 + distPackage.author = sourcePackage.author; + distPackage.license = sourcePackage.license; + + // Repository信息 + distPackage.repository = { + type: 'git', + url: 'git+https://github.com/esengine/ecs-framework.git' + }; + + // 发布配置 + distPackage.publishConfig = { + access: 'public' + }; + + // 引擎兼容性 + distPackage.engines = { + node: '>=16.0.0' + }; + + const packagePath = path.join(config.outputDir, 'package.json'); + fs.writeFileSync(packagePath, JSON.stringify(distPackage, null, 2)); + console.log(` ✓ 生成: ${packagePath}`); +} + +/** + * 复制必要文件 + */ +async function copyEssentialFiles() { + console.log('📁 复制必要文件...'); + + const filesToCopy = [ + { src: '../README.md', dest: 'README.md' }, + { src: '../LICENSE', dest: 'LICENSE', optional: true } + ]; + + for (const file of filesToCopy) { + const srcPath = path.resolve(file.src); + const destPath = path.join(config.outputDir, file.dest); + + if (fs.existsSync(srcPath)) { + fs.copyFileSync(srcPath, destPath); + console.log(` ✓ 复制: ${file.dest}`); + } else if (!file.optional) { + console.warn(` ⚠️ 文件不存在: ${srcPath}`); + } + } + + // 复制WASM文件 + await copyWasmFiles(); +} + +/** + * 复制WASM文件 + */ +async function copyWasmFiles() { + const wasmSrcDir = './bin/wasm'; + const wasmDestDir = path.join(config.outputDir, 'wasm'); + + if (fs.existsSync(wasmSrcDir)) { + console.log('📦 复制WASM文件...'); + + // 创建目标目录 + if (!fs.existsSync(wasmDestDir)) { + fs.mkdirSync(wasmDestDir, { recursive: true }); + } + + // 复制所有WASM相关文件 + const wasmFiles = fs.readdirSync(wasmSrcDir); + for (const file of wasmFiles) { + // 排除.gitignore文件 + if (file === '.gitignore') continue; + + const srcPath = path.join(wasmSrcDir, file); + const destPath = path.join(wasmDestDir, file); + + if (fs.statSync(srcPath).isFile()) { + fs.copyFileSync(srcPath, destPath); + console.log(` ✓ 复制WASM: ${file}`); + } + } + } else { + console.warn(' ⚠️ WASM目录不存在: ' + wasmSrcDir); + } +} + +// 运行构建 +if (require.main === module) { + buildSingleFile(); +} + +module.exports = { buildSingleFile, config }; \ No newline at end of file diff --git a/source/scripts/bundle.js b/source/scripts/bundle.js new file mode 100644 index 00000000..c01d3020 --- /dev/null +++ b/source/scripts/bundle.js @@ -0,0 +1,210 @@ +#!/usr/bin/env node + +const esbuild = require('esbuild'); +const fs = require('fs'); +const path = require('path'); +const { minify } = require('terser'); + +/** + * ECS Framework 打包脚本 + * 将bin目录中的所有文件合并成一个压缩文件 + */ + +const config = { + // 输入配置 + entryPoint: './bin/index.js', + + // 输出配置 + outputDir: './dist', + outputFile: 'ecs-framework.min.js', + + // 压缩配置 + minify: true, + sourcemap: true, + + // 包含WASM文件 + includeWasm: true, + + // 目标环境 + target: ['es2017'], + format: 'esm' +}; + +async function createBundle() { + console.log('🚀 开始打包 ECS Framework...'); + + try { + // 确保输出目录存在 + if (!fs.existsSync(config.outputDir)) { + fs.mkdirSync(config.outputDir, { recursive: true }); + } + + // 第一步:使用esbuild打包 + console.log('📦 使用 esbuild 打包...'); + + const result = await esbuild.build({ + entryPoints: [config.entryPoint], + bundle: true, + minify: config.minify, + sourcemap: config.sourcemap, + target: config.target, + format: config.format, + outfile: path.join(config.outputDir, config.outputFile), + platform: 'browser', + + // 外部依赖(如果有的话) + external: [], + + // 定义全局变量 + define: { + 'process.env.NODE_ENV': '"production"' + }, + + // 处理WASM文件 + loader: { + '.wasm': 'binary' + }, + + // 插件配置 + plugins: [ + { + name: 'wasm-loader', + setup(build) { + // 处理WASM文件导入 + build.onLoad({ filter: /\.wasm$/ }, async (args) => { + const wasmBuffer = await fs.promises.readFile(args.path); + const base64 = wasmBuffer.toString('base64'); + + return { + contents: ` + const wasmBase64 = "${base64}"; + const wasmBinary = Uint8Array.from(atob(wasmBase64), c => c.charCodeAt(0)); + export default wasmBinary; + `, + loader: 'js' + }; + }); + } + } + ], + + // 元信息 + metafile: true, + + // 日志级别 + logLevel: 'info' + }); + + // 显示打包结果 + if (result.metafile) { + const analysis = await esbuild.analyzeMetafile(result.metafile); + console.log('📊 打包分析:'); + console.log(analysis); + } + + // 第二步:复制WASM文件到dist目录 + if (config.includeWasm) { + console.log('📁 复制 WASM 文件...'); + await copyWasmFiles(); + } + + // 第三步:生成压缩包信息 + await generateBundleInfo(); + + console.log('✅ 打包完成!'); + console.log(`📄 输出文件: ${path.join(config.outputDir, config.outputFile)}`); + + // 显示文件大小 + const stats = fs.statSync(path.join(config.outputDir, config.outputFile)); + console.log(`📏 文件大小: ${(stats.size / 1024).toFixed(2)} KB`); + + } catch (error) { + console.error('❌ 打包失败:', error); + process.exit(1); + } +} + +/** + * 复制WASM文件到dist目录 + */ +async function copyWasmFiles() { + const wasmDir = './bin/wasm'; + const distWasmDir = path.join(config.outputDir, 'wasm'); + + if (fs.existsSync(wasmDir)) { + if (!fs.existsSync(distWasmDir)) { + fs.mkdirSync(distWasmDir, { recursive: true }); + } + + const wasmFiles = fs.readdirSync(wasmDir); + for (const file of wasmFiles) { + // 排除 .gitignore 文件 + if (file === '.gitignore') { + console.log(` ⏭️ 跳过: ${file}`); + continue; + } + + const srcPath = path.join(wasmDir, file); + const destPath = path.join(distWasmDir, file); + + if (fs.statSync(srcPath).isFile()) { + fs.copyFileSync(srcPath, destPath); + console.log(` ✓ 复制: ${file}`); + } + } + } +} + +/** + * 生成打包信息文件 + */ +async function generateBundleInfo() { + const bundleInfo = { + name: '@esengine/ecs-framework', + version: require('../package.json').version, + buildTime: new Date().toISOString(), + files: { + main: config.outputFile, + sourcemap: config.outputFile + '.map', + wasm: 'wasm/' + }, + target: config.target, + format: config.format, + minified: config.minify, + size: { + main: fs.statSync(path.join(config.outputDir, config.outputFile)).size, + wasm: getWasmSize() + } + }; + + const infoPath = path.join(config.outputDir, 'bundle-info.json'); + fs.writeFileSync(infoPath, JSON.stringify(bundleInfo, null, 2)); + console.log(`📋 生成打包信息: ${infoPath}`); +} + +/** + * 获取WASM文件总大小 + */ +function getWasmSize() { + const wasmDir = path.join(config.outputDir, 'wasm'); + let totalSize = 0; + + if (fs.existsSync(wasmDir)) { + const files = fs.readdirSync(wasmDir); + for (const file of files) { + const filePath = path.join(wasmDir, file); + if (fs.statSync(filePath).isFile()) { + totalSize += fs.statSync(filePath).size; + } + } + } + + return totalSize; +} + +// 运行打包 +if (require.main === module) { + createBundle(); +} + +module.exports = { createBundle, config }; \ No newline at end of file diff --git a/source/scripts/compress.js b/source/scripts/compress.js new file mode 100644 index 00000000..e89f3b8a --- /dev/null +++ b/source/scripts/compress.js @@ -0,0 +1,165 @@ +#!/usr/bin/env node + +const fs = require('fs'); +const path = require('path'); +const archiver = require('archiver'); + +/** + * ECS Framework 压缩脚本 + * 将bin目录压缩成ZIP文件 + */ + +const config = { + sourceDir: './bin', + outputDir: './dist', + outputFile: 'ecs-framework-bin.zip', + compressionLevel: 9, // 最高压缩级别 + includeSourceMaps: false // 是否包含source map文件 +}; + +async function createCompressedArchive() { + console.log('🗜️ 开始压缩 bin 目录...'); + + try { + // 确保输出目录存在 + if (!fs.existsSync(config.outputDir)) { + fs.mkdirSync(config.outputDir, { recursive: true }); + } + + const outputPath = path.join(config.outputDir, config.outputFile); + const output = fs.createWriteStream(outputPath); + const archive = archiver('zip', { + zlib: { level: config.compressionLevel } + }); + + // 监听事件 + output.on('close', () => { + const sizeKB = (archive.pointer() / 1024).toFixed(2); + console.log('✅ 压缩完成!'); + console.log(`📄 输出文件: ${outputPath}`); + console.log(`📏 压缩后大小: ${sizeKB} KB`); + console.log(`📊 压缩了 ${archive.pointer()} 字节`); + + // 生成压缩信息 + generateCompressionInfo(outputPath, archive.pointer()); + }); + + output.on('end', () => { + console.log('数据已全部写入'); + }); + + archive.on('warning', (err) => { + if (err.code === 'ENOENT') { + console.warn('⚠️ 警告:', err); + } else { + throw err; + } + }); + + archive.on('error', (err) => { + throw err; + }); + + // 连接输出流 + archive.pipe(output); + + // 添加bin目录中的所有文件 + console.log('📁 添加文件到压缩包...'); + + // 递归添加目录 + archive.directory(config.sourceDir, false, (entry) => { + // 过滤文件 + if (!config.includeSourceMaps && entry.name.endsWith('.map')) { + console.log(` ⏭️ 跳过: ${entry.name}`); + return false; + } + + // 排除 .gitignore 文件 + if (entry.name === '.gitignore' || entry.name.endsWith('/.gitignore')) { + console.log(` ⏭️ 跳过: ${entry.name}`); + return false; + } + + console.log(` ✓ 添加: ${entry.name}`); + return entry; + }); + + // 完成压缩 + await archive.finalize(); + + } catch (error) { + console.error('❌ 压缩失败:', error); + process.exit(1); + } +} + +/** + * 生成压缩信息文件 + */ +function generateCompressionInfo(outputPath, compressedSize) { + const originalSize = getDirectorySize(config.sourceDir); + const compressionRatio = ((originalSize - compressedSize) / originalSize * 100).toFixed(2); + + const compressionInfo = { + name: '@esengine/ecs-framework', + version: require('../package.json').version, + compressionTime: new Date().toISOString(), + files: { + archive: config.outputFile + }, + size: { + original: originalSize, + compressed: compressedSize, + ratio: `${compressionRatio}%` + }, + settings: { + compressionLevel: config.compressionLevel, + includeSourceMaps: config.includeSourceMaps + } + }; + + const infoPath = path.join(config.outputDir, 'compression-info.json'); + fs.writeFileSync(infoPath, JSON.stringify(compressionInfo, null, 2)); + console.log(`📋 生成压缩信息: ${infoPath}`); + console.log(`📈 压缩率: ${compressionRatio}%`); +} + +/** + * 获取目录总大小 + */ +function getDirectorySize(dirPath) { + let totalSize = 0; + + function calculateSize(currentPath) { + const stats = fs.statSync(currentPath); + + if (stats.isDirectory()) { + const files = fs.readdirSync(currentPath); + for (const file of files) { + calculateSize(path.join(currentPath, file)); + } + } else { + // 过滤source map文件 + if (!config.includeSourceMaps && currentPath.endsWith('.map')) { + return; + } + + // 排除 .gitignore 文件 + if (currentPath.endsWith('.gitignore')) { + return; + } + + totalSize += stats.size; + } + } + + calculateSize(dirPath); + return totalSize; +} + +// 运行压缩 +if (require.main === module) { + createCompressedArchive(); +} + +module.exports = { createCompressedArchive, config }; \ No newline at end of file diff --git a/source/src/Utils/index.ts b/source/src/Utils/index.ts index cc891035..7b9090f1 100644 --- a/source/src/Utils/index.ts +++ b/source/src/Utils/index.ts @@ -8,10 +8,8 @@ export * from './Emitter'; export * from './GlobalManager'; export * from './PerformanceMonitor'; export { Time } from './Time'; -/** - * WebAssembly核心模块 - * 提供高性能的ECS查询和计算功能 - */ + +// WebAssembly核心模块 export { WasmEcsCore, ecsCore, @@ -20,5 +18,5 @@ export { EntityId, ComponentMask, QueryResult, - PerformanceStats + PerformanceStats as WasmPerformanceStats } from './WasmCore'; \ No newline at end of file diff --git a/source/src/index.ts b/source/src/index.ts index 286cea8d..420b1af7 100644 --- a/source/src/index.ts +++ b/source/src/index.ts @@ -17,21 +17,6 @@ export { Timer } from './Utils/Timers/Timer'; // ECS核心组件 export * from './ECS'; -// 工具类 -export * from './Utils/Pool'; -export * from './Utils/PerformanceMonitor'; -export * from './Utils/Extensions'; - -// WebAssembly核心模块 -export { - WasmEcsCore, - ecsCore, - initializeEcs, - Query, - EntityId, - ComponentMask, - QueryResult -} from './Utils/WasmCore'; - -// 类型定义 +// 工具类和类型定义 +export * from './Utils'; export * from './Types'; \ No newline at end of file diff --git a/source/tsconfig.json b/source/tsconfig.json index 9f2670a9..3d5fb10e 100644 --- a/source/tsconfig.json +++ b/source/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { "target": "ES2020", - "module": "CommonJS", + "module": "ES2020", "moduleResolution": "node", "lib": ["ES2020", "DOM"], "outDir": "./bin", @@ -27,7 +27,10 @@ "experimentalDecorators": true, "emitDecoratorMetadata": true, "importHelpers": false, - "downlevelIteration": true + "downlevelIteration": true, + "isolatedModules": false, + "allowJs": true, + "resolveJsonModule": true }, "include": [ "src/**/*"