diff --git a/.github/workflows/nightly-release.yml b/.github/workflows/nightly-release.yml index 13e7c88df4c..853d0d1c9bc 100644 --- a/.github/workflows/nightly-release.yml +++ b/.github/workflows/nightly-release.yml @@ -37,7 +37,7 @@ jobs: build-linux-gnu-x64: name: linux-gnu-x64 - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 container: image: docker.io/adrienv1520/nodejs-16-centos7 steps: @@ -79,7 +79,7 @@ jobs: strip: aarch64-linux-gnu-strip cflags: '' name: ${{ matrix.target }} - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 - name: Install Rust @@ -129,7 +129,7 @@ jobs: strip: aarch64-linux-musl-strip cflags: '' name: ${{ matrix.target }} - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 container: image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine credentials: @@ -196,7 +196,7 @@ jobs: run: ls -l packages/*/*/*.node build-and-release: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 name: Build and release nightly needs: - build diff --git a/.github/workflows/tag-release.yml b/.github/workflows/tag-release.yml index 8edde1ae311..bcf8bb0a14f 100644 --- a/.github/workflows/tag-release.yml +++ b/.github/workflows/tag-release.yml @@ -37,7 +37,7 @@ jobs: build-linux-gnu-x64: name: linux-gnu-x64 - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 container: image: docker.io/adrienv1520/nodejs-16-centos7 steps: @@ -79,7 +79,7 @@ jobs: strip: aarch64-linux-gnu-strip cflags: '' name: ${{ matrix.target }} - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 - name: Install Rust @@ -129,7 +129,7 @@ jobs: strip: aarch64-linux-musl-strip cflags: '' name: ${{ matrix.target }} - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 container: image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine credentials: @@ -196,7 +196,7 @@ jobs: run: ls -l packages/*/*/*.node build-and-release: - runs-on: ubuntu-latest + runs-on: ubuntu-20.04 name: Build and release the tagged version needs: - build diff --git a/CHANGELOG.md b/CHANGELOG.md index 5609b9751b7..457073c0d28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,23 @@ All notable changes to Parcel will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and Parcel adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [2.8.1] - 2022-12-07 + +### Fixed + +- Core + - fix: remove @parcel/utils dep in @parcel/graph – [Details](https://github.com/parcel-bundler/parcel/pull/8630) +- JavaScript + - Don't retarget dependencies with `*` – [Details](https://github.com/parcel-bundler/parcel/pull/8645) + - Fix overriding single export of a `export *` – [Details](https://github.com/parcel-bundler/parcel/pull/8653) + - Add mjs and cjs to resolver extensions – [Details](https://github.com/parcel-bundler/parcel/pull/8667) +- TypeScript + - Make ts-types transformer work with TS >= 4.8 – [Details](https://github.com/parcel-bundler/parcel/pull/8661) +- Web manifest + - Parse shortcut icons in web app manifests – [Details](https://github.com/parcel-bundler/parcel/pull/8660) +- SVG + - Fix transformer-svg-react not finding `.svgrrc` – [Details](https://github.com/parcel-bundler/parcel/pull/7741) + ## [2.8.0] - 2022-11-09 ### Added @@ -166,7 +183,7 @@ and Parcel adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). - Fix hoisting for optional chaining member expressions - [Details](https://github.com/parcel-bundler/parcel/pull/8121) - Fix issues with web extensions - [Details](https://github.com/parcel-bundler/parcel/pull/8000) - Reload the closest package.json to an asset if it's a package entry to fix `sideEffects` - [Details](https://github.com/parcel-bundler/parcel/pull/7909) -- Only emit non static import bailout warnings for variables which correspond to a * import - [Details](https://github.com/parcel-bundler/parcel/pull/8136) +- Only emit non static import bailout warnings for variables which correspond to a \* import - [Details](https://github.com/parcel-bundler/parcel/pull/8136) ## [2.5.0] - 2022-04-21 diff --git a/package.json b/package.json index ae0ae3bc0d0..fea0f77e2e8 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "@babel/core": "^7.12.0", "@khanacademy/flow-to-ts": "^0.5.2", "@napi-rs/cli": "^2.6.2", - "@parcel/babel-register": "2.8.0", + "@parcel/babel-register": "2.8.1", "@types/node": "^15.12.4", "cross-env": "^7.0.0", "eslint": "^7.20.0", diff --git a/packages/bundlers/default/package.json b/packages/bundlers/default/package.json index c926dd59a0e..33282fe9848 100644 --- a/packages/bundlers/default/package.json +++ b/packages/bundlers/default/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/bundler-default", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,14 +17,14 @@ "source": "src/DefaultBundler.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/graph": "2.8.0", - "@parcel/hash": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/graph": "2.8.1", + "@parcel/hash": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" } } diff --git a/packages/bundlers/default/src/DefaultBundler.js b/packages/bundlers/default/src/DefaultBundler.js index 9d1bf240c71..385081a6a9b 100644 --- a/packages/bundlers/default/src/DefaultBundler.js +++ b/packages/bundlers/default/src/DefaultBundler.js @@ -104,7 +104,7 @@ type IdealGraph = {| /** * * The Bundler works by creating an IdealGraph, which contains a BundleGraph that models bundles - * connected to othervbundles by what references them, and thus models BundleGroups. + * connected to other bundles by what references them, and thus models BundleGroups. * * First, we enter `bundle({bundleGraph, config})`. Here, "bundleGraph" is actually just the * assetGraph turned into a type `MutableBundleGraph`, which will then be mutated in decorate, diff --git a/packages/compressors/brotli/package.json b/packages/compressors/brotli/package.json index d07e5682639..e42eaa30790 100644 --- a/packages/compressors/brotli/package.json +++ b/packages/compressors/brotli/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/compressor-brotli", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/BrotliCompressor.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/compressors/gzip/package.json b/packages/compressors/gzip/package.json index e3fcc41a17d..21dca6be986 100644 --- a/packages/compressors/gzip/package.json +++ b/packages/compressors/gzip/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/compressor-gzip", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/GzipCompressor.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/compressors/raw/package.json b/packages/compressors/raw/package.json index 629795dc883..ced270b718a 100644 --- a/packages/compressors/raw/package.json +++ b/packages/compressors/raw/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/compressor-raw", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/RawCompressor.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/configs/default/package.json b/packages/configs/default/package.json index ead652bae26..f70542901e3 100644 --- a/packages/configs/default/package.json +++ b/packages/configs/default/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/config-default", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -18,63 +18,63 @@ "test-ci": "mocha" }, "dependencies": { - "@parcel/bundler-default": "2.8.0", - "@parcel/compressor-raw": "2.8.0", - "@parcel/namer-default": "2.8.0", - "@parcel/optimizer-css": "2.8.0", - "@parcel/optimizer-htmlnano": "2.8.0", - "@parcel/optimizer-image": "2.8.0", - "@parcel/optimizer-svgo": "2.8.0", - "@parcel/optimizer-terser": "2.8.0", - "@parcel/packager-css": "2.8.0", - "@parcel/packager-html": "2.8.0", - "@parcel/packager-js": "2.8.0", - "@parcel/packager-raw": "2.8.0", - "@parcel/packager-svg": "2.8.0", - "@parcel/reporter-dev-server": "2.8.0", - "@parcel/resolver-default": "2.8.0", - "@parcel/runtime-browser-hmr": "2.8.0", - "@parcel/runtime-js": "2.8.0", - "@parcel/runtime-react-refresh": "2.8.0", - "@parcel/runtime-service-worker": "2.8.0", - "@parcel/transformer-babel": "2.8.0", - "@parcel/transformer-css": "2.8.0", - "@parcel/transformer-html": "2.8.0", - "@parcel/transformer-image": "2.8.0", - "@parcel/transformer-js": "2.8.0", - "@parcel/transformer-json": "2.8.0", - "@parcel/transformer-postcss": "2.8.0", - "@parcel/transformer-posthtml": "2.8.0", - "@parcel/transformer-raw": "2.8.0", - "@parcel/transformer-react-refresh-wrap": "2.8.0", - "@parcel/transformer-svg": "2.8.0" + "@parcel/bundler-default": "2.8.1", + "@parcel/compressor-raw": "2.8.1", + "@parcel/namer-default": "2.8.1", + "@parcel/optimizer-css": "2.8.1", + "@parcel/optimizer-htmlnano": "2.8.1", + "@parcel/optimizer-image": "2.8.1", + "@parcel/optimizer-svgo": "2.8.1", + "@parcel/optimizer-terser": "2.8.1", + "@parcel/packager-css": "2.8.1", + "@parcel/packager-html": "2.8.1", + "@parcel/packager-js": "2.8.1", + "@parcel/packager-raw": "2.8.1", + "@parcel/packager-svg": "2.8.1", + "@parcel/reporter-dev-server": "2.8.1", + "@parcel/resolver-default": "2.8.1", + "@parcel/runtime-browser-hmr": "2.8.1", + "@parcel/runtime-js": "2.8.1", + "@parcel/runtime-react-refresh": "2.8.1", + "@parcel/runtime-service-worker": "2.8.1", + "@parcel/transformer-babel": "2.8.1", + "@parcel/transformer-css": "2.8.1", + "@parcel/transformer-html": "2.8.1", + "@parcel/transformer-image": "2.8.1", + "@parcel/transformer-js": "2.8.1", + "@parcel/transformer-json": "2.8.1", + "@parcel/transformer-postcss": "2.8.1", + "@parcel/transformer-posthtml": "2.8.1", + "@parcel/transformer-raw": "2.8.1", + "@parcel/transformer-react-refresh-wrap": "2.8.1", + "@parcel/transformer-svg": "2.8.1" }, "parcelDependencies": { - "@parcel/optimizer-data-url": "2.8.0", - "@parcel/packager-raw-url": "2.8.0", - "@parcel/packager-ts": "2.8.0", - "@parcel/packager-xml": "2.8.0", - "@parcel/transformer-coffeescript": "2.8.0", - "@parcel/transformer-elm": "2.8.0", - "@parcel/transformer-glsl": "2.8.0", - "@parcel/transformer-graphql": "2.8.0", - "@parcel/transformer-inline-string": "2.8.0", - "@parcel/transformer-jsonld": "2.8.0", - "@parcel/transformer-less": "2.8.0", - "@parcel/transformer-mdx": "2.8.0", - "@parcel/transformer-pug": "2.8.0", - "@parcel/transformer-sass": "2.8.0", - "@parcel/transformer-stylus": "2.8.0", - "@parcel/transformer-sugarss": "2.8.0", - "@parcel/transformer-toml": "2.8.0", - "@parcel/transformer-typescript-types": "2.8.0", - "@parcel/transformer-vue": "2.8.0", - "@parcel/transformer-webmanifest": "2.8.0", - "@parcel/transformer-worklet": "2.8.0", - "@parcel/transformer-xml": "2.8.0", - "@parcel/transformer-yaml": "2.8.0" + "@parcel/optimizer-data-url": "2.8.1", + "@parcel/packager-raw-url": "2.8.1", + "@parcel/packager-ts": "2.8.1", + "@parcel/packager-xml": "2.8.1", + "@parcel/transformer-coffeescript": "2.8.1", + "@parcel/transformer-elm": "2.8.1", + "@parcel/transformer-glsl": "2.8.1", + "@parcel/transformer-graphql": "2.8.1", + "@parcel/transformer-inline-string": "2.8.1", + "@parcel/transformer-jsonld": "2.8.1", + "@parcel/transformer-less": "2.8.1", + "@parcel/transformer-mdx": "2.8.1", + "@parcel/transformer-pug": "2.8.1", + "@parcel/transformer-sass": "2.8.1", + "@parcel/transformer-stylus": "2.8.1", + "@parcel/transformer-sugarss": "2.8.1", + "@parcel/transformer-toml": "2.8.1", + "@parcel/transformer-typescript-types": "2.8.1", + "@parcel/transformer-vue": "2.8.1", + "@parcel/transformer-webmanifest": "2.8.1", + "@parcel/transformer-worklet": "2.8.1", + "@parcel/transformer-xml": "2.8.1", + "@parcel/transformer-yaml": "2.8.1" }, "peerDependencies": { - "@parcel/core": "^2.8.0" + "@parcel/core": "^2.8.1" } } diff --git a/packages/configs/webextension/package.json b/packages/configs/webextension/package.json index 986f7611cdd..ffdfac3e444 100644 --- a/packages/configs/webextension/package.json +++ b/packages/configs/webextension/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/config-webextension", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -15,13 +15,13 @@ }, "main": "index.json", "dependencies": { - "@parcel/config-default": "2.8.0", - "@parcel/packager-webextension": "2.8.0", - "@parcel/runtime-webextension": "2.8.0", - "@parcel/transformer-raw": "2.8.0", - "@parcel/transformer-webextension": "2.8.0" + "@parcel/config-default": "2.8.1", + "@parcel/packager-webextension": "2.8.1", + "@parcel/runtime-webextension": "2.8.1", + "@parcel/transformer-raw": "2.8.1", + "@parcel/transformer-webextension": "2.8.1" }, "peerDependencies": { - "@parcel/core": "^2.8.0" + "@parcel/core": "^2.8.1" } } diff --git a/packages/core/cache/package.json b/packages/core/cache/package.json index 5b535f6d698..3aed9270d7c 100644 --- a/packages/core/cache/package.json +++ b/packages/core/cache/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/cache", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -24,13 +24,13 @@ "check-ts": "tsc --noEmit index.d.ts" }, "dependencies": { - "@parcel/fs": "2.8.0", - "@parcel/logger": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/fs": "2.8.1", + "@parcel/logger": "2.8.1", + "@parcel/utils": "2.8.1", "lmdb": "2.5.2" }, "peerDependencies": { - "@parcel/core": "^2.8.0" + "@parcel/core": "^2.8.1" }, "devDependencies": { "idb": "^5.0.8" diff --git a/packages/core/codeframe/package.json b/packages/core/codeframe/package.json index 4b86c7c706a..ab7d1a7a9a4 100644 --- a/packages/core/codeframe/package.json +++ b/packages/core/codeframe/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/codeframe", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { diff --git a/packages/core/core/package.json b/packages/core/core/package.json index e6ebde36ed7..ae66c74cf2c 100644 --- a/packages/core/core/package.json +++ b/packages/core/core/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/core", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -25,19 +25,19 @@ }, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/cache": "2.8.0", - "@parcel/diagnostic": "2.8.0", - "@parcel/events": "2.8.0", - "@parcel/fs": "2.8.0", - "@parcel/graph": "2.8.0", - "@parcel/hash": "2.8.0", - "@parcel/logger": "2.8.0", - "@parcel/package-manager": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/cache": "2.8.1", + "@parcel/diagnostic": "2.8.1", + "@parcel/events": "2.8.1", + "@parcel/fs": "2.8.1", + "@parcel/graph": "2.8.1", + "@parcel/hash": "2.8.1", + "@parcel/logger": "2.8.1", + "@parcel/package-manager": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", - "@parcel/workers": "2.8.0", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", + "@parcel/workers": "2.8.1", "abortcontroller-polyfill": "^1.1.9", "base-x": "^3.0.8", "browserslist": "^4.6.6", diff --git a/packages/core/core/src/BundleGraph.js b/packages/core/core/src/BundleGraph.js index f1c3c9c277c..36a39888997 100644 --- a/packages/core/core/src/BundleGraph.js +++ b/packages/core/core/src/BundleGraph.js @@ -215,6 +215,10 @@ export default class BundleGraph { node.usedSymbolsUp.size > 0 && // Only perform rewriting if the dependency only points to a single asset (e.g. CSS modules) !hasAmbiguousSymbols && + // It doesn't make sense to retarget dependencies where `*` is used, because the + // retargeting won't enable any benefits in that case (apart from potentially even more + // code being generated). + !node.usedSymbolsUp.has('*') && // TODO We currently can't rename imports in async imports, e.g. from // (parcelRequire("...")).then(({ a }) => a); // to diff --git a/packages/core/diagnostic/package.json b/packages/core/diagnostic/package.json index 236932839b9..219a2bca861 100644 --- a/packages/core/diagnostic/package.json +++ b/packages/core/diagnostic/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/diagnostic", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" diff --git a/packages/core/fs/package.json b/packages/core/fs/package.json index 02de7846982..eaf875b6a05 100644 --- a/packages/core/fs/package.json +++ b/packages/core/fs/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/fs", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { @@ -48,11 +48,11 @@ "check-ts": "tsc --noEmit index.d.ts" }, "dependencies": { - "@parcel/fs-search": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/fs-search": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", "@parcel/watcher": "^2.0.7", - "@parcel/workers": "2.8.0" + "@parcel/workers": "2.8.1" }, "devDependencies": { "graceful-fs": "^4.2.4", @@ -61,7 +61,7 @@ "utility-types": "^3.10.0" }, "peerDependencies": { - "@parcel/core": "^2.8.0" + "@parcel/core": "^2.8.1" }, "browser": { "@parcel/fs": "./lib/browser.js", diff --git a/packages/core/graph/package.json b/packages/core/graph/package.json index dde6e479995..f6fde82608b 100644 --- a/packages/core/graph/package.json +++ b/packages/core/graph/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/graph", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { @@ -20,7 +20,6 @@ "node": ">= 12.0.0" }, "dependencies": { - "@parcel/utils": "2.8.0", "nullthrows": "^1.1.1" } } diff --git a/packages/core/graph/src/AdjacencyList.js b/packages/core/graph/src/AdjacencyList.js index 803655099ab..73a18ae7d5f 100644 --- a/packages/core/graph/src/AdjacencyList.js +++ b/packages/core/graph/src/AdjacencyList.js @@ -1,7 +1,7 @@ // @flow import assert from 'assert'; import nullthrows from 'nullthrows'; -import {SharedBuffer} from '@parcel/utils'; +import {SharedBuffer} from './shared-buffer'; import {fromNodeId, toNodeId} from './types'; import {ALL_EDGE_TYPES, type NullEdgeType, type AllEdgeTypes} from './Graph'; import type {NodeId} from './types'; diff --git a/packages/core/graph/src/shared-buffer.js b/packages/core/graph/src/shared-buffer.js new file mode 100644 index 00000000000..64cadd68682 --- /dev/null +++ b/packages/core/graph/src/shared-buffer.js @@ -0,0 +1,24 @@ +// @flow +/* global MessageChannel:readonly */ +// Copy from @parcel/utils to fix: https://github.com/stackblitz/core/issues/1855 +export let SharedBuffer: Class | Class; + +// $FlowFixMe[prop-missing] +if (process.browser) { + SharedBuffer = ArrayBuffer; + // Safari has removed the constructor + if (typeof SharedArrayBuffer !== 'undefined') { + let channel = new MessageChannel(); + try { + // Firefox might throw when sending the Buffer over a MessagePort + channel.port1.postMessage(new SharedArrayBuffer(0)); + SharedBuffer = SharedArrayBuffer; + } catch (_) { + // NOOP + } + channel.port1.close(); + channel.port2.close(); + } +} else { + SharedBuffer = SharedArrayBuffer; +} diff --git a/packages/core/integration-tests/package.json b/packages/core/integration-tests/package.json index 27e8a7b9c6b..95560022e79 100644 --- a/packages/core/integration-tests/package.json +++ b/packages/core/integration-tests/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/integration-tests", - "version": "2.8.0", + "version": "2.8.1", "private": true, "license": "MIT", "repository": { @@ -42,7 +42,7 @@ "ncp": "^2.0.0", "nib": "^1.1.2", "node-elm-compiler": "^5.0.5", - "parcel": "2.8.0", + "parcel": "2.8.1", "postcss": "^8.4.5", "postcss-custom-properties": "^12.1.2", "postcss-import": "^14.0.2", diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/a.js b/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/a.js new file mode 100644 index 00000000000..7973586a0f6 --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/a.js @@ -0,0 +1,3 @@ +import { foo, c } from "./b.js"; + +export default foo() + c; diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/b.js b/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/b.js new file mode 100644 index 00000000000..48594e8d61d --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/b.js @@ -0,0 +1,8 @@ +import { foo as old } from "./c"; +export * from "./c"; + +function foo() { + return "fooB" + old(); +} + +export { foo }; diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/c.js b/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/c.js new file mode 100644 index 00000000000..9f3df1dbd3f --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/c.js @@ -0,0 +1,5 @@ +export function foo() { + return "fooC"; +} + +export const c = "C"; diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/index.js b/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/index.js new file mode 100644 index 00000000000..63e96797b22 --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/re-export-all-override/index.js @@ -0,0 +1,3 @@ +if (Date.now() > 0) { + output = require("./a.js").default; +} diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/index.js b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/index.js new file mode 100644 index 00000000000..461f6e483ef --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/index.js @@ -0,0 +1,5 @@ +import { v } from "./library/a.js"; + +import * as y from "./library/a.js"; + +output = [v, sideEffectNoop(y).v]; diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/a.js b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/a.js new file mode 100644 index 00000000000..d165e999022 --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/a.js @@ -0,0 +1 @@ +export * from "./b.js"; diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/b.js b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/b.js new file mode 100644 index 00000000000..0e07370072f --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/b.js @@ -0,0 +1 @@ +export {v} from "./c.js"; diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/c.js b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/c.js new file mode 100644 index 00000000000..098cc0c9e17 --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/c.js @@ -0,0 +1 @@ +export const v = 123; diff --git a/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/package.json b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/package.json new file mode 100644 index 00000000000..1b95642997c --- /dev/null +++ b/packages/core/integration-tests/test/integration/scope-hoisting/es6/retarget-namespace-single/library/package.json @@ -0,0 +1,3 @@ +{ + "sideEffects": false +} diff --git a/packages/core/integration-tests/test/integration/svg-react-config/.svgrrc.json b/packages/core/integration-tests/test/integration/svg-react-config/.svgrrc.json new file mode 100644 index 00000000000..25b05272976 --- /dev/null +++ b/packages/core/integration-tests/test/integration/svg-react-config/.svgrrc.json @@ -0,0 +1,4 @@ +{ + "icon": true, + "jsxRuntime": "classic-preact" +} diff --git a/packages/core/integration-tests/test/integration/svg-react-config/icon.svg b/packages/core/integration-tests/test/integration/svg-react-config/icon.svg new file mode 100644 index 00000000000..a0aeec0dc8f --- /dev/null +++ b/packages/core/integration-tests/test/integration/svg-react-config/icon.svg @@ -0,0 +1,14 @@ + + + + + + + diff --git a/packages/core/integration-tests/test/integration/svg-react-config/index.html b/packages/core/integration-tests/test/integration/svg-react-config/index.html new file mode 100644 index 00000000000..ceb8dab6b68 --- /dev/null +++ b/packages/core/integration-tests/test/integration/svg-react-config/index.html @@ -0,0 +1 @@ + diff --git a/packages/core/integration-tests/test/integration/svg-react-config/package.json b/packages/core/integration-tests/test/integration/svg-react-config/package.json new file mode 100644 index 00000000000..7ca2d696c01 --- /dev/null +++ b/packages/core/integration-tests/test/integration/svg-react-config/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "preact": "*" + } +} diff --git a/packages/core/integration-tests/test/integration/svg-react-config/react.js b/packages/core/integration-tests/test/integration/svg-react-config/react.js new file mode 100644 index 00000000000..01a798d242c --- /dev/null +++ b/packages/core/integration-tests/test/integration/svg-react-config/react.js @@ -0,0 +1,4 @@ +const { h } = require('preact'); +const PreactIcon = require('./icon.svg'); + +module.exports = ; diff --git a/packages/core/integration-tests/test/integration/svg-react-config/svgo.config.json b/packages/core/integration-tests/test/integration/svg-react-config/svgo.config.json new file mode 100644 index 00000000000..37603be6342 --- /dev/null +++ b/packages/core/integration-tests/test/integration/svg-react-config/svgo.config.json @@ -0,0 +1,3 @@ +{ + "floatPrecision": 0 +} diff --git a/packages/core/integration-tests/test/integration/webmanifest-json/manifest.json b/packages/core/integration-tests/test/integration/webmanifest-json/manifest.json index df3bafd8591..bf9b21d989b 100644 --- a/packages/core/integration-tests/test/integration/webmanifest-json/manifest.json +++ b/packages/core/integration-tests/test/integration/webmanifest-json/manifest.json @@ -13,5 +13,17 @@ "sizes": "100x100", "type": "image/png" } + ], + "shortcuts": [ + { + "name": "example-shortcut", + "icons": [ + { + "src": "shortcut-icon.png", + "sizes": "100x100", + "type": "image/png" + } + ] + } ] } diff --git a/packages/core/integration-tests/test/integration/webmanifest-json/shortcut-icon.png b/packages/core/integration-tests/test/integration/webmanifest-json/shortcut-icon.png new file mode 100644 index 00000000000..8a1daa0121d Binary files /dev/null and b/packages/core/integration-tests/test/integration/webmanifest-json/shortcut-icon.png differ diff --git a/packages/core/integration-tests/test/integration/webmanifest-schema/manifest.webmanifest b/packages/core/integration-tests/test/integration/webmanifest-schema/manifest.webmanifest index f28b0aedc75..7b9bf17e5db 100644 --- a/packages/core/integration-tests/test/integration/webmanifest-schema/manifest.webmanifest +++ b/packages/core/integration-tests/test/integration/webmanifest-schema/manifest.webmanifest @@ -12,5 +12,24 @@ }, {} ], - "screenshots": {} + "screenshots": {}, + "shortcuts": [ + { + "icons": {} + }, + { + "icons": [ + { + "src": "icon.png", + "sizes": "100x100", + "type": "image/png" + }, + { + "sizes": "100x100", + "type": "image/png" + }, + {} + ] + } + ] } diff --git a/packages/core/integration-tests/test/integration/webmanifest/manifest.webmanifest b/packages/core/integration-tests/test/integration/webmanifest/manifest.webmanifest index df3bafd8591..bf9b21d989b 100644 --- a/packages/core/integration-tests/test/integration/webmanifest/manifest.webmanifest +++ b/packages/core/integration-tests/test/integration/webmanifest/manifest.webmanifest @@ -13,5 +13,17 @@ "sizes": "100x100", "type": "image/png" } + ], + "shortcuts": [ + { + "name": "example-shortcut", + "icons": [ + { + "src": "shortcut-icon.png", + "sizes": "100x100", + "type": "image/png" + } + ] + } ] } diff --git a/packages/core/integration-tests/test/integration/webmanifest/shortcut-icon.png b/packages/core/integration-tests/test/integration/webmanifest/shortcut-icon.png new file mode 100644 index 00000000000..8a1daa0121d Binary files /dev/null and b/packages/core/integration-tests/test/integration/webmanifest/shortcut-icon.png differ diff --git a/packages/core/integration-tests/test/scope-hoisting.js b/packages/core/integration-tests/test/scope-hoisting.js index fcbe8e2b4d9..985d5b672c7 100644 --- a/packages/core/integration-tests/test/scope-hoisting.js +++ b/packages/core/integration-tests/test/scope-hoisting.js @@ -397,6 +397,18 @@ describe('scope hoisting', function () { assert.equal(output, 15); }); + it('supports re-exporting all exports and overriding individual exports', async function () { + let b = await bundle( + path.join( + __dirname, + '/integration/scope-hoisting/es6/re-export-all-override/index.js', + ), + ); + + let output = await run(b); + assert.strictEqual(output, 'fooBfooCC'); + }); + it('can import from a different bundle via a re-export (1)', async function () { let b = await bundle( path.join( @@ -2224,6 +2236,17 @@ describe('scope hoisting', function () { ]); }); + it('should correctly retarget dependencies when both namespace and indvidual export are used', async function () { + let b = await bundle( + path.join( + __dirname, + '/integration/scope-hoisting/es6/retarget-namespace-single/index.js', + ), + ); + let output = await run(b); + assert.deepEqual(output, [123, 123]); + }); + it('should correctly handle circular dependencies', async function () { let b = await bundle( path.join(__dirname, '/integration/scope-hoisting/es6/circular/a.mjs'), diff --git a/packages/core/integration-tests/test/svg-react.js b/packages/core/integration-tests/test/svg-react.js index dff63a48577..fa4ffff6495 100644 --- a/packages/core/integration-tests/test/svg-react.js +++ b/packages/core/integration-tests/test/svg-react.js @@ -19,6 +19,7 @@ describe('svg-react', function () { assert(file.includes('const SvgIcon =')); assert(file.includes('_react.createElement("svg"')); }); + it('should support transforming SVGs to typescript react components', async function () { let b = await bundle( path.join(__dirname, '/integration/svg-react-typescript/react.ts'), @@ -36,4 +37,23 @@ describe('svg-react', function () { assert(file.includes('react.createElement("svg"')); assert(types.includes('const Icon: SVGRComponent')); }); + + it('should find and use a .svgrrc and .svgorc config file', async function () { + let b = await bundle( + path.join(__dirname, '/integration/svg-react-config/react.js'), + { + defaultConfig: path.join( + __dirname, + 'integration/custom-configs/.parcelrc-svg-react', + ), + }, + ); + + let file = await outputFS.readFile(b.getBundles()[0].filePath, 'utf-8'); + assert(!file.includes('inkscape')); + assert(!/\d\.\d/.test(file)); + assert(file.includes('const SvgIcon =')); + assert(file.includes('(0, _preact.h)("svg"')); + assert(file.includes('width: "1em"')); + }); }); diff --git a/packages/core/integration-tests/test/webmanifest.js b/packages/core/integration-tests/test/webmanifest.js index e63cf3918dd..cfee46756f2 100644 --- a/packages/core/integration-tests/test/webmanifest.js +++ b/packages/core/integration-tests/test/webmanifest.js @@ -26,6 +26,10 @@ describe('webmanifest', function () { type: 'png', assets: ['screenshot.png'], }, + { + type: 'png', + assets: ['shortcut-icon.png'], + }, ]); const manifest = await outputFS.readFile( @@ -34,6 +38,7 @@ describe('webmanifest', function () { ); assert(/screenshot\.[0-9a-f]+\.png/.test(manifest)); assert(/icon\.[0-9a-f]+\.png/.test(manifest)); + assert(/shortcut-icon\.[0-9a-f]+\.png/.test(manifest)); }); it('should support .json', async function () { @@ -58,6 +63,10 @@ describe('webmanifest', function () { type: 'png', assets: ['screenshot.png'], }, + { + type: 'png', + assets: ['shortcut-icon.png'], + }, ]); const manifest = await outputFS.readFile( @@ -66,6 +75,7 @@ describe('webmanifest', function () { ); assert(/screenshot\.[0-9a-f]+\.png/.test(manifest)); assert(/icon\.[0-9a-f]+\.png/.test(manifest)); + assert(/shortcut-icon\.[0-9a-f]+\.png/.test(manifest)); }); it('should throw on malformed icons and screenshots', async function () { @@ -124,6 +134,39 @@ describe('webmanifest', function () { line: 15, }, }, + { + end: { + column: 17, + line: 18, + }, + message: 'Expected type array', + start: { + column: 16, + line: 18, + }, + }, + { + end: { + column: 9, + line: 30, + }, + message: 'Missing property src', + start: { + column: 9, + line: 27, + }, + }, + { + end: { + column: 10, + line: 31, + }, + message: 'Missing property src', + start: { + column: 9, + line: 31, + }, + }, ], }, ], diff --git a/packages/core/is-v2-ready-yet/package.json b/packages/core/is-v2-ready-yet/package.json index 5081d593085..ebee317803c 100644 --- a/packages/core/is-v2-ready-yet/package.json +++ b/packages/core/is-v2-ready-yet/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/is-v2-ready-yet", - "version": "2.8.0", + "version": "2.8.1", "private": true, "license": "MIT", "repository": { @@ -13,7 +13,7 @@ "build-app": "yarn parcel build index.html" }, "dependencies": { - "@parcel/integration-tests": "2.8.0", + "@parcel/integration-tests": "2.8.1", "react": "^17.0.2", "react-dom": "^17.0.2", "victory": "^31.0.1" diff --git a/packages/core/logger/package.json b/packages/core/logger/package.json index 29ac7351bb8..a5d4d5aa4f2 100644 --- a/packages/core/logger/package.json +++ b/packages/core/logger/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/logger", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { @@ -20,7 +20,7 @@ "node": ">= 12.0.0" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/events": "2.8.0" + "@parcel/diagnostic": "2.8.1", + "@parcel/events": "2.8.1" } } diff --git a/packages/core/markdown-ansi/package.json b/packages/core/markdown-ansi/package.json index cd63f95cede..33b88645d50 100644 --- a/packages/core/markdown-ansi/package.json +++ b/packages/core/markdown-ansi/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/markdown-ansi", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "publishConfig": { "access": "public" diff --git a/packages/core/package-manager/package.json b/packages/core/package-manager/package.json index 26c5646a8b9..70cca8250bf 100644 --- a/packages/core/package-manager/package.json +++ b/packages/core/package-manager/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/package-manager", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { @@ -40,12 +40,12 @@ } }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/fs": "2.8.0", - "@parcel/logger": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", - "@parcel/workers": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/fs": "2.8.1", + "@parcel/logger": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", + "@parcel/workers": "2.8.1", "semver": "^5.7.1" }, "devDependencies": { @@ -55,7 +55,7 @@ "split2": "^3.1.1" }, "peerDependencies": { - "@parcel/core": "^2.8.0" + "@parcel/core": "^2.8.1" }, "browser": { "./src/Npm.js": false, diff --git a/packages/core/parcel/package.json b/packages/core/parcel/package.json index 754a752c06a..864ed65f40a 100644 --- a/packages/core/parcel/package.json +++ b/packages/core/parcel/package.json @@ -1,6 +1,6 @@ { "name": "parcel", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { @@ -21,16 +21,16 @@ "node": ">= 12.0.0" }, "dependencies": { - "@parcel/config-default": "2.8.0", - "@parcel/core": "2.8.0", - "@parcel/diagnostic": "2.8.0", - "@parcel/events": "2.8.0", - "@parcel/fs": "2.8.0", - "@parcel/logger": "2.8.0", - "@parcel/package-manager": "2.8.0", - "@parcel/reporter-cli": "2.8.0", - "@parcel/reporter-dev-server": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/config-default": "2.8.1", + "@parcel/core": "2.8.1", + "@parcel/diagnostic": "2.8.1", + "@parcel/events": "2.8.1", + "@parcel/fs": "2.8.1", + "@parcel/logger": "2.8.1", + "@parcel/package-manager": "2.8.1", + "@parcel/reporter-cli": "2.8.1", + "@parcel/reporter-dev-server": "2.8.1", + "@parcel/utils": "2.8.1", "chalk": "^4.1.0", "commander": "^7.0.0", "get-port": "^4.2.0", @@ -38,6 +38,6 @@ }, "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0" + "@parcel/babel-register": "2.8.1" } } diff --git a/packages/core/plugin/package.json b/packages/core/plugin/package.json index a863476cff6..f9c0398f53a 100644 --- a/packages/core/plugin/package.json +++ b/packages/core/plugin/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/plugin", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -23,6 +23,6 @@ "check-ts": "tsc --noEmit src/PluginAPI.d.ts" }, "dependencies": { - "@parcel/types": "2.8.0" + "@parcel/types": "2.8.1" } } diff --git a/packages/core/register/package.json b/packages/core/register/package.json index 85a846943e2..895f9e1ab5b 100644 --- a/packages/core/register/package.json +++ b/packages/core/register/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/register", - "version": "2.8.0", + "version": "2.8.1", "private": true, "license": "MIT", "publishConfig": { @@ -24,10 +24,10 @@ "clean": "rimraf .parcel-cache" }, "dependencies": { - "@parcel/config-default": "2.8.0", - "@parcel/core": "2.8.0", - "@parcel/fs": "2.8.0", - "@parcel/package-manager": "2.8.0", + "@parcel/config-default": "2.8.1", + "@parcel/core": "2.8.1", + "@parcel/fs": "2.8.1", + "@parcel/package-manager": "2.8.1", "pirates": "^4.0.0" } } diff --git a/packages/core/test-utils/package.json b/packages/core/test-utils/package.json index 484401586f2..667364e2f87 100644 --- a/packages/core/test-utils/package.json +++ b/packages/core/test-utils/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/test-utils", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "private": true, @@ -13,11 +13,11 @@ "node": ">= 12.0.0" }, "dependencies": { - "@parcel/config-default": "2.8.0", - "@parcel/core": "2.8.0", - "@parcel/fs": "2.8.0", - "@parcel/package-manager": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/config-default": "2.8.1", + "@parcel/core": "2.8.1", + "@parcel/fs": "2.8.1", + "@parcel/package-manager": "2.8.1", + "@parcel/utils": "2.8.1", "chalk": "^4.1.0", "ncp": "^2.0.0", "nullthrows": "^1.1.1", diff --git a/packages/core/test-utils/src/utils.js b/packages/core/test-utils/src/utils.js index eb2788ccd3a..8a6a3c4ffcc 100644 --- a/packages/core/test-utils/src/utils.js +++ b/packages/core/test-utils/src/utils.js @@ -338,7 +338,7 @@ export async function runBundles( // A utility to prevent optimizers from removing side-effect-free code needed for testing // $FlowFixMe[prop-missing] - ctx.sideEffectNoop = () => {}; + ctx.sideEffectNoop = v => v; vm.createContext(ctx); let esmOutput; diff --git a/packages/core/types/package.json b/packages/core/types/package.json index 3c4b446dce6..59022dc9e0b 100644 --- a/packages/core/types/package.json +++ b/packages/core/types/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/types", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "main": "src/index.js", "types": "lib/index.d.ts", @@ -16,12 +16,12 @@ "check-ts": "tsc --noEmit lib/index.d.ts" }, "dependencies": { - "@parcel/cache": "2.8.0", - "@parcel/diagnostic": "2.8.0", - "@parcel/fs": "2.8.0", - "@parcel/package-manager": "2.8.0", + "@parcel/cache": "2.8.1", + "@parcel/diagnostic": "2.8.1", + "@parcel/fs": "2.8.1", + "@parcel/package-manager": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/workers": "2.8.0", + "@parcel/workers": "2.8.1", "utility-types": "^3.10.0" } } diff --git a/packages/core/utils/package.json b/packages/core/utils/package.json index b159ab6250b..8d0d4e9d19d 100644 --- a/packages/core/utils/package.json +++ b/packages/core/utils/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/utils", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { @@ -33,11 +33,11 @@ } }, "dependencies": { - "@parcel/codeframe": "2.8.0", - "@parcel/diagnostic": "2.8.0", - "@parcel/hash": "2.8.0", - "@parcel/logger": "2.8.0", - "@parcel/markdown-ansi": "2.8.0", + "@parcel/codeframe": "2.8.1", + "@parcel/diagnostic": "2.8.1", + "@parcel/hash": "2.8.1", + "@parcel/logger": "2.8.1", + "@parcel/markdown-ansi": "2.8.1", "@parcel/source-map": "^2.1.1", "chalk": "^4.1.0" }, diff --git a/packages/core/workers/package.json b/packages/core/workers/package.json index fd6f4732028..7fce9c04adc 100644 --- a/packages/core/workers/package.json +++ b/packages/core/workers/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/workers", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { @@ -21,15 +21,15 @@ "node": ">= 12.0.0" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/logger": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/logger": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", "chrome-trace-event": "^1.0.2", "nullthrows": "^1.1.1" }, "peerDependencies": { - "@parcel/core": "^2.8.0" + "@parcel/core": "^2.8.1" }, "browser": { "./src/cpuCount.js": false, diff --git a/packages/dev/babel-preset/package.json b/packages/dev/babel-preset/package.json index 2c644499c3c..0004ae9cc31 100644 --- a/packages/dev/babel-preset/package.json +++ b/packages/dev/babel-preset/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/babel-preset", - "version": "2.8.0", + "version": "2.8.1", "private": true, "license": "MIT", "repository": { diff --git a/packages/dev/babel-register/package.json b/packages/dev/babel-register/package.json index 93d5ad1dba3..c93e768f105 100644 --- a/packages/dev/babel-register/package.json +++ b/packages/dev/babel-register/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/babel-register", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "private": true, @@ -10,7 +10,7 @@ }, "dependencies": { "@babel/register": "^7.4.4", - "@parcel/babel-preset": "2.8.0", + "@parcel/babel-preset": "2.8.1", "resolve": "^1.12.0" }, "peerDependencies": { diff --git a/packages/dev/eslint-config-browser/package.json b/packages/dev/eslint-config-browser/package.json index 065772dfdb2..83159e83f36 100644 --- a/packages/dev/eslint-config-browser/package.json +++ b/packages/dev/eslint-config-browser/package.json @@ -1,9 +1,9 @@ { "name": "@parcel/eslint-config-browser", "private": true, - "version": "2.8.0", + "version": "2.8.1", "dependencies": { - "@parcel/eslint-config": "2.8.0" + "@parcel/eslint-config": "2.8.1" }, "peerDependencies": { "@babel/core": "^7.0.0", diff --git a/packages/dev/eslint-config/package.json b/packages/dev/eslint-config/package.json index 68e9356d451..6ef7ab74e94 100644 --- a/packages/dev/eslint-config/package.json +++ b/packages/dev/eslint-config/package.json @@ -1,10 +1,10 @@ { "name": "@parcel/eslint-config", "private": true, - "version": "2.8.0", + "version": "2.8.1", "dependencies": { "@babel/eslint-parser": "^7.12.1", - "@parcel/eslint-plugin": "2.8.0", + "@parcel/eslint-plugin": "2.8.1", "eslint-config-prettier": "^7.2.0", "eslint-plugin-flowtype": "^5.2.0", "eslint-plugin-import": "^2.22.1", diff --git a/packages/dev/eslint-plugin/package.json b/packages/dev/eslint-plugin/package.json index a5e832a0354..245093c6f87 100644 --- a/packages/dev/eslint-plugin/package.json +++ b/packages/dev/eslint-plugin/package.json @@ -1,7 +1,7 @@ { "name": "@parcel/eslint-plugin", "private": true, - "version": "2.8.0", + "version": "2.8.1", "main": "index.js", "scripts": {}, "dependencies": { diff --git a/packages/dev/esm-fuzzer/package.json b/packages/dev/esm-fuzzer/package.json index 025385bae49..9a00207b7ce 100644 --- a/packages/dev/esm-fuzzer/package.json +++ b/packages/dev/esm-fuzzer/package.json @@ -1,6 +1,6 @@ { "name": "fuzzer", - "version": "2.8.0", + "version": "2.8.1", "private": true, "scripts": { "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules -r @parcel/babel-register index.js" diff --git a/packages/dev/parcel-link/package.json b/packages/dev/parcel-link/package.json index 99173692b3b..02b14bc20a6 100644 --- a/packages/dev/parcel-link/package.json +++ b/packages/dev/parcel-link/package.json @@ -1,7 +1,7 @@ { "name": "@parcel/link", "description": "A CLI for linking a dev version of Parcel into a project", - "version": "2.8.0", + "version": "2.8.1", "private": true, "bin": { "parcel-link": "bin/link.js", @@ -10,7 +10,7 @@ "main": "src/index.js", "dependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0", + "@parcel/babel-register": "2.8.1", "commander": "^7.0.0", "glob": "^7.1.6", "nullthrows": "^1.1.1" diff --git a/packages/examples/eslint-example/package.json b/packages/examples/eslint-example/package.json index b25620992e0..8c7d056b683 100644 --- a/packages/examples/eslint-example/package.json +++ b/packages/examples/eslint-example/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/eslint-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { @@ -18,9 +18,9 @@ }, "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0", - "@parcel/core": "2.8.0", - "@parcel/validator-eslint": "2.8.0", - "parcel": "2.8.0" + "@parcel/babel-register": "2.8.1", + "@parcel/core": "2.8.1", + "@parcel/validator-eslint": "2.8.1", + "parcel": "2.8.1" } } diff --git a/packages/examples/html/package.json b/packages/examples/html/package.json index c88e8840c26..8ea7748b90f 100644 --- a/packages/examples/html/package.json +++ b/packages/examples/html/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/html-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { @@ -13,8 +13,8 @@ ], "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0", - "parcel": "2.8.0" + "@parcel/babel-register": "2.8.1", + "parcel": "2.8.1" }, "dependencies": { "lodash": "^4.17.11", diff --git a/packages/examples/internalize-example/package.json b/packages/examples/internalize-example/package.json index 6bd1611e44c..0ab978173f1 100644 --- a/packages/examples/internalize-example/package.json +++ b/packages/examples/internalize-example/package.json @@ -1,6 +1,6 @@ { "name": "internalize-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true } diff --git a/packages/examples/kitchen-sink/package.json b/packages/examples/kitchen-sink/package.json index f4d9326d56b..6e572bacbad 100644 --- a/packages/examples/kitchen-sink/package.json +++ b/packages/examples/kitchen-sink/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/kitchen-sink-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { @@ -9,12 +9,12 @@ }, "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0", - "@parcel/config-default": "2.8.0", - "@parcel/core": "2.8.0", - "@parcel/optimizer-esbuild": "2.8.0", - "@parcel/reporter-sourcemap-visualiser": "2.8.0", - "parcel": "2.8.0" + "@parcel/babel-register": "2.8.1", + "@parcel/config-default": "2.8.1", + "@parcel/core": "2.8.1", + "@parcel/optimizer-esbuild": "2.8.1", + "@parcel/reporter-sourcemap-visualiser": "2.8.1", + "parcel": "2.8.1" }, "browser": "dist/legacy/index.html", "browserModern": "dist/modern/index.html", diff --git a/packages/examples/react-hmr/package.json b/packages/examples/react-hmr/package.json index 567c1f2213d..f486605844e 100644 --- a/packages/examples/react-hmr/package.json +++ b/packages/examples/react-hmr/package.json @@ -1,13 +1,13 @@ { "name": "@parcel/react-hmr-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { "demo": "parcel serve src/index.html --no-cache --https" }, "devDependencies": { - "parcel": "2.8.0" + "parcel": "2.8.1" }, "targets": { "browserModern": { diff --git a/packages/examples/react-refresh/package.json b/packages/examples/react-refresh/package.json index ba5ff03c6e1..7f17023e3ef 100644 --- a/packages/examples/react-refresh/package.json +++ b/packages/examples/react-refresh/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/react-refresh-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { @@ -8,8 +8,8 @@ }, "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0", - "@parcel/core": "2.8.0" + "@parcel/babel-register": "2.8.1", + "@parcel/core": "2.8.1" }, "dependencies": { "react": "^17.0.2", diff --git a/packages/examples/simple/package.json b/packages/examples/simple/package.json index d72fa273748..1c96391d5c5 100644 --- a/packages/examples/simple/package.json +++ b/packages/examples/simple/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/simple-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { @@ -9,8 +9,8 @@ }, "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0", - "@parcel/core": "2.8.0" + "@parcel/babel-register": "2.8.1", + "@parcel/core": "2.8.1" }, "browser": "dist/legacy/index.js", "browserModern": "dist/modern/index.js", diff --git a/packages/examples/three/package.json b/packages/examples/three/package.json index b44d7afc8d6..531b6ed61b1 100644 --- a/packages/examples/three/package.json +++ b/packages/examples/three/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/three-js-stresstest", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { @@ -27,9 +27,9 @@ } }, "devDependencies": { - "@parcel/config-default": "2.8.0", - "@parcel/core": "2.8.0", - "@parcel/optimizer-esbuild": "2.8.0", - "parcel": "2.8.0" + "@parcel/config-default": "2.8.1", + "@parcel/core": "2.8.1", + "@parcel/optimizer-esbuild": "2.8.1", + "parcel": "2.8.1" } } diff --git a/packages/examples/ts-example/package.json b/packages/examples/ts-example/package.json index c5706940142..b33f5fe2cb2 100644 --- a/packages/examples/ts-example/package.json +++ b/packages/examples/ts-example/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/ts-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { @@ -8,8 +8,8 @@ }, "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0", - "@parcel/core": "2.8.0" + "@parcel/babel-register": "2.8.1", + "@parcel/core": "2.8.1" }, "main": "dist/main.js", "module": "dist/module.js", diff --git a/packages/examples/ts-typecheck-example/package.json b/packages/examples/ts-typecheck-example/package.json index c31c69a729c..58cfe0c57f9 100644 --- a/packages/examples/ts-typecheck-example/package.json +++ b/packages/examples/ts-typecheck-example/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/ts-typecheck-example", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "private": true, "scripts": { @@ -18,8 +18,8 @@ }, "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0", - "@parcel/core": "2.8.0", - "@parcel/validator-typescript": "2.8.0" + "@parcel/babel-register": "2.8.1", + "@parcel/core": "2.8.1", + "@parcel/validator-typescript": "2.8.1" } } diff --git a/packages/namers/default/package.json b/packages/namers/default/package.json index 72c68f82fdd..78d839c8672 100644 --- a/packages/namers/default/package.json +++ b/packages/namers/default/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/namer-default", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/DefaultNamer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "nullthrows": "^1.1.1" } } diff --git a/packages/optimizers/blob-url/package.json b/packages/optimizers/blob-url/package.json index 083e5b5f4eb..b81d2105f7d 100644 --- a/packages/optimizers/blob-url/package.json +++ b/packages/optimizers/blob-url/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-blob-url", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/BlobURLOptimizer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0" + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1" } } diff --git a/packages/optimizers/css/package.json b/packages/optimizers/css/package.json index 56464266e03..115d52b972a 100644 --- a/packages/optimizers/css/package.json +++ b/packages/optimizers/css/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-css", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,13 @@ "source": "src/CSSOptimizer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "browserslist": "^4.6.6", "lightningcss": "^1.16.1", "nullthrows": "^1.1.1" diff --git a/packages/optimizers/cssnano/package.json b/packages/optimizers/cssnano/package.json index 07d4c1c4a62..45e3b7989ed 100644 --- a/packages/optimizers/cssnano/package.json +++ b/packages/optimizers/cssnano/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-cssnano", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/CSSNanoOptimizer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", "cssnano": "^5.0.15", "postcss": "^8.4.5" diff --git a/packages/optimizers/data-url/package.json b/packages/optimizers/data-url/package.json index c7a7534c95b..760e16c39fb 100644 --- a/packages/optimizers/data-url/package.json +++ b/packages/optimizers/data-url/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-data-url", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/DataURLOptimizer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "isbinaryfile": "^4.0.2", "mime": "^2.4.4" } diff --git a/packages/optimizers/esbuild/package.json b/packages/optimizers/esbuild/package.json index f9278ebc6f8..d209cd8657d 100644 --- a/packages/optimizers/esbuild/package.json +++ b/packages/optimizers/esbuild/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-esbuild", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,13 @@ "source": "src/ESBuildOptimizer.js", "engines": { "node": ">= 10.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "esbuild": "^0.13.0", "nullthrows": "^1.1.1" } diff --git a/packages/optimizers/htmlnano/package.json b/packages/optimizers/htmlnano/package.json index 2eca8368284..8dc7e7f9b08 100644 --- a/packages/optimizers/htmlnano/package.json +++ b/packages/optimizers/htmlnano/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-htmlnano", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/HTMLNanoOptimizer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "htmlnano": "^2.0.0", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", diff --git a/packages/optimizers/image/package.json b/packages/optimizers/image/package.json index 8519d11630c..dc53ef9641a 100644 --- a/packages/optimizers/image/package.json +++ b/packages/optimizers/image/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-image", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "main": "lib/ImageOptimizer.js", "source": "src/ImageOptimizer.js", @@ -17,7 +17,7 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "files": [ "lib", @@ -32,10 +32,10 @@ "build-release": "napi build --platform --release" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", - "@parcel/workers": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", + "@parcel/workers": "2.8.1", "detect-libc": "^1.0.3" }, "devDependencies": { diff --git a/packages/optimizers/svgo/package.json b/packages/optimizers/svgo/package.json index dea9fd39a07..92fe3feab43 100644 --- a/packages/optimizers/svgo/package.json +++ b/packages/optimizers/svgo/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-svgo", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/SVGOOptimizer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "svgo": "^2.4.0" } } diff --git a/packages/optimizers/swc/package.json b/packages/optimizers/swc/package.json index 9f0e26aa28f..525f9e89f8c 100644 --- a/packages/optimizers/swc/package.json +++ b/packages/optimizers/swc/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-swc", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/SwcOptimizer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "@swc/core": "^1.2.106", "nullthrows": "^1.1.1" } diff --git a/packages/optimizers/terser/package.json b/packages/optimizers/terser/package.json index b31b1016345..94d1381383c 100644 --- a/packages/optimizers/terser/package.json +++ b/packages/optimizers/terser/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/optimizer-terser", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,13 @@ "source": "src/TerserOptimizer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1", "terser": "^5.2.0" } diff --git a/packages/packagers/css/package.json b/packages/packagers/css/package.json index be91bd2b406..732b27aa1c2 100644 --- a/packages/packagers/css/package.json +++ b/packages/packagers/css/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-css", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/CSSPackager.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" }, "devDependencies": { diff --git a/packages/packagers/html/package.json b/packages/packagers/html/package.json index 3aab6d07a8f..fd2ba34a00c 100644 --- a/packages/packagers/html/package.json +++ b/packages/packagers/html/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-html", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/HTMLPackager.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1", "posthtml": "^0.16.5" } diff --git a/packages/packagers/js/package.json b/packages/packagers/js/package.json index edcae3bdb3e..4dbc3d7626a 100644 --- a/packages/packagers/js/package.json +++ b/packages/packagers/js/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-js", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,14 +17,14 @@ "source": "src/index.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/hash": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/hash": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "globals": "^13.2.0", "nullthrows": "^1.1.1" } diff --git a/packages/packagers/js/src/ScopeHoistingPackager.js b/packages/packagers/js/src/ScopeHoistingPackager.js index 9e0d1755b39..f145a70a335 100644 --- a/packages/packagers/js/src/ScopeHoistingPackager.js +++ b/packages/packagers/js/src/ScopeHoistingPackager.js @@ -996,50 +996,9 @@ ${code} this.usedHelpers.add('$parcel$defineInteropFlag'); } - // Find the used exports of this module. This is based on the used symbols of - // incoming dependencies rather than the asset's own used exports so that we include - // re-exported symbols rather than only symbols declared in this asset. - let incomingDeps = this.bundleGraph.getIncomingDependencies(asset); - let usedExports = [...asset.symbols.exportSymbols()].filter(symbol => { - if (symbol === '*') { - return false; - } - - // If we need default interop, then all symbols are needed because the `default` - // symbol really maps to the whole namespace. - if (defaultInterop) { - return true; - } - - let unused = incomingDeps.every(d => { - let symbols = nullthrows(this.bundleGraph.getUsedSymbols(d)); - return !symbols.has(symbol) && !symbols.has('*'); - }); - return !unused; - }); - - if (usedExports.length > 0) { - // Insert $parcel$export calls for each of the used exports. This creates a getter/setter - // for the symbol so that when the value changes the object property also changes. This is - // required to simulate ESM live bindings. It's easier to do it this way rather than inserting - // additional assignments after each mutation of the original binding. - prepend += `\n${usedExports - .map(exp => { - let resolved = this.getSymbolResolution(asset, asset, exp); - let get = this.buildFunctionExpression([], resolved); - let set = asset.meta.hasCJSExports - ? ', ' + this.buildFunctionExpression(['v'], `${resolved} = v`) - : ''; - return `$parcel$export($${assetId}$exports, ${JSON.stringify( - exp, - )}, ${get}${set});`; - }) - .join('\n')}\n`; - this.usedHelpers.add('$parcel$export'); - prependLineCount += 1 + usedExports.length; - } - - // Find wildcard re-export dependencies, and make sure their exports are also included in ours. + // Find wildcard re-export dependencies, and make sure their exports are also included in + // ours. Importantly, add them before the asset's own exports so that wildcard exports get + // correctly overwritten by own exports of the same name. for (let dep of deps) { let resolved = this.bundleGraph.getResolvedAsset(dep, this.bundle); if (dep.isOptional || this.bundleGraph.isDependencySkipped(dep)) { @@ -1105,6 +1064,49 @@ ${code} } } } + + // Find the used exports of this module. This is based on the used symbols of + // incoming dependencies rather than the asset's own used exports so that we include + // re-exported symbols rather than only symbols declared in this asset. + let incomingDeps = this.bundleGraph.getIncomingDependencies(asset); + let usedExports = [...asset.symbols.exportSymbols()].filter(symbol => { + if (symbol === '*') { + return false; + } + + // If we need default interop, then all symbols are needed because the `default` + // symbol really maps to the whole namespace. + if (defaultInterop) { + return true; + } + + let unused = incomingDeps.every(d => { + let symbols = nullthrows(this.bundleGraph.getUsedSymbols(d)); + return !symbols.has(symbol) && !symbols.has('*'); + }); + return !unused; + }); + + if (usedExports.length > 0) { + // Insert $parcel$export calls for each of the used exports. This creates a getter/setter + // for the symbol so that when the value changes the object property also changes. This is + // required to simulate ESM live bindings. It's easier to do it this way rather than inserting + // additional assignments after each mutation of the original binding. + prepend += `\n${usedExports + .map(exp => { + let resolved = this.getSymbolResolution(asset, asset, exp); + let get = this.buildFunctionExpression([], resolved); + let set = asset.meta.hasCJSExports + ? ', ' + this.buildFunctionExpression(['v'], `${resolved} = v`) + : ''; + return `$parcel$export($${assetId}$exports, ${JSON.stringify( + exp, + )}, ${get}${set});`; + }) + .join('\n')}\n`; + this.usedHelpers.add('$parcel$export'); + prependLineCount += 1 + usedExports.length; + } } return [prepend, prependLineCount, append]; diff --git a/packages/packagers/raw-url/package.json b/packages/packagers/raw-url/package.json index 241a88298c1..88b006ec178 100644 --- a/packages/packagers/raw-url/package.json +++ b/packages/packagers/raw-url/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-raw-url", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/RawUrlPackager.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0" + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1" } } diff --git a/packages/packagers/raw/package.json b/packages/packagers/raw/package.json index 0fb1b4e578e..a5c8c786091 100644 --- a/packages/packagers/raw/package.json +++ b/packages/packagers/raw/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-raw", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/RawPackager.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/packagers/svg/package.json b/packages/packagers/svg/package.json index 7e092829e8c..63d84934f5e 100644 --- a/packages/packagers/svg/package.json +++ b/packages/packagers/svg/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-svg", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/SVGPackager.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", "posthtml": "^0.16.4" } } diff --git a/packages/packagers/ts/package.json b/packages/packagers/ts/package.json index 277e6904401..c4f913dab19 100644 --- a/packages/packagers/ts/package.json +++ b/packages/packagers/ts/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-ts", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/TSPackager.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/packagers/webextension/package.json b/packages/packagers/webextension/package.json index 5cb1ccd5d40..0043d14d896 100644 --- a/packages/packagers/webextension/package.json +++ b/packages/packagers/webextension/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-webextension", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/WebExtensionPackager.js", "engines": { "node": ">=12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" } } diff --git a/packages/packagers/xml/package.json b/packages/packagers/xml/package.json index e7bff87bb67..e79f95f39b6 100644 --- a/packages/packagers/xml/package.json +++ b/packages/packagers/xml/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/packager-xml", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/XMLPackager.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", "@xmldom/xmldom": "^0.7.5" } } diff --git a/packages/reporters/build-metrics/package.json b/packages/reporters/build-metrics/package.json index 9c0efd66a43..2a67d226f8d 100644 --- a/packages/reporters/build-metrics/package.json +++ b/packages/reporters/build-metrics/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/reporter-build-metrics", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/BuildMetricsReporter.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0" + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1" } } diff --git a/packages/reporters/bundle-analyzer/package.json b/packages/reporters/bundle-analyzer/package.json index 704ee8e5928..7d2cc7f9df5 100644 --- a/packages/reporters/bundle-analyzer/package.json +++ b/packages/reporters/bundle-analyzer/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/reporter-bundle-analyzer", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,14 +17,14 @@ "source": "src/BundleAnalyzerReporter.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" }, "devDependencies": { - "@parcel/types": "2.8.0" + "@parcel/types": "2.8.1" } } diff --git a/packages/reporters/bundle-buddy/package.json b/packages/reporters/bundle-buddy/package.json index 5910043cb8a..34a67948a0f 100644 --- a/packages/reporters/bundle-buddy/package.json +++ b/packages/reporters/bundle-buddy/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/reporter-bundle-buddy", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/BundleBuddyReporter.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/reporters/cli/package.json b/packages/reporters/cli/package.json index 9e5f2e28fac..de93d5a962e 100644 --- a/packages/reporters/cli/package.json +++ b/packages/reporters/cli/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/reporter-cli", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,7 +17,7 @@ "source": "src/CLIReporter.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "targets": { "main": { @@ -31,9 +31,9 @@ } }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", "chalk": "^4.1.0", "term-size": "^2.2.1" }, diff --git a/packages/reporters/dev-server/package.json b/packages/reporters/dev-server/package.json index c17dec4a5bc..9aa1b2f2eba 100644 --- a/packages/reporters/dev-server/package.json +++ b/packages/reporters/dev-server/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/reporter-dev-server", - "version": "2.8.0", + "version": "2.8.1", "description": "Blazing fast, zero configuration web application bundler", "license": "MIT", "publishConfig": { @@ -18,7 +18,7 @@ "source": "src/ServerReporter.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "targets": { "main": { @@ -29,12 +29,12 @@ } }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0" + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1" }, "devDependencies": { - "@parcel/babel-preset": "2.8.0", - "@parcel/types": "2.8.0", + "@parcel/babel-preset": "2.8.1", + "@parcel/types": "2.8.1", "connect": "^3.7.0", "ejs": "^3.1.6", "fresh": "^0.5.2", diff --git a/packages/reporters/json/package.json b/packages/reporters/json/package.json index 563be9784d8..86cc4a97e31 100644 --- a/packages/reporters/json/package.json +++ b/packages/reporters/json/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/reporter-json", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/JSONReporter.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" } } diff --git a/packages/reporters/lsp-reporter/package.json b/packages/reporters/lsp-reporter/package.json index 1bcfcb89f3d..7e3765a3ea8 100644 --- a/packages/reporters/lsp-reporter/package.json +++ b/packages/reporters/lsp-reporter/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/reporter-lsp", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/LspReporter.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "node-ipc": "^9.1.4", "nullthrows": "^1.1.1", "ps-node": "^0.1.6", diff --git a/packages/reporters/sourcemap-visualiser/package.json b/packages/reporters/sourcemap-visualiser/package.json index a7b0da64bed..af07417a1ec 100644 --- a/packages/reporters/sourcemap-visualiser/package.json +++ b/packages/reporters/sourcemap-visualiser/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/reporter-sourcemap-visualiser", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,14 +17,14 @@ "source": "src/SourceMapVisualiser.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" }, "devDependencies": { - "@parcel/types": "2.8.0" + "@parcel/types": "2.8.1" } } diff --git a/packages/resolvers/default/package.json b/packages/resolvers/default/package.json index d9cb2444a81..e5e9fcdcf74 100644 --- a/packages/resolvers/default/package.json +++ b/packages/resolvers/default/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/resolver-default", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/DefaultResolver.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/node-resolver-core": "2.8.0", - "@parcel/plugin": "2.8.0" + "@parcel/node-resolver-core": "2.8.1", + "@parcel/plugin": "2.8.1" }, "devDependencies": { "@babel/core": "^7.12.2" diff --git a/packages/resolvers/default/src/DefaultResolver.js b/packages/resolvers/default/src/DefaultResolver.js index 6b166af04df..923f5837b8e 100644 --- a/packages/resolvers/default/src/DefaultResolver.js +++ b/packages/resolvers/default/src/DefaultResolver.js @@ -22,7 +22,7 @@ export default (new Resolver({ extensions: dependency.specifierType === 'commonjs' || dependency.specifierType === 'esm' - ? ['ts', 'tsx', 'js', 'jsx', 'json'] + ? ['ts', 'tsx', 'mjs', 'js', 'jsx', 'cjs', 'json'] : [], mainFields: ['source', 'browser', 'module', 'main'], packageManager: options.packageManager, diff --git a/packages/resolvers/glob/package.json b/packages/resolvers/glob/package.json index c853d924dc8..70db3d87f27 100644 --- a/packages/resolvers/glob/package.json +++ b/packages/resolvers/glob/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/resolver-glob", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,13 @@ "source": "src/GlobResolver.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/node-resolver-core": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/node-resolver-core": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" } } diff --git a/packages/runtimes/hmr/package.json b/packages/runtimes/hmr/package.json index 3076faa86f6..102dd2e793f 100644 --- a/packages/runtimes/hmr/package.json +++ b/packages/runtimes/hmr/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/runtime-browser-hmr", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/HMRRuntime.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0" + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1" } } diff --git a/packages/runtimes/js/package.json b/packages/runtimes/js/package.json index 01024e6dea0..ea9f065c8c3 100644 --- a/packages/runtimes/js/package.json +++ b/packages/runtimes/js/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/runtime-js", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/JSRuntime.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" } } diff --git a/packages/runtimes/react-refresh/package.json b/packages/runtimes/react-refresh/package.json index 957d95503bf..1489802d4f8 100644 --- a/packages/runtimes/react-refresh/package.json +++ b/packages/runtimes/react-refresh/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/runtime-react-refresh", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/ReactRefreshRuntime.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "react-error-overlay": "6.0.9", "react-refresh": "^0.9.0" } diff --git a/packages/runtimes/service-worker/package.json b/packages/runtimes/service-worker/package.json index 0d9497aa6a9..996066e2706 100644 --- a/packages/runtimes/service-worker/package.json +++ b/packages/runtimes/service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/runtime-service-worker", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "./src/ServiceWorkerRuntime.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" } } diff --git a/packages/runtimes/webextension/package.json b/packages/runtimes/webextension/package.json index a688de999de..51e5b82e045 100644 --- a/packages/runtimes/webextension/package.json +++ b/packages/runtimes/webextension/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/runtime-webextension", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/WebExtensionRuntime.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" } } diff --git a/packages/transformers/babel/package.json b/packages/transformers/babel/package.json index 98ecf1117fd..8453f5ee5d0 100644 --- a/packages/transformers/babel/package.json +++ b/packages/transformers/babel/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-babel", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,13 @@ "source": "src/BabelTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "browserslist": "^4.6.6", "json5": "^2.2.0", "nullthrows": "^1.1.1", @@ -33,6 +33,6 @@ "@babel/core": "^7.12.0", "@babel/preset-env": "^7.0.0", "@babel/types": "^7.12.0", - "@parcel/types": "2.8.0" + "@parcel/types": "2.8.1" } } diff --git a/packages/transformers/coffeescript/package.json b/packages/transformers/coffeescript/package.json index e19a96d32d5..0935ff3e505 100644 --- a/packages/transformers/coffeescript/package.json +++ b/packages/transformers/coffeescript/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-coffeescript", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/CoffeeScriptTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "coffeescript": "^2.0.3", "nullthrows": "^1.1.1", "semver": "^5.7.1" diff --git a/packages/transformers/css/package.json b/packages/transformers/css/package.json index ecb5626640d..47a64c29c94 100644 --- a/packages/transformers/css/package.json +++ b/packages/transformers/css/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-css", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,13 @@ "source": "src/CSSTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "browserslist": "^4.6.6", "lightningcss": "^1.16.1", "nullthrows": "^1.1.1" diff --git a/packages/transformers/elm/package.json b/packages/transformers/elm/package.json index 1b055aa6b3f..0fef2d8be19 100644 --- a/packages/transformers/elm/package.json +++ b/packages/transformers/elm/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-elm", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/ElmTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "command-exists": "^1.2.8", "cross-spawn": "^7.0.3", "elm-hot": "^1.1.5", diff --git a/packages/transformers/glsl/package.json b/packages/transformers/glsl/package.json index 9633c0f79a4..ad44aca2859 100644 --- a/packages/transformers/glsl/package.json +++ b/packages/transformers/glsl/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-glsl", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/GLSLTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "glslify-bundle": "^5.1.1", "glslify-deps": "^1.3.2" } diff --git a/packages/transformers/graphql/package.json b/packages/transformers/graphql/package.json index bb8fb93a69d..a12d74b5685 100644 --- a/packages/transformers/graphql/package.json +++ b/packages/transformers/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-graphql", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/GraphQLTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "graphql": "^15.0.0", "graphql-import-macro": "^1.0.0" } diff --git a/packages/transformers/html/package.json b/packages/transformers/html/package.json index b7b3d036526..99755497911 100644 --- a/packages/transformers/html/package.json +++ b/packages/transformers/html/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-html", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/HTMLTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/hash": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/hash": "2.8.1", + "@parcel/plugin": "2.8.1", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", diff --git a/packages/transformers/image/package.json b/packages/transformers/image/package.json index b1eb337d153..ca1e56e0561 100644 --- a/packages/transformers/image/package.json +++ b/packages/transformers/image/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-image", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -13,18 +13,18 @@ "source": "src/ImageTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", - "@parcel/workers": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", + "@parcel/workers": "2.8.1", "nullthrows": "^1.1.1" }, "devDependencies": { "sharp": "^0.31.1" }, "peerDependencies": { - "@parcel/core": "^2.8.0" + "@parcel/core": "^2.8.1" } } diff --git a/packages/transformers/inline-string/package.json b/packages/transformers/inline-string/package.json index 3160b2efa5f..3ae0474286c 100644 --- a/packages/transformers/inline-string/package.json +++ b/packages/transformers/inline-string/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-inline-string", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/InlineStringTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/transformers/inline/package.json b/packages/transformers/inline/package.json index 31c9cd816ae..60f8bee12bd 100644 --- a/packages/transformers/inline/package.json +++ b/packages/transformers/inline/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-inline", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/InlineTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/transformers/js/package.json b/packages/transformers/js/package.json index f898896a04f..cd5719b9d08 100644 --- a/packages/transformers/js/package.json +++ b/packages/transformers/js/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-js", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -19,7 +19,7 @@ "name": "parcel-swc" }, "engines": { - "parcel": "^2.8.0", + "parcel": "^2.8.1", "node": ">= 12.0.0" }, "files": [ @@ -30,11 +30,11 @@ "*.node" ], "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", - "@parcel/workers": "2.8.0", + "@parcel/utils": "2.8.1", + "@parcel/workers": "2.8.1", "@swc/helpers": "^0.4.12", "browserslist": "^4.6.6", "detect-libc": "^1.0.3", @@ -46,7 +46,7 @@ "@napi-rs/cli": "^2.6.2" }, "peerDependencies": { - "@parcel/core": "^2.8.0" + "@parcel/core": "^2.8.1" }, "scripts": { "build": "napi build --platform --cargo-cwd napi", diff --git a/packages/transformers/json/package.json b/packages/transformers/json/package.json index 8d0cb6fe688..21285a484e8 100644 --- a/packages/transformers/json/package.json +++ b/packages/transformers/json/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-json", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/JSONTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "json5": "^2.2.0" } } diff --git a/packages/transformers/jsonld/package.json b/packages/transformers/jsonld/package.json index 2389497af93..2f16590da71 100644 --- a/packages/transformers/jsonld/package.json +++ b/packages/transformers/jsonld/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-jsonld", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,14 +17,14 @@ "source": "src/JSONLDTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "scripts": { "test": "yarn workspace @parcel/integration-tests test -g jsonld" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/types": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/types": "2.8.1", "json5": "^2.2.0" } } diff --git a/packages/transformers/less/package.json b/packages/transformers/less/package.json index 6160109df3a..ec4e7eac177 100644 --- a/packages/transformers/less/package.json +++ b/packages/transformers/less/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-less", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/LessTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", "less": "^4.1.1" } diff --git a/packages/transformers/mdx/package.json b/packages/transformers/mdx/package.json index 3b7fca228b4..c95291dad8c 100644 --- a/packages/transformers/mdx/package.json +++ b/packages/transformers/mdx/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-mdx", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/MDXTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { "@mdx-js/mdx": "^1.6.22", - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" }, "peerDependencies": { "@mdx-js/react": "^1.6.22" diff --git a/packages/transformers/postcss/package.json b/packages/transformers/postcss/package.json index 8f7fc459d62..be782fabd35 100644 --- a/packages/transformers/postcss/package.json +++ b/packages/transformers/postcss/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-postcss", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,13 @@ "source": "src/PostCSSTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/hash": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/hash": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "clone": "^2.1.1", "nullthrows": "^1.1.1", "postcss-value-parser": "^4.2.0", diff --git a/packages/transformers/postcss/src/loadConfig.js b/packages/transformers/postcss/src/loadConfig.js index ae35ca2e776..f74157a9bb3 100644 --- a/packages/transformers/postcss/src/loadConfig.js +++ b/packages/transformers/postcss/src/loadConfig.js @@ -180,7 +180,8 @@ export async function load({ }); contents = configFile.contents; - let isDynamic = configFile && path.extname(configFile.filePath) === '.js'; + let isDynamic = + configFile && path.extname(configFile.filePath).endsWith('js'); if (isDynamic) { // We have to invalidate on startup in case the config is non-deterministic, // e.g. using unknown environment variables, reading from the filesystem, etc. diff --git a/packages/transformers/posthtml/package.json b/packages/transformers/posthtml/package.json index 37c82940066..fef68cd7985 100644 --- a/packages/transformers/posthtml/package.json +++ b/packages/transformers/posthtml/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-posthtml", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/PostHTMLTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", diff --git a/packages/transformers/posthtml/src/PostHTMLTransformer.js b/packages/transformers/posthtml/src/PostHTMLTransformer.js index 60fa1e45c1f..34ed3219823 100644 --- a/packages/transformers/posthtml/src/PostHTMLTransformer.js +++ b/packages/transformers/posthtml/src/PostHTMLTransformer.js @@ -31,7 +31,7 @@ export default (new Transformer({ ); if (configFile) { - let isJavascript = path.extname(configFile.filePath) === '.js'; + let isJavascript = path.extname(configFile.filePath).endsWith('js'); if (isJavascript) { // We have to invalidate on startup in case the config is non-deterministic, // e.g. using unknown environment variables, reading from the filesystem, etc. diff --git a/packages/transformers/pug/package.json b/packages/transformers/pug/package.json index c9ac00d139b..8aabdeb63b6 100644 --- a/packages/transformers/pug/package.json +++ b/packages/transformers/pug/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-pug", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/PugTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "pug": "^3.0.2" } } diff --git a/packages/transformers/pug/src/PugTransformer.js b/packages/transformers/pug/src/PugTransformer.js index b704eecfe99..1d53909b9a0 100644 --- a/packages/transformers/pug/src/PugTransformer.js +++ b/packages/transformers/pug/src/PugTransformer.js @@ -15,7 +15,7 @@ export default (new Transformer({ ]); if (configFile) { - let isJavascript = path.extname(configFile.filePath) === '.js'; + let isJavascript = path.extname(configFile.filePath).endsWith('js'); if (isJavascript) { config.invalidateOnStartup(); } diff --git a/packages/transformers/raw/package.json b/packages/transformers/raw/package.json index caf1a496d66..52e826e3c80 100644 --- a/packages/transformers/raw/package.json +++ b/packages/transformers/raw/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-raw", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/RawTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/transformers/react-refresh-wrap/package.json b/packages/transformers/react-refresh-wrap/package.json index 7d87cf5e46c..9c698af50d4 100644 --- a/packages/transformers/react-refresh-wrap/package.json +++ b/packages/transformers/react-refresh-wrap/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-react-refresh-wrap", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/ReactRefreshWrapTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "react-refresh": "^0.9.0" } } diff --git a/packages/transformers/sass/package.json b/packages/transformers/sass/package.json index 9953a4c7bfc..19e079a894d 100644 --- a/packages/transformers/sass/package.json +++ b/packages/transformers/sass/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-sass", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/SassTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", "sass": "^1.38.0" } diff --git a/packages/transformers/sass/src/SassTransformer.js b/packages/transformers/sass/src/SassTransformer.js index ae6321ff655..9253c3f7049 100644 --- a/packages/transformers/sass/src/SassTransformer.js +++ b/packages/transformers/sass/src/SassTransformer.js @@ -27,7 +27,7 @@ export default (new Transformer({ ); } - if (configFile && path.extname(configFile.filePath) === '.js') { + if (configFile && path.extname(configFile.filePath).endsWith('js')) { config.invalidateOnStartup(); } diff --git a/packages/transformers/stylus/package.json b/packages/transformers/stylus/package.json index 87524005667..a0b23214218 100644 --- a/packages/transformers/stylus/package.json +++ b/packages/transformers/stylus/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-stylus", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/StylusTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "stylus": "^0.55.0" } } diff --git a/packages/transformers/stylus/src/StylusTransformer.js b/packages/transformers/stylus/src/StylusTransformer.js index d7a1b65029c..d1d36bfaf50 100644 --- a/packages/transformers/stylus/src/StylusTransformer.js +++ b/packages/transformers/stylus/src/StylusTransformer.js @@ -23,7 +23,7 @@ export default (new Transformer({ ); if (configFile) { - let isJavascript = path.extname(configFile.filePath) === '.js'; + let isJavascript = path.extname(configFile.filePath).endsWith('js'); if (isJavascript) { config.invalidateOnStartup(); } diff --git a/packages/transformers/sugarss/package.json b/packages/transformers/sugarss/package.json index 3a1291b7a59..321feefac83 100644 --- a/packages/transformers/sugarss/package.json +++ b/packages/transformers/sugarss/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-sugarss", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/SugarssTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "postcss": "^8.4.5", "sugarss": "^3.0.3" } diff --git a/packages/transformers/svg-react/package.json b/packages/transformers/svg-react/package.json index 46de2272df2..56fbba8ee01 100644 --- a/packages/transformers/svg-react/package.json +++ b/packages/transformers/svg-react/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-svg-react", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,12 @@ "source": "src/SvgReactTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@svgr/core": "^6.2.0", "@svgr/plugin-jsx": "^6.2.0", - "@svgr/plugin-svgo": "^6.2.0", - "camelcase": "^6.3.0" + "@svgr/plugin-svgo": "^6.2.0" } } diff --git a/packages/transformers/svg-react/src/SvgReactTransformer.js b/packages/transformers/svg-react/src/SvgReactTransformer.js index 5b9db020881..76ce76399b1 100644 --- a/packages/transformers/svg-react/src/SvgReactTransformer.js +++ b/packages/transformers/svg-react/src/SvgReactTransformer.js @@ -3,41 +3,57 @@ import {Transformer} from '@parcel/plugin'; import path from 'path'; -import camelcase from 'camelcase'; import svgoPlugin from '@svgr/plugin-svgo'; import jsxPlugin from '@svgr/plugin-jsx'; import {transform} from '@svgr/core'; -function getComponentName(filePath) { - let validCharacters = /[^a-zA-Z0-9_-]/g; - let name = path.parse(filePath).name.replace(validCharacters, ''); - return camelcase(name, { - pascalCase: true, - }); -} - export default (new Transformer({ async loadConfig({config}) { - let conf = await config.getConfig(['.svgrrc.json', '.svgrrc']); - return conf?.contents; + let svgrResult = await config.getConfig([ + '.svgrrc', + '.svgrrc.json', + '.svgrrc.js', + '.svgrrc.cjs', + 'svgr.config.json', + 'svgr.config.js', + 'svgr.config.cjs', + ]); + let svgoResult = await config.getConfig([ + 'svgo.config.js', + 'svgo.config.cjs', + 'svgo.config.json', + ]); + if (svgrResult) { + let isJavascript = path.extname(svgrResult.filePath).endsWith('js'); + if (isJavascript) { + config.invalidateOnStartup(); + } + } + if (svgoResult) { + let isJavascript = path.extname(svgoResult.filePath).endsWith('js'); + if (isJavascript) { + config.invalidateOnStartup(); + } + } + return {svgr: svgrResult?.contents, svgo: svgoResult?.contents}; }, + async transform({asset, config}) { let code = await asset.getCode(); - let componentName = getComponentName(asset.filePath); const jsx = await transform( code, - {}, + {svgoConfig: config.svgo, ...config.svgr, runtimeConfig: false}, { caller: { name: '@parcel/transformer-svg-react', defaultPlugins: [svgoPlugin, jsxPlugin], }, - filePath: componentName, + filePath: asset.filePath, }, ); - asset.type = config?.typescript ? 'tsx' : 'jsx'; + asset.type = config.svgr?.typescript ? 'tsx' : 'jsx'; asset.bundleBehavior = null; asset.setCode(jsx); diff --git a/packages/transformers/svg/package.json b/packages/transformers/svg/package.json index 5bd50457edc..962c5002acd 100644 --- a/packages/transformers/svg/package.json +++ b/packages/transformers/svg/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-svg", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/SVGTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/hash": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/hash": "2.8.1", + "@parcel/plugin": "2.8.1", "nullthrows": "^1.1.1", "posthtml": "^0.16.5", "posthtml-parser": "^0.10.1", diff --git a/packages/transformers/toml/package.json b/packages/transformers/toml/package.json index 4b53f884af3..020089e9059 100644 --- a/packages/transformers/toml/package.json +++ b/packages/transformers/toml/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-toml", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/TOMLTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { "@iarna/toml": "^2.2.3", - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/transformers/typescript-tsc/package.json b/packages/transformers/typescript-tsc/package.json index 3b71ec7f47d..f16bc92a5c1 100644 --- a/packages/transformers/typescript-tsc/package.json +++ b/packages/transformers/typescript-tsc/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-typescript-tsc", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,12 +17,12 @@ "source": "src/TSCTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/ts-utils": "2.8.0" + "@parcel/ts-utils": "2.8.1" }, "devDependencies": { "typescript": ">=3.0.0" diff --git a/packages/transformers/typescript-types/package.json b/packages/transformers/typescript-types/package.json index 5d52d6ae50c..a4221419709 100644 --- a/packages/transformers/typescript-types/package.json +++ b/packages/transformers/typescript-types/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-typescript-types", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,14 +17,14 @@ "source": "src/TSTypesTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/ts-utils": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/ts-utils": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1" }, "devDependencies": { diff --git a/packages/transformers/typescript-types/src/collect.js b/packages/transformers/typescript-types/src/collect.js index ac3bf7fb7fe..be7d920169d 100644 --- a/packages/transformers/typescript-types/src/collect.js +++ b/packages/transformers/typescript-types/src/collect.js @@ -11,13 +11,16 @@ export function collect( context: any, sourceFile: any, ): any { + // Factory only exists on TS >= 4.0 + const {factory = ts} = context; + // When module definitions are nested inside each other (e.g with module augmentation), // we want to keep track of the hierarchy so we can associated nodes with the right module. const moduleStack: Array = []; let _currentModule: ?TSModule; let visit = (node: any): any => { if (ts.isBundle(node)) { - return ts.updateBundle(node, ts.visitNodes(node.sourceFiles, visit)); + return factory.updateBundle(node, ts.visitNodes(node.sourceFiles, visit)); } if (ts.isModuleDeclaration(node)) { @@ -85,12 +88,12 @@ export function collect( currentModule.addExport('default', node.expression.text); } - if (isDeclaration(ts, node)) { + if (isDeclaration(node)) { if (node.name) { currentModule.addLocal(node.name.text, node); } - let name = getExportedName(ts, node); + let name = getExportedName(node); if (name) { currentModule.addLocal(name, node); currentModule.addExport(name, name); diff --git a/packages/transformers/typescript-types/src/shake.js b/packages/transformers/typescript-types/src/shake.js index 571b1158b97..0e056f3b669 100644 --- a/packages/transformers/typescript-types/src/shake.js +++ b/packages/transformers/typescript-types/src/shake.js @@ -4,13 +4,22 @@ import type {TSModuleGraph} from './TSModuleGraph'; import ts from 'typescript'; import nullthrows from 'nullthrows'; -import {getExportedName, isDeclaration, createImportSpecifier} from './utils'; +import {getExportedName, isDeclaration} from './utils'; +import { + createImportClause, + createImportDeclaration, + createImportSpecifier, + updateExportDeclaration, +} from './wrappers'; export function shake( moduleGraph: TSModuleGraph, context: any, sourceFile: any, ): any { + // Factory only exists on TS >= 4.0 + const {factory = ts} = context; + // We traverse things out of order which messes with typescript's internal state. // We don't rely on the lexical environment, so just overwrite with noops to avoid errors. context.suspendLexicalEnvironment = () => {}; @@ -28,7 +37,7 @@ export function shake( let _currentModule: ?TSModule; let visit = (node: any): any => { if (ts.isBundle(node)) { - return ts.updateBundle(node, ts.visitNodes(node.sourceFiles, visit)); + return factory.updateBundle(node, ts.visitNodes(node.sourceFiles, visit)); } // Flatten all module declarations into the top-level scope @@ -43,7 +52,7 @@ export function shake( node.modifiers.splice( index, 0, - ts.createModifier(ts.SyntaxKind.DeclareKeyword), + factory.createModifier(ts.SyntaxKind.DeclareKeyword), ); return node; } @@ -55,7 +64,7 @@ export function shake( _currentModule = moduleStack.pop(); if (isFirstModule && !addedGeneratedImports) { - statements.unshift(...generateImports(moduleGraph)); + statements.unshift(...generateImports(factory, moduleGraph)); addedGeneratedImports = true; } @@ -92,12 +101,14 @@ export function shake( } if (exported.length > 0) { - return ts.updateExportDeclaration( + return updateExportDeclaration( + factory, node, - undefined, // decorators undefined, // modifiers - ts.updateNamedExports(node.exportClause, exported), + false, // isTypeOnly + factory.updateNamedExports(node.exportClause, exported), undefined, // moduleSpecifier + undefined, // assertClause ); } } @@ -114,8 +125,8 @@ export function shake( } } - if (isDeclaration(ts, node)) { - let name = getExportedName(ts, node) || node.name.text; + if (isDeclaration(node)) { + let name = getExportedName(node) || node.name.text; // Remove unused declarations if (!currentModule.used.has(name)) { @@ -123,7 +134,6 @@ export function shake( } // Remove original export modifiers - node = ts.getMutableClone(node); node.modifiers = (node.modifiers || []).filter( m => m.kind !== ts.SyntaxKind.ExportKeyword && @@ -133,23 +143,27 @@ export function shake( // Rename declarations let newName = currentModule.getName(name); if (newName !== name && newName !== 'default') { - node.name = ts.createIdentifier(newName); + node.name = factory.createIdentifier(newName); } // Export declarations that should be exported if (exportedNames.get(newName) === currentModule) { if (newName === 'default') { node.modifiers.unshift( - ts.createModifier(ts.SyntaxKind.DefaultKeyword), + factory.createModifier(ts.SyntaxKind.DefaultKeyword), ); } - node.modifiers.unshift(ts.createModifier(ts.SyntaxKind.ExportKeyword)); + node.modifiers.unshift( + factory.createModifier(ts.SyntaxKind.ExportKeyword), + ); } else if ( ts.isFunctionDeclaration(node) || ts.isClassDeclaration(node) ) { - node.modifiers.unshift(ts.createModifier(ts.SyntaxKind.DeclareKeyword)); + node.modifiers.unshift( + factory.createModifier(ts.SyntaxKind.DeclareKeyword), + ); } } @@ -173,10 +187,14 @@ export function shake( d => exportedNames.get(d.name.text) === currentModule, ); if (isExported) { - node.modifiers.unshift(ts.createModifier(ts.SyntaxKind.ExportKeyword)); + node.modifiers.unshift( + factory.createModifier(ts.SyntaxKind.ExportKeyword), + ); } else { // Otherwise, add `declare` modifier (required for top-level declarations in d.ts files). - node.modifiers.unshift(ts.createModifier(ts.SyntaxKind.DeclareKeyword)); + node.modifiers.unshift( + factory.createModifier(ts.SyntaxKind.DeclareKeyword), + ); } return node; @@ -193,7 +211,7 @@ export function shake( if (ts.isIdentifier(node) && currentModule.names.has(node.text)) { let newName = nullthrows(currentModule.getName(node.text)); if (newName !== 'default') { - return ts.createIdentifier(newName); + return factory.createIdentifier(newName); } } @@ -205,11 +223,11 @@ export function shake( node.right.text, ); if (resolved && resolved.module.hasBinding(resolved.name)) { - return ts.createIdentifier(resolved.name); + return factory.createIdentifier(resolved.name); } else { - return ts.updateQualifiedName( + return factory.updateQualifiedName( node, - ts.createIdentifier(currentModule.getName(node.left.text)), + factory.createIdentifier(currentModule.getName(node.left.text)), node.right, ); } @@ -231,7 +249,7 @@ export function shake( return ts.visitNode(sourceFile, visit); } -function generateImports(moduleGraph: TSModuleGraph) { +function generateImports(factory: any, moduleGraph: TSModuleGraph) { let importStatements = []; for (let [specifier, names] of moduleGraph.getAllImports()) { let defaultSpecifier; @@ -239,53 +257,58 @@ function generateImports(moduleGraph: TSModuleGraph) { let namedSpecifiers = []; for (let [name, imported] of names) { if (imported === 'default') { - defaultSpecifier = ts.createIdentifier(name); + defaultSpecifier = factory.createIdentifier(name); } else if (imported === '*') { - namespaceSpecifier = ts.createNamespaceImport( - ts.createIdentifier(name), + namespaceSpecifier = factory.createNamespaceImport( + factory.createIdentifier(name), ); } else { namedSpecifiers.push( createImportSpecifier( - ts, - name === imported ? undefined : ts.createIdentifier(imported), - ts.createIdentifier(name), + factory, + false, + name === imported ? undefined : factory.createIdentifier(imported), + factory.createIdentifier(name), ), ); } } if (namespaceSpecifier) { - let importClause = ts.createImportClause( + let importClause = createImportClause( + factory, + false, defaultSpecifier, namespaceSpecifier, ); importStatements.push( - ts.createImportDeclaration( - undefined, + createImportDeclaration( + factory, undefined, importClause, - // $FlowFixMe - ts.createLiteral(specifier), + factory.createStringLiteral(specifier), + undefined, ), ); defaultSpecifier = undefined; } if (defaultSpecifier || namedSpecifiers.length > 0) { - let importClause = ts.createImportClause( + let importClause = createImportClause( + factory, + false, defaultSpecifier, namedSpecifiers.length > 0 - ? ts.createNamedImports(namedSpecifiers) + ? factory.createNamedImports(namedSpecifiers) : undefined, ); importStatements.push( - ts.createImportDeclaration( - undefined, + createImportDeclaration( + factory, undefined, importClause, - // $FlowFixMe - ts.createLiteral(specifier), + factory.createStringLiteral(specifier), + undefined, ), ); } diff --git a/packages/transformers/typescript-types/src/utils.js b/packages/transformers/typescript-types/src/utils.js index 326f9f9dabb..ac6e38887a3 100644 --- a/packages/transformers/typescript-types/src/utils.js +++ b/packages/transformers/typescript-types/src/utils.js @@ -1,8 +1,7 @@ // @flow -import typeof TypeScriptModule from 'typescript'; // eslint-disable-line import/no-extraneous-dependencies -import type {Identifier, ImportSpecifier} from 'typescript'; +import ts from 'typescript'; -export function getExportedName(ts: TypeScriptModule, node: any): ?string { +export function getExportedName(node: any): ?string { if (!node.modifiers) { return null; } @@ -18,7 +17,7 @@ export function getExportedName(ts: TypeScriptModule, node: any): ?string { return node.name.text; } -export function isDeclaration(ts: TypeScriptModule, node: any): boolean { +export function isDeclaration(node: any): boolean { return ( ts.isFunctionDeclaration(node) || ts.isClassDeclaration(node) || @@ -27,22 +26,3 @@ export function isDeclaration(ts: TypeScriptModule, node: any): boolean { ts.isTypeAliasDeclaration(node) ); } - -export function createImportSpecifier( - ts: TypeScriptModule, - propertyName: Identifier | void, - name: Identifier, - isTypeOnly: boolean = false, -): ImportSpecifier { - const [majorVersion, minorVersion] = ts.versionMajorMinor - .split('.') - .map(num => parseInt(num, 10)); - // The signature of createImportSpecifier had a breaking change in Typescript 4.5. - // see: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#type-modifiers-on-import-names - if (majorVersion > 4 || (majorVersion === 4 && minorVersion >= 5)) { - // $FlowFixMe - return ts.createImportSpecifier(isTypeOnly, propertyName, name); - } else { - return ts.createImportSpecifier(propertyName, name); - } -} diff --git a/packages/transformers/typescript-types/src/wrappers.js b/packages/transformers/typescript-types/src/wrappers.js new file mode 100644 index 00000000000..2a61e86eecb --- /dev/null +++ b/packages/transformers/typescript-types/src/wrappers.js @@ -0,0 +1,202 @@ +// @flow +/* eslint-disable no-unused-vars */ +import type { + ExportDeclaration, + Expression, + Identifier, + ImportClause, + ImportDeclaration, + ImportSpecifier, + Modifier, + NamedImportBindings, +} from 'typescript'; + +import ts from 'typescript'; +import invariant from 'assert'; + +type AssertClause = any; +type NamedExportBindings = any; + +const [majorVersion, minorVersion] = ts.versionMajorMinor + .split('.') + .map(num => parseInt(num, 10)); + +// Everything below was generated using https://github.com/mischnic/tsc-version-wrapper + +export const createImportClause: ( + factory: any, + isTypeOnly: boolean, + name: Identifier | void, + namedBindings: NamedImportBindings | void, +) => ImportClause = (() => { + if (majorVersion > 4 || (majorVersion === 4 && minorVersion >= 0)) { + return (factory, isTypeOnly, name, namedBindings) => + factory.createImportClause(isTypeOnly, name, namedBindings); + } else if (majorVersion > 3 || (majorVersion === 3 && minorVersion >= 8)) { + return (factory, isTypeOnly, name, namedBindings) => + factory.createImportClause(name, namedBindings, isTypeOnly); + } else if (majorVersion > 3 || (majorVersion === 3 && minorVersion >= 0)) { + return (factory, isTypeOnly, name, namedBindings) => + factory.createImportClause(name, namedBindings); + } else { + invariant(false); + } +})(); + +export const createImportDeclaration: ( + factory: any, + modifiers: Modifier[] | void, + importClause: ImportClause | void, + moduleSpecifier: Expression, + assertClause: AssertClause, +) => ImportDeclaration = (() => { + if (majorVersion > 4 || (majorVersion === 4 && minorVersion >= 8)) { + return (factory, modifiers, importClause, moduleSpecifier, assertClause) => + factory.createImportDeclaration( + modifiers, + importClause, + moduleSpecifier, + assertClause, + ); + } else if (majorVersion > 4 || (majorVersion === 4 && minorVersion >= 5)) { + return (factory, modifiers, importClause, moduleSpecifier, assertClause) => + factory.createImportDeclaration( + undefined /* decorators */, + modifiers, + importClause, + moduleSpecifier, + assertClause, + ); + } else if (majorVersion > 3 || (majorVersion === 3 && minorVersion >= 0)) { + return (factory, modifiers, importClause, moduleSpecifier, assertClause) => + factory.createImportDeclaration( + undefined /* decorators */, + modifiers, + importClause, + moduleSpecifier, + ); + } else { + invariant(false); + } +})(); + +export const createImportSpecifier: ( + factory: any, + isTypeOnly: boolean, + propertyName: Identifier | void, + name: Identifier, +) => ImportSpecifier = (() => { + if (majorVersion > 4 || (majorVersion === 4 && minorVersion >= 5)) { + return (factory, isTypeOnly, propertyName, name) => + factory.createImportSpecifier(isTypeOnly, propertyName, name); + } else if (majorVersion > 3 || (majorVersion === 3 && minorVersion >= 0)) { + return (factory, isTypeOnly, propertyName, name) => + factory.createImportSpecifier(propertyName, name); + } else { + invariant(false); + } +})(); + +export const updateExportDeclaration: ( + factory: any, + node: ExportDeclaration, + modifiers: Modifier[] | void, + isTypeOnly: boolean, + exportClause: NamedExportBindings | void, + moduleSpecifier: Expression | void, + assertClause: AssertClause | void, +) => ExportDeclaration = (() => { + if (majorVersion > 4 || (majorVersion === 4 && minorVersion >= 8)) { + return ( + factory, + node, + modifiers, + isTypeOnly, + exportClause, + moduleSpecifier, + assertClause, + ) => + factory.updateExportDeclaration( + node, + modifiers, + isTypeOnly, + exportClause, + moduleSpecifier, + assertClause, + ); + } else if (majorVersion > 4 || (majorVersion === 4 && minorVersion >= 5)) { + return ( + factory, + node, + modifiers, + isTypeOnly, + exportClause, + moduleSpecifier, + assertClause, + ) => + factory.updateExportDeclaration( + node, + undefined /* decorators */, + modifiers, + isTypeOnly, + exportClause, + moduleSpecifier, + assertClause, + ); + } else if (majorVersion > 4 || (majorVersion === 4 && minorVersion >= 0)) { + return ( + factory, + node, + modifiers, + isTypeOnly, + exportClause, + moduleSpecifier, + assertClause, + ) => + factory.updateExportDeclaration( + node, + undefined /* decorators */, + modifiers, + isTypeOnly, + exportClause, + moduleSpecifier, + ); + } else if (majorVersion > 3 || (majorVersion === 3 && minorVersion >= 8)) { + return ( + factory, + node, + modifiers, + isTypeOnly, + exportClause, + moduleSpecifier, + assertClause, + ) => + factory.updateExportDeclaration( + node, + undefined /* decorators */, + modifiers, + exportClause, + moduleSpecifier, + isTypeOnly, + ); + } else if (majorVersion > 3 || (majorVersion === 3 && minorVersion >= 0)) { + return ( + factory, + node, + modifiers, + isTypeOnly, + exportClause, + moduleSpecifier, + assertClause, + ) => + factory.updateExportDeclaration( + node, + undefined /* decorators */, + modifiers, + exportClause, + moduleSpecifier, + ); + } else { + invariant(false); + } +})(); diff --git a/packages/transformers/vue/package.json b/packages/transformers/vue/package.json index 75f34ca8211..fe3deb9be0e 100644 --- a/packages/transformers/vue/package.json +++ b/packages/transformers/vue/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-vue", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,13 +17,13 @@ "source": "src/VueTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", "@parcel/source-map": "^2.1.1", - "@parcel/utils": "2.8.0", + "@parcel/utils": "2.8.1", "@vue/compiler-sfc": "^3.2.27", "consolidate": "^0.16.0", "nullthrows": "^1.1.1", diff --git a/packages/transformers/webextension/package.json b/packages/transformers/webextension/package.json index 64e2cf392a7..63872aa3f9b 100644 --- a/packages/transformers/webextension/package.json +++ b/packages/transformers/webextension/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-webextension", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -16,13 +16,13 @@ "main": "lib/WebExtensionTransformer.js", "source": "src/WebExtensionTransformer.js", "engines": { - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "content-security-policy-parser": "^0.3.0" } } diff --git a/packages/transformers/webmanifest/package.json b/packages/transformers/webmanifest/package.json index 358c98f8bd2..3bcd122595e 100644 --- a/packages/transformers/webmanifest/package.json +++ b/packages/transformers/webmanifest/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-webmanifest", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -16,12 +16,12 @@ "main": "lib/WebManifestTransformer.js", "source": "src/WebManifestTransformer.js", "engines": { - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { "@mischnic/json-sourcemap": "^0.1.0", - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0" + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1" } } diff --git a/packages/transformers/webmanifest/src/WebManifestTransformer.js b/packages/transformers/webmanifest/src/WebManifestTransformer.js index 138c90f3a76..3288a9c330a 100644 --- a/packages/transformers/webmanifest/src/WebManifestTransformer.js +++ b/packages/transformers/webmanifest/src/WebManifestTransformer.js @@ -30,6 +30,15 @@ const MANIFEST_SCHEMA: SchemaEntity = { properties: { icons: RESOURCES_SCHEMA, screenshots: RESOURCES_SCHEMA, + shortcuts: { + type: 'array', + items: { + type: 'object', + properties: { + icons: RESOURCES_SCHEMA, + }, + }, + }, }, }; @@ -61,6 +70,28 @@ export default (new Transformer({ } } + if (data.shortcuts) { + invariant(Array.isArray(data.shortcuts)); + for (let i = 0; i < data.shortcuts.length; i++) { + const list = data.shortcuts[i].icons; + if (list) { + invariant(Array.isArray(list)); + for (let j = 0; j < list.length; j++) { + const res = list[j]; + res.src = asset.addURLDependency(res.src, { + loc: { + filePath: asset.filePath, + ...getJSONSourceLocation( + pointers[`/shortcuts/${i}/icons/${j}/src`], + 'value', + ), + }, + }); + } + } + } + } + asset.type = 'webmanifest'; asset.setCode(JSON.stringify(data)); return [asset]; diff --git a/packages/transformers/worklet/package.json b/packages/transformers/worklet/package.json index c3e7ae55938..2a079667dee 100644 --- a/packages/transformers/worklet/package.json +++ b/packages/transformers/worklet/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-worklet", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,9 +17,9 @@ "source": "src/WorkletTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0" + "@parcel/plugin": "2.8.1" } } diff --git a/packages/transformers/xml/package.json b/packages/transformers/xml/package.json index db04ee9e3d4..015ceb87f4f 100644 --- a/packages/transformers/xml/package.json +++ b/packages/transformers/xml/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-xml", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/XMLTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "@xmldom/xmldom": "^0.7.5" } } diff --git a/packages/transformers/yaml/package.json b/packages/transformers/yaml/package.json index bc37f99f0fd..351f5c6a7a0 100644 --- a/packages/transformers/yaml/package.json +++ b/packages/transformers/yaml/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/transformer-yaml", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,10 +17,10 @@ "source": "src/YAMLTransformer.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", + "@parcel/plugin": "2.8.1", "js-yaml": "^3.10.0" } } diff --git a/packages/utils/babel-plugin-transform-runtime/package.json b/packages/utils/babel-plugin-transform-runtime/package.json index cbfb49a0d74..5b00c1c206e 100644 --- a/packages/utils/babel-plugin-transform-runtime/package.json +++ b/packages/utils/babel-plugin-transform-runtime/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/babel-plugin-transform-runtime", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -23,6 +23,6 @@ }, "devDependencies": { "@babel/core": "^7.12.0", - "@parcel/babel-preset-env": "2.8.0" + "@parcel/babel-preset-env": "2.8.1" } } diff --git a/packages/utils/babel-preset-env/package.json b/packages/utils/babel-preset-env/package.json index 92b68134591..cc994790ade 100644 --- a/packages/utils/babel-preset-env/package.json +++ b/packages/utils/babel-preset-env/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/babel-preset-env", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" diff --git a/packages/utils/create-react-app/package.json b/packages/utils/create-react-app/package.json index 485fdd21428..3297c2b6e6f 100644 --- a/packages/utils/create-react-app/package.json +++ b/packages/utils/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/create-react-app", - "version": "2.8.0", + "version": "2.8.1", "bin": { "parcel-create-react-app": "src/bin.js" }, @@ -32,6 +32,6 @@ }, "devDependencies": { "@babel/core": "^7.0.0", - "@parcel/babel-register": "2.8.0" + "@parcel/babel-register": "2.8.1" } } diff --git a/packages/utils/events/package.json b/packages/utils/events/package.json index 0a9042bcee9..3556be13fe5 100644 --- a/packages/utils/events/package.json +++ b/packages/utils/events/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/events", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" diff --git a/packages/utils/fs-search/package.json b/packages/utils/fs-search/package.json index 28cc58c91b4..96d053a8c69 100644 --- a/packages/utils/fs-search/package.json +++ b/packages/utils/fs-search/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/fs-search", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" diff --git a/packages/utils/hash/package.json b/packages/utils/hash/package.json index 08c28447d8d..2992bf1ac73 100644 --- a/packages/utils/hash/package.json +++ b/packages/utils/hash/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/hash", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "main": "index.js", "browser": "browser.js", diff --git a/packages/utils/node-resolver-core/package.json b/packages/utils/node-resolver-core/package.json index 5889b64943d..87d08a26c18 100644 --- a/packages/utils/node-resolver-core/package.json +++ b/packages/utils/node-resolver-core/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/node-resolver-core", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -19,8 +19,8 @@ "node": ">= 12.0.0" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/utils": "2.8.1", "nullthrows": "^1.1.1", "semver": "^5.7.1" }, diff --git a/packages/utils/parcel-lsp/package.json b/packages/utils/parcel-lsp/package.json index 18be3181102..e4bc30bc183 100644 --- a/packages/utils/parcel-lsp/package.json +++ b/packages/utils/parcel-lsp/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/lsp", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -25,13 +25,13 @@ }, "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1", "@parcel/watcher": "^2.0.7", "node-ipc": "^9.1.4", "nullthrows": "^1.1.1", @@ -50,6 +50,6 @@ "@typescript-eslint/parser": "^4.14.1", "eslint": "^7.19.0", "glob": "^7.1.6", - "typescript": "^4.6.4" + "typescript": ">=3.0.0" } } diff --git a/packages/utils/parcelforvscode/package.json b/packages/utils/parcelforvscode/package.json index 4498b12e6ca..bf00bc8f9a6 100644 --- a/packages/utils/parcelforvscode/package.json +++ b/packages/utils/parcelforvscode/package.json @@ -3,7 +3,7 @@ "displayName": "Parcel for VS Code", "parcel-lsp.trace.server": "verbose", "description": "", - "version": "2.8.0", + "version": "2.8.1", "private": true, "engines": { "vscode": "^1.46.0" @@ -33,11 +33,11 @@ "eslint": "^7.19.0", "glob": "^7.1.6", "mocha": "^8.2.1", - "typescript": "^4.6.4", + "typescript": ">=3.0.0", "vscode-test": "^1.5.0" }, "dependencies": { - "@parcel/lsp": "2.8.0", + "@parcel/lsp": "2.8.1", "vscode-languageclient": "^8.0.1" } } diff --git a/packages/utils/service-worker/package.json b/packages/utils/service-worker/package.json index e9461a97432..dd61cf3cb37 100644 --- a/packages/utils/service-worker/package.json +++ b/packages/utils/service-worker/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/service-worker", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -18,6 +18,6 @@ "sideEffects": false, "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" } } diff --git a/packages/utils/ts-utils/package.json b/packages/utils/ts-utils/package.json index 59c034af021..7a229d480e3 100644 --- a/packages/utils/ts-utils/package.json +++ b/packages/utils/ts-utils/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/ts-utils", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" diff --git a/packages/validators/eslint/package.json b/packages/validators/eslint/package.json index 6c6cf1460cc..8f57964becf 100644 --- a/packages/validators/eslint/package.json +++ b/packages/validators/eslint/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/validator-eslint", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,11 +17,11 @@ "source": "src/EslintValidator.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/plugin": "2.8.0", - "@parcel/utils": "2.8.0", + "@parcel/plugin": "2.8.1", + "@parcel/utils": "2.8.1", "chalk": "^4.1.0" }, "devDependencies": { diff --git a/packages/validators/typescript/package.json b/packages/validators/typescript/package.json index 9b9fff476c1..4f01cd7fabf 100644 --- a/packages/validators/typescript/package.json +++ b/packages/validators/typescript/package.json @@ -1,6 +1,6 @@ { "name": "@parcel/validator-typescript", - "version": "2.8.0", + "version": "2.8.1", "license": "MIT", "publishConfig": { "access": "public" @@ -17,14 +17,14 @@ "source": "src/TypeScriptValidator.js", "engines": { "node": ">= 12.0.0", - "parcel": "^2.8.0" + "parcel": "^2.8.1" }, "dependencies": { - "@parcel/diagnostic": "2.8.0", - "@parcel/plugin": "2.8.0", - "@parcel/ts-utils": "2.8.0", - "@parcel/types": "2.8.0", - "@parcel/utils": "2.8.0" + "@parcel/diagnostic": "2.8.1", + "@parcel/plugin": "2.8.1", + "@parcel/ts-utils": "2.8.1", + "@parcel/types": "2.8.1", + "@parcel/utils": "2.8.1" }, "devDependencies": { "typescript": ">=3.0.0" diff --git a/yarn.lock b/yarn.lock index b183e481729..4535a5137de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3700,7 +3700,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -3716,9 +3716,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001272, caniuse-lite@^1.0.30001286: - version "1.0.30001349" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001349.tgz#90740086a2eb2e825084944169d313c9793aeba4" - integrity sha512-VFaWW3jeo6DLU5rwdiasosxhYSduJgSGil4cSyX3/85fbctlE58pXAkWyuRmVA0r2RxsOSVYUTZcySJ8WpbTxw== + version "1.0.30001434" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz#ec1ec1cfb0a93a34a0600d37903853030520a4e5" + integrity sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA== caseless@~0.12.0: version "0.12.0" @@ -12985,10 +12985,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@>=3.0.0, typescript@^4.6.4: - version "4.6.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" - integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== +typescript@>=3.0.0: + version "4.8.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" + integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== uglify-js@^3.1.4: version "3.7.6"