diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..877adac --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,42 @@ +name: Release +on: + workflow_run: + workflows: + - 'Test' + branches: + - main + types: + - completed + +permissions: + contents: read # for checkout + +jobs: + release: + name: Release + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} + permissions: + contents: write # to be able to publish a GitHub release + issues: write # to be able to comment on released issues + pull-requests: write # to be able to comment on released pull requests + id-token: write # to enable use of OIDC for npm provenance + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + - name: Install dependencies + run: npm clean-install + - name: Verify the integrity of provenance attestations and registry signatures for installed dependencies + run: npm audit signatures + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..8bd81e0 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,28 @@ +name: Test +on: + push: + branches: + - '**' + +permissions: + contents: read # for checkout + +jobs: + test: + name: Test + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + - name: Install bare runtime + run: npm install -g bare + - name: Install dependencies + run: npm clean-install + - name: Run tests + run: npm test diff --git a/.gitignore b/.gitignore index 3502ef7..b5a89ed 100644 --- a/.gitignore +++ b/.gitignore @@ -142,3 +142,4 @@ dist .svelte-kit # End of https://www.toptal.com/developers/gitignore/api/node +*.bundle \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..83b6947 --- /dev/null +++ b/.prettierignore @@ -0,0 +1 @@ +CHANGELOG.md \ No newline at end of file diff --git a/index.js b/index.js index 822cfd4..22dcfb7 100644 --- a/index.js +++ b/index.js @@ -1,19 +1,19 @@ -const babel = require("@babel/core"); +const babel = require('@babel/core') async function plugin(bundle, { name, data, mode }) { return new Promise((resolve, reject) => { // only transform javascript files if (name.match(/\.js$|\.cjs$|\.mjs$/)) { babel.transform(data.toString(), (err, result) => { - if (err) reject(err); + if (err) reject(err) // overwrite the old code with the transpiled code in the bundle - bundle.write(name, result.code, { mode }); - resolve(); - }); + bundle.write(name, result.code, { mode }) + resolve() + }) } else { - resolve(); + resolve() } - }); + }) } -module.exports = plugin; +module.exports = plugin diff --git a/package-lock.json b/package-lock.json index 1e52722..93edd6e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,11 @@ "@semantic-release/git": "^10.0.1", "@semantic-release/npm": "^12.0.2", "@semantic-release/release-notes-generator": "^14.1.0", + "bare-bundle-transform": "^0.2.2", + "bare-pack": "^1.4.6", + "brittle": "^3.19.0", + "prettier": "^3.6.2", + "prettier-config-standard": "^7.0.0", "semantic-release": "^24.2.9" } }, @@ -1039,6 +1044,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", @@ -1146,6 +1158,688 @@ "dev": true, "license": "MIT" }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/bare-addon-resolve": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bare-addon-resolve/-/bare-addon-resolve-1.9.4.tgz", + "integrity": "sha512-unn6Vy/Yke6F99vg/7tcrvM2KUvIhTNniaSqDbam4AWkd4NhvDVSrQiRYVlNzUV2P7SPobkCK7JFVxrJk9btCg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-module-resolve": "^1.10.0", + "bare-semver": "^1.0.0" + }, + "peerDependencies": { + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-ansi-escapes": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/bare-ansi-escapes/-/bare-ansi-escapes-2.2.3.tgz", + "integrity": "sha512-02ES4/E2RbrtZSnHJ9LntBhYkLA6lPpSEeP8iqS3MccBIVhVBlEmruF1I7HZqx5Q8aiTeYfQVeqmrU9YO2yYoQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-stream": "^2.6.5" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-assert": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bare-assert/-/bare-assert-1.1.0.tgz", + "integrity": "sha512-G/oDyI81+FR4Qri6nS+b4XRoh8wjuBMua3R69kIytSdXsl+VD3Qo95im2D+0cL5wXJ5kgxmdUJ0n4nYAA73yNg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-inspect": "^3.1.2" + } + }, + "node_modules/bare-buffer": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/bare-buffer/-/bare-buffer-3.3.1.tgz", + "integrity": "sha512-BjsDDn3MUhl+D1774DKKfWiM38PTuw3zTEmzDb8IgSK6j9vN5GMOG/ldiJN1lnCWwFEp0OaMl7hfUsep+6cWCA==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "engines": { + "bare": ">=1.20.0" + } + }, + "node_modules/bare-bundle": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/bare-bundle/-/bare-bundle-1.9.0.tgz", + "integrity": "sha512-gijOehBzoBD/hmoMK12QOw33uhR0ssU5Tys7pxjRcdLH+u0OVa57VIGqyaNxl9qBrehX8N+bhIQ+vvI6Y0hJ9g==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "bare-buffer": "*", + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-bundle-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bare-bundle-id/-/bare-bundle-id-1.0.1.tgz", + "integrity": "sha512-fMdZNrtgmDhAZ6sGXp2R9+pv7BHxOiH5MkO2IV2e3dpG6GYA3pI4YqZWcPQCLptApFydbButaQXjKc/cth39nA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "sodium-native": "^5.0.1" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-bundle": "*" + } + }, + "node_modules/bare-bundle-transform": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/bare-bundle-transform/-/bare-bundle-transform-0.2.2.tgz", + "integrity": "sha512-fZWq2DhQDlwD2UWSdogUW/ppAIiYtQGwc0W6tLgE1RbSFbKN0r63DFayAjcgX5aMppnHwIo0uWqXIk8oB2rvVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-bundle": "^1.9.0", + "paparam": "^1.8.5" + }, + "bin": { + "bare-bundle-transform": "bin.js" + } + }, + "node_modules/bare-cov": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bare-cov/-/bare-cov-1.1.2.tgz", + "integrity": "sha512-RIxHtqQIUq0VBQZvVCbiY/H0yL7Q69JamrB2IECwXed4rD6csDVd6/24iRsgadu+YAiTc1HMHaBd4pQusRWS+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-fs": "^4.1.2", + "bare-inspector": "^4.0.1", + "bare-path": "^3.0.0", + "bare-process": "^4.2.1", + "bare-url": "^2.1.5", + "bare-v8-to-istanbul": "v1.0.1", + "picomatch": "^4.0.2", + "which-runtime": "^1.2.1" + } + }, + "node_modules/bare-cov/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/bare-crypto": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/bare-crypto/-/bare-crypto-1.11.2.tgz", + "integrity": "sha512-frwW8a5ZeIzkg6jyjJ5g+yQQmsWa5DhLnRr92fsKQx00dA3aWU7zDLFg7Jlr5xNCvNhYElLI3Zd6u8cPj79ZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-stream": "^2.6.3" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-debug-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bare-debug-log/-/bare-debug-log-2.0.0.tgz", + "integrity": "sha512-Vi42PkMQsNV9PUpx2Gl1hikshx5O9FzMJ6o9Nnopseg7qLBBK7Nl31d0RHcfwLEAfmcPApytpc0ZFfq68u22FQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-dns": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/bare-dns/-/bare-dns-2.1.4.tgz", + "integrity": "sha512-abwjHmpWqSRNB7V5615QxPH92L71AVzFm/kKTs8VYiNTAi2xVdonpv0BjJ0hwXLwomoW+xsSOPjW6PZPO14asg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "bare": ">=1.7.0" + } + }, + "node_modules/bare-encoding": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bare-encoding/-/bare-encoding-1.0.0.tgz", + "integrity": "sha512-9T5CSCaytaIWZpFWx9LQLJ6/z/m2Slnan9tQBKmOvoq/UtPBbOKT/B2fo29Xhi4X1FFtNx8DFdtrFgqm2yse/Q==", + "dev": true, + "license": "Apache-2.0", + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-env": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-env/-/bare-env-3.0.0.tgz", + "integrity": "sha512-0u964P5ZLAxTi+lW4Kjp7YRJQ5gZr9ycYOtjLxsSrupgMz3sn5Z9n4SH/JIifHwvadsf1brA2JAjP+9IOWwTiw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-events": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.7.0.tgz", + "integrity": "sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bare-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bare-format/-/bare-format-1.0.1.tgz", + "integrity": "sha512-1oS+LZrWK6tnYnvNSHDGljc2MPunRxwhpFriuCgzNF+oklrnwmBKD91tS0yt+jpl2j3UgcSDzBIMiVTvLs9A8w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-inspect": "^3.0.0" + } + }, + "node_modules/bare-fs": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.4.5.tgz", + "integrity": "sha512-TCtu93KGLu6/aiGWzMr12TmSRS6nKdfhAnzTQRbXoSWxkbb9eRd53jQ51jG7g1gYjjtto3hbBrrhzg6djcgiKg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-hrtime": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bare-hrtime/-/bare-hrtime-2.1.1.tgz", + "integrity": "sha512-VMb3tHo05gsnbu3OXTmkDiwTjMlOsbQmKoysKqKEyR09m77TuDrYFbj3Q5GGk10dAKsUHrnXmwCaeJqzVpB5ZA==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bare-http1": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bare-http1/-/bare-http1-4.1.0.tgz", + "integrity": "sha512-4CAbd5C7JmjzXVchiKoksSzs/OuH4z70n6nlbKo3K+ZwSmao0phe/bNuUdPbOt4yF8hfTQr8Useb6ei1+3DXaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.6.0", + "bare-stream": "^2.3.0", + "bare-tcp": "^2.0.3" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-https": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bare-https/-/bare-https-2.0.0.tgz", + "integrity": "sha512-qmjNZmYQ4nn+k3CLlxVyOqWYamdBPqE7psR5/lFWG39fskAR4C2h29d1Ka5BeWOGDAWhXImFIwZUxwCE/7xeLA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-http1": "^4.0.0", + "bare-tcp": "^2.0.0", + "bare-tls": "^2.0.0" + } + }, + "node_modules/bare-inspect": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/bare-inspect/-/bare-inspect-3.1.3.tgz", + "integrity": "sha512-sN+hmnCnMfs+zgubbO6oalG/8X70VsCL79Rjuvt6RC/cc2dr0bN6e96IFhbIZX6pVm64Kkfn01xo6PH7usOHwA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-ansi-escapes": "^2.1.0", + "bare-type": "^1.0.0" + }, + "engines": { + "bare": ">=1.18.0" + } + }, + "node_modules/bare-inspector": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bare-inspector/-/bare-inspector-4.0.3.tgz", + "integrity": "sha512-yYk6+7tTVKJKHOja5+QBn989ETv8oVsmwoH0nCM+QYC6w5MC03GC4aQNK+lipAZSz1EaAj42WZ8Wewjpy0L9TA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.1.0", + "bare-http1": "^4.0.0", + "bare-stream": "^2.0.0", + "bare-url": "^2.0.0", + "bare-ws": "^2.0.0" + }, + "engines": { + "bare": ">=1.2.0" + }, + "peerDependencies": { + "bare-tcp": "*" + }, + "peerDependenciesMeta": { + "bare-tcp": { + "optional": true + } + } + }, + "node_modules/bare-module-lexer": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/bare-module-lexer/-/bare-module-lexer-1.4.6.tgz", + "integrity": "sha512-qQM/GaXVTlDqCFBN3it8/GD419T+/bbDjWs1k2CaRlDWZtaRcPSZgf23bjVmtP/XglN5ylGPNrAiW/vOSDSDsg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "require-addon": "^1.0.2" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-module-resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/bare-module-resolve/-/bare-module-resolve-1.11.1.tgz", + "integrity": "sha512-DCxeT9i8sTs3vUMA3w321OX/oXtNEu5EjObQOnTmCdNp5RXHBAvAaBDHvAi9ta0q/948QPz+co6SsGi6aQMYRg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-semver": "^1.0.0" + }, + "peerDependencies": { + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-module-traverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/bare-module-traverse/-/bare-module-traverse-1.5.1.tgz", + "integrity": "sha512-DxBYkQkwTDtuLipDgSvhdXc3sn9Grt4AyBQzlFzuTnchiF/eqbuHkKR1WbjuRT8bVKMHGWKm7vc+OmI8gFRw+g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-addon-resolve": "^1.5.0", + "bare-module-lexer": "^1.4.0", + "bare-module-resolve": "^1.7.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-net": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bare-net/-/bare-net-2.1.1.tgz", + "integrity": "sha512-r5f8pzsBE7oZ52Z+bRPaIJX9knfSKo2heT77reJk2U1X0Np1rPtlnexsH6z0jqSQZrZhetmm+Tt0iD+LnIv7DQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.2.2", + "bare-pipe": "^4.0.0", + "bare-stream": "^2.0.0", + "bare-tcp": "^2.0.0" + } + }, + "node_modules/bare-os": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-pack": { + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/bare-pack/-/bare-pack-1.4.6.tgz", + "integrity": "sha512-jX3ynJveLKtNOHSiSU09YF3mcqGPoHbICunKul9jPe2MytStdp/6MHjoi2dzfms+X+LSNFWOAeedG6BPM18ueg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-bundle": "^1.8.3", + "bare-bundle-id": "^1.0.0", + "bare-fs": "^4.2.1", + "bare-module-traverse": "~1.5.1", + "bare-path": "^3.0.0", + "bare-url": "*", + "paparam": "^1.5.0", + "promaphore": "^1.0.0" + }, + "bin": { + "bare-pack": "bin.js" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-url": { + "optional": true + } + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-pipe": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bare-pipe/-/bare-pipe-4.0.7.tgz", + "integrity": "sha512-y8C6MWpr6EnzUJ1naE04VNTwM1AW3e6abkEDxgQkcTUVPPpHijxld1zpPT1RjWdPuA0TEc8UvEgMtWomnl5X9A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.0.0", + "bare-stream": "^2.0.0" + }, + "engines": { + "bare": ">=1.16.0" + } + }, + "node_modules/bare-process": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/bare-process/-/bare-process-4.2.1.tgz", + "integrity": "sha512-wcmyQWTHxd2xRgeKUSY46ofmuEAJ9CLo/6swJTHOZFPYpBShMWNPVI2Ba8o0n/X/YE4as99M28x37saWZ1L1vQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-env": "^3.0.0", + "bare-events": "^2.3.1", + "bare-hrtime": "^2.0.0", + "bare-os": "^3.5.0", + "bare-pipe": "^4.0.0", + "bare-signals": "^4.0.0", + "bare-tty": "^5.0.0" + } + }, + "node_modules/bare-semver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bare-semver/-/bare-semver-1.0.1.tgz", + "integrity": "sha512-UtggzHLiTrmFOC/ogQ+Hy7VfoKoIwrP1UFcYtTxoCUdLtsIErT8+SWtOC2DH/snT9h+xDrcBEPcwKei1mzemgg==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bare-signals": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bare-signals/-/bare-signals-4.0.4.tgz", + "integrity": "sha512-RMzSHBvuxKzN7XXO0e2FXSXIjmj7nSeSXNW4jkwI6vCBkfsGwulhGAvLKcmbmQDH37c85y/NoDIPKMHqGnJskw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.5.3", + "bare-os": "^3.3.1" + }, + "engines": { + "bare": ">=1.7.0" + } + }, + "node_modules/bare-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-subprocess": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/bare-subprocess/-/bare-subprocess-5.1.4.tgz", + "integrity": "sha512-CkZZr2R4mpRu2+WlTs2YZVlOKJ9t2D3SLIwhYBJxnRvtoygPTnMsdc92N6/E8YXY/uhZvbM6ZhEZTt1ubU6xlw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-env": "^3.0.0", + "bare-events": "^2.5.4", + "bare-os": "^3.0.1", + "bare-path": "^3.0.0", + "bare-pipe": "^4.0.0", + "bare-url": "^2.2.2" + }, + "engines": { + "bare": ">=1.7.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-tcp": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/bare-tcp/-/bare-tcp-2.0.9.tgz", + "integrity": "sha512-9pxbeUmAgoLitQJNe/gebVM3erWnDq2rvT07CCLUO/bgylbJbCQ8TqyUpnyDhjL2wOtOA5VhcGUkQ0djRGbSjg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-dns": "^2.0.4", + "bare-events": "^2.5.4", + "bare-stream": "^2.6.4" + }, + "engines": { + "bare": ">=1.16.0" + } + }, + "node_modules/bare-tls": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/bare-tls/-/bare-tls-2.1.4.tgz", + "integrity": "sha512-DAbwcKv4mbMEG4gAl7RSkIJme+19KFklDc9seyG83v382F33gaLAH6kuOKs1MhdtEGh+J5xq8WKIcV5K6Ay6oA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-net": "^2.0.1", + "bare-stream": "^2.6.4" + }, + "engines": { + "bare": ">=1.7.0" + } + }, + "node_modules/bare-tty": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/bare-tty/-/bare-tty-5.0.3.tgz", + "integrity": "sha512-jW24RBWRZOMHuSEWC9mh8wUKO5WUNl0UWUTNPn3yZ8qkOqwa8vaV2dR3a+BvblONPk7V35wuvK9P8508+judAg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.2.0", + "bare-signals": "^4.0.0", + "bare-stream": "^2.0.0" + }, + "engines": { + "bare": ">=1.16.0" + } + }, + "node_modules/bare-type": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/bare-type/-/bare-type-1.0.8.tgz", + "integrity": "sha512-7kKAjr5DziSehRe13OTRvsw74/BKgLcECZK37F8J1gnarNLZ1qwZMryC80JT+XryAqn1+vvTEJEBwgT6vhXqiQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "bare": ">=1.2.0" + } + }, + "node_modules/bare-url": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.2.2.tgz", + "integrity": "sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-path": "^3.0.0" + } + }, + "node_modules/bare-utils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/bare-utils/-/bare-utils-1.5.1.tgz", + "integrity": "sha512-mxCkFvmDU3mlD/mb+pT64kKXOsx2KMsWLQbngN1LB+NOXfhfnRnyvpy3VZc6m7gzQxe57Bsi+aTCBqA4/S3elQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-debug-log": "^2.0.0", + "bare-encoding": "^1.0.0", + "bare-format": "^1.0.0", + "bare-inspect": "^3.0.0", + "bare-type": "^1.0.6" + } + }, + "node_modules/bare-v8-to-istanbul": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bare-v8-to-istanbul/-/bare-v8-to-istanbul-1.0.1.tgz", + "integrity": "sha512-CJ52HHfzkY0WLM+eXhcVyUba27kuG81wRVqWlwICb0238szHSOfmvJbvcnlbGg9jTxd+IkLV3kbsT6j8TW1iNw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-assert": "^1.0.2", + "bare-fs": "^4.1.2", + "bare-path": "^3.0.0", + "bare-process": "^4.2.0", + "bare-url": "^2.1.5", + "bare-utils": "^1.2.0", + "v8-to-istanbul": "^9.3.0", + "which-runtime": "^1.2.1" + } + }, + "node_modules/bare-ws": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/bare-ws/-/bare-ws-2.0.3.tgz", + "integrity": "sha512-be3cX68FQKln0jnsuyh1eK60EIM8/hYPFNHYZykN1fS3shWhzdKFo+I4gtZloSzS4aIKtVpi7+M0by8Q9y/NSA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-crypto": "^1.2.0", + "bare-events": "^2.3.1", + "bare-http1": "^4.0.0", + "bare-https": "^2.0.0", + "bare-stream": "^2.1.2" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-url": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-url": { + "optional": true + } + } + }, "node_modules/baseline-browser-mapping": { "version": "2.8.7", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.7.tgz", @@ -1182,6 +1876,36 @@ "node": ">=8" } }, + "node_modules/brittle": { + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/brittle/-/brittle-3.19.0.tgz", + "integrity": "sha512-RUpK0HveDhvffC9i92fMKFef15D8mcS8OL3klFaRlcD+QLFINEHY2xhI4J9nnkLUinNOIRnFESXP/Yf/GAD38Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.0", + "bare-assert": "^1.0.2", + "bare-cov": "^1.1.0", + "bare-fs": "^4.1.6", + "bare-os": "^3.6.1", + "bare-path": "^3.0.0", + "bare-process": "^4.2.1", + "bare-subprocess": "^5.0.0", + "bare-url": "^2.1.6", + "error-stack-parser": "^2.1.4", + "globbie": "^1.0.2", + "paparam": "^1.6.2", + "same-object": "^1.0.2", + "test-tmp": "^1.4.0", + "tmatch": "^5.0.0" + }, + "bin": { + "brittle": "bin/node.js", + "brittle-bare": "bin/bare.js", + "brittle-node": "bin/node.js", + "brittle-pear": "bin/pear.js" + } + }, "node_modules/browserslist": { "version": "4.26.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", @@ -1837,6 +2561,16 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -1859,6 +2593,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, "node_modules/execa": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/execa/-/execa-9.6.0.tgz", @@ -1920,6 +2664,13 @@ ], "license": "MIT" }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true, + "license": "MIT" + }, "node_modules/figures": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/figures/-/figures-6.1.0.tgz", @@ -2078,6 +2829,32 @@ "traverse": "0.6.8" } }, + "node_modules/globbie": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globbie/-/globbie-1.0.3.tgz", + "integrity": "sha512-hcryJmKcftf82xfBWTWxuUITWIIoYO3ec104V17SMHGFl6VLbm1d1Ju9LX9L+jyJTwICpemX/dmPI/HGYoKr1A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-fs": "^4.1.2", + "bare-path": "^3.0.0", + "bare-process": "^4.2.1", + "picomatch": "^4.0.2" + } + }, + "node_modules/globbie/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5666,6 +6443,13 @@ "node": ">=4" } }, + "node_modules/paparam": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/paparam/-/paparam-1.8.6.tgz", + "integrity": "sha512-M9YxYv8LkotNkXdFDd2GPwa9jspLkcTZn9yjBzAPkAF0ngq755KtmoQyVWb0+6eIZuW7WtTPWycelNDhkkgOog==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -5808,6 +6592,32 @@ "node": ">=4" } }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-config-standard": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/prettier-config-standard/-/prettier-config-standard-7.0.0.tgz", + "integrity": "sha512-NgZy4TYupJR6aMMuV/Aqs0ONnVhlFT8PXVkYRskxREq8EUhJHOddVfBxPV6fWpgcASpJSgvvhVLk0CBO5M3Hvw==", + "dev": true, + "license": "BSD-3-Clause", + "peerDependencies": { + "prettier": "^2.6.0 || ^3.0.0" + } + }, "node_modules/pretty-ms": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.3.0.tgz", @@ -5831,6 +6641,13 @@ "dev": true, "license": "MIT" }, + "node_modules/promaphore": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/promaphore/-/promaphore-1.0.0.tgz", + "integrity": "sha512-Eg8401+KJddVvDULkpy8bR964GMX8xMPegL6NdxTeBH2Wa3L86cZlEHizbkFJikr5u+E3wFoR5dLWJ+1OPyEfw==", + "dev": true, + "license": "MIT" + }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -5952,6 +6769,20 @@ "node": ">=14" } }, + "node_modules/require-addon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/require-addon/-/require-addon-1.1.0.tgz", + "integrity": "sha512-KbXAD5q2+v1GJnkzd8zzbOxchTkStSyJZ9QwoCq3QwEXAaIlG3wDYRZGzVD357jmwaGY7hr5VaoEAL0BkF0Kvg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bare-addon-resolve": "^1.3.0", + "bare-url": "^2.1.0" + }, + "engines": { + "bare": ">=1.10.0" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5979,6 +6810,13 @@ "dev": true, "license": "MIT" }, + "node_modules/same-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/same-object/-/same-object-1.0.2.tgz", + "integrity": "sha512-csHWhvUsLbIOHDM/nP+KHWM+BLPsIzWkFa8HbzaI0G7BqKXgx+7FJpKTGgLXyz5amfdY2OVBcmXTqYOMEk04og==", + "dev": true, + "license": "MIT" + }, "node_modules/semantic-release": { "version": "24.2.9", "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.9.tgz", @@ -6243,6 +7081,20 @@ "node": ">=8" } }, + "node_modules/sodium-native": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-5.0.9.tgz", + "integrity": "sha512-6fpu3d6zdrRpLhuV3CDIBO5g90KkgaeR+c3xvDDz0ZnDkAlqbbPhFW7zhMJfsskfZ9SuC3SvBbqvxcECkXRyKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "require-addon": "^1.1.0", + "which-runtime": "^1.2.1" + }, + "engines": { + "bare": ">=1.16.0" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -6306,6 +7158,13 @@ "through2": "~2.0.0" } }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "dev": true, + "license": "MIT" + }, "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", @@ -6317,6 +7176,18 @@ "readable-stream": "^2.0.2" } }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -6500,6 +7371,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/test-tmp": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/test-tmp/-/test-tmp-1.4.0.tgz", + "integrity": "sha512-GVggxGg+jXqP2Wbju50JVLo+9E+nIOPPyWqgr63EbOnNItIKu1cEbJpTWAJeflnyGqXOtcMI7ijHRp88GUkfDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bare-fs": "^4.0.1", + "bare-os": "^3.3.0", + "bare-path": "^3.0.0" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, "node_modules/thenify": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", @@ -6598,6 +7491,16 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/tmatch": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tmatch/-/tmatch-5.0.0.tgz", + "integrity": "sha512-Ib9OtBkpHn07tXP04SlN1SYRxFgTk6wSM2EBmjjxug4u5RXPRVLkdFJSS1PmrQidaSB8Lru9nRtViQBsbxzE5Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6754,6 +7657,21 @@ "dev": true, "license": "MIT" }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -6781,6 +7699,13 @@ "node": ">= 8" } }, + "node_modules/which-runtime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/which-runtime/-/which-runtime-1.3.2.tgz", + "integrity": "sha512-5kwCfWml7+b2NO7KrLMhYihjRx0teKkd3yGp1Xk5Vaf2JGdSh+rgVhEALAD9c/59dP+YwJHXoEO7e8QPy7gOkw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", diff --git a/package.json b/package.json index 51179c3..49917f0 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,24 @@ ], "author": "Didericis", "license": "Apache-2.0", - "dependencies": { - "@babel/core": "^7.28.4" + "scripts": { + "test": "npm run lint && npm run test:build-project && npm run test:build-bundles && bare test/bare.js", + "test:build-project": "cd test/project && npm install", + "test:build-bundles": "mkdir -p test/bundles && npm run test:build-default-bundle && npm run test:build-plugin-bundle", + "test:build-default-bundle": "cd test/project && bare-pack app.js -o ../bundles/default.bundle", + "test:build-plugin-bundle": "cd test/project && bare-pack app.js | bare-bundle-transform --plugin ../../index.js -o ../bundles/plugin.bundle", + "lint": "prettier . --check" + }, + "prettier": "prettier-config-standard", + "imports": { + "child_process": { + "bare": "bare-subprocess", + "default": "node:child_process" + }, + "path": { + "bare": "bare-path", + "default": "node:path" + } }, "release": { "plugins": [ @@ -34,14 +50,22 @@ ] }, "branches": [ - "master" + "main" ], "devDependencies": { - "semantic-release": "^24.2.9", "@semantic-release/changelog": "^6.0.3", "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", "@semantic-release/npm": "^12.0.2", - "@semantic-release/release-notes-generator": "^14.1.0" + "@semantic-release/release-notes-generator": "^14.1.0", + "bare-bundle-transform": "^0.2.2", + "bare-pack": "^1.4.6", + "brittle": "^3.19.0", + "prettier": "^3.6.2", + "prettier-config-standard": "^7.0.0", + "semantic-release": "^24.2.9" + }, + "dependencies": { + "@babel/core": "^7.28.4" } } diff --git a/test/bare.js b/test/bare.js new file mode 100644 index 0000000..a8246ea --- /dev/null +++ b/test/bare.js @@ -0,0 +1,33 @@ +const { spawn } = require('child_process') +const test = require('brittle') +const path = require('path') +// NOTE: this assumes that the bundle has been transformed (see test:transform npm script) + +test('app bundle compiled with no plugins', async (t) => { + await t.exception(async () => { + await new Promise((resolve, reject) => { + const p = spawn('bare', [ + '--eval', + `require(${path.join(__dirname, 'bundles/default.bundle')})` + ]) + let err = Buffer.alloc(0) + p.stderr.on('data', (d) => { + err = Buffer.concat([err, d]) + }) + p.stderr.on('close', () => { + reject(err.toString()) + }) + }) + }, /Uncaught SyntaxError: Invalid regular expression/) +}) + +test('app bundle compiled with this plugin', (t) => { + const { foo, fooBar } = require('./bundles/plugin.bundle') + + // checks if we've fixed the problematic package + const match = fooBar('A ბ ㄱ') + t.alike(match, ['A', 'ბ', 'ㄱ']) + + // ensures we haven't broken the other package + t.is(foo(), 'bar') +}) diff --git a/test/project/app.js b/test/project/app.js new file mode 100644 index 0000000..c2310f8 --- /dev/null +++ b/test/project/app.js @@ -0,0 +1,7 @@ +const fooBar = require('./foo-bar') +const foo = require('./foo') + +module.exports = { + fooBar, + foo +} diff --git a/test/project/babel.config.json b/test/project/babel.config.json new file mode 100644 index 0000000..44958b5 --- /dev/null +++ b/test/project/babel.config.json @@ -0,0 +1,3 @@ +{ + "plugins": ["@babel/plugin-transform-unicode-regex"] +} diff --git a/test/project/foo-bar/index.js b/test/project/foo-bar/index.js new file mode 100644 index 0000000..1e06d9b --- /dev/null +++ b/test/project/foo-bar/index.js @@ -0,0 +1,10 @@ +/** + * Matches any unicode character between "foo" and "bar" + * @param {string} str + * @returns {boolean} + */ +function fooBar(str) { + return str.match(/\p{L}/gu) +} + +module.exports = fooBar diff --git a/test/project/foo-bar/package.json b/test/project/foo-bar/package.json new file mode 100644 index 0000000..c3862b1 --- /dev/null +++ b/test/project/foo-bar/package.json @@ -0,0 +1,6 @@ +{ + "name": "foo-bar", + "version": "0.0.1", + "description": "Dummy package that should be transformed", + "main": "index.js" +} diff --git a/test/project/foo/index.js b/test/project/foo/index.js new file mode 100644 index 0000000..9761419 --- /dev/null +++ b/test/project/foo/index.js @@ -0,0 +1,9 @@ +/** + * Returns bar (exciting!) + * @returns {string} + */ +function foo() { + return 'bar' +} + +module.exports = foo diff --git a/test/project/foo/package.json b/test/project/foo/package.json new file mode 100644 index 0000000..aa747ff --- /dev/null +++ b/test/project/foo/package.json @@ -0,0 +1,6 @@ +{ + "name": "foo", + "version": "0.0.1", + "description": "Dummy package that should not be transformed", + "main": "index.js" +} diff --git a/test/project/package-lock.json b/test/project/package-lock.json new file mode 100644 index 0000000..7c427d0 --- /dev/null +++ b/test/project/package-lock.json @@ -0,0 +1,728 @@ +{ + "name": "project", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "project", + "version": "0.0.1", + "devDependencies": { + "@babel/plugin-transform-unicode-regex": "^7.27.1" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/types": "^7.28.4" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.7.tgz", + "integrity": "sha512-bxxN2M3a4d1CRoQC//IqsR5XrLh0IJ8TCv2x6Y9N0nckNz/rTjZB3//GGscZziZOxmjP55rzxg/ze7usFI9FqQ==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/browserslist": { + "version": "4.26.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", + "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.8.3", + "caniuse-lite": "^1.0.30001741", + "electron-to-chromium": "^1.5.218", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001745", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001745.tgz", + "integrity": "sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0", + "peer": true + }, + "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==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.224", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.224.tgz", + "integrity": "sha512-kWAoUu/bwzvnhpdZSIc6KUyvkI1rbRXMT0Eq8pKReyOyaPZcctMli+EgvcN1PAvwVc7Tdo4Fxi2PsLNDU05mdg==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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", + "peer": true + }, + "node_modules/node-releases": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", + "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC", + "peer": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC", + "peer": true + } + } +} diff --git a/test/project/package.json b/test/project/package.json new file mode 100644 index 0000000..e59a0ad --- /dev/null +++ b/test/project/package.json @@ -0,0 +1,8 @@ +{ + "name": "project", + "version": "0.0.1", + "main": "app.js", + "devDependencies": { + "@babel/plugin-transform-unicode-regex": "^7.27.1" + } +}