From 202865927f94041d168cefe0c40508c4659963ad Mon Sep 17 00:00:00 2001 From: eight04 Date: Fri, 15 Nov 2024 23:09:23 +0800 Subject: [PATCH 1/3] Bump deps --- package-lock.json | 957 ++++++++++++++++++++-------------------------- package.json | 2 +- test/test.js | 55 ++- 3 files changed, 457 insertions(+), 557 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2c90ac7..89c02ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@eslint/js": "^9.9.0", - "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-commonjs": "^28.0.1", "c8": "^10.1.2", "endent": "^2.1.0", "eslint": "^9.5.0", @@ -37,17 +37,20 @@ "license": "MIT" }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "eslint-visitor-keys": "^3.4.3" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, + "funding": { + "url": "https://opencollective.com/eslint" + }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } @@ -66,9 +69,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -76,9 +79,9 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.17.1.tgz", - "integrity": "sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -90,6 +93,16 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/core": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", @@ -128,9 +141,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.0.tgz", - "integrity": "sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", + "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", "dev": true, "license": "MIT", "engines": { @@ -147,6 +160,57 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -162,9 +226,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -194,9 +258,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "license": "MIT", "engines": { @@ -206,6 +270,44 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -222,6 +324,24 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -259,44 +379,6 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -309,18 +391,19 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "26.0.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz", - "integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==", + "version": "28.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.1.tgz", + "integrity": "sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==", "dev": true, "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", "estree-walker": "^2.0.2", - "glob": "^10.4.1", + "fdir": "^6.2.0", "is-reference": "1.2.1", - "magic-string": "^0.30.3" + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" }, "engines": { "node": ">=16.0.0 || 14 >= 14.17" @@ -352,14 +435,14 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", - "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", + "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "picomatch": "^4.0.2" }, "engines": { "node": ">=14.0.0" @@ -380,9 +463,9 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", - "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.0.tgz", + "integrity": "sha512-e312hTjuM89YLqlcqEs7mSvwhxN5pgXqRobUob7Jsz1wDQlpAb2WTX4jzvrx5NrL1h2SE4fGdHSNyPxbLfzyeA==", "cpu": [ "arm" ], @@ -394,9 +477,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", - "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.0.tgz", + "integrity": "sha512-cBUOny8GNXP++gN00Bo5L04I2oqUEFAU0OSDb+4hqp4/R/pZL/zlGzp7lJkhtPX52Rj+PIe0S8aOqhK4hztxHQ==", "cpu": [ "arm64" ], @@ -408,9 +491,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", - "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.0.tgz", + "integrity": "sha512-aauK2M2ptFQQYdOqbKGYCg1LHlPbm6IxepSnHLLaMIGcd9YBiKRGl2+KtzQL/IkurP+b54EKBkvtZaWXijmzfQ==", "cpu": [ "arm64" ], @@ -422,9 +505,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", - "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.0.tgz", + "integrity": "sha512-VAjOnHUwpvxf3XT33sMpsLGKq24Rz1sTQhLuUicYrV9pxB4TNi0w11qAGPOyR+dQu/iZf88DmEmG0+2Gaqa1gg==", "cpu": [ "x64" ], @@ -435,10 +518,38 @@ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.0.tgz", + "integrity": "sha512-I2eRlZG87gl6WxP6PvSB5bfFA1btE7tWnG6QAoEU/0Gr47f6KaxRwiRfBujHlzkuMPqtpTlSOW4aOEOyMtQqfg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.0.tgz", + "integrity": "sha512-G05JNYFdjikD/2hJTf1gHdD5KjI2TotjiDn17amHtB5JgwrRF1EA9hJ3TRGIvT3zGXilNWWlR71R/2TT1pXRDg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", - "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.0.tgz", + "integrity": "sha512-FMXxMZ7qnMULwgdmGSFVlOduAhFyqDPoK1A2Q8HBkzGYX9SMFU3ITKfLdIiCzTaaj/pt1OiEbpF2szUw6Kh++Q==", "cpu": [ "arm" ], @@ -450,9 +561,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", - "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.0.tgz", + "integrity": "sha512-0315TiPsJfOY+jAwEeqxcy9yVcAy/jg99GrMcd/L7CRESzi1vhyLPbnkDnz7giaEttSRf/d3llJYfoC+44Nl3A==", "cpu": [ "arm" ], @@ -464,9 +575,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", - "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.0.tgz", + "integrity": "sha512-4zCKY5E9djPyHzvoCWIouFsuAvg+dk+rNia8lz1bjKpzKz02QvK4JPHyjcDT8CFR2J/aA98WccCirdDOy+VDWQ==", "cpu": [ "arm64" ], @@ -478,9 +589,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", - "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.0.tgz", + "integrity": "sha512-6St9rrPSLbYBbbJAClpU4gmnO7cdZCMMzx2MT0UCIIIevoLAmsCDOAG6t3J/RgN4CPUpdaGr/UnPqQTHZ4oDwA==", "cpu": [ "arm64" ], @@ -492,9 +603,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", - "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.0.tgz", + "integrity": "sha512-dIBfp8NDrgvwUJxyqFv7501coIba+7xxBJy1gQEF0RGkIKa3Tq0Mh3sF9hmstDLtaMt7gL2aXsCNG9SCKyVVZg==", "cpu": [ "ppc64" ], @@ -506,9 +617,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", - "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.0.tgz", + "integrity": "sha512-Pu7xLHRy+5UjFCKR/vWsbFmiBYUC9993v99YoKWhAgK4VsdNuWHPs17NuCJEtVsZpYCNVPbRyBpQw58Ma8BmeA==", "cpu": [ "riscv64" ], @@ -520,9 +631,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", - "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.0.tgz", + "integrity": "sha512-2Q9qQnk/eWdvXzzHl22y7tpDHREppFUh7N6cCs70HZEbQSgB7wd/2S/B05SSiyAiIn5BL+fYiASLds5bz0IQFw==", "cpu": [ "s390x" ], @@ -534,9 +645,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", - "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.0.tgz", + "integrity": "sha512-CNnqMZ4Yz0Ga0A75qux7DNChq0P9oAWn2S7yjZPRC+AaEF8Ysw5K/1lzT25/a3reJ4V2abcShIVG+tfZHb1UrQ==", "cpu": [ "x64" ], @@ -548,9 +659,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", - "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.0.tgz", + "integrity": "sha512-dS1+eCbbao54XB+wLW6uuwRkChq4L0UfKhd3wvt6s+EN1rTIi24ee5Lk3HfRGq9J2jsRm12/AGKLA0kd82Sp/g==", "cpu": [ "x64" ], @@ -562,9 +673,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", - "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.0.tgz", + "integrity": "sha512-VrYQHY5+Y71OU/uOSRE9lLhph16bbuWGrMwGwZDPxCUXUW5NgLA+K+q0kv7rafHRlnrsZSVcMOkZskzTNnR3ZQ==", "cpu": [ "arm64" ], @@ -576,9 +687,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", - "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.0.tgz", + "integrity": "sha512-LCqk4Xi3e4GzLqaq+QDM7gP5DtJ/RgWMzV3U2brwp/vEz9RTA5YBgIDP69xYfrTXexes6xPsOIquy79+kLifiA==", "cpu": [ "ia32" ], @@ -590,9 +701,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", - "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.0.tgz", + "integrity": "sha512-dj2ZolfViR3chLWwSHID2mBzLLwYvXFldIplR6BSkdACXqAsrcmItKTff4h7enYB3Ugoh0v41WbxijE9HJb1Hw==", "cpu": [ "x64" ], @@ -604,9 +715,9 @@ ] }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { @@ -616,10 +727,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -706,6 +824,19 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -891,46 +1022,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -973,9 +1064,9 @@ "license": "MIT" }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", "dev": true, "license": "MIT", "dependencies": { @@ -988,13 +1079,13 @@ } }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1050,9 +1141,9 @@ "license": "MIT" }, "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" }, @@ -1069,9 +1160,9 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -1092,28 +1183,32 @@ } }, "node_modules/eslint": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.0.tgz", - "integrity": "sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==", + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", + "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.17.1", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.7.0", "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.0", + "@eslint/js": "9.14.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", + "@humanwhocodes/retry": "^0.4.0", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.2", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1123,14 +1218,11 @@ "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, "bin": { @@ -1152,9 +1244,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", - "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -1169,9 +1261,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1182,15 +1274,15 @@ } }, "node_modules/espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.12.0", + "acorn": "^8.14.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" + "eslint-visitor-keys": "^4.2.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1296,14 +1388,19 @@ "dev": true, "license": "MIT" }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/fdir": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", + "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, "node_modules/file-entry-cache": { @@ -1430,21 +1527,21 @@ } }, "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -1474,25 +1571,22 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=10" } }, "node_modules/globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", + "version": "15.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz", + "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==", "dev": true, "license": "MIT", "engines": { @@ -1530,9 +1624,9 @@ "license": "MIT" }, "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -1641,16 +1735,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", @@ -1662,12 +1746,12 @@ } }, "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", + "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", "license": "MIT", "dependencies": { - "@types/estree": "*" + "@types/estree": "^1.0.6" } }, "node_modules/is-unicode-supported": { @@ -1851,9 +1935,9 @@ "license": "ISC" }, "node_modules/magic-string": { - "version": "0.30.11", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", - "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -1899,9 +1983,9 @@ } }, "node_modules/mocha": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.7.3.tgz", - "integrity": "sha512-uQWxAu44wwiACGqjbPYmjo7Lg8sFrS3dQe7PP2FQI+woptP4vZXSMcfMyFL/e1yFEeEpV4RtyTpZROOKmxis+A==", + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.8.2.tgz", + "integrity": "sha512-VZlYo/WE8t1tstuRmqgeyBgCbJc/lEdopaa+axcKzTBJ+UIdlAB9XnmvTCAH4pwR4ElNInaedhEBmZD8iCSVEg==", "dev": true, "license": "MIT", "dependencies": { @@ -1956,34 +2040,6 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/mocha/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/mocha/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -1997,28 +2053,6 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/mocha/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -2035,24 +2069,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/mocha/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", @@ -2083,9 +2099,9 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, @@ -2174,9 +2190,9 @@ } }, "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, @@ -2241,12 +2257,12 @@ } }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -2272,27 +2288,6 @@ "node": ">=6" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -2316,6 +2311,19 @@ "node": ">=8.10.0" } }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -2336,17 +2344,6 @@ "node": ">=4" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, "node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -2384,13 +2381,13 @@ } }, "node_modules/rollup": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", - "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.0.tgz", + "integrity": "sha512-nrOD/RrnAMssruS7bPa7MYpEuH6tUpOa43NLtxQiLKem0An8HZyXun5Ndig6JzbkJoIbaKkt85V67VCaQ59GyA==", "devOptional": true, "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -2400,49 +2397,27 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.20.0", - "@rollup/rollup-android-arm64": "4.20.0", - "@rollup/rollup-darwin-arm64": "4.20.0", - "@rollup/rollup-darwin-x64": "4.20.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", - "@rollup/rollup-linux-arm-musleabihf": "4.20.0", - "@rollup/rollup-linux-arm64-gnu": "4.20.0", - "@rollup/rollup-linux-arm64-musl": "4.20.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", - "@rollup/rollup-linux-riscv64-gnu": "4.20.0", - "@rollup/rollup-linux-s390x-gnu": "4.20.0", - "@rollup/rollup-linux-x64-gnu": "4.20.0", - "@rollup/rollup-linux-x64-musl": "4.20.0", - "@rollup/rollup-win32-arm64-msvc": "4.20.0", - "@rollup/rollup-win32-ia32-msvc": "4.20.0", - "@rollup/rollup-win32-x64-msvc": "4.20.0", + "@rollup/rollup-android-arm-eabi": "4.27.0", + "@rollup/rollup-android-arm64": "4.27.0", + "@rollup/rollup-darwin-arm64": "4.27.0", + "@rollup/rollup-darwin-x64": "4.27.0", + "@rollup/rollup-freebsd-arm64": "4.27.0", + "@rollup/rollup-freebsd-x64": "4.27.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.0", + "@rollup/rollup-linux-arm-musleabihf": "4.27.0", + "@rollup/rollup-linux-arm64-gnu": "4.27.0", + "@rollup/rollup-linux-arm64-musl": "4.27.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.0", + "@rollup/rollup-linux-riscv64-gnu": "4.27.0", + "@rollup/rollup-linux-s390x-gnu": "4.27.0", + "@rollup/rollup-linux-x64-gnu": "4.27.0", + "@rollup/rollup-linux-x64-musl": "4.27.0", + "@rollup/rollup-win32-arm64-msvc": "4.27.0", + "@rollup/rollup-win32-ia32-msvc": "4.27.0", + "@rollup/rollup-win32-x64-msvc": "4.27.0", "fsevents": "~2.3.2" } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -2531,21 +2506,18 @@ "license": "BSD-3-Clause" }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/string-width-cjs": { @@ -2564,42 +2536,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -2717,6 +2653,27 @@ "balanced-match": "^1.0.0" } }, + "node_modules/test-exclude/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/test-exclude/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -2838,18 +2795,18 @@ "license": "Apache-2.0" }, "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -2874,70 +2831,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -3000,28 +2893,6 @@ "node": ">=10" } }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index cf6a37b..6a81d2e 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "license": "MIT", "devDependencies": { "@eslint/js": "^9.9.0", - "@rollup/plugin-commonjs": "^26.0.1", + "@rollup/plugin-commonjs": "^28.0.1", "c8": "^10.1.2", "endent": "^2.1.0", "eslint": "^9.5.0", diff --git a/test/test.js b/test/test.js index 7112388..73be2b6 100644 --- a/test/test.js +++ b/test/test.js @@ -550,11 +550,21 @@ describe("main", () => { assert.equal(code.trim(), endent` var _global_BAR = BAR; - const bar = _global_BAR; - console.log('foo'); - var foo = (val) => console.log(val || bar); + var foo; + var hasRequiredFoo; + + function requireFoo () { + \tif (hasRequiredFoo) return foo; + \thasRequiredFoo = 1; + \tconst bar = _global_BAR; + \tconsole.log('foo'); + \tfoo = (val) => console.log(val || bar); + \treturn foo; + } + + var fooExports = requireFoo(); - foo(BAR); + fooExports(BAR); `); }) ); @@ -592,10 +602,19 @@ describe("main", () => { var _global_BAR = BAR; - const { a } = _global_BAR; - console.log(a); - - export { entry as default }; + var hasRequiredEntry; + + function requireEntry () { + \tif (hasRequiredEntry) return entry; + \thasRequiredEntry = 1; + \tconst { a } = _global_BAR; + \tconsole.log(a); + \treturn entry; + } + + var entryExports = requireEntry(); + + export { entryExports as default }; `); }) ); @@ -638,12 +657,22 @@ describe("main", () => { assert.equal(code.trim(), endent` var _global_BAR = BAR; - var foo = (val) => { - const { a } = _global_BAR; - console.log(a); - }; + var foo; + var hasRequiredFoo; + + function requireFoo () { + \tif (hasRequiredFoo) return foo; + \thasRequiredFoo = 1; + \tfoo = (val) => { + \t const { a } = _global_BAR; + \t console.log(a); + \t}; + \treturn foo; + } + + var fooExports = requireFoo(); - foo(BAR.a); + fooExports(BAR.a); `); }) ); From c4771c5e7e740395a5e33addc9f7a2049cc6716d Mon Sep 17 00:00:00 2001 From: eight04 Date: Fri, 15 Nov 2024 23:19:12 +0800 Subject: [PATCH 2/3] Test: rollup2 --- package-lock.json | 18 + package.json | 1 + test/test.js | 1220 +++++++++++++++++++++++---------------------- 3 files changed, 631 insertions(+), 608 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89c02ed..45d7214 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "globals": "^15.9.0", "mocha": "^10.5.2", "rollup": "^4.18.0", + "rollup2": "npm:rollup@^2.79.2", "tempdir-yaml": "^0.3.0" }, "peerDependencies": { @@ -2418,6 +2419,23 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup2": { + "name": "rollup", + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "dev": true, + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", diff --git a/package.json b/package.json index 6a81d2e..5fb0cab 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "globals": "^15.9.0", "mocha": "^10.5.2", "rollup": "^4.18.0", + "rollup2": "npm:rollup@^2.79.2", "tempdir-yaml": "^0.3.0" }, "dependencies": { diff --git a/test/test.js b/test/test.js index 73be2b6..2c6e769 100644 --- a/test/test.js +++ b/test/test.js @@ -2,13 +2,14 @@ const assert = require("assert"); const rollup = require("rollup"); +const rollup2 = require("rollup2"); const {withDir} = require("tempdir-yaml"); const {default: endent} = require("endent"); const commonjs = require("@rollup/plugin-commonjs"); const createPlugin = require(".."); -async function bundle(file, globals, {plugins = []} = {}, options = {}) { +async function _bundle(rollup, file, globals, {plugins = []} = {}, options = {}) { const warns = []; const bundle = await rollup.rollup({ input: [file], @@ -38,516 +39,625 @@ async function bundle(file, globals, {plugins = []} = {}, options = {}) { return result; } -describe("main", () => { - it("no globals", () => - withDir(` - - entry.js: | - import foo from "foo"; - console.log(foo); - `, async resolve => { - await assert.rejects(bundle(resolve("entry.js"), null), { - name: "TypeError", - message: /Missing/ - }); - }) - ); - - it("invalid globals", () => - withDir(` - - entry.js: | - import foo from "foo"; - console.log(foo); - `, async resolve => { - await assert.rejects(bundle(resolve("entry.js"), 1), { - name: "TypeError", - message: /Unexpected type/ - }); - }) - ); - - it("globals function", () => - withDir(` - - entry.js: | - import bar from "foo"; - console.log(bar); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), id => id.toUpperCase()); - assert.equal(code.trim(), endent` - console.log(FOO); - `); - }) - ); - - it("default", () => - withDir(` - - entry.js: | - import foo from "foo"; - console.log(foo); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { - foo: "FOO" - }); - assert.equal(code.trim(), endent` - console.log(FOO); - `); - }) - ); - - it("default no rewrite", () => - withDir(` - - entry.js: | - import FOO from "foo"; +for (const r of [rollup, rollup2]) { + const bundle = (...args) => _bundle(r, ...args); + describe(`rollup ${r.VERSION}`, () => { + it("no globals", () => + withDir(` + - entry.js: | + import foo from "foo"; + console.log(foo); + `, async resolve => { + await assert.rejects(bundle(resolve("entry.js"), null), { + name: "TypeError", + message: /Missing/ + }); + }) + ); + + it("invalid globals", () => + withDir(` + - entry.js: | + import foo from "foo"; + console.log(foo); + `, async resolve => { + await assert.rejects(bundle(resolve("entry.js"), 1), { + name: "TypeError", + message: /Unexpected type/ + }); + }) + ); + + it("globals function", () => + withDir(` + - entry.js: | + import bar from "foo"; + console.log(bar); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), id => id.toUpperCase()); + assert.equal(code.trim(), endent` console.log(FOO); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { - foo: "FOO" - }); - assert.equal(code.trim(), endent` - console.log(FOO); - `); - }) - ); - - it("named", () => - withDir(` - - entry.js: | - import {bar} from "foo"; - console.log(bar); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - console.log(FOO.bar); - `); - }) - ); - - it("named rename", () => - withDir(` - - entry.js: | - import {bar as baz} from "foo"; - console.log(baz); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - console.log(FOO.bar); - `); - }) - ); - - it("object shorthand", () => - withDir(` - - entry.js: | - import foo from "foo"; - console.log({foo}); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { - foo: "FOO" - }); - assert.equal(code.trim(), endent` - console.log({foo: FOO}); - `); - }) - ); - - it("scoped variable", () => - withDir(` - - entry.js: | - import foo from "foo"; - { + `); + }) + ); + + it("default", () => + withDir(` + - entry.js: | + import foo from "foo"; console.log(foo); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { + foo: "FOO" + }); + assert.equal(code.trim(), endent` + console.log(FOO); + `); + }) + ); + + it("default no rewrite", () => + withDir(` + - entry.js: | + import FOO from "foo"; + console.log(FOO); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { + foo: "FOO" + }); + assert.equal(code.trim(), endent` + console.log(FOO); + `); + }) + ); + + it("named", () => + withDir(` + - entry.js: | + import {bar} from "foo"; + console.log(bar); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + console.log(FOO.bar); + `); + }) + ); + + it("named rename", () => + withDir(` + - entry.js: | + import {bar as baz} from "foo"; + console.log(baz); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + console.log(FOO.bar); + `); + }) + ); + + it("object shorthand", () => + withDir(` + - entry.js: | + import foo from "foo"; + console.log({foo}); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { + foo: "FOO" + }); + assert.equal(code.trim(), endent` + console.log({foo: FOO}); + `); + }) + ); + + it("scoped variable", () => + withDir(` + - entry.js: | + import foo from "foo"; + { + console.log(foo); + } + { + const foo = "foo"; + console.log(foo); + } + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + { + console.log(FOO); } { const foo = "foo"; console.log(foo); } - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - { - console.log(FOO); - } - { - const foo = "foo"; - console.log(foo); - } - `); - }) - ); - - it("conflict", () => - withDir(` - - entry.js: | - import foo from "foo"; - const FOO = 123; - console.log(foo, FOO); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - const _local_FOO = 123; - console.log(FOO, _local_FOO); - `); - }) - ); - - it("conflict exported", () => - withDir(` - - entry.js: | - import foo from "foo"; - export const FOO = 123; - console.log(foo, FOO); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - const _local_FOO = 123; - console.log(FOO, _local_FOO); - - export { _local_FOO as FOO }; - `); - }) - ); - - it("conflict exported 2", () => - withDir(` - - entry.js: | - import foo from "foo"; - const FOO = 123; - export {FOO}; - console.log(foo, FOO); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - const _local_FOO = 123; - console.log(FOO, _local_FOO); - - export { _local_FOO as FOO }; - `); - }) - ); - - it("don't touch unused", () => - withDir(` - - entry.js: | - import foo from "foo"; - import bar from "bar"; - console.log(foo, bar); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - import bar from 'bar'; - - console.log(FOO, bar); - `); - }) - ); - - it("dynamic import", () => - withDir(` - - entry.js: | - import("foo") - .then(console.log); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - Promise.resolve(FOO) - .then(console.log); - `); - }) - ); - - it("custom dynamic import", () => - withDir(` - - entry.js: | - import("foo") + `); + }) + ); + + it("conflict", () => + withDir(` + - entry.js: | + import foo from "foo"; + const FOO = 123; + console.log(foo, FOO); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + const _local_FOO = 123; + console.log(FOO, _local_FOO); + `); + }) + ); + + it("conflict exported", () => + withDir(` + - entry.js: | + import foo from "foo"; + export const FOO = 123; + console.log(foo, FOO); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + const _local_FOO = 123; + console.log(FOO, _local_FOO); + + export { _local_FOO as FOO }; + `); + }) + ); + + it("conflict exported 2", () => + withDir(` + - entry.js: | + import foo from "foo"; + const FOO = 123; + export {FOO}; + console.log(foo, FOO); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + const _local_FOO = 123; + console.log(FOO, _local_FOO); + + export { _local_FOO as FOO }; + `); + }) + ); + + it("don't touch unused", () => + withDir(` + - entry.js: | + import foo from "foo"; + import bar from "bar"; + console.log(foo, bar); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + import bar from 'bar'; + + console.log(FOO, bar); + `); + }) + ); + + it("dynamic import", () => + withDir(` + - entry.js: | + import("foo") + .then(console.log); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + Promise.resolve(FOO) .then(console.log); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}, void 0, {dynamicWrapper: (name) => `Promise.all([${name}, BAR])`}); - assert.equal(code.trim(), endent` - Promise.all([FOO, BAR]) - .then(console.log); - `); - }) - ); - - it("falsy dynamic import", () => - withDir(` - - entry.js: | - import bar from "foo"; - console.log(bar); - import("foo") + `); + }) + ); + + it("custom dynamic import", () => + withDir(` + - entry.js: | + import("foo") + .then(console.log); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}, void 0, {dynamicWrapper: (name) => `Promise.all([${name}, BAR])`}); + assert.equal(code.trim(), endent` + Promise.all([FOO, BAR]) .then(console.log); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}, void 0, {dynamicWrapper: () => false}); - assert.equal(code.trim(), endent` - console.log(FOO); - import('foo') - .then(console.log); - `); - }) - ); - - it("invalid dynamic import", () => - withDir(` - - entry.js: | - import("foo") + `); + }) + ); + + it("falsy dynamic import", () => + withDir(` + - entry.js: | + import bar from "foo"; + console.log(bar); + import("foo") + .then(console.log); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}, void 0, {dynamicWrapper: () => false}); + assert.equal(code.trim(), endent` + console.log(FOO); + import('foo') .then(console.log); - `, async resolve => { - await assert.rejects(bundle(resolve("entry.js"), {foo: "FOO"}, void 0, {dynamicWrapper: null}), { - name: "TypeError", - message: /Unexpected type/ - }); - }) - ); - - it("export from name", () => - withDir(` - - entry.js: | - export {foo as bar} from "foo"; - export {mud} from "mud"; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { - foo: "FOO", - mud: "MUD" - }); - assert.equal(code.trim(), endent` - var _global_FOO_foo = FOO.foo; - var _global_MUD_mud = MUD.mud; - - export { _global_FOO_foo as bar, _global_MUD_mud as mud }; - `); - }) - ); - - it("export from name duplicated", () => - withDir(` - - entry.js: | - export {foo as bar} from "foo"; - export {foo as baz} from "foo"; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { - foo: "FOO" - }); - assert.equal(code.trim(), endent` - var _global_FOO_foo = FOO.foo; - - export { _global_FOO_foo as bar, _global_FOO_foo as baz }; - `); - }) - ); - - // https://github.com/acornjs/acorn/issues/806 - it("export from default", () => - withDir(` - - entry.js: | - export {default as baz} from "bak"; - export {default as BOO} from "boo"; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { - bak: "BAK", - boo: "BOO", - }); - assert.equal(code.trim(), endent` - var _global_BAK = BAK; - var _global_BOO = BOO; - - export { _global_BOO as BOO, _global_BAK as baz }; - `); - }) - ); - - it("export from empty", () => - withDir(` - - entry.js: | - export {} from "foo"; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), ""); - }) - ); - - // https://github.com/eight04/rollup-plugin-external-globals/issues/11 - it("export from others", () => - withDir(` - - entry.js: | - export {foo} from "bar"; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), "export { foo } from 'bar';"); - }) - ); - - it("export all", () => - withDir(` - - entry.js: | - export * from "foo"; - `, async resolve => { - await assert.rejects(bundle(resolve("entry.js"), {foo: "FOO"}), { - message: /Cannot export all/ - }); - }) - ); - - it("need an extra assignment when exporting globals", () => - withDir(` - - entry.js: | - import foo from "foo"; - - export {foo}; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - var _global_FOO = FOO; - - export { _global_FOO as foo }; - `); - }) - ); - - it("constBindings", () => - withDir(` - - entry.js: | - import foo from "foo"; + `); + }) + ); + + it("invalid dynamic import", () => + withDir(` + - entry.js: | + import("foo") + .then(console.log); + `, async resolve => { + await assert.rejects(bundle(resolve("entry.js"), {foo: "FOO"}, void 0, {dynamicWrapper: null}), { + name: "TypeError", + message: /Unexpected type/ + }); + }) + ); + + it("export from name", () => + withDir(` + - entry.js: | + export {foo as bar} from "foo"; + export {mud} from "mud"; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { + foo: "FOO", + mud: "MUD" + }); + assert.equal(code.trim(), endent` + var _global_FOO_foo = FOO.foo; + var _global_MUD_mud = MUD.mud; - export {foo}; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}, undefined, {constBindings: true}); - assert.equal(code.trim(), endent` - const _global_FOO = FOO; - - export { _global_FOO as foo }; - `); - }) - ); - - it("no duplicated assignment", () => - withDir(` - - entry.js: | - import foo from "foo"; + export { _global_FOO_foo as bar, _global_MUD_mud as mud }; + `); + }) + ); + + it("export from name duplicated", () => + withDir(` + - entry.js: | + export {foo as bar} from "foo"; + export {foo as baz} from "foo"; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { + foo: "FOO" + }); + assert.equal(code.trim(), endent` + var _global_FOO_foo = FOO.foo; - export {foo}; - export {foo as bar}; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - var _global_FOO = FOO; - - export { _global_FOO as bar, _global_FOO as foo }; - `); - }) - ); - - it("don't affect normal references", () => - withDir(` - - entry.js: | - import foo from "foo"; - console.log(foo); - export {foo}; - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); - assert.equal(code.trim(), endent` - console.log(FOO); - var _global_FOO = FOO; - - export { _global_FOO as foo }; - `); - }) - ); - - it("work in exported function", () => - withDir(` - - entry.js: | - import * as _require_promise_ from "promise"; - export default function () { - return _require_promise_; - } - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {promise: "Promise"}); - assert.equal(code.trim(), endent` - function entry () { - return Promise; - } + export { _global_FOO_foo as bar, _global_FOO_foo as baz }; + `); + }) + ); + + // https://github.com/acornjs/acorn/issues/806 + it("export from default", () => + withDir(` + - entry.js: | + export {default as baz} from "bak"; + export {default as BOO} from "boo"; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), { + bak: "BAK", + boo: "BOO", + }); + assert.equal(code.trim(), endent` + var _global_BAK = BAK; + var _global_BOO = BOO; - export { entry as default }; - `); - }) - ); - - it("transform virtual modules", () => - withDir(` - - entry.js: | - import foo from "foo"; - console.log(foo); - `, async resolve => { - let entryCode = ""; - const {output: {"entry.js": {code}}} = await bundle( - resolve("entry.js"), - { - foo: "BAR" - }, - { - plugins: [{ - name: "test", - transform(code, id) { - if (id.endsWith("entry.js")) { - entryCode = code; - return "import '\0virtual';"; - } - }, - load(id) { - if (id === "\0virtual") { - return entryCode; - } - }, - resolveId(importee) { - if (importee === "\0virtual") { - return importee; - } + export { _global_BOO as BOO, _global_BAK as baz }; + `); + }) + ); + + it("export from empty", () => + withDir(` + - entry.js: | + export {} from "foo"; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), ""); + }) + ); + + // https://github.com/eight04/rollup-plugin-external-globals/issues/11 + it("export from others", () => + withDir(` + - entry.js: | + export {foo} from "bar"; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), "export { foo } from 'bar';"); + }) + ); + + it("export all", () => + withDir(` + - entry.js: | + export * from "foo"; + `, async resolve => { + await assert.rejects(bundle(resolve("entry.js"), {foo: "FOO"}), { + message: /Cannot export all/ + }); + }) + ); + + it("need an extra assignment when exporting globals", () => + withDir(` + - entry.js: | + import foo from "foo"; + + export {foo}; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + var _global_FOO = FOO; + + export { _global_FOO as foo }; + `); + }) + ); + + it("constBindings", () => + withDir(` + - entry.js: | + import foo from "foo"; + + export {foo}; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}, undefined, {constBindings: true}); + assert.equal(code.trim(), endent` + const _global_FOO = FOO; + + export { _global_FOO as foo }; + `); + }) + ); + + it("no duplicated assignment", () => + withDir(` + - entry.js: | + import foo from "foo"; + + export {foo}; + export {foo as bar}; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + var _global_FOO = FOO; + + export { _global_FOO as bar, _global_FOO as foo }; + `); + }) + ); + + it("don't affect normal references", () => + withDir(` + - entry.js: | + import foo from "foo"; + console.log(foo); + export {foo}; + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {foo: "FOO"}); + assert.equal(code.trim(), endent` + console.log(FOO); + var _global_FOO = FOO; + + export { _global_FOO as foo }; + `); + }) + ); + + it("work in exported function", () => + withDir(` + - entry.js: | + import * as _require_promise_ from "promise"; + export default function () { + return _require_promise_; } - }] - } - ); - assert.equal(code.trim(), endent` - console.log(BAR); - `); - }) - ); - - it("require from default", () => - withDir(` - - node_modules: - - bar: - - index.js: | - module.exports = "BAR"; - - foo: - - index.js: | - const bar = require("bar"); - console.log('foo'); - module.exports = (val) => console.log(val || bar); - - entry.js: | - import log from "foo"; - import bar from "bar" - log(bar); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle( - resolve("entry.js"), - { - bar: "BAR" - }, - { - plugins: [ - commonjs({ - defaultIsModuleExports: true - }), - { + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle(resolve("entry.js"), {promise: "Promise"}); + assert.equal(code.trim(), endent` + function entry () { + return Promise; + } + + export { entry as default }; + `); + }) + ); + + it("transform virtual modules", () => + withDir(` + - entry.js: | + import foo from "foo"; + console.log(foo); + `, async resolve => { + let entryCode = ""; + const {output: {"entry.js": {code}}} = await bundle( + resolve("entry.js"), + { + foo: "BAR" + }, + { + plugins: [{ name: "test", + transform(code, id) { + if (id.endsWith("entry.js")) { + entryCode = code; + return "import '\0virtual';"; + } + }, + load(id) { + if (id === "\0virtual") { + return entryCode; + } + }, resolveId(importee) { - if (["foo", "bar"].includes(importee)) { - return resolve(`node_modules/${importee}/index.js`) + if (importee === "\0virtual") { + return importee; } } }] + } + ); + assert.equal(code.trim(), endent` + console.log(BAR); + `); + }) + ); + + it("require from default", () => + withDir(` + - node_modules: + - bar: + - index.js: | + module.exports = "BAR"; + - foo: + - index.js: | + const bar = require("bar"); + console.log('foo'); + module.exports = (val) => console.log(val || bar); + - entry.js: | + import log from "foo"; + import bar from "bar" + log(bar); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle( + resolve("entry.js"), + { + bar: "BAR" + }, + { + plugins: [ + commonjs({ + defaultIsModuleExports: true + }), + { + name: "test", + resolveId(importee) { + if (["foo", "bar"].includes(importee)) { + return resolve(`node_modules/${importee}/index.js`) + } + } + }] + } + ); + assert.equal(code.trim(), endent` + var _global_BAR = BAR; + + var foo; + var hasRequiredFoo; + + function requireFoo () { + \tif (hasRequiredFoo) return foo; + \thasRequiredFoo = 1; + \tconst bar = _global_BAR; + \tconsole.log('foo'); + \tfoo = (val) => console.log(val || bar); + \treturn foo; + } + + var fooExports = requireFoo(); + + fooExports(BAR); + `); + }) + ); + + it("require from named exports", () => + withDir(` + - bar.js: | + module.a = "A"; + - entry.js: | + const { a } = require("bar"); + console.log(a); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle( + resolve("entry.js"), + { + bar: "BAR" + }, + { + plugins: [ + commonjs({ + defaultIsModuleExports: true + }), + { + name: "test", + resolveId(importee) { + if (["bar"].includes(importee)) { + return resolve(`${importee}.js`) + } + } + }] + } + ); + assert.equal(code.trim(), endent` + var entry = {}; + + var _global_BAR = BAR; + + var hasRequiredEntry; + + function requireEntry () { + \tif (hasRequiredEntry) return entry; + \thasRequiredEntry = 1; + \tconst { a } = _global_BAR; + \tconsole.log(a); + \treturn entry; } - ); - assert.equal(code.trim(), endent` + + var entryExports = requireEntry(); + + export { entryExports as default }; + `); + }) + ); + + it("require in function", () => + withDir(` + - bar.js: | + module.a = "A"; + - foo.js: | + const a = "A" + module.exports = (val) => { + const { a } = require("bar"); + console.log(a); + } + - entry.js: | + import log from "foo"; + import { a } from "bar"; + log(a); + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle( + resolve("entry.js"), + { + bar: "BAR" + }, + { + plugins: [ + commonjs({ + defaultIsModuleExports: true + }), + { + name: "test", + resolveId(importee) { + if (["foo", "bar"].includes(importee)) { + return resolve(`${importee}.js`) + } + } + }] + } + ); + assert.equal(code.trim(), endent` var _global_BAR = BAR; var foo; @@ -556,124 +666,18 @@ describe("main", () => { function requireFoo () { \tif (hasRequiredFoo) return foo; \thasRequiredFoo = 1; - \tconst bar = _global_BAR; - \tconsole.log('foo'); - \tfoo = (val) => console.log(val || bar); + \tfoo = (val) => { + \t const { a } = _global_BAR; + \t console.log(a); + \t}; \treturn foo; } var fooExports = requireFoo(); - - fooExports(BAR); - `); - }) - ); - - it("require from named exports", () => - withDir(` - - bar.js: | - module.a = "A"; - - entry.js: | - const { a } = require("bar"); - console.log(a); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle( - resolve("entry.js"), - { - bar: "BAR" - }, - { - plugins: [ - commonjs({ - defaultIsModuleExports: true - }), - { - name: "test", - resolveId(importee) { - if (["bar"].includes(importee)) { - return resolve(`${importee}.js`) - } - } - }] - } - ); - assert.equal(code.trim(), endent` - var entry = {}; - - var _global_BAR = BAR; - - var hasRequiredEntry; - - function requireEntry () { - \tif (hasRequiredEntry) return entry; - \thasRequiredEntry = 1; - \tconst { a } = _global_BAR; - \tconsole.log(a); - \treturn entry; - } - - var entryExports = requireEntry(); - - export { entryExports as default }; - `); - }) - ); - - it("require in function", () => - withDir(` - - bar.js: | - module.a = "A"; - - foo.js: | - const a = "A" - module.exports = (val) => { - const { a } = require("bar"); - console.log(a); - } - - entry.js: | - import log from "foo"; - import { a } from "bar"; - log(a); - `, async resolve => { - const {output: {"entry.js": {code}}} = await bundle( - resolve("entry.js"), - { - bar: "BAR" - }, - { - plugins: [ - commonjs({ - defaultIsModuleExports: true - }), - { - name: "test", - resolveId(importee) { - if (["foo", "bar"].includes(importee)) { - return resolve(`${importee}.js`) - } - } - }] - } - ); - assert.equal(code.trim(), endent` - var _global_BAR = BAR; - - var foo; - var hasRequiredFoo; - - function requireFoo () { - \tif (hasRequiredFoo) return foo; - \thasRequiredFoo = 1; - \tfoo = (val) => { - \t const { a } = _global_BAR; - \t console.log(a); - \t}; - \treturn foo; - } - - var fooExports = requireFoo(); - - fooExports(BAR.a); - `); - }) - ); -}); + + fooExports(BAR.a); + `); + }) + ); + }); +} From c0c039440c0dab6e07aa53729af29900fb5b14a3 Mon Sep 17 00:00:00 2001 From: eight04 Date: Fri, 15 Nov 2024 23:44:48 +0800 Subject: [PATCH 3/3] Fix: use this.warn in rollup 2 --- index.js | 19 ++++++++++++++----- test/test.js | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index 1139568..275ebef 100644 --- a/index.js +++ b/index.js @@ -37,8 +37,20 @@ function createPlugin(globals, {include, exclude, dynamicWrapper = defaultDynami return { name: "rollup-plugin-external-globals", options, - transform + transform, }; + function getDebug(context) { + return (err, message) => { + if (context.debug) { + context.debug({ + message, + cause: err + }); + } else if (context.warn) { + context.warn(message, err.loc ?? err.pos ?? null); + } + }; + } async function options(rawOptions) { const plugins = Array.isArray(rawOptions.plugins) ? [...rawOptions.plugins] @@ -59,10 +71,7 @@ function createPlugin(globals, {include, exclude, dynamicWrapper = defaultDynami try { ast = this.parse(code); } catch (err) { - this.debug({ - message: `Failed to parse code, skip ${id}`, - cause: err - }); + getDebug(this)(err, `Failed to parse code, skip ${id}`); return; } code = new MagicString(code); diff --git a/test/test.js b/test/test.js index 2c6e769..6198ac1 100644 --- a/test/test.js +++ b/test/test.js @@ -9,13 +9,14 @@ const commonjs = require("@rollup/plugin-commonjs"); const createPlugin = require(".."); -async function _bundle(rollup, file, globals, {plugins = []} = {}, options = {}) { +async function _bundle(rollup, file, globals, {plugins = [], postPlugins = []} = {}, options = {}) { const warns = []; const bundle = await rollup.rollup({ input: [file], plugins: [ ...plugins, - createPlugin(globals, options) + createPlugin(globals, options), + ...postPlugins ], experimentalCodeSplitting: true, onwarn(warn) { @@ -679,5 +680,35 @@ for (const r of [rollup, rollup2]) { `); }) ); + + it("ignore non js files", () => + withDir(` + - entry.txt: | + hello bar + `, async resolve => { + const {output: {"entry.js": {code}}} = await bundle( + resolve("entry.txt"), + { + bar: "BAR" + }, + { + postPlugins: [ + { + name: "test", + transform(code, id) { + if (id.endsWith(".txt")) { + return `export default ${JSON.stringify(code.trim())}`; + } + } + }] + } + ); + assert.equal(code.trim(), endent` + var entry = "hello bar"; + + export { entry as default }; + `); + }) + ); }); }