@stencil/core 2.11.0 → 2.12.0

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.
package/cli/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- Stencil CLI (CommonJS) v2.11.0 | MIT Licensed | https://stenciljs.com
2
+ Stencil CLI (CommonJS) v2.12.0 | MIT Licensed | https://stenciljs.com
3
3
  */
4
4
  'use strict';
5
5
 
@@ -490,7 +490,7 @@ const getNpmConfigEnvArgs = (sys) => {
490
490
  const dependencies = [
491
491
  {
492
492
  name: "@stencil/core",
493
- version: "2.11.0",
493
+ version: "2.12.0",
494
494
  main: "compiler/stencil.js",
495
495
  resources: [
496
496
  "package.json",
@@ -1689,7 +1689,7 @@ const runTask = async (coreCompiler, config, task, sys) => {
1689
1689
  await taskGenerate(coreCompiler, config);
1690
1690
  break;
1691
1691
  case 'help':
1692
- taskHelp(config, config.logger, sys);
1692
+ await taskHelp(config, config.logger, sys);
1693
1693
  break;
1694
1694
  case 'prerender':
1695
1695
  await taskPrerender(coreCompiler, config);
@@ -1711,7 +1711,7 @@ const runTask = async (coreCompiler, config, task, sys) => {
1711
1711
  break;
1712
1712
  default:
1713
1713
  config.logger.error(`${config.logger.emoji('❌ ')}Invalid stencil command, please see the options below:`);
1714
- taskHelp(config, config.logger, sys);
1714
+ await taskHelp(config, config.logger, sys);
1715
1715
  return config.sys.exit(1);
1716
1716
  }
1717
1717
  };
package/cli/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- Stencil CLI v2.11.0 | MIT Licensed | https://stenciljs.com
2
+ Stencil CLI v2.12.0 | MIT Licensed | https://stenciljs.com
3
3
  */
4
4
  const toLowerCase = (str) => str.toLowerCase();
5
5
  const dashToPascalCase = (str) => toLowerCase(str)
@@ -466,7 +466,7 @@ const getNpmConfigEnvArgs = (sys) => {
466
466
  const dependencies = [
467
467
  {
468
468
  name: "@stencil/core",
469
- version: "2.11.0",
469
+ version: "2.12.0",
470
470
  main: "compiler/stencil.js",
471
471
  resources: [
472
472
  "package.json",
@@ -1665,7 +1665,7 @@ const runTask = async (coreCompiler, config, task, sys) => {
1665
1665
  await taskGenerate(coreCompiler, config);
1666
1666
  break;
1667
1667
  case 'help':
1668
- taskHelp(config, config.logger, sys);
1668
+ await taskHelp(config, config.logger, sys);
1669
1669
  break;
1670
1670
  case 'prerender':
1671
1671
  await taskPrerender(coreCompiler, config);
@@ -1687,7 +1687,7 @@ const runTask = async (coreCompiler, config, task, sys) => {
1687
1687
  break;
1688
1688
  default:
1689
1689
  config.logger.error(`${config.logger.emoji('❌ ')}Invalid stencil command, please see the options below:`);
1690
- taskHelp(config, config.logger, sys);
1690
+ await taskHelp(config, config.logger, sys);
1691
1691
  return config.sys.exit(1);
1692
1692
  }
1693
1693
  };
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/core/cli",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "description": "Stencil CLI.",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stencil/core/compiler",
3
- "version": "2.11.0",
3
+ "version": "2.12.0",
4
4
  "description": "Stencil Compiler.",
5
5
  "main": "./stencil.js",
6
6
  "types": "./stencil.d.ts",
@@ -1,5 +1,5 @@
1
1
  /*!
2
- Stencil Compiler v2.11.0 | MIT Licensed | https://stenciljs.com
2
+ Stencil Compiler v2.12.0 | MIT Licensed | https://stenciljs.com
3
3
  */
4
4
  (function(exports) {
5
5
  'use strict';
@@ -1714,7 +1714,7 @@ const JS_SOURCE_MAPPING_URL_LINKER = '//# sourceMappingURL=';
1714
1714
  * @param filename the filename to encode
1715
1715
  * @returns the encoded URI
1716
1716
  */
1717
- const encodeFilenameToRfc3986 = (filename) => {
1717
+ const encodeToRfc3986 = (filename) => {
1718
1718
  const encodedUri = encodeURIComponent(filename);
1719
1719
  // replace all '!', single quotes, '(', ')', and '*' with their hexadecimal values (UTF-16)
1720
1720
  return encodedUri.replace(/[!'()*]/g, (matchedCharacter) => {
@@ -1728,7 +1728,19 @@ const encodeFilenameToRfc3986 = (filename) => {
1728
1728
  * @returns a linker string, of the format {@link JS_SOURCE_MAPPING_URL_LINKER}=<url>
1729
1729
  */
1730
1730
  const getSourceMappingUrlLinker = (url) => {
1731
- return `${JS_SOURCE_MAPPING_URL_LINKER}${encodeFilenameToRfc3986(url)}`;
1731
+ return `${JS_SOURCE_MAPPING_URL_LINKER}${encodeToRfc3986(url)}`;
1732
+ };
1733
+ /**
1734
+ * Generates a string used to link generated code with the original source, to be placed at the end of the generated
1735
+ * code as an inline source map.
1736
+ * @param sourceMapContents the sourceMapContents of the source map
1737
+ * @returns a linker string, of the format {@link JS_SOURCE_MAPPING_URL_LINKER}<dataUriPrefixAndMime><sourceMapContents>
1738
+ */
1739
+ const getInlineSourceMappingUrlLinker = (sourceMapContents) => {
1740
+ const mapBase64 = Buffer.from(sourceMapContents, 'utf8').toString('base64');
1741
+ // do not RFC-3986 encode an already valid base64 string. the sourcemaps will not resolve correctly when there is an
1742
+ // allowed base64 character is encoded (because it is a disallowed RFC-3986 character)
1743
+ return `${JS_SOURCE_MAPPING_URL_LINKER}data:application/json;charset=utf-8;base64,${mapBase64}`;
1732
1744
  };
1733
1745
  /**
1734
1746
  * Generates a string used to link generated code with the original source, to be placed at the end of the generated
@@ -3905,7 +3917,7 @@ const createCustomResolverAsync = (sys, inMemoryFs, exts) => {
3905
3917
  };
3906
3918
  };
3907
3919
 
3908
- const buildId = '20211122175418';
3920
+ const buildId = '20211213135416';
3909
3921
  const minfyJsId = 'terser5.6.1_7';
3910
3922
  const optimizeCssId = 'autoprefixer10.2.5_postcss8.2.8_7';
3911
3923
  const parse5Version = '6.0.1';
@@ -3913,8 +3925,8 @@ const rollupVersion = '2.42.3';
3913
3925
  const sizzleVersion = '2.42.3';
3914
3926
  const terserVersion = '5.6.1';
3915
3927
  const typescriptVersion = '4.3.5';
3916
- const vermoji = '🐌';
3917
- const version$3 = '2.11.0';
3928
+ const vermoji = '';
3929
+ const version$3 = '2.12.0';
3918
3930
  const versions = {
3919
3931
  stencil: version$3,
3920
3932
  parse5: parse5Version,
@@ -14434,7 +14446,7 @@ class MockCSSStyleDeclaration {
14434
14446
  const splt = rule.split(':');
14435
14447
  if (splt.length > 1) {
14436
14448
  const prop = splt[0].trim();
14437
- const value = splt[1].trim();
14449
+ const value = splt.slice(1).join(':').trim();
14438
14450
  if (prop !== '' && value !== '') {
14439
14451
  this._styles.set(jsCaseToCssCase(prop), value);
14440
14452
  }
@@ -15397,6 +15409,9 @@ class MockNode {
15397
15409
  return null;
15398
15410
  }
15399
15411
  contains(otherNode) {
15412
+ if (otherNode === this) {
15413
+ return true;
15414
+ }
15400
15415
  return this.childNodes.includes(otherNode);
15401
15416
  }
15402
15417
  removeChild(childNode) {
@@ -41844,7 +41859,8 @@ const depth = token => {
41844
41859
  /**
41845
41860
  * Quickly scans a glob pattern and returns an object with a handful of
41846
41861
  * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),
41847
- * `glob` (the actual pattern), and `negated` (true if the path starts with `!`).
41862
+ * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not
41863
+ * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).
41848
41864
  *
41849
41865
  * ```js
41850
41866
  * const pm = require('picomatch');
@@ -41878,6 +41894,7 @@ const scan = (input, options) => {
41878
41894
  let braceEscaped = false;
41879
41895
  let backslashes = false;
41880
41896
  let negated = false;
41897
+ let negatedExtglob = false;
41881
41898
  let finished = false;
41882
41899
  let braces = 0;
41883
41900
  let prev;
@@ -41989,6 +42006,9 @@ const scan = (input, options) => {
41989
42006
  isGlob = token.isGlob = true;
41990
42007
  isExtglob = token.isExtglob = true;
41991
42008
  finished = true;
42009
+ if (code === CHAR_EXCLAMATION_MARK && index === start) {
42010
+ negatedExtglob = true;
42011
+ }
41992
42012
 
41993
42013
  if (scanToEnd === true) {
41994
42014
  while (eos() !== true && (code = advance())) {
@@ -42043,13 +42063,15 @@ const scan = (input, options) => {
42043
42063
  isBracket = token.isBracket = true;
42044
42064
  isGlob = token.isGlob = true;
42045
42065
  finished = true;
42046
-
42047
- if (scanToEnd === true) {
42048
- continue;
42049
- }
42050
42066
  break;
42051
42067
  }
42052
42068
  }
42069
+
42070
+ if (scanToEnd === true) {
42071
+ continue;
42072
+ }
42073
+
42074
+ break;
42053
42075
  }
42054
42076
 
42055
42077
  if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {
@@ -42140,7 +42162,8 @@ const scan = (input, options) => {
42140
42162
  isGlob,
42141
42163
  isExtglob,
42142
42164
  isGlobstar,
42143
- negated
42165
+ negated,
42166
+ negatedExtglob
42144
42167
  };
42145
42168
 
42146
42169
  if (opts.tokens === true) {
@@ -42283,7 +42306,7 @@ const parse$1 = (input, options) => {
42283
42306
  START_ANCHOR
42284
42307
  } = PLATFORM_CHARS;
42285
42308
 
42286
- const globstar = (opts) => {
42309
+ const globstar = opts => {
42287
42310
  return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
42288
42311
  };
42289
42312
 
@@ -42333,12 +42356,13 @@ const parse$1 = (input, options) => {
42333
42356
 
42334
42357
  const eos = () => state.index === len - 1;
42335
42358
  const peek = state.peek = (n = 1) => input[state.index + n];
42336
- const advance = state.advance = () => input[++state.index];
42359
+ const advance = state.advance = () => input[++state.index] || '';
42337
42360
  const remaining = () => input.slice(state.index + 1);
42338
42361
  const consume = (value = '', num = 0) => {
42339
42362
  state.consumed += value;
42340
42363
  state.index += num;
42341
42364
  };
42365
+
42342
42366
  const append = token => {
42343
42367
  state.output += token.output != null ? token.output : token.value;
42344
42368
  consume(token.value);
@@ -42394,7 +42418,7 @@ const parse$1 = (input, options) => {
42394
42418
  }
42395
42419
  }
42396
42420
 
42397
- if (extglobs.length && tok.type !== 'paren' && !EXTGLOB_CHARS[tok.value]) {
42421
+ if (extglobs.length && tok.type !== 'paren') {
42398
42422
  extglobs[extglobs.length - 1].inner += tok.value;
42399
42423
  }
42400
42424
 
@@ -42426,6 +42450,7 @@ const parse$1 = (input, options) => {
42426
42450
 
42427
42451
  const extglobClose = token => {
42428
42452
  let output = token.close + (opts.capture ? ')' : '');
42453
+ let rest;
42429
42454
 
42430
42455
  if (token.type === 'negate') {
42431
42456
  let extglobStar = star;
@@ -42438,7 +42463,11 @@ const parse$1 = (input, options) => {
42438
42463
  output = token.close = `)$))${extglobStar}`;
42439
42464
  }
42440
42465
 
42441
- if (token.prev.type === 'bos' && eos()) {
42466
+ if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
42467
+ output = token.close = `)${rest})${extglobStar})`;
42468
+ }
42469
+
42470
+ if (token.prev.type === 'bos') {
42442
42471
  state.negatedExtglob = true;
42443
42472
  }
42444
42473
  }
@@ -42547,9 +42576,9 @@ const parse$1 = (input, options) => {
42547
42576
  }
42548
42577
 
42549
42578
  if (opts.unescape === true) {
42550
- value = advance() || '';
42579
+ value = advance();
42551
42580
  } else {
42552
- value += advance() || '';
42581
+ value += advance();
42553
42582
  }
42554
42583
 
42555
42584
  if (state.brackets === 0) {
@@ -43213,7 +43242,7 @@ parse$1.fastpaths = (input, options) => {
43213
43242
  star = `(${star})`;
43214
43243
  }
43215
43244
 
43216
- const globstar = (opts) => {
43245
+ const globstar = opts => {
43217
43246
  if (opts.noglobstar === true) return star;
43218
43247
  return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;
43219
43248
  };
@@ -43494,68 +43523,71 @@ picomatch$1.parse = (pattern, options) => {
43494
43523
  picomatch$1.scan = (input, options) => scan_1(input, options);
43495
43524
 
43496
43525
  /**
43497
- * Create a regular expression from a parsed glob pattern.
43526
+ * Compile a regular expression from the `state` object returned by the
43527
+ * [parse()](#parse) method.
43498
43528
  *
43499
- * ```js
43500
- * const picomatch = require('picomatch');
43501
- * const state = picomatch.parse('*.js');
43502
- * // picomatch.compileRe(state[, options]);
43503
- *
43504
- * console.log(picomatch.compileRe(state));
43505
- * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
43506
- * ```
43507
- * @param {String} `state` The object returned from the `.parse` method.
43529
+ * @param {Object} `state`
43508
43530
  * @param {Object} `options`
43509
- * @return {RegExp} Returns a regex created from the given pattern.
43531
+ * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.
43532
+ * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.
43533
+ * @return {RegExp}
43510
43534
  * @api public
43511
43535
  */
43512
43536
 
43513
- picomatch$1.compileRe = (parsed, options, returnOutput = false, returnState = false) => {
43537
+ picomatch$1.compileRe = (state, options, returnOutput = false, returnState = false) => {
43514
43538
  if (returnOutput === true) {
43515
- return parsed.output;
43539
+ return state.output;
43516
43540
  }
43517
43541
 
43518
43542
  const opts = options || {};
43519
43543
  const prepend = opts.contains ? '' : '^';
43520
43544
  const append = opts.contains ? '' : '$';
43521
43545
 
43522
- let source = `${prepend}(?:${parsed.output})${append}`;
43523
- if (parsed && parsed.negated === true) {
43546
+ let source = `${prepend}(?:${state.output})${append}`;
43547
+ if (state && state.negated === true) {
43524
43548
  source = `^(?!${source}).*$`;
43525
43549
  }
43526
43550
 
43527
43551
  const regex = picomatch$1.toRegex(source, options);
43528
43552
  if (returnState === true) {
43529
- regex.state = parsed;
43553
+ regex.state = state;
43530
43554
  }
43531
43555
 
43532
43556
  return regex;
43533
43557
  };
43534
43558
 
43535
- picomatch$1.makeRe = (input, options, returnOutput = false, returnState = false) => {
43559
+ /**
43560
+ * Create a regular expression from a parsed glob pattern.
43561
+ *
43562
+ * ```js
43563
+ * const picomatch = require('picomatch');
43564
+ * const state = picomatch.parse('*.js');
43565
+ * // picomatch.compileRe(state[, options]);
43566
+ *
43567
+ * console.log(picomatch.compileRe(state));
43568
+ * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/
43569
+ * ```
43570
+ * @param {String} `state` The object returned from the `.parse` method.
43571
+ * @param {Object} `options`
43572
+ * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.
43573
+ * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.
43574
+ * @return {RegExp} Returns a regex created from the given pattern.
43575
+ * @api public
43576
+ */
43577
+
43578
+ picomatch$1.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {
43536
43579
  if (!input || typeof input !== 'string') {
43537
43580
  throw new TypeError('Expected a non-empty string');
43538
43581
  }
43539
43582
 
43540
- const opts = options || {};
43541
43583
  let parsed = { negated: false, fastpaths: true };
43542
- let prefix = '';
43543
- let output;
43544
-
43545
- if (input.startsWith('./')) {
43546
- input = input.slice(2);
43547
- prefix = parsed.prefix = './';
43548
- }
43549
43584
 
43550
- if (opts.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {
43551
- output = parse_1.fastpaths(input, options);
43585
+ if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {
43586
+ parsed.output = parse_1.fastpaths(input, options);
43552
43587
  }
43553
43588
 
43554
- if (output === undefined) {
43589
+ if (!parsed.output) {
43555
43590
  parsed = parse_1(input, options);
43556
- parsed.prefix = prefix + (parsed.prefix || '');
43557
- } else {
43558
- parsed.output = output;
43559
43591
  }
43560
43592
 
43561
43593
  return picomatch$1.compileRe(parsed, options, returnOutput, returnState);
@@ -63542,7 +63574,7 @@ const getComponentPathContent = (componentGraph, outputTarget) => {
63542
63574
  const dependencies = [
63543
63575
  {
63544
63576
  name: "@stencil/core",
63545
- version: "2.11.0",
63577
+ version: "2.12.0",
63546
63578
  main: "compiler/stencil.js",
63547
63579
  resources: [
63548
63580
  "package.json",
@@ -64493,6 +64525,11 @@ const validateOutputTargets = (config, diagnostics) => {
64493
64525
  const err = buildError(diagnostics);
64494
64526
  err.messageText = `Invalid outputTarget type "${outputTarget.type}". Valid outputTarget types include: ${VALID_TYPES.map((t) => `"${t}"`).join(', ')}`;
64495
64527
  }
64528
+ else if (outputTarget.type === DIST_CUSTOM_ELEMENTS_BUNDLE) {
64529
+ // TODO(STENCIL-260): Remove this check when the 'dist-custom-elements-bundle' is removed
64530
+ const warning = buildWarn(diagnostics);
64531
+ warning.messageText = `dist-custom-elements-bundle is deprecated and will be removed in a future major version release. Use "dist-custom-elements" instead. If "dist-custom-elements" does not meet your needs, please add a comment to https://github.com/ionic-team/stencil/issues/3136.`;
64532
+ }
64496
64533
  });
64497
64534
  config.outputTargets = [
64498
64535
  ...validateCollection(config, userOutputs),
@@ -65520,10 +65557,9 @@ const transpileCode = (config, transpileOpts, transformOpts, results) => {
65520
65557
  mapObject.file = transpileOpts.file;
65521
65558
  mapObject.sources = [transpileOpts.file];
65522
65559
  delete mapObject.sourceRoot;
65523
- const mapBase64 = Buffer.from(JSON.stringify(mapObject), 'utf8').toString('base64');
65524
- const sourceMapInlined = `data:application/json;charset=utf-8;base64,` + mapBase64;
65525
65560
  const sourceMapComment = results.code.lastIndexOf('//#');
65526
- results.code = results.code.slice(0, sourceMapComment) + getSourceMappingUrlLinker(sourceMapInlined);
65561
+ results.code =
65562
+ results.code.slice(0, sourceMapComment) + getInlineSourceMappingUrlLinker(JSON.stringify(mapObject));
65527
65563
  }
65528
65564
  catch (e) {
65529
65565
  console.error(e);