diff --git a/.gitignore b/.gitignore index 2b4d003..171d104 100644 --- a/.gitignore +++ b/.gitignore @@ -64,7 +64,6 @@ node_modules/ out/ test-dist/ test-esm/ -browser/ types/ build/ build-es*/ diff --git a/common/config/rush/npm-shrinkwrap.json b/common/config/rush/npm-shrinkwrap.json index b972f6f..9087d8b 100644 --- a/common/config/rush/npm-shrinkwrap.json +++ b/common/config/rush/npm-shrinkwrap.json @@ -30,11 +30,7 @@ "grunt-cli": "^1.4.3", "karma": "^6.3.20", "karma-chrome-launcher": "^3.1.1", - "karma-coverage": "^2.2.0", - "karma-coverage-istanbul-reporter": "^3.0.3", "karma-mocha": "^2.0.1", - "karma-mocha-webworker": "^1.3.0", - "karma-rollup-preprocessor": "^7.0.8", "karma-spec-reporter": "^0.0.36", "karma-typescript": "^5.5.3", "puppeteer": "^24.4.0", @@ -43,7 +39,6 @@ "rollup-plugin-istanbul": "^5.0.0", "rollup-plugin-minify-es": "^1.1.1", "ts-mocha": "^10.0.0", - "tslib": "^2.3.0", "typedoc": "^0.28.2", "typedoc-github-theme": "^0.4.0", "typescript": "~5.2.2", @@ -100,6 +95,11 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, "node_modules/@babel/core/node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -341,25 +341,6 @@ "@shikijs/vscode-textmate": "^10.0.2" } }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz", - "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -505,9 +486,9 @@ } }, "node_modules/@microsoft/api-extractor": { - "version": "7.57.1", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.57.1.tgz", - "integrity": "sha512-rTHuqQeI38kNgUoWNlCNrAJWgRA7s48DNZcMyPkQvTzb33EQL/a0FA8S1IAXh9133NG4/cJ19trXtBZSwZndsw==", + "version": "7.57.2", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.57.2.tgz", + "integrity": "sha512-Dih58xLlG+M6k2qVSksk9xJx8HvmJEyK3LcHrcqXE7eK/U7pg/8cTT8j1TKijU4P4639wvCy1zhDuvtjRy+02Q==", "dependencies": { "@microsoft/api-extractor-model": "7.33.1", "@microsoft/tsdoc": "~0.16.0", @@ -518,7 +499,7 @@ "@rushstack/ts-command-line": "5.3.1", "diff": "~8.0.2", "lodash": "~4.17.23", - "minimatch": "10.1.2", + "minimatch": "10.2.1", "resolve": "~1.22.1", "semver": "~7.5.4", "source-map": "~0.6.1", @@ -878,9 +859,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", - "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.58.0.tgz", + "integrity": "sha512-mr0tmS/4FoVk1cnaeN244A/wjvGDNItZKR8hRhnmCzygyRXYtKF5jVDSIILR1U97CTzAYmbgIj/Dukg62ggG5w==", "cpu": [ "arm" ], @@ -890,9 +871,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", - "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.58.0.tgz", + "integrity": "sha512-+s++dbp+/RTte62mQD9wLSbiMTV+xr/PeRJEc/sFZFSBRlHPNPVaf5FXlzAL77Mr8FtSfQqCN+I598M8U41ccQ==", "cpu": [ "arm64" ], @@ -902,9 +883,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", - "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.58.0.tgz", + "integrity": "sha512-MFWBwTcYs0jZbINQBXHfSrpSQJq3IUOakcKPzfeSznONop14Pxuqa0Kg19GD0rNBMPQI2tFtu3UzapZpH0Uc1Q==", "cpu": [ "arm64" ], @@ -914,9 +895,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", - "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.58.0.tgz", + "integrity": "sha512-yiKJY7pj9c9JwzuKYLFaDZw5gma3fI9bkPEIyofvVfsPqjCWPglSHdpdwXpKGvDeYDms3Qal8qGMEHZ1M/4Udg==", "cpu": [ "x64" ], @@ -926,9 +907,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", - "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.58.0.tgz", + "integrity": "sha512-x97kCoBh5MOevpn/CNK9W1x8BEzO238541BGWBc315uOlN0AD/ifZ1msg+ZQB05Ux+VF6EcYqpiagfLJ8U3LvQ==", "cpu": [ "arm64" ], @@ -938,9 +919,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", - "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.58.0.tgz", + "integrity": "sha512-Aa8jPoZ6IQAG2eIrcXPpjRcMjROMFxCt1UYPZZtCxRV68WkuSigYtQ/7Zwrcr2IvtNJo7T2JfDXyMLxq5L4Jlg==", "cpu": [ "x64" ], @@ -950,9 +931,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", - "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.58.0.tgz", + "integrity": "sha512-Ob8YgT5kD/lSIYW2Rcngs5kNB/44Q2RzBSPz9brf2WEtcGR7/f/E9HeHn1wYaAwKBni+bdXEwgHvUd0x12lQSA==", "cpu": [ "arm" ], @@ -962,9 +943,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", - "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.58.0.tgz", + "integrity": "sha512-K+RI5oP1ceqoadvNt1FecL17Qtw/n9BgRSzxif3rTL2QlIu88ccvY+Y9nnHe/cmT5zbH9+bpiJuG1mGHRVwF4Q==", "cpu": [ "arm" ], @@ -974,9 +955,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", - "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.58.0.tgz", + "integrity": "sha512-T+17JAsCKUjmbopcKepJjHWHXSjeW7O5PL7lEFaeQmiVyw4kkc5/lyYKzrv6ElWRX/MrEWfPiJWqbTvfIvjM1Q==", "cpu": [ "arm64" ], @@ -986,9 +967,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", - "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.58.0.tgz", + "integrity": "sha512-cCePktb9+6R9itIJdeCFF9txPU7pQeEHB5AbHu/MKsfH/k70ZtOeq1k4YAtBv9Z7mmKI5/wOLYjQ+B9QdxR6LA==", "cpu": [ "arm64" ], @@ -998,9 +979,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", - "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.58.0.tgz", + "integrity": "sha512-iekUaLkfliAsDl4/xSdoCJ1gnnIXvoNz85C8U8+ZxknM5pBStfZjeXgB8lXobDQvvPRCN8FPmmuTtH+z95HTmg==", "cpu": [ "loong64" ], @@ -1010,9 +991,9 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", - "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.58.0.tgz", + "integrity": "sha512-68ofRgJNl/jYJbxFjCKE7IwhbfxOl1muPN4KbIqAIe32lm22KmU7E8OPvyy68HTNkI2iV/c8y2kSPSm2mW/Q9Q==", "cpu": [ "loong64" ], @@ -1022,9 +1003,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", - "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.58.0.tgz", + "integrity": "sha512-dpz8vT0i+JqUKuSNPCP5SYyIV2Lh0sNL1+FhM7eLC457d5B9/BC3kDPp5BBftMmTNsBarcPcoz5UGSsnCiw4XQ==", "cpu": [ "ppc64" ], @@ -1034,9 +1015,9 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", - "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.58.0.tgz", + "integrity": "sha512-4gdkkf9UJ7tafnweBCR/mk4jf3Jfl0cKX9Np80t5i78kjIH0ZdezUv/JDI2VtruE5lunfACqftJ8dIMGN4oHew==", "cpu": [ "ppc64" ], @@ -1046,9 +1027,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", - "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.58.0.tgz", + "integrity": "sha512-YFS4vPnOkDTD/JriUeeZurFYoJhPf9GQQEF/v4lltp3mVcBmnsAdjEWhr2cjUCZzZNzxCG0HZOvJU44UGHSdzw==", "cpu": [ "riscv64" ], @@ -1058,9 +1039,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", - "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.58.0.tgz", + "integrity": "sha512-x2xgZlFne+QVNKV8b4wwaCS8pwq3y14zedZ5DqLzjdRITvreBk//4Knbcvm7+lWmms9V9qFp60MtUd0/t/PXPw==", "cpu": [ "riscv64" ], @@ -1070,9 +1051,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", - "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.58.0.tgz", + "integrity": "sha512-jIhrujyn4UnWF8S+DHSkAkDEO3hLX0cjzxJZPLF80xFyzyUIYgSMRcYQ3+uqEoyDD2beGq7Dj7edi8OnJcS/hg==", "cpu": [ "s390x" ], @@ -1094,9 +1075,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", - "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.58.0.tgz", + "integrity": "sha512-ZjMyby5SICi227y1MTR3VYBpFTdZs823Rs/hpakufleBoufoOIB6jtm9FEoxn/cgO7l6PM2rCEl5Kre5vX0QrQ==", "cpu": [ "x64" ], @@ -1106,9 +1087,9 @@ ] }, "node_modules/@rollup/rollup-openbsd-x64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", - "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.58.0.tgz", + "integrity": "sha512-ds4iwfYkSQ0k1nb8LTcyXw//ToHOnNTJtceySpL3fa7tc/AsE+UpUFphW126A6fKBGJD5dhRvg8zw1rvoGFxmw==", "cpu": [ "x64" ], @@ -1118,9 +1099,9 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", - "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.58.0.tgz", + "integrity": "sha512-fd/zpJniln4ICdPkjWFhZYeY/bpnaN9pGa6ko+5WD38I0tTqk9lXMgXZg09MNdhpARngmxiCg0B0XUamNw/5BQ==", "cpu": [ "arm64" ], @@ -1130,9 +1111,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", - "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.58.0.tgz", + "integrity": "sha512-YpG8dUOip7DCz3nr/JUfPbIUo+2d/dy++5bFzgi4ugOGBIox+qMbbqt/JoORwvI/C9Kn2tz6+Bieoqd5+B1CjA==", "cpu": [ "arm64" ], @@ -1142,9 +1123,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", - "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.58.0.tgz", + "integrity": "sha512-b9DI8jpFQVh4hIXFr0/+N/TzLdpBIoPzjt0Rt4xJbW3mzguV3mduR9cNgiuFcuL/TeORejJhCWiAXe3E/6PxWA==", "cpu": [ "ia32" ], @@ -1154,9 +1135,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", - "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.58.0.tgz", + "integrity": "sha512-CSrVpmoRJFN06LL9xhkitkwUcTZtIotYAF5p6XOR2zW0Zz5mzb3IPpcoPhB02frzMHFNo1reQ9xSF5fFm3hUsQ==", "cpu": [ "x64" ], @@ -1166,9 +1147,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", - "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.58.0.tgz", + "integrity": "sha512-QFsBgQNTnh5K0t/sBsjJLq24YVqEIVkGpfN2VHsnN90soZyhaiA9UUHufcctVNL4ypJY0wrwad0wslx2KJQ1/w==", "cpu": [ "x64" ], @@ -1180,7 +1161,7 @@ "node_modules/@rush-temp/tripwire": { "version": "0.0.0", "resolved": "file:projects/tripwire.tgz", - "integrity": "sha512-vIzDVWwHNN+vDiHzaTpfRLWDrMrEm5XEHWr+pkb/tE5XKk/GHHC09yP3dFgWwLZeD4f0ddZ05tE0AcwnsNzDoQ==", + "integrity": "sha512-gq+y7DzNkBXtwN0nn1UOsSBmbrAO4Apeh45ElYMT8ENnZtOSPyjVN1yDOgxFYAkbjMicNv2RN4WKl6fDu3cEEQ==", "dependencies": { "@microsoft/api-extractor": "^7.34.4", "@nevware21/chromacon": ">= 0.1.3 < 2.x", @@ -1202,11 +1183,7 @@ "grunt-cli": "^1.4.3", "karma": "^6.3.20", "karma-chrome-launcher": "^3.1.1", - "karma-coverage": "^2.2.0", - "karma-coverage-istanbul-reporter": "^3.0.3", "karma-mocha": "^2.0.1", - "karma-mocha-webworker": "^1.3.0", - "karma-rollup-preprocessor": "^7.0.8", "karma-spec-reporter": "^0.0.36", "karma-typescript": "^5.5.3", "puppeteer": "^24.4.0", @@ -1215,7 +1192,6 @@ "rollup-plugin-istanbul": "^5.0.0", "rollup-plugin-minify-es": "^1.1.1", "ts-mocha": "^10.0.0", - "tslib": "^2.3.0", "typedoc": "^0.28.2", "typedoc-github-theme": "^0.4.0", "typescript": "~5.2.2", @@ -1225,10 +1201,11 @@ "node_modules/@rush-temp/tripwire-chai": { "version": "0.0.0", "resolved": "file:projects/tripwire-chai.tgz", - "integrity": "sha512-GY7lVMKfhTBMs0200tehzh2SOKd4Q7cD3PKFqSrTepmx0FGOpzZNbJp9QHXpwvVHDda5u5EiSS1WKgUZPUYmkA==", + "integrity": "sha512-zoPXXIOCXC8IgmHdvA/E/DRvS9k7dTHruBKZ67Q+ugEb9wNmKAhQm7oTgV7CNPZ1Eg6RpeEpJORO2uP1jy5gjQ==", "dependencies": { "@microsoft/api-extractor": "^7.34.4", "@nevware21/coverage-tools": "^0.1.3", + "@nevware21/publish-npm": "^0.1.3", "@nevware21/ts-async": ">= 0.5.4 < 2.x", "@nevware21/ts-utils": ">= 0.12.6 < 2.x", "@rollup/plugin-commonjs": "^28.0.9", @@ -1237,6 +1214,7 @@ "@rollup/plugin-strip": "^3.0.2", "@rollup/plugin-typescript": "^12.2.0", "@types/mocha": "^10.0.1", + "@types/node": "^25.0.3", "codecov": "^3.8.3", "copyfiles": "^2.4.1", "cross-env": "^10.1.0", @@ -1244,11 +1222,7 @@ "grunt-cli": "^1.4.3", "karma": "^6.3.20", "karma-chrome-launcher": "^3.1.1", - "karma-coverage": "^2.2.0", - "karma-coverage-istanbul-reporter": "^3.0.3", "karma-mocha": "^2.0.1", - "karma-mocha-webworker": "^1.3.0", - "karma-rollup-preprocessor": "^7.0.8", "karma-spec-reporter": "^0.0.36", "karma-typescript": "^5.5.3", "puppeteer": "^24.4.0", @@ -1721,9 +1695,12 @@ } }, "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==" + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz", + "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==", + "engines": { + "node": "20 || >=22" + } }, "node_modules/bare-events": { "version": "2.8.2", @@ -1908,12 +1885,14 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", + "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" } }, "node_modules/braces": { @@ -2012,6 +1991,43 @@ "node": ">= 0.10" } }, + "node_modules/browserify-sign/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/browserify-sign/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==", + "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/browserify-sign/node_modules/readable-stream/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==" + }, + "node_modules/browserify-sign/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/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==" + }, "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", @@ -2396,9 +2412,9 @@ } }, "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { "version": "0.7.2", @@ -2426,6 +2442,20 @@ "copyup": "copyfiles" } }, + "node_modules/copyfiles/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==" + }, + "node_modules/copyfiles/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/copyfiles/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2621,11 +2651,6 @@ "node": "*" } }, - "node_modules/debounce": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2835,9 +2860,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.5.286", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", - "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==" + "version": "1.5.302", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz", + "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==" }, "node_modules/elliptic": { "version": "6.6.1", @@ -3616,6 +3641,20 @@ "node": ">= 6" } }, + "node_modules/glob/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==" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3809,6 +3848,20 @@ "node": ">=10" } }, + "node_modules/grunt/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==" + }, + "node_modules/grunt/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/grunt/node_modules/glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", @@ -4157,6 +4210,20 @@ "minimatch": "^3.0.4" } }, + "node_modules/ignore-walk/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==" + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/ignore-walk/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4492,9 +4559,9 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isbinaryfile": { "version": "4.0.10", @@ -4529,14 +4596,13 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", + "@babel/core": "^7.7.5", "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-coverage": "^3.0.0", "semver": "^6.3.0" }, "engines": { @@ -4716,16 +4782,6 @@ "node": ">=6" } }, - "node_modules/jsonbird": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/jsonbird/-/jsonbird-2.2.2.tgz", - "integrity": "sha512-48n9HTL6Vxhr6WqX78ROH5NddK//ZnSdu1ZnPyyOl9IzF2PyRmwC8nCKPiRFo1wx7/Byq5YezCqokq9T/McLhw==", - "dependencies": { - "jsonparse": "^1.2.0", - "readable-stream": "^2.1.4", - "shortid": "^2.2.6" - } - }, "node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", @@ -4737,14 +4793,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "engines": [ - "node >= 0.2.0" - ] - }, "node_modules/karma": { "version": "6.4.4", "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.4.tgz", @@ -4801,135 +4849,6 @@ "which": "bin/which" } }, - "node_modules/karma-coverage": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", - "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", - "dependencies": { - "istanbul-lib-coverage": "^3.2.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.1", - "istanbul-reports": "^3.0.5", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/karma-coverage-istanbul-reporter": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", - "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^3.0.2", - "minimatch": "^3.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/mattlewis92" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/karma-coverage-istanbul-reporter/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/karma-coverage/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/karma-mocha": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", @@ -4938,44 +4857,6 @@ "minimist": "^1.2.3" } }, - "node_modules/karma-mocha-webworker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/karma-mocha-webworker/-/karma-mocha-webworker-1.3.0.tgz", - "integrity": "sha512-2DCnE7QkMblSHzm+ZphwdKgdURxoK4xrblNfryAB5PQ6ntpylY/dAGO1X0d1h+n6Qni8DT2AzpuwEfjpxAFHdg==", - "dependencies": { - "jsonbird": "^2.0.0", - "minimatch": "^3.0.3" - }, - "peerDependencies": { - "mocha": "*" - } - }, - "node_modules/karma-mocha-webworker/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/karma-rollup-preprocessor": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/karma-rollup-preprocessor/-/karma-rollup-preprocessor-7.0.8.tgz", - "integrity": "sha512-WiuBCS9qsatJuR17dghiTARBZ7LF+ml+eb7qJXhw7IbsdY0lTWELDRQC/93J9i6636CsAXVBL3VJF4WtaFLZzA==", - "dependencies": { - "chokidar": "^3.3.1", - "debounce": "^1.2.0" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "rollup": ">= 1.0.0" - } - }, "node_modules/karma-spec-reporter": { "version": "0.0.36", "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.36.tgz", @@ -5049,10 +4930,19 @@ "typescript": "1 || 2 || 3 || 4 || 5" } }, - "node_modules/karma-typescript/node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "node_modules/karma-typescript/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==" + }, + "node_modules/karma-typescript/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, "node_modules/karma-typescript/node_modules/diff": { "version": "4.0.4", @@ -5062,20 +4952,6 @@ "node": ">=0.3.1" } }, - "node_modules/karma-typescript/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/karma-typescript/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5095,27 +4971,6 @@ "node": ">=6" } }, - "node_modules/karma-typescript/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/karma-typescript/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/karma-typescript/node_modules/source-map": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", @@ -5124,6 +4979,20 @@ "node": ">= 12" } }, + "node_modules/karma/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==" + }, + "node_modules/karma/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/karma/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -5476,11 +5345,11 @@ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" }, "node_modules/minimatch": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz", - "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz", + "integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==", "dependencies": { - "@isaacs/brace-expansion": "^5.0.1" + "brace-expansion": "^5.0.2" }, "engines": { "node": "20 || >=22" @@ -5564,6 +5433,12 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "peer": true }, + "node_modules/mocha/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==", + "peer": true + }, "node_modules/mocha/node_modules/brace-expansion": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", @@ -5718,23 +5593,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -6279,14 +6137,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "engines": { - "node": ">=6" - } - }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -6566,30 +6416,16 @@ } }, "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==", - "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/readable-stream/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==" - }, - "node_modules/readable-stream/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==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { - "safe-buffer": "~5.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/readdirp": { @@ -6740,10 +6576,47 @@ "node": ">= 0.8" } }, + "node_modules/ripemd160/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/ripemd160/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==", + "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/ripemd160/node_modules/readable-stream/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==" + }, + "node_modules/ripemd160/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ripemd160/node_modules/string_decoder/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==" + }, "node_modules/rollup": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", - "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.58.0.tgz", + "integrity": "sha512-wbT0mBmWbIvvq8NeEYWWvevvxnOyhKChir47S66WCxw1SXqhw7ssIYejnQEVt7XYQpsj2y8F9PM+Cr3SNEa0gw==", "dependencies": { "@types/estree": "1.0.8" }, @@ -6755,31 +6628,31 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.57.1", - "@rollup/rollup-android-arm64": "4.57.1", - "@rollup/rollup-darwin-arm64": "4.57.1", - "@rollup/rollup-darwin-x64": "4.57.1", - "@rollup/rollup-freebsd-arm64": "4.57.1", - "@rollup/rollup-freebsd-x64": "4.57.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", - "@rollup/rollup-linux-arm-musleabihf": "4.57.1", - "@rollup/rollup-linux-arm64-gnu": "4.57.1", - "@rollup/rollup-linux-arm64-musl": "4.57.1", - "@rollup/rollup-linux-loong64-gnu": "4.57.1", - "@rollup/rollup-linux-loong64-musl": "4.57.1", - "@rollup/rollup-linux-ppc64-gnu": "4.57.1", - "@rollup/rollup-linux-ppc64-musl": "4.57.1", - "@rollup/rollup-linux-riscv64-gnu": "4.57.1", - "@rollup/rollup-linux-riscv64-musl": "4.57.1", - "@rollup/rollup-linux-s390x-gnu": "4.57.1", - "@rollup/rollup-linux-x64-gnu": "4.57.1", - "@rollup/rollup-linux-x64-musl": "4.57.1", - "@rollup/rollup-openbsd-x64": "4.57.1", - "@rollup/rollup-openharmony-arm64": "4.57.1", - "@rollup/rollup-win32-arm64-msvc": "4.57.1", - "@rollup/rollup-win32-ia32-msvc": "4.57.1", - "@rollup/rollup-win32-x64-gnu": "4.57.1", - "@rollup/rollup-win32-x64-msvc": "4.57.1", + "@rollup/rollup-android-arm-eabi": "4.58.0", + "@rollup/rollup-android-arm64": "4.58.0", + "@rollup/rollup-darwin-arm64": "4.58.0", + "@rollup/rollup-darwin-x64": "4.58.0", + "@rollup/rollup-freebsd-arm64": "4.58.0", + "@rollup/rollup-freebsd-x64": "4.58.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.58.0", + "@rollup/rollup-linux-arm-musleabihf": "4.58.0", + "@rollup/rollup-linux-arm64-gnu": "4.58.0", + "@rollup/rollup-linux-arm64-musl": "4.58.0", + "@rollup/rollup-linux-loong64-gnu": "4.58.0", + "@rollup/rollup-linux-loong64-musl": "4.58.0", + "@rollup/rollup-linux-ppc64-gnu": "4.58.0", + "@rollup/rollup-linux-ppc64-musl": "4.58.0", + "@rollup/rollup-linux-riscv64-gnu": "4.58.0", + "@rollup/rollup-linux-riscv64-musl": "4.58.0", + "@rollup/rollup-linux-s390x-gnu": "4.58.0", + "@rollup/rollup-linux-x64-gnu": "4.58.0", + "@rollup/rollup-linux-x64-musl": "4.58.0", + "@rollup/rollup-openbsd-x64": "4.58.0", + "@rollup/rollup-openharmony-arm64": "4.58.0", + "@rollup/rollup-win32-arm64-msvc": "4.58.0", + "@rollup/rollup-win32-ia32-msvc": "4.58.0", + "@rollup/rollup-win32-x64-gnu": "4.58.0", + "@rollup/rollup-win32-x64-msvc": "4.58.0", "fsevents": "~2.3.2" } }, @@ -6852,9 +6725,9 @@ "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" }, "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.57.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", - "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "version": "4.58.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.58.0.tgz", + "integrity": "sha512-+410Srdoh78MKSJxTQ+hZ/Mx+ajd6RjjPwBPNd0R3J9FtL6ZA0GqiiyNjCO9In0IzZkCNrpGymSfn+kgyPQocg==", "cpu": [ "x64" ], @@ -7028,14 +6901,6 @@ "node": ">=8" } }, - "node_modules/shortid": { - "version": "2.2.17", - "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.17.tgz", - "integrity": "sha512-GpbM3gLF1UUXZvQw6MCyulHkWbRseNO4cyBEZresZRorwl1+SLu1ZdqgVtuwqz8mB6RpwPkm541mYSqrKyJSaA==", - "dependencies": { - "nanoid": "^3.3.8" - } - }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -7357,19 +7222,6 @@ "readable-stream": "^3.5.0" } }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/stream-events": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", @@ -7389,19 +7241,6 @@ "xtend": "^4.0.2" } }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", @@ -7714,6 +7553,38 @@ "xtend": "~4.0.1" } }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/through2/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==", + "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/through2/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==" + }, + "node_modules/through2/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==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", @@ -7746,11 +7617,6 @@ "node": ">= 0.4" } }, - "node_modules/to-buffer/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7932,6 +7798,11 @@ "typedoc": "~0.28.0" } }, + "node_modules/typedoc/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==" + }, "node_modules/typedoc/node_modules/brace-expansion": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", diff --git a/common/test/worker-adapter.js b/common/test/worker-adapter.js new file mode 100644 index 0000000..0b064c1 --- /dev/null +++ b/common/test/worker-adapter.js @@ -0,0 +1,194 @@ +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + */ + +/** + * Worker Test Adapter - Runs in main page context + * Creates Web Worker, loads tests, and reports results to Karma + */ + +(function() { + 'use strict'; + + function initWorkerAdapter() { + var karma = window.__karma__; + + if (!karma) { + console.log('[worker-adapter] __karma__ not available yet, will retry'); + setTimeout(initWorkerAdapter, 50); + return; + } + + console.log('[worker-adapter] Starting worker test setup'); + + // Override mocha.run to prevent normal test execution and run tests in worker instead + if (window.mocha && typeof window.mocha.run === 'function') { + window.mocha.run = function() { + console.log('[worker-adapter] Mocha.run intercepted - running tests in worker'); + startWorkerTests(); + // Return a mock runner to satisfy Mocha's expectations + return { + on: function() { return this; } + }; + }; + } else { + console.log('[worker-adapter] Mocha not found'); + } + + function startWorkerTests() { + console.log('[worker-adapter] Initializing worker tests'); + + var bundleFiles = []; + var moduleShims = []; + var jsFiles = []; + var files = karma.files; + var mochaFile = null; + var commonjsFile = null; + + console.log('[worker-adapter] Total files from karma: ' + Object.keys(files).length); + + for (var file in files) { + if (!files.hasOwnProperty(file)) { + continue; + } + + // Collect karma-typescript bundles + if (/karma-typescript-bundle-.*\.js(\?|$)/.test(file)) { + bundleFiles.push(file); + continue; + } + + // Detect Mocha runtime file + if (!mochaFile && /\/node_modules\/mocha\/mocha\.js(\?|$)/.test(file)) { + mochaFile = file; + continue; + } + // Detect karma-typescript commonjs runtime file + if (!commonjsFile && /\/node_modules\/karma-typescript\/dist\/client\/commonjs\.js(\?|$)/.test(file)) { + commonjsFile = file; + continue; + } + // Collect all JS files + if (/\.js(\?|$)/.test(file) && file.indexOf('/base/') === 0) { + jsFiles.push(file); + continue; + } + + // Collect module shims + if (file.indexOf('/node_modules/@nevware21/ts-utils/dist/es5/main/ts-utils.js') !== -1) { + moduleShims.push({ name: 'ts-utils', file: file }); + continue; + } + + if (file.indexOf('/node_modules/@nevware21/ts-async/dist/es5/main/ts-async.js') !== -1) { + moduleShims.push({ name: 'ts-async', file: file }); + continue; + } + + if (file.indexOf('/node_modules/@nevware21/chromacon/dist/es5/main/chromacon.js') !== -1) { + moduleShims.push({ name: 'chromacon', file: file }); + continue; + } + } + + // Filter jsFiles to find test files, source files, and test support files + var testFiles = []; + var sourceFiles = []; + var testSupportFiles = []; + for (var i = 0; i < jsFiles.length; i++) { + if (/\/test\/src\/.*\.test\.js(\?|$)/.test(jsFiles[i])) { + testFiles.push(jsFiles[i]); + } else if (/^\/base\/src\/.*\.js(\?|$)/.test(jsFiles[i])) { + sourceFiles.push(jsFiles[i]); + } else if (/^\/base\/test\/src\/.*\.js(\?|$)/.test(jsFiles[i])) { + testSupportFiles.push(jsFiles[i]); + } + } + + console.log('[worker-adapter] Found ' + bundleFiles.length + ' bundle files, ' + sourceFiles.length + + ' source files, ' + testSupportFiles.length + ' support files, ' + testFiles.length + ' test files, and ' + + moduleShims.length + ' module shims'); + + // Find the worker runner + var workerScript = null; + for (var fileName in files) { + if (files.hasOwnProperty(fileName) && fileName.indexOf('worker-test-runner.js') !== -1) { + workerScript = fileName; + break; + } + } + + if (!workerScript) { + console.error('[worker-adapter] Could not find worker-test-runner.js'); + karma.error('[worker-test] Worker runner not found'); + karma.complete({}); + return; + } + + console.log('[worker-adapter] Found worker script at: ' + workerScript); + + // Create the worker + try { + var worker = new Worker(workerScript); + console.log('[worker-adapter] Worker created'); + + worker.onmessage = function(event) { + var msg = event.data; + + switch (msg.type) { + case 'log': + console.log('[worker] ' + msg.message); + break; + + case 'ready': + console.log('[worker-adapter] Worker ready, sending files'); + // Send all files: bundle, source, support, and test files + var filesToSend = bundleFiles.concat(sourceFiles, testSupportFiles, testFiles); + console.log('[worker-adapter] Sending ' + filesToSend.length + ' total files to worker'); + worker.postMessage({ + type: 'loadTests', + files: filesToSend, + entrypoints: [], + moduleShims: moduleShims, + basePath: (karma.config && karma.config.basePath) ? karma.config.basePath : '', + mochaUrl: mochaFile || '/base/node_modules/mocha/mocha.js', + commonjsUrl: commonjsFile || '/base/node_modules/karma-typescript/dist/client/commonjs.js' + }); + break; + + case 'result': + karma.result(msg.result); + break; + + case 'complete': + karma.complete(msg.coverage ? { coverage: msg.coverage } : {}); + break; + + case 'error': + console.error('[worker-adapter] Worker error: ' + msg.error); + karma.error('[worker-test] ' + msg.error); + karma.complete({}); + break; + } + }; + + worker.onerror = function(error) { + console.error('[worker-adapter] Worker error event: ' + error.message); + karma.error('[worker-test] Worker error: ' + error.message); + karma.complete({}); + }; + } catch (err) { + console.error('[worker-adapter] Failed to create worker: ' + err.message); + karma.error('[worker-test] Failed to create worker: ' + err.message); + karma.complete({}); + } + } + } + + // Start worker adapter initialization + initWorkerAdapter(); +})(); diff --git a/common/test/worker-test-runner.js b/common/test/worker-test-runner.js new file mode 100644 index 0000000..0f06aba --- /dev/null +++ b/common/test/worker-test-runner.js @@ -0,0 +1,215 @@ +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + */ + +/** + * Worker Test Runner - Runs in Web Worker context + * Loads and executes test files in worker environment + */ + +(function() { + 'use strict'; + + function sendMessage(msg) { + self.postMessage(msg); + } + + function workerLog(message) { + sendMessage({ + type: 'log', + message: message + }); + } + + self.onmessage = function(event) { + var msg = event.data; + + if (msg.type === 'loadTests') { + loadAndRunTests(msg); + } + }; + + function loadAndRunTests(payload) { + var files = payload.files || []; + var requestedEntrypoints = payload.entrypoints || []; + var moduleShims = payload.moduleShims || []; + var basePath = payload.basePath || ''; + var mochaUrl = payload.mochaUrl; + var commonjsUrl = payload.commonjsUrl; + + workerLog('Loading ' + files.length + ' files and running ' + requestedEntrypoints.length + ' entrypoints'); + + if (!mochaUrl || !commonjsUrl) { + sendMessage({ + type: 'error', + error: 'Missing mocha or commonjs runtime URL' + }); + return; + } + + try { + // Load Mocha into worker and expose BDD globals + importScripts(mochaUrl); + if (!self.mocha || !self.mocha.setup) { + throw new Error('Mocha did not load in worker'); + } + self.mocha.setup({ + ui: 'bdd', + reporter: function() {} + }); + + // Prepare karma-typescript runtime globals + self.wrappers = self.wrappers || {}; + + // Load UMD module shims and register wrappers + moduleShims.forEach(function(shim) { + importScripts(shim.file); + registerShimWrapper(shim.name, shim.file, basePath); + }); + + // Load all source + test wrappers + for (var i = 0; i < files.length; i++) { + importScripts(files[i]); + if (i % 50 === 0 || i === files.length - 1) { + workerLog('Loaded ' + (i + 1) + '/' + files.length + ' files'); + } + } + + // Resolve entrypoints from actual wrapper keys + var wrapperKeys = Object.keys(self.wrappers || {}); + workerLog('Available wrappers: ' + wrapperKeys.length); + if (wrapperKeys.length > 0) { + workerLog('Sample wrappers: ' + wrapperKeys.slice(0, 3).join(', ')); + } + var resolvedEntrypoints = wrapperKeys.filter(function(key) { + return /\/test\/src\/.*\.test\.(ts|js)$/.test(key); + }); + workerLog('Found ' + resolvedEntrypoints.length + ' test wrappers'); + if (resolvedEntrypoints.length === 0 && requestedEntrypoints.length > 0) { + workerLog('No wrapper entrypoints found; falling back to requested entrypoints'); + self.entrypointFilenames = requestedEntrypoints.slice(); + } else { + self.entrypointFilenames = resolvedEntrypoints; + } + + // Execute entrypoints via karma-typescript commonjs runtime + importScripts(commonjsUrl); + + // Run Mocha and report results back to Karma + var runner = self.mocha.run(); + + function getSuiteTitles(test) { + var titles = []; + var parent = test && test.parent; + + while (parent) { + if (parent.title) { + titles.unshift(parent.title); + } + parent = parent.parent; + } + + return titles; + } + + runner.on('pass', function(test) { + var suiteTitles = getSuiteTitles(test); + sendMessage({ + type: 'result', + result: { + description: test.title, + suite: suiteTitles, + success: true, + skipped: false, + time: test.duration, + log: [] + } + }); + }); + + runner.on('pending', function(test) { + var suiteTitles = getSuiteTitles(test); + sendMessage({ + type: 'result', + result: { + description: test.title, + suite: suiteTitles, + success: true, + skipped: true, + log: [] + } + }); + }); + + runner.on('fail', function(test, err) { + var suiteTitles = getSuiteTitles(test); + sendMessage({ + type: 'result', + result: { + description: test.title, + suite: suiteTitles, + success: false, + skipped: false, + log: [err && err.message ? err.message : 'Test failed'], + time: test.duration + } + }); + }); + + runner.on('end', function() { + sendMessage({ + type: 'complete', + coverage: self.__coverage__ + }); + }); + } catch (err) { + sendMessage({ + type: 'error', + error: err.message || String(err) + }); + } + } + + function registerShimWrapper(name, file, basePath) { + var exportsObj = resolveShimExport(name); + if (!exportsObj) { + workerLog('Shim export not found for ' + name); + return; + } + var absPath = toAbsolutePath(basePath, file); + self.wrappers[absPath] = [function(require, module, exports) { + module.exports = exportsObj; + }, absPath, {}]; + } + + function resolveShimExport(name) { + if (name === 'ts-utils') { + return self.nevware21 && self.nevware21['ts-utils']; + } + if (name === 'ts-async') { + return self.nevware21 && self.nevware21['ts-async']; + } + if (name === 'chromacon') { + return self.nevware21 && self.nevware21.chromacon; + } + return null; + } + + function toAbsolutePath(basePath, file) { + if (!basePath) { + return file; + } + var normalizedBase = basePath.replace(/\\/g, '/').replace(/\/$/, ''); + if (file.indexOf('/base/') === 0) { + return normalizedBase + file.substring('/base'.length); + } + return file; + } + + // Signal to adapter that worker is ready + sendMessage({ type: 'ready' }); +})(); diff --git a/core/karma.browser.conf.js b/core/karma.browser.conf.js index 0845a71..1403520 100644 --- a/core/karma.browser.conf.js +++ b/core/karma.browser.conf.js @@ -8,7 +8,7 @@ module.exports = function (config) { frameworks: [ "mocha", "karma-typescript" ], files: [ { pattern: "src/**/*.ts" }, - { pattern: "test/src/**/*.ts" } + { pattern: "test/src/!(node|worker)/**/*.ts" } // Exclude node and worker tests ], preprocessors: { "src/**/*.ts": [ "karma-typescript" ], @@ -29,7 +29,7 @@ module.exports = function (config) { /\.(d|spec|test)\.ts$/i, /index.ts$/i, /checkError\.ts$/i, - /\/node\_modules\//i + /\/node_modules\//i ] }, reports: { diff --git a/core/karma.debug.browser.conf.js b/core/karma.debug.browser.conf.js index 4504d50..fbfb473 100644 --- a/core/karma.debug.browser.conf.js +++ b/core/karma.debug.browser.conf.js @@ -9,7 +9,7 @@ module.exports = function (config) { frameworks: ["mocha", "karma-typescript"], files: [ { pattern: "src/**/*.ts" }, - { pattern: "test/src/**/*.ts" } + { pattern: "test/src/!(node|worker)/**/*.ts" } // Exclude node and worker tests ], preprocessors: { "src/**/*.ts": [ "karma-typescript" ], diff --git a/core/karma.debug.worker.conf.js b/core/karma.debug.worker.conf.js index 5d93cd7..c298850 100644 --- a/core/karma.debug.worker.conf.js +++ b/core/karma.debug.worker.conf.js @@ -1,59 +1,68 @@ -process.env.CHROME_BIN = require('puppeteer').executablePath() +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + * + * Fast worker debug configuration using: + * - karma-typescript for fast compilation (5 seconds for all files) + * - Custom worker-test framework for worker execution + * - Chrome with debugger (not headless) + */ + +// Default to using edge locally -- choose your own browser as required +process.env.CHROME_BIN = "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"; module.exports = function (config) { - const typescript = require("@rollup/plugin-typescript"); - const plugin = require("@rollup/plugin-node-resolve"); - const commonjs = require("@rollup/plugin-commonjs"); - config.set({ - browsers: ["Chromium_without_security"], + browsers: [ "Chromium_without_security" ], listenAddress: 'localhost', hostname: 'localhost', - frameworks: [ "mocha-webworker" ], + + // Use mocha + karma-typescript (same fast setup that works for browser) + frameworks: [ "mocha", "karma-typescript" ], + files: [ - { pattern: "src/**/*.ts", included: false }, - { pattern: "test/src/**/*.ts", included: false } + { pattern: "src/**/*.ts" }, + { pattern: "../common/test/worker-adapter.js" }, // Adapter intercepts mocha.run() + { pattern: "test/src/!(browser|node)/**/*.ts" }, // All test files + { pattern: "../common/test/worker-test-runner.js", included: false, served: true, watched: false } ], + preprocessors: { - "test/src/**/*.ts": [ "rollup" ] - }, - rollupPreprocessor: { - plugins: [ - typescript({ - tsconfig: "./test/tsconfig.worker.karma.json" - }), - plugin.nodeResolve({ - browser: true - }) - // commonjs() - ], - output: { - format: "iife", - dir: "./test-dist", - sourcemap: true - } + "src/**/*.ts": [ "karma-typescript" ], + "test/src/**/*.ts": [ "karma-typescript" ] }, - client: { - mochaWebWorker: { - pattern: [ - "test/**/*.js" - ] + + karmaTypescriptConfig: { + tsconfig: "./test/tsconfig.worker.karma.json", + compilerOptions: { + sourceMap: false, + inlineSourceMap: true, + inlineSources: true, + module: "commonjs" + }, + bundlerOptions: { + sourceMap: false + }, + coverageOptions: { + instrumentation: false, + sourceMap: true } }, - coverageIstanbulReporter: { - reports: ["html", "json"], - dir: "../.nyc_output" - }, - reporters: [ "spec", "coverage-istanbul" ], - - logLevel: config.LOG_INFO, + reporters: [ "spec" ], customLaunchers: { Chromium_without_security: { base: 'Chrome', - flags: ['--disable-web-security', '--disable-site-isolation-trials'] + flags: ['--disable-web-security', '--disable-site-isolation-trials', '--no-sandbox'] } - } - }) -}; \ No newline at end of file + }, + + logLevel: config.LOG_INFO, + captureTimeout: 60000, + browserNoActivityTimeout: 60000 + }); +}; diff --git a/core/karma.worker.conf.js b/core/karma.worker.conf.js index 7dedc5a..be404d5 100644 --- a/core/karma.worker.conf.js +++ b/core/karma.worker.conf.js @@ -1,63 +1,61 @@ -process.env.CHROME_BIN = require('puppeteer').executablePath() +process.env.CHROME_BIN = require('puppeteer').executablePath(); module.exports = function (config) { - const typescript = require("@rollup/plugin-typescript"); - const plugin = require("@rollup/plugin-node-resolve"); - const commonjs = require("@rollup/plugin-commonjs"); - const istanbul = require("rollup-plugin-istanbul"); config.set({ browsers: [ "Chromium_without_security" ], listenAddress: 'localhost', hostname: 'localhost', - frameworks: [ "mocha-webworker" ], + + // Use mocha + karma-typescript (same fast setup that works for browser) + frameworks: [ "mocha", "karma-typescript" ], + files: [ - { pattern: "src/**/*.ts", included: false }, - { pattern: "test/src/**/*.ts", included: false } + { pattern: "src/**/*.ts" }, + { pattern: "../common/test/worker-adapter.js" }, // Adapter intercepts mocha.run() + { pattern: "test/src/!(browser|node)/**/*.ts" }, // All test files + { pattern: "../common/test/worker-test-runner.js", included: false, served: true, watched: false } ], + preprocessors: { - "test/src/**/*.ts": [ "rollup" ] + "src/**/*.ts": [ "karma-typescript" ], + "test/src/**/*.ts": [ "karma-typescript" ] }, - rollupPreprocessor: { - plugins: [ - typescript({ - tsconfig: "./test/tsconfig.worker.karma.json" - }), - plugin.nodeResolve({ - browser: true - }), - //commonjs(), - istanbul({ - exclude: [ - "**/index.ts", - "**/test/**", - "**/checkError.ts", - "**/node_modules/**" - ] - }) - ], - output: { - format: "iife", - dir: "./test-dist", - sourcemap: true - } - }, - client: { - mochaWebWorker: { - pattern: [ - "test/src/**/*.js" + + karmaTypescriptConfig: { + tsconfig: "./test/tsconfig.worker.karma.json", + compilerOptions: { + sourceMap: false, + inlineSourceMap: false, + inlineSources: false, + module: "commonjs" + }, + bundlerOptions: { + sourceMap: false + }, + coverageOptions: { + instrumentation: true, + exclude: [ + /\.(d|spec|test)\.ts$/i, + /index\.ts$/i, + /checkError\.ts$/i, + /\/node_modules\//i ] + }, + reports: { + "html": { + "directory": "./coverage/worker", + "subdirectory": "./html" + }, + "json": { + "directory": "./coverage/worker", + "subdirectory": "./", + "filename": "coverage-final.json" + }, + "text": "" } }, - coverageReporter: { - dir: "./coverage/worker", - includeAllSources: true, - reporters: [ - { type: "text" }, - { type: "html", subdir: "html" }, - { type: "json", subdir: "./", file: "coverage-final.json" } - ] - }, - reporters: ["spec", "coverage" ], + + reporters: [ "spec", "karma-typescript" ], customLaunchers: { Chromium_without_security: { @@ -66,6 +64,8 @@ module.exports = function (config) { } }, - logLevel: config.LOG_DEBUG - }) -}; \ No newline at end of file + logLevel: config.LOG_INFO, + captureTimeout: 60000, + browserNoActivityTimeout: 60000 + }); +}; diff --git a/core/package.json b/core/package.json index cd934ed..413dabd 100644 --- a/core/package.json +++ b/core/package.json @@ -26,11 +26,11 @@ "rebuild": "npm run build && npm run test", "package": "rollup -c rollup.config.js --bundleConfigAsCjs", "test": "grunt tripwire-test && npm run test:node && npm run test:browser && npm run test:worker && npm run coverage:report", - "test:node": "nyc ts-mocha --type-check -p ./test/tsconfig.test.json ./test/**/*.test.ts --trace-uncaught", + "test:node": "nyc ts-mocha --type-check -p ./test/tsconfig.test.json \"./test/src/!(browser|worker)/**/*.test.ts\" --trace-uncaught", "test:browser": "karma start karma.browser.conf.js --single-run", - "test:worker": "cross-env NODE_OPTIONS=--max-old-space-size=16384 karma start karma.worker.conf.js --single-run", + "test:worker": "karma start karma.worker.conf.js --single-run", "debug:browser": "karma start karma.debug.browser.conf.js --watch", - "debug:worker": "cross-env NODE_OPTIONS=--max-old-space-size=16384 karma start karma.debug.worker.conf.js --watch", + "debug:worker": "karma start karma.debug.worker.conf.js --watch", "lint": "grunt tripwire-lint", "coverage:report": "npm run coverage:nyc && npm run coverage:merge", "coverage:nyc": "nyc report --reporter=json", @@ -60,8 +60,7 @@ "dependencies": { "@nevware21/ts-utils": ">= 0.12.6 < 2.x", "@nevware21/ts-async": ">= 0.5.4 < 2.x", - "@nevware21/chromacon": ">= 0.1.3 < 2.x", - "tslib": "^2.3.0" + "@nevware21/chromacon": ">= 0.1.3 < 2.x" }, "devDependencies": { "@microsoft/api-extractor": "^7.34.4", @@ -80,13 +79,9 @@ "grunt-cli": "^1.4.3", "karma": "^6.3.20", "karma-chrome-launcher": "^3.1.1", - "karma-coverage-istanbul-reporter": "^3.0.3", "karma-mocha": "^2.0.1", - "karma-mocha-webworker": "^1.3.0", - "karma-rollup-preprocessor": "^7.0.8", "karma-spec-reporter": "^0.0.36", "karma-typescript": "^5.5.3", - "karma-coverage": "^2.2.0", "puppeteer": "^24.4.0", "rollup": "^4.54.0", "rollup-plugin-minify-es": "^1.1.1", diff --git a/core/test/src/assert/expect.isIterable.ts b/core/test/src/assert/expect.isIterable.test.ts similarity index 100% rename from core/test/src/assert/expect.isIterable.ts rename to core/test/src/assert/expect.isIterable.test.ts diff --git a/core/test/src/browser/isBrowser.test.ts b/core/test/src/browser/isBrowser.test.ts new file mode 100644 index 0000000..f4a7438 --- /dev/null +++ b/core/test/src/browser/isBrowser.test.ts @@ -0,0 +1,30 @@ +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + */ + +import { hasDocument, hasWindow, isNode, isWebWorker } from "@nevware21/ts-utils"; +import { assert } from "../../../src/assert/assertClass"; + +// Define the test suite +describe("** Ensure running in a browser environment **", () => { + + it("hasWindow", () => { + assert.equal(hasWindow(), true, "Validate that we have a window object available"); + }); + + it("hasDocument", () => { + assert.equal(hasDocument(), true, "Validate that we have a document object available"); + }); + + it("not isNode", () => { + assert.equal(isNode(), false, "Validate that we are not running in a node environment"); + }); + + it ("not isWorker", () => { + assert.equal(isWebWorker(), false, "Validate that we are not running in a worker environment"); + }); +}); \ No newline at end of file diff --git a/core/test/src/node/isNode.test.ts b/core/test/src/node/isNode.test.ts new file mode 100644 index 0000000..1684130 --- /dev/null +++ b/core/test/src/node/isNode.test.ts @@ -0,0 +1,29 @@ +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + */ + +import { hasDocument, hasWindow, isNode, isWebWorker } from "@nevware21/ts-utils"; +import { assert } from "../../../src/assert/assertClass"; + +// Define the test suite +describe("** Ensure we are running in a node environment **", () => { + it("not hasWindow", () => { + assert.equal(hasWindow(), false, "Validate that we do not have a window object available"); + }); + + it("not hasDocument", () => { + assert.equal(hasDocument(), false, "Validate that we do not have a document object available"); + }); + + it("isNode", () => { + assert.equal(isNode(), true, "Validate that we are running in a node environment"); + }); + + it ("not isWorker", () => { + assert.equal(isWebWorker(), false, "Validate that we are not running in a worker environment"); + }); +}); \ No newline at end of file diff --git a/core/test/src/operations/includeOp.edgeCases.test.ts b/core/test/src/operations/includeOp.edgeCases.test.ts index 14bb2a3..780c386 100644 --- a/core/test/src/operations/includeOp.edgeCases.test.ts +++ b/core/test/src/operations/includeOp.edgeCases.test.ts @@ -6,7 +6,7 @@ * Licensed under the MIT license. */ -import { assert, expect } from "../../../src/index"; +import { expect } from "../../../src/index"; import { createAssertScope } from "../../../src/assert/assertScope"; import { includeOp, deepIncludeOp, ownIncludeOp, deepOwnIncludeOp } from "../../../src/assert/ops/includeOp"; import { createContext } from "../../../src/assert/scopeContext"; diff --git a/core/test/src/worker/isWorker.test.ts b/core/test/src/worker/isWorker.test.ts new file mode 100644 index 0000000..dea3a82 --- /dev/null +++ b/core/test/src/worker/isWorker.test.ts @@ -0,0 +1,31 @@ +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + */ + +import { hasDocument, hasWindow, isNode, isWebWorker } from "@nevware21/ts-utils"; +import { assert } from "../../../src/assert/assertClass"; + +// Define the test suite +describe("** Ensure we are running in a web worker environment **", () => { + + it("not hasWindow", () => { + assert.equal(hasWindow(), false, "Validate that we do not have a window object available"); + }); + + it("not hasDocument", () => { + assert.equal(hasDocument(), false, "Validate that we do not have a document object available"); + }); + + it("not isNode", () => { + assert.equal(isNode(), false, "Validate that we are not running in a node environment"); + }); + + it ("isWorker", () => { + assert.equal(isWebWorker(), true, "Validate that we are running in a worker environment"); + }); +}); + diff --git a/core/tsconfig.json b/core/tsconfig.json index 2c9a7c4..d4e5f59 100644 --- a/core/tsconfig.json +++ b/core/tsconfig.json @@ -7,7 +7,7 @@ "moduleResolution": "node", "target": "es5", "forceConsistentCasingInFileNames": true, - "importHelpers": true, + "importHelpers": false, "noEmitHelpers": false, "alwaysStrict": true, "declaration": false, diff --git a/shim/chai/karma.browser.conf.js b/shim/chai/karma.browser.conf.js index 735f565..7938831 100644 --- a/shim/chai/karma.browser.conf.js +++ b/shim/chai/karma.browser.conf.js @@ -8,10 +8,11 @@ module.exports = function (config) { frameworks: [ "mocha", "karma-typescript" ], files: [ { pattern: "src/**/*.ts" }, - { pattern: "test/src/**/*.ts" } + { pattern: "test/src/!(node|worker)/**/*.ts" } // Exclude node and worker tests ], preprocessors: { - "**/*.ts": [ "karma-typescript" ] + "src/**/*.ts": [ "karma-typescript" ], + "test/src/**/*.ts": [ "karma-typescript" ] }, karmaTypescriptConfig: { tsconfig: "./test/tsconfig.browser.karma.json", @@ -26,7 +27,9 @@ module.exports = function (config) { sourceMap: true, exclude: [ /\.(d|spec|test)\.ts$/i, - /index.ts$/i + /index.ts$/i, + /globalErr\.ts$/i, + /\/node\_modules\//i ] }, reports: { diff --git a/shim/chai/karma.debug.browser.conf.js b/shim/chai/karma.debug.browser.conf.js index 4504d50..4044153 100644 --- a/shim/chai/karma.debug.browser.conf.js +++ b/shim/chai/karma.debug.browser.conf.js @@ -9,7 +9,7 @@ module.exports = function (config) { frameworks: ["mocha", "karma-typescript"], files: [ { pattern: "src/**/*.ts" }, - { pattern: "test/src/**/*.ts" } + { pattern: "test/src/!(node|worker)/**/*.ts" } ], preprocessors: { "src/**/*.ts": [ "karma-typescript" ], diff --git a/shim/chai/karma.debug.worker.conf.js b/shim/chai/karma.debug.worker.conf.js index ec2fea2..0a7dcb8 100644 --- a/shim/chai/karma.debug.worker.conf.js +++ b/shim/chai/karma.debug.worker.conf.js @@ -1,57 +1,55 @@ -process.env.CHROME_BIN = require('puppeteer').executablePath() +// Default to using edge locally -- choose your own browser as required +process.env.CHROME_BIN = "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe"; +//process.env.CHROME_BIN = require('puppeteer').executablePath(); module.exports = function (config) { - const typescript = require("@rollup/plugin-typescript"); - const plugin = require("@rollup/plugin-node-resolve"); - const commonjs = require("@rollup/plugin-commonjs"); config.set({ - browsers: ["Chromium_without_security"], + browsers: [ "Chromium_without_security" ], listenAddress: 'localhost', hostname: 'localhost', - frameworks: [ "mocha-webworker" ], + // Use mocha + karma-typescript (same fast setup that works for browser) + frameworks: [ "mocha", "karma-typescript" ], + files: [ - { pattern: "test/src/**/*.ts", included: false } + { pattern: "src/**/*.ts" }, + { pattern: "../../common/test/worker-adapter.js" }, // Adapter intercepts mocha.run() + { pattern: "test/src/!(browser|node)/**/*.ts" }, // All test files + { pattern: "../../common/test/worker-test-runner.js", included: false, served: true, watched: false } ], + preprocessors: { - "**/*.ts": [ "rollup" ] + "src/**/*.ts": [ "karma-typescript" ], + "test/src/**/*.ts": [ "karma-typescript" ] }, - rollupPreprocessor: { - plugins: [ - typescript({ - tsconfig: "./test/tsconfig.worker.karma.json" - }), - plugin.nodeResolve({ - browser: true - }), - commonjs() - ], - output: { - format: "iife", - dir: "./test-dist", - sourcemap: true + + karmaTypescriptConfig: { + tsconfig: "./test/tsconfig.worker.karma.json", + compilerOptions: { + sourceMap: false, + inlineSourceMap: true, + inlineSources: true, + module: "commonjs" + }, + bundlerOptions: { + sourceMap: false + }, + coverageOptions: { + instrumentation: false, + sourceMap: true } }, - client: { - mochaWebWorker: { - pattern: [ - "test/**/*.js" - ] - } - }, - coverageIstanbulReporter: { - reports: ["html", "json"], - dir: "../.nyc_output" - }, - - reporters: [ "spec", "coverage-istanbul" ], - logLevel: config.LOG_INFO, + reporters: [ "spec" ], customLaunchers: { Chromium_without_security: { base: 'Chrome', - flags: ['--disable-web-security', '--disable-site-isolation-trials'] + flags: ['--disable-web-security', '--disable-site-isolation-trials', '--no-sandbox'] } - } - }) + }, + + logLevel: config.LOG_INFO, + captureTimeout: 60000, + browserNoActivityTimeout: 60000 + }); }; \ No newline at end of file diff --git a/shim/chai/karma.worker.conf.js b/shim/chai/karma.worker.conf.js index 953255d..516a533 100644 --- a/shim/chai/karma.worker.conf.js +++ b/shim/chai/karma.worker.conf.js @@ -1,58 +1,60 @@ -process.env.CHROME_BIN = require('puppeteer').executablePath() +process.env.CHROME_BIN = require('puppeteer').executablePath(); module.exports = function (config) { - const typescript = require("@rollup/plugin-typescript"); - const plugin = require("@rollup/plugin-node-resolve"); - const commonjs = require("@rollup/plugin-commonjs"); - const istanbul = require("rollup-plugin-istanbul"); config.set({ browsers: [ "Chromium_without_security" ], listenAddress: 'localhost', hostname: 'localhost', - frameworks: [ "mocha-webworker" ], + // Use mocha + karma-typescript (same fast setup that works for browser) + frameworks: [ "mocha", "karma-typescript" ], + files: [ - { pattern: "src/**/*.ts", included: false }, - { pattern: "test/src/**/*.ts", included: false } + { pattern: "src/**/*.ts" }, + { pattern: "../../common/test/worker-adapter.js" }, // Adapter intercepts mocha.run() + { pattern: "test/src/!(browser|node)/**/*.ts" }, // All test files + { pattern: "../../common/test/worker-test-runner.js", included: false, served: true, watched: false } ], + preprocessors: { - "**/*.ts": [ "rollup" ] + "src/**/*.ts": [ "karma-typescript" ], + "test/src/**/*.ts": [ "karma-typescript" ] }, - rollupPreprocessor: { - plugins: [ - typescript({ - tsconfig: "./test/tsconfig.worker.karma.json" - }), - plugin.nodeResolve({ - browser: true - }), - commonjs(), - istanbul({ - exclude: [ "**/test/**", "**/node_modules/**" ] - }) - ], - output: { - format: "iife", - dir: "../test-dist", - sourcemap: true - } - }, - client: { - mochaWebWorker: { - pattern: [ - "test/src/**/*.js", + + karmaTypescriptConfig: { + tsconfig: "./test/tsconfig.worker.karma.json", + compilerOptions: { + sourceMap: false, + inlineSourceMap: false, + inlineSources: false, + module: "commonjs" + }, + bundlerOptions: { + sourceMap: false + }, + coverageOptions: { + instrumentation: true, + exclude: [ + /\.(d|spec|test)\.ts$/i, + /index\.ts$/i, + /globalErr\.ts$/i, + /\/node_modules\//i ] + }, + reports: { + "html": { + "directory": "./coverage/worker", + "subdirectory": "./html" + }, + "json": { + "directory": "./coverage/worker", + "subdirectory": "./", + "filename": "coverage-final.json" + }, + "text": "" } }, - coverageReporter: { - dir: "./coverage/worker", - includeAllSources: true, - reporters: [ - { type: "text" }, - { type: "html", subdir: "html" }, - { type: "json", subdir: "./", file: "coverage-final.json" } - ], - }, - reporters: ["spec", "coverage" ], + + reporters: [ "spec", "karma-typescript" ], customLaunchers: { Chromium_without_security: { @@ -61,6 +63,8 @@ module.exports = function (config) { } }, - logLevel: config.LOG_DEBUG - }) + logLevel: config.LOG_INFO, + captureTimeout: 60000, + browserNoActivityTimeout: 60000 + }); }; \ No newline at end of file diff --git a/shim/chai/package.json b/shim/chai/package.json index 2f75415..e92fa45 100644 --- a/shim/chai/package.json +++ b/shim/chai/package.json @@ -27,11 +27,11 @@ "rebuild": "npm run build && npm run test", "package": "rollup -c rollup.config.js --bundleConfigAsCjs", "test": "grunt tripwire-chai-test --debug && npm run test:node && npm run test:browser && npm run test:worker && npm run coverage:report", - "test:node": "nyc ts-mocha --type-check -p ./test/tsconfig.test.json ./test/**/*.test.ts --trace-uncaught", + "test:node": "nyc ts-mocha --type-check -p ./test/tsconfig.test.json \"./test/src/!(browser|worker)/**/*.test.ts\" --trace-uncaught", "test:browser": "karma start karma.browser.conf.js --single-run", - "test:worker": "cross-env NODE_OPTIONS=--max-old-space-size=8192 karma start karma.worker.conf.js --single-run", + "test:worker": "karma start karma.worker.conf.js --single-run", "debug:browser": "karma start karma.debug.browser.conf.js --watch", - "debug:worker": "cross-env NODE_OPTIONS=--max-old-space-size=8192 karma start karma.debug.worker.conf.js --watch", + "debug:worker": "karma start karma.debug.worker.conf.js --watch", "lint": "grunt tripwire-chai-lint", "coverage:report": "npm run coverage:nyc && npm run coverage:merge", "coverage:nyc": "nyc report --reporter=json", @@ -66,25 +66,23 @@ "devDependencies": { "@microsoft/api-extractor": "^7.34.4", "@nevware21/coverage-tools": "^0.1.3", + "@nevware21/publish-npm": "^0.1.3", "@rollup/plugin-commonjs": "^28.0.9", "@rollup/plugin-json": "^6.0.0", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/plugin-strip": "^3.0.2", "@rollup/plugin-typescript": "^12.2.0", "@types/mocha": "^10.0.1", + "@types/node": "^25.0.3", "codecov": "^3.8.3", "cross-env": "^10.1.0", "grunt": "^1.5.3", "grunt-cli": "^1.4.3", "karma": "^6.3.20", "karma-chrome-launcher": "^3.1.1", - "karma-coverage-istanbul-reporter": "^3.0.3", "karma-mocha": "^2.0.1", - "karma-mocha-webworker": "^1.3.0", - "karma-rollup-preprocessor": "^7.0.8", "karma-spec-reporter": "^0.0.36", "karma-typescript": "^5.5.3", - "karma-coverage": "^2.2.0", "puppeteer": "^24.4.0", "rollup": "^4.54.0", "rollup-plugin-minify-es": "^1.1.1", @@ -99,5 +97,3 @@ } } - - diff --git a/shim/chai/test/src/browser/isBrowser.test.ts b/shim/chai/test/src/browser/isBrowser.test.ts new file mode 100644 index 0000000..c90b407 --- /dev/null +++ b/shim/chai/test/src/browser/isBrowser.test.ts @@ -0,0 +1,30 @@ +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + */ + +import { assert } from "@nevware21/tripwire"; +import { hasDocument, hasWindow, isNode, isWebWorker } from "@nevware21/ts-utils"; + +// Define the test suite +describe("** Ensure running in a browser environment **", () => { + + it("hasWindow", () => { + assert.equal(hasWindow(), true, "Validate that we have a window object available"); + }); + + it("hasDocument", () => { + assert.equal(hasDocument(), true, "Validate that we have a document object available"); + }); + + it("not isNode", () => { + assert.equal(isNode(), false, "Validate that we are not running in a node environment"); + }); + + it ("not isWorker", () => { + assert.equal(isWebWorker(), false, "Validate that we are not running in a worker environment"); + }); +}); \ No newline at end of file diff --git a/shim/chai/test/src/chaiAssert.test.ts b/shim/chai/test/src/chai/chaiAssert.test.ts similarity index 99% rename from shim/chai/test/src/chaiAssert.test.ts rename to shim/chai/test/src/chai/chaiAssert.test.ts index f5089a3..2aef078 100644 --- a/shim/chai/test/src/chaiAssert.test.ts +++ b/shim/chai/test/src/chai/chaiAssert.test.ts @@ -13,9 +13,9 @@ */ import { assertConfig } from "@nevware21/tripwire"; -import { assert } from "../../src/index"; -import { globalErr as err } from "./bootstrap/globalErr"; +import { globalErr as err } from "../bootstrap/globalErr"; import { createCustomError, CustomErrorConstructor as TsCustomErrorConstructor } from "@nevware21/ts-utils"; +import { chaiAssert as assert } from "../../../src/assert/chaiAssert"; export interface CustomError extends Error { } diff --git a/shim/chai/test/src/node/isNode.test.ts b/shim/chai/test/src/node/isNode.test.ts new file mode 100644 index 0000000..5b79053 --- /dev/null +++ b/shim/chai/test/src/node/isNode.test.ts @@ -0,0 +1,29 @@ +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + */ + +import { assert } from "@nevware21/tripwire"; +import { hasDocument, hasWindow, isNode, isWebWorker } from "@nevware21/ts-utils"; + +// Define the test suite +describe("** Ensure we are running in a node environment **", () => { + it("not hasWindow", () => { + assert.equal(hasWindow(), false, "Validate that we do not have a window object available"); + }); + + it("not hasDocument", () => { + assert.equal(hasDocument(), false, "Validate that we do not have a document object available"); + }); + + it("isNode", () => { + assert.equal(isNode(), true, "Validate that we are running in a node environment"); + }); + + it ("not isWorker", () => { + assert.equal(isWebWorker(), false, "Validate that we are not running in a worker environment"); + }); +}); \ No newline at end of file diff --git a/shim/chai/test/src/worker/isWorker.test.ts b/shim/chai/test/src/worker/isWorker.test.ts new file mode 100644 index 0000000..9a38e37 --- /dev/null +++ b/shim/chai/test/src/worker/isWorker.test.ts @@ -0,0 +1,31 @@ +/* + * @nevware21/tripwire + * https://github.com/nevware21/tripwire + * + * Copyright (c) 2026 NevWare21 Solutions LLC + * Licensed under the MIT license. + */ + +import { assert } from "@nevware21/tripwire"; +import { hasDocument, hasWindow, isNode, isWebWorker } from "@nevware21/ts-utils"; + +// Define the test suite +describe("** Ensure we are running in a web worker environment **", () => { + + it("not hasWindow", () => { + assert.equal(hasWindow(), false, "Validate that we do not have a window object available"); + }); + + it("not hasDocument", () => { + assert.equal(hasDocument(), false, "Validate that we do not have a document object available"); + }); + + it("not isNode", () => { + assert.equal(isNode(), false, "Validate that we are not running in a node environment"); + }); + + it ("isWorker", () => { + assert.equal(isWebWorker(), true, "Validate that we are running in a worker environment"); + }); +}); + diff --git a/shim/chai/test/tsconfig.worker.karma.json b/shim/chai/test/tsconfig.worker.karma.json index 40629ea..8fc7c0f 100644 --- a/shim/chai/test/tsconfig.worker.karma.json +++ b/shim/chai/test/tsconfig.worker.karma.json @@ -10,6 +10,7 @@ "importHelpers": false, "noEmitHelpers": false, "alwaysStrict": true, + "declaration": false, "allowSyntheticDefaultImports": true, "removeComments": true, "esModuleInterop": true diff --git a/shim/chai/tsconfig.json b/shim/chai/tsconfig.json index 2c9a7c4..d4e5f59 100644 --- a/shim/chai/tsconfig.json +++ b/shim/chai/tsconfig.json @@ -7,7 +7,7 @@ "moduleResolution": "node", "target": "es5", "forceConsistentCasingInFileNames": true, - "importHelpers": true, + "importHelpers": false, "noEmitHelpers": false, "alwaysStrict": true, "declaration": false, diff --git a/shim/chai/typedoc.json b/shim/chai/typedoc.json index 3035bd7..44b6f70 100644 --- a/shim/chai/typedoc.json +++ b/shim/chai/typedoc.json @@ -20,6 +20,7 @@ "includeVersion": true, "groupOrder": [ "Entrypoint", + "Assert", "Modules", "Namespaces", "Enumerations",