@parcel/transformer-css 2.2.0 → 2.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -75,26 +75,6 @@ function _postcssValueParser() {
75
75
  return data;
76
76
  }
77
77
 
78
- function _postcssModules() {
79
- const data = _interopRequireDefault(require("postcss-modules"));
80
-
81
- _postcssModules = function () {
82
- return data;
83
- };
84
-
85
- return data;
86
- }
87
-
88
- function _fileSystemLoader() {
89
- const data = _interopRequireDefault(require("css-modules-loader-core/lib/file-system-loader"));
90
-
91
- _fileSystemLoader = function () {
92
- return data;
93
- };
94
-
95
- return data;
96
- }
97
-
98
78
  function _semver() {
99
79
  const data = _interopRequireDefault(require("semver"));
100
80
 
@@ -117,7 +97,7 @@ function _path() {
117
97
 
118
98
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
119
99
 
120
- const URL_RE = /url\s*\("?(?![a-z]+:)/;
100
+ const URL_RE = /url\s*\(/;
121
101
  const IMPORT_RE = /@import/;
122
102
  const COMPOSES_RE = /composes:.+from\s*("|').*("|')\s*;?/;
123
103
  const FROM_IMPORT_RE = /.+from\s*(?:"|')(.*)(?:"|')\s*;?/;
@@ -262,14 +242,15 @@ var _default = new (_plugin().Transformer)({
262
242
  parsed.walk(node => {
263
243
  if (node.type === 'function' && node.value === 'url' && node.nodes.length > 0 && !node.nodes[0].value.startsWith('#') // IE's `behavior: url(#default#VML)`
264
244
  ) {
265
- let urlNode = node.nodes[0];
266
- let url = asset.addURLDependency(urlNode.value, {
267
- loc: decl.source && decl.source.start && createLoc(decl.source.start, urlNode.value, 0, decl.source.start.offset + urlNode.sourceIndex + 1, 0)
268
- });
269
- isDeclDirty = urlNode.value !== url;
270
- urlNode.type = 'word';
271
- urlNode.value = url;
272
- }
245
+ let urlNode = node.nodes[0];
246
+ let url = asset.addURLDependency(urlNode.value, {
247
+ loc: decl.source && decl.source.start && createLoc(decl.source.start, urlNode.value, 0, decl.source.start.offset + urlNode.sourceIndex + 1, 0)
248
+ });
249
+ isDeclDirty = urlNode.value !== url;
250
+ urlNode.type = 'string';
251
+ urlNode.quote = '"';
252
+ urlNode.value = url;
253
+ }
273
254
  });
274
255
 
275
256
  if (isDeclDirty) {
@@ -360,11 +341,16 @@ async function compileCSSModules(asset, env, program, resolve, options) {
360
341
  });
361
342
  }
362
343
 
344
+ let postcssModules = await options.packageManager.require('postcss-modules', asset.filePath, {
345
+ range: '^4.3.0',
346
+ saveDev: true,
347
+ shouldAutoInstall: options.shouldAutoInstall
348
+ });
363
349
  let {
364
350
  root
365
- } = await (0, _postcss().default)([(0, _postcssModules().default)({
351
+ } = await (0, _postcss().default)([postcssModules({
366
352
  getJSON: (filename, json) => cssModules = json,
367
- Loader: createLoader(asset, resolve),
353
+ Loader: await createLoader(asset, resolve, options),
368
354
  generateScopedName: (name, filename) => `${name}_${(0, _hash().hashString)(_path().default.relative(options.projectRoot, filename)).substr(0, 6)}`
369
355
  })]).process(program, {
370
356
  from: asset.filePath,
@@ -409,8 +395,11 @@ async function compileCSSModules(asset, env, program, resolve, options) {
409
395
  return assets;
410
396
  }
411
397
 
412
- function createLoader(asset, resolve) {
413
- return class extends _fileSystemLoader().default {
398
+ async function createLoader(asset, resolve, options) {
399
+ let {
400
+ default: FileSystemLoader
401
+ } = await options.packageManager.require('postcss-modules/build/css-loader-core/loader', asset.filePath);
402
+ return class extends FileSystemLoader {
414
403
  async fetch(composesPath, relativeTo) {
415
404
  let importPath = composesPath.replace(/^["']|["']$/g, '');
416
405
  let resolved = await resolve(relativeTo, importPath);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parcel/transformer-css",
3
- "version": "2.2.0",
3
+ "version": "2.3.2",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,19 +17,20 @@
17
17
  "source": "src/CSSTransformer.js",
18
18
  "engines": {
19
19
  "node": ">= 12.0.0",
20
- "parcel": "^2.2.0"
20
+ "parcel": "^2.3.2"
21
21
  },
22
22
  "dependencies": {
23
- "@parcel/hash": "^2.2.0",
24
- "@parcel/plugin": "^2.2.0",
23
+ "@parcel/hash": "2.3.2",
24
+ "@parcel/plugin": "2.3.2",
25
25
  "@parcel/source-map": "^2.0.0",
26
- "@parcel/utils": "^2.2.0",
27
- "css-modules-loader-core": "^1.1.0",
26
+ "@parcel/utils": "2.3.2",
28
27
  "nullthrows": "^1.1.1",
29
- "postcss": "^8.3.0",
30
- "postcss-modules": "^3.2.2",
31
- "postcss-value-parser": "^4.1.0",
28
+ "postcss": "^8.4.5",
29
+ "postcss-value-parser": "^4.2.0",
32
30
  "semver": "^5.7.1"
33
31
  },
34
- "gitHead": "4745cd3023f8d5a5adcf9e565d5b82d1418dc262"
32
+ "devDependencies": {
33
+ "postcss-modules": "^4.3.0"
34
+ },
35
+ "gitHead": "47379bf8fabeb2cfe03ade8802d942388b153e5b"
35
36
  }
@@ -1,7 +1,7 @@
1
1
  // @flow
2
2
 
3
3
  import type {Root} from 'postcss';
4
- import type {FilePath, MutableAsset} from '@parcel/types';
4
+ import type {FilePath, MutableAsset, PluginOptions} from '@parcel/types';
5
5
 
6
6
  import {hashString} from '@parcel/hash';
7
7
  import SourceMap from '@parcel/source-map';
@@ -10,12 +10,10 @@ import {createDependencyLocation, remapSourceLocation} from '@parcel/utils';
10
10
  import postcss from 'postcss';
11
11
  import nullthrows from 'nullthrows';
12
12
  import valueParser from 'postcss-value-parser';
13
- import postcssModules from 'postcss-modules';
14
- import FileSystemLoader from 'css-modules-loader-core/lib/file-system-loader';
15
13
  import semver from 'semver';
16
14
  import path from 'path';
17
15
 
18
- const URL_RE = /url\s*\("?(?![a-z]+:)/;
16
+ const URL_RE = /url\s*\(/;
19
17
  const IMPORT_RE = /@import/;
20
18
  const COMPOSES_RE = /composes:.+from\s*("|').*("|')\s*;?/;
21
19
  const FROM_IMPORT_RE = /.+from\s*(?:"|')(.*)(?:"|')\s*;?/;
@@ -185,7 +183,8 @@ export default (new Transformer({
185
183
  ),
186
184
  });
187
185
  isDeclDirty = urlNode.value !== url;
188
- urlNode.type = 'word';
186
+ urlNode.type = 'string';
187
+ urlNode.quote = '"';
189
188
  urlNode.value = url;
190
189
  }
191
190
  });
@@ -273,10 +272,20 @@ async function compileCSSModules(asset, env, program, resolve, options) {
273
272
  });
274
273
  }
275
274
 
275
+ let postcssModules = await options.packageManager.require(
276
+ 'postcss-modules',
277
+ asset.filePath,
278
+ {
279
+ range: '^4.3.0',
280
+ saveDev: true,
281
+ shouldAutoInstall: options.shouldAutoInstall,
282
+ },
283
+ );
284
+
276
285
  let {root} = await postcss([
277
286
  postcssModules({
278
287
  getJSON: (filename, json) => (cssModules = json),
279
- Loader: createLoader(asset, resolve),
288
+ Loader: await createLoader(asset, resolve, options),
280
289
  generateScopedName: (name, filename) =>
281
290
  `${name}_${hashString(
282
291
  path.relative(options.projectRoot, filename),
@@ -328,10 +337,15 @@ async function compileCSSModules(asset, env, program, resolve, options) {
328
337
  return assets;
329
338
  }
330
339
 
331
- function createLoader(
340
+ async function createLoader(
332
341
  asset: MutableAsset,
333
342
  resolve: (from: FilePath, to: string) => Promise<FilePath>,
343
+ options: PluginOptions,
334
344
  ) {
345
+ let {default: FileSystemLoader} = await options.packageManager.require(
346
+ 'postcss-modules/build/css-loader-core/loader',
347
+ asset.filePath,
348
+ );
335
349
  return class ParcelFileSystemLoader extends FileSystemLoader {
336
350
  async fetch(composesPath, relativeTo) {
337
351
  let importPath = composesPath.replace(/^["']|["']$/g, '');