@stencil/core 4.18.3 → 4.19.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 +43 -16
- package/cli/index.js +43 -16
- package/cli/package.json +1 -1
- package/compiler/package.json +1 -1
- package/compiler/stencil.js +175 -72
- package/dev-server/client/index.js +1 -1
- package/dev-server/client/package.json +1 -1
- package/dev-server/connector.html +3 -3
- package/dev-server/index.js +1 -1
- package/dev-server/package.json +1 -1
- package/dev-server/server-process.js +2 -2
- package/dev-server/ws.js +1 -1
- package/internal/app-data/package.json +1 -1
- package/internal/client/index.js +534 -507
- package/internal/client/package.json +3 -1
- package/internal/client/patch-browser.js +1 -1
- package/internal/hydrate/index.js +108 -50
- package/internal/hydrate/package.json +1 -1
- package/internal/hydrate/runner.d.ts +29 -11
- package/internal/hydrate/runner.js +239 -260
- package/internal/package.json +1 -1
- package/internal/stencil-private.d.ts +39 -14
- package/internal/stencil-public-compiler.d.ts +21 -0
- package/internal/stencil-public-runtime.d.ts +0 -2
- package/internal/testing/index.js +439 -407
- package/internal/testing/package.json +1 -1
- package/mock-doc/index.cjs +137 -131
- package/mock-doc/index.d.ts +18 -4
- package/mock-doc/index.js +137 -131
- package/mock-doc/package.json +1 -1
- package/package.json +34 -6
- package/screenshot/index.js +1 -1
- package/screenshot/package.json +1 -1
- package/screenshot/pixel-match.js +1 -1
- package/sys/node/index.js +10 -10
- package/sys/node/package.json +1 -1
- package/sys/node/worker.js +1 -1
- package/testing/index.js +95 -16
- package/testing/jest/jest-27-and-under/matchers/events.d.ts +4 -0
- package/testing/jest/jest-27-and-under/matchers/index.d.ts +2 -1
- package/testing/jest/jest-28/matchers/events.d.ts +4 -0
- package/testing/jest/jest-28/matchers/index.d.ts +2 -1
- package/testing/jest/jest-29/matchers/events.d.ts +4 -0
- package/testing/jest/jest-29/matchers/index.d.ts +2 -1
- package/testing/mocks.d.ts +9 -9
- package/testing/package.json +1 -1
- package/testing/puppeteer/puppeteer-declarations.d.ts +11 -0
package/cli/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
Stencil CLI (CommonJS) v4.
|
|
2
|
+
Stencil CLI (CommonJS) v4.19.0 | MIT Licensed | https://stenciljs.com
|
|
3
3
|
*/
|
|
4
4
|
"use strict";
|
|
5
5
|
var __create = Object.create;
|
|
@@ -3617,8 +3617,14 @@ var taskGenerate = async (config) => {
|
|
|
3617
3617
|
config.logger.error(tagError);
|
|
3618
3618
|
return config.sys.exit(1);
|
|
3619
3619
|
}
|
|
3620
|
-
|
|
3621
|
-
if (
|
|
3620
|
+
let cssExtension = "css";
|
|
3621
|
+
if (!!config.plugins.find((plugin) => plugin.name === "sass")) {
|
|
3622
|
+
cssExtension = await chooseSassExtension();
|
|
3623
|
+
} else if (!!config.plugins.find((plugin) => plugin.name === "less")) {
|
|
3624
|
+
cssExtension = "less";
|
|
3625
|
+
}
|
|
3626
|
+
const filesToGenerateExt = await chooseFilesToGenerate(cssExtension);
|
|
3627
|
+
if (!filesToGenerateExt) {
|
|
3622
3628
|
return;
|
|
3623
3629
|
}
|
|
3624
3630
|
const extensionsToGenerate = ["tsx", ...filesToGenerateExt];
|
|
@@ -3632,7 +3638,13 @@ var taskGenerate = async (config) => {
|
|
|
3632
3638
|
await checkForOverwrite(filesToGenerate, config);
|
|
3633
3639
|
const writtenFiles = await Promise.all(
|
|
3634
3640
|
filesToGenerate.map(
|
|
3635
|
-
(file) => getBoilerplateAndWriteFile(
|
|
3641
|
+
(file) => getBoilerplateAndWriteFile(
|
|
3642
|
+
config,
|
|
3643
|
+
componentName,
|
|
3644
|
+
extensionsToGenerate.includes("css") || extensionsToGenerate.includes("sass") || extensionsToGenerate.includes("scss") || extensionsToGenerate.includes("less"),
|
|
3645
|
+
file,
|
|
3646
|
+
cssExtension
|
|
3647
|
+
)
|
|
3636
3648
|
)
|
|
3637
3649
|
).catch((error) => config.logger.error(error));
|
|
3638
3650
|
if (!writtenFiles) {
|
|
@@ -3645,22 +3657,34 @@ var taskGenerate = async (config) => {
|
|
|
3645
3657
|
const absoluteRootDir = config.rootDir;
|
|
3646
3658
|
writtenFiles.map((file) => console.log(` - ${(0, import_path2.relative)(absoluteRootDir, file)}`));
|
|
3647
3659
|
};
|
|
3648
|
-
var chooseFilesToGenerate = async () => {
|
|
3660
|
+
var chooseFilesToGenerate = async (cssExtension) => {
|
|
3649
3661
|
const { prompt } = await Promise.resolve().then(() => __toESM(require_lib()));
|
|
3650
3662
|
return (await prompt({
|
|
3651
3663
|
name: "filesToGenerate",
|
|
3652
3664
|
type: "multiselect",
|
|
3653
3665
|
message: "Which additional files do you want to generate?",
|
|
3654
3666
|
choices: [
|
|
3655
|
-
{ value:
|
|
3667
|
+
{ value: cssExtension, title: `Stylesheet (.${cssExtension})`, selected: true },
|
|
3656
3668
|
{ value: "spec.tsx", title: "Spec Test (.spec.tsx)", selected: true },
|
|
3657
3669
|
{ value: "e2e.ts", title: "E2E Test (.e2e.ts)", selected: true }
|
|
3658
3670
|
]
|
|
3659
3671
|
})).filesToGenerate;
|
|
3660
3672
|
};
|
|
3673
|
+
var chooseSassExtension = async () => {
|
|
3674
|
+
const { prompt } = await Promise.resolve().then(() => __toESM(require_lib()));
|
|
3675
|
+
return (await prompt({
|
|
3676
|
+
name: "sassFormat",
|
|
3677
|
+
type: "select",
|
|
3678
|
+
message: "Which Sass format would you like to use? (More info: https://sass-lang.com/documentation/syntax/#the-indented-syntax)",
|
|
3679
|
+
choices: [
|
|
3680
|
+
{ value: "sass", title: `*.sass Format`, selected: true },
|
|
3681
|
+
{ value: "scss", title: "*.scss Format" }
|
|
3682
|
+
]
|
|
3683
|
+
})).sassFormat;
|
|
3684
|
+
};
|
|
3661
3685
|
var getFilepathForFile = (filePath, componentName, extension) => isTest2(extension) ? normalizePath((0, import_path2.join)(filePath, "test", `${componentName}.${extension}`)) : normalizePath((0, import_path2.join)(filePath, `${componentName}.${extension}`));
|
|
3662
|
-
var getBoilerplateAndWriteFile = async (config, componentName, withCss, file) => {
|
|
3663
|
-
const boilerplate = getBoilerplateByExtension(componentName, file.extension, withCss);
|
|
3686
|
+
var getBoilerplateAndWriteFile = async (config, componentName, withCss, file, styleExtension) => {
|
|
3687
|
+
const boilerplate = getBoilerplateByExtension(componentName, file.extension, withCss, styleExtension);
|
|
3664
3688
|
await config.sys.writeFile(normalizePath(file.path), boilerplate);
|
|
3665
3689
|
return file.path;
|
|
3666
3690
|
};
|
|
@@ -3684,12 +3708,15 @@ var checkForOverwrite = async (files, config) => {
|
|
|
3684
3708
|
var isTest2 = (extension) => {
|
|
3685
3709
|
return extension === "e2e.ts" || extension === "spec.tsx";
|
|
3686
3710
|
};
|
|
3687
|
-
var getBoilerplateByExtension = (tagName, extension, withCss) => {
|
|
3711
|
+
var getBoilerplateByExtension = (tagName, extension, withCss, styleExtension) => {
|
|
3688
3712
|
switch (extension) {
|
|
3689
3713
|
case "tsx":
|
|
3690
|
-
return getComponentBoilerplate(tagName, withCss);
|
|
3714
|
+
return getComponentBoilerplate(tagName, withCss, styleExtension);
|
|
3691
3715
|
case "css":
|
|
3692
|
-
|
|
3716
|
+
case "less":
|
|
3717
|
+
case "sass":
|
|
3718
|
+
case "scss":
|
|
3719
|
+
return getStyleUrlBoilerplate(styleExtension);
|
|
3693
3720
|
case "spec.tsx":
|
|
3694
3721
|
return getSpecTestBoilerplate(tagName);
|
|
3695
3722
|
case "e2e.ts":
|
|
@@ -3698,11 +3725,11 @@ var getBoilerplateByExtension = (tagName, extension, withCss) => {
|
|
|
3698
3725
|
throw new Error(`Unkown extension "${extension}".`);
|
|
3699
3726
|
}
|
|
3700
3727
|
};
|
|
3701
|
-
var getComponentBoilerplate = (tagName, hasStyle) => {
|
|
3728
|
+
var getComponentBoilerplate = (tagName, hasStyle, styleExtension) => {
|
|
3702
3729
|
const decorator = [`{`];
|
|
3703
3730
|
decorator.push(` tag: '${tagName}',`);
|
|
3704
3731
|
if (hasStyle) {
|
|
3705
|
-
decorator.push(` styleUrl: '${tagName}
|
|
3732
|
+
decorator.push(` styleUrl: '${tagName}.${styleExtension}',`);
|
|
3706
3733
|
}
|
|
3707
3734
|
decorator.push(` shadow: true,`);
|
|
3708
3735
|
decorator.push(`}`);
|
|
@@ -3710,7 +3737,6 @@ var getComponentBoilerplate = (tagName, hasStyle) => {
|
|
|
3710
3737
|
|
|
3711
3738
|
@Component(${decorator.join("\n")})
|
|
3712
3739
|
export class ${toPascalCase(tagName)} {
|
|
3713
|
-
|
|
3714
3740
|
render() {
|
|
3715
3741
|
return (
|
|
3716
3742
|
<Host>
|
|
@@ -3718,11 +3744,12 @@ export class ${toPascalCase(tagName)} {
|
|
|
3718
3744
|
</Host>
|
|
3719
3745
|
);
|
|
3720
3746
|
}
|
|
3721
|
-
|
|
3722
3747
|
}
|
|
3723
3748
|
`;
|
|
3724
3749
|
};
|
|
3725
|
-
var getStyleUrlBoilerplate = () => `:host
|
|
3750
|
+
var getStyleUrlBoilerplate = (ext) => ext === "sass" ? `:host
|
|
3751
|
+
display: block
|
|
3752
|
+
` : `:host {
|
|
3726
3753
|
display: block;
|
|
3727
3754
|
}
|
|
3728
3755
|
`;
|
package/cli/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
Stencil CLI v4.
|
|
2
|
+
Stencil CLI v4.19.0 | MIT Licensed | https://stenciljs.com
|
|
3
3
|
*/
|
|
4
4
|
var __create = Object.create;
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
@@ -3611,8 +3611,14 @@ var taskGenerate = async (config) => {
|
|
|
3611
3611
|
config.logger.error(tagError);
|
|
3612
3612
|
return config.sys.exit(1);
|
|
3613
3613
|
}
|
|
3614
|
-
|
|
3615
|
-
if (
|
|
3614
|
+
let cssExtension = "css";
|
|
3615
|
+
if (!!config.plugins.find((plugin) => plugin.name === "sass")) {
|
|
3616
|
+
cssExtension = await chooseSassExtension();
|
|
3617
|
+
} else if (!!config.plugins.find((plugin) => plugin.name === "less")) {
|
|
3618
|
+
cssExtension = "less";
|
|
3619
|
+
}
|
|
3620
|
+
const filesToGenerateExt = await chooseFilesToGenerate(cssExtension);
|
|
3621
|
+
if (!filesToGenerateExt) {
|
|
3616
3622
|
return;
|
|
3617
3623
|
}
|
|
3618
3624
|
const extensionsToGenerate = ["tsx", ...filesToGenerateExt];
|
|
@@ -3626,7 +3632,13 @@ var taskGenerate = async (config) => {
|
|
|
3626
3632
|
await checkForOverwrite(filesToGenerate, config);
|
|
3627
3633
|
const writtenFiles = await Promise.all(
|
|
3628
3634
|
filesToGenerate.map(
|
|
3629
|
-
(file) => getBoilerplateAndWriteFile(
|
|
3635
|
+
(file) => getBoilerplateAndWriteFile(
|
|
3636
|
+
config,
|
|
3637
|
+
componentName,
|
|
3638
|
+
extensionsToGenerate.includes("css") || extensionsToGenerate.includes("sass") || extensionsToGenerate.includes("scss") || extensionsToGenerate.includes("less"),
|
|
3639
|
+
file,
|
|
3640
|
+
cssExtension
|
|
3641
|
+
)
|
|
3630
3642
|
)
|
|
3631
3643
|
).catch((error) => config.logger.error(error));
|
|
3632
3644
|
if (!writtenFiles) {
|
|
@@ -3639,22 +3651,34 @@ var taskGenerate = async (config) => {
|
|
|
3639
3651
|
const absoluteRootDir = config.rootDir;
|
|
3640
3652
|
writtenFiles.map((file) => console.log(` - ${relative(absoluteRootDir, file)}`));
|
|
3641
3653
|
};
|
|
3642
|
-
var chooseFilesToGenerate = async () => {
|
|
3654
|
+
var chooseFilesToGenerate = async (cssExtension) => {
|
|
3643
3655
|
const { prompt } = await Promise.resolve().then(() => __toESM(require_lib()));
|
|
3644
3656
|
return (await prompt({
|
|
3645
3657
|
name: "filesToGenerate",
|
|
3646
3658
|
type: "multiselect",
|
|
3647
3659
|
message: "Which additional files do you want to generate?",
|
|
3648
3660
|
choices: [
|
|
3649
|
-
{ value:
|
|
3661
|
+
{ value: cssExtension, title: `Stylesheet (.${cssExtension})`, selected: true },
|
|
3650
3662
|
{ value: "spec.tsx", title: "Spec Test (.spec.tsx)", selected: true },
|
|
3651
3663
|
{ value: "e2e.ts", title: "E2E Test (.e2e.ts)", selected: true }
|
|
3652
3664
|
]
|
|
3653
3665
|
})).filesToGenerate;
|
|
3654
3666
|
};
|
|
3667
|
+
var chooseSassExtension = async () => {
|
|
3668
|
+
const { prompt } = await Promise.resolve().then(() => __toESM(require_lib()));
|
|
3669
|
+
return (await prompt({
|
|
3670
|
+
name: "sassFormat",
|
|
3671
|
+
type: "select",
|
|
3672
|
+
message: "Which Sass format would you like to use? (More info: https://sass-lang.com/documentation/syntax/#the-indented-syntax)",
|
|
3673
|
+
choices: [
|
|
3674
|
+
{ value: "sass", title: `*.sass Format`, selected: true },
|
|
3675
|
+
{ value: "scss", title: "*.scss Format" }
|
|
3676
|
+
]
|
|
3677
|
+
})).sassFormat;
|
|
3678
|
+
};
|
|
3655
3679
|
var getFilepathForFile = (filePath, componentName, extension) => isTest2(extension) ? normalizePath(join2(filePath, "test", `${componentName}.${extension}`)) : normalizePath(join2(filePath, `${componentName}.${extension}`));
|
|
3656
|
-
var getBoilerplateAndWriteFile = async (config, componentName, withCss, file) => {
|
|
3657
|
-
const boilerplate = getBoilerplateByExtension(componentName, file.extension, withCss);
|
|
3680
|
+
var getBoilerplateAndWriteFile = async (config, componentName, withCss, file, styleExtension) => {
|
|
3681
|
+
const boilerplate = getBoilerplateByExtension(componentName, file.extension, withCss, styleExtension);
|
|
3658
3682
|
await config.sys.writeFile(normalizePath(file.path), boilerplate);
|
|
3659
3683
|
return file.path;
|
|
3660
3684
|
};
|
|
@@ -3678,12 +3702,15 @@ var checkForOverwrite = async (files, config) => {
|
|
|
3678
3702
|
var isTest2 = (extension) => {
|
|
3679
3703
|
return extension === "e2e.ts" || extension === "spec.tsx";
|
|
3680
3704
|
};
|
|
3681
|
-
var getBoilerplateByExtension = (tagName, extension, withCss) => {
|
|
3705
|
+
var getBoilerplateByExtension = (tagName, extension, withCss, styleExtension) => {
|
|
3682
3706
|
switch (extension) {
|
|
3683
3707
|
case "tsx":
|
|
3684
|
-
return getComponentBoilerplate(tagName, withCss);
|
|
3708
|
+
return getComponentBoilerplate(tagName, withCss, styleExtension);
|
|
3685
3709
|
case "css":
|
|
3686
|
-
|
|
3710
|
+
case "less":
|
|
3711
|
+
case "sass":
|
|
3712
|
+
case "scss":
|
|
3713
|
+
return getStyleUrlBoilerplate(styleExtension);
|
|
3687
3714
|
case "spec.tsx":
|
|
3688
3715
|
return getSpecTestBoilerplate(tagName);
|
|
3689
3716
|
case "e2e.ts":
|
|
@@ -3692,11 +3719,11 @@ var getBoilerplateByExtension = (tagName, extension, withCss) => {
|
|
|
3692
3719
|
throw new Error(`Unkown extension "${extension}".`);
|
|
3693
3720
|
}
|
|
3694
3721
|
};
|
|
3695
|
-
var getComponentBoilerplate = (tagName, hasStyle) => {
|
|
3722
|
+
var getComponentBoilerplate = (tagName, hasStyle, styleExtension) => {
|
|
3696
3723
|
const decorator = [`{`];
|
|
3697
3724
|
decorator.push(` tag: '${tagName}',`);
|
|
3698
3725
|
if (hasStyle) {
|
|
3699
|
-
decorator.push(` styleUrl: '${tagName}
|
|
3726
|
+
decorator.push(` styleUrl: '${tagName}.${styleExtension}',`);
|
|
3700
3727
|
}
|
|
3701
3728
|
decorator.push(` shadow: true,`);
|
|
3702
3729
|
decorator.push(`}`);
|
|
@@ -3704,7 +3731,6 @@ var getComponentBoilerplate = (tagName, hasStyle) => {
|
|
|
3704
3731
|
|
|
3705
3732
|
@Component(${decorator.join("\n")})
|
|
3706
3733
|
export class ${toPascalCase(tagName)} {
|
|
3707
|
-
|
|
3708
3734
|
render() {
|
|
3709
3735
|
return (
|
|
3710
3736
|
<Host>
|
|
@@ -3712,11 +3738,12 @@ export class ${toPascalCase(tagName)} {
|
|
|
3712
3738
|
</Host>
|
|
3713
3739
|
);
|
|
3714
3740
|
}
|
|
3715
|
-
|
|
3716
3741
|
}
|
|
3717
3742
|
`;
|
|
3718
3743
|
};
|
|
3719
|
-
var getStyleUrlBoilerplate = () => `:host
|
|
3744
|
+
var getStyleUrlBoilerplate = (ext) => ext === "sass" ? `:host
|
|
3745
|
+
display: block
|
|
3746
|
+
` : `:host {
|
|
3720
3747
|
display: block;
|
|
3721
3748
|
}
|
|
3722
3749
|
`;
|
package/cli/package.json
CHANGED