@enhanced-dom/webpack 0.3.0 → 0.5.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/NOTICE.md +11 -0
- package/compiler.helpers.d.ts +3 -3
- package/compiler.helpers.js +10 -19
- package/configs/index.d.ts +38 -2
- package/configs/index.js +9 -16
- package/index.d.ts +5 -5
- package/index.js +6 -40
- package/loaders/WebcomponentStyleLoader.d.ts +12 -5
- package/loaders/WebcomponentStyleLoader.js +77 -41
- package/loaders/index.d.ts +51 -10
- package/loaders/index.js +34 -35
- package/loaders/resolveWebcomponentStyleLoaderPath.cjs +9 -0
- package/loaders/resolveWebcomponentStyleLoaderPath.d.cts +2 -0
- package/package.json +17 -17
- package/plugins/DefineEnvPlugin.d.ts +7 -0
- package/plugins/DefineEnvPlugin.js +17 -0
- package/plugins/HtmlInlineSourcePlugin.d.ts +22 -0
- package/plugins/HtmlInlineSourcePlugin.js +236 -0
- package/plugins/SelfDecompressingHtmlPlugin.d.ts +10 -0
- package/plugins/SelfDecompressingHtmlPlugin.js +119 -0
- package/plugins/formatThirdPartyNotices.d.ts +5 -0
- package/plugins/formatThirdPartyNotices.js +11 -0
- package/plugins/index.d.ts +34 -6
- package/plugins/index.js +63 -34
- package/compiler.helpers.js.map +0 -1
- package/configs/index.js.map +0 -1
- package/index.js.map +0 -1
- package/loaders/WebcomponentStyleLoader.js.map +0 -1
- package/loaders/index.js.map +0 -1
- package/plugins/HtmlWebpackInlineSourcePlugin.d.ts +0 -2
- package/plugins/HtmlWebpackInlineSourcePlugin.js +0 -55
- package/plugins/HtmlWebpackInlineSourcePlugin.js.map +0 -1
- package/plugins/index.js.map +0 -1
package/NOTICE.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Third-Party Notices
|
|
2
|
+
|
|
3
|
+
## Code copied verbatim from the following third-party sources
|
|
4
|
+
|
|
5
|
+
- **escape-string-regexp** — Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com). MIT Licensed.
|
|
6
|
+
- **slash** — Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com). MIT Licensed.
|
|
7
|
+
- **source-map-url** — Copyright 2014 Simon Lydell. X11 ("MIT") Licensed.
|
|
8
|
+
|
|
9
|
+
## Code adapted from the following third-party sources
|
|
10
|
+
|
|
11
|
+
- **html-webpack-inline-source-plugin** — Copyright (c) 2016 Jan Nicklas. MIT Licensed.
|
package/compiler.helpers.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type Compiler, type Configuration } from 'webpack';
|
|
1
|
+
import webpack, { type Compiler, type Configuration } from 'webpack';
|
|
2
2
|
import MemoryFS from 'memory-fs';
|
|
3
3
|
export declare const proxyFilesystem: (originalFilesystem: Compiler["inputFileSystem"]) => MemoryFS;
|
|
4
|
-
export declare const patchCompilerFileSystem: (originalCompiler: Compiler, allowProxy?: boolean) => Omit<Compiler, "inputFileSystem" | "outputFileSystem"> & {
|
|
4
|
+
export declare const patchCompilerFileSystem: (originalCompiler: Compiler, allowProxy?: boolean) => Omit<webpack.Compiler, "inputFileSystem" | "outputFileSystem"> & {
|
|
5
5
|
inputFileSystem: MemoryFS;
|
|
6
6
|
outputFileSystem: MemoryFS;
|
|
7
7
|
};
|
|
8
|
-
export declare const getInMemoryCompiler: (webpackConfig: Configuration, allowProxy?: boolean) => Omit<Compiler, "inputFileSystem" | "outputFileSystem"> & {
|
|
8
|
+
export declare const getInMemoryCompiler: (webpackConfig: Configuration, allowProxy?: boolean) => Omit<webpack.Compiler, "inputFileSystem" | "outputFileSystem"> & {
|
|
9
9
|
inputFileSystem: MemoryFS;
|
|
10
10
|
outputFileSystem: MemoryFS;
|
|
11
11
|
};
|
package/compiler.helpers.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getInMemoryCompiler = exports.patchCompilerFileSystem = exports.proxyFilesystem = void 0;
|
|
7
|
-
const webpack_1 = require("webpack");
|
|
8
|
-
const memory_fs_1 = __importDefault(require("memory-fs"));
|
|
9
|
-
const proxyFilesystem = (originalFilesystem) => {
|
|
1
|
+
import webpack from 'webpack';
|
|
2
|
+
import MemoryFS from 'memory-fs';
|
|
3
|
+
export const proxyFilesystem = (originalFilesystem) => {
|
|
10
4
|
// Inspired by: https://stackoverflow.com/questions/38779924/compiling-webpack-in-memory-but-resolving-to-node-modules-on-disk
|
|
11
|
-
const memFs = new
|
|
5
|
+
const memFs = new MemoryFS();
|
|
12
6
|
const statOrig = memFs.stat.bind(memFs);
|
|
13
7
|
const readFileOrig = memFs.readFile.bind(memFs);
|
|
14
8
|
memFs.stat = (filePath, cb) => {
|
|
@@ -29,16 +23,13 @@ const proxyFilesystem = (originalFilesystem) => {
|
|
|
29
23
|
};
|
|
30
24
|
return memFs;
|
|
31
25
|
};
|
|
32
|
-
|
|
33
|
-
const patchCompilerFileSystem = (originalCompiler, allowProxy = true) => {
|
|
26
|
+
export const patchCompilerFileSystem = (originalCompiler, allowProxy = true) => {
|
|
34
27
|
const transformedCompiler = originalCompiler;
|
|
35
|
-
transformedCompiler.inputFileSystem = allowProxy ?
|
|
36
|
-
transformedCompiler.outputFileSystem = new
|
|
28
|
+
transformedCompiler.inputFileSystem = allowProxy ? proxyFilesystem(originalCompiler.inputFileSystem) : new MemoryFS();
|
|
29
|
+
transformedCompiler.outputFileSystem = new MemoryFS();
|
|
37
30
|
return transformedCompiler;
|
|
38
31
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return (0, exports.patchCompilerFileSystem)((0, webpack_1.webpack)(webpackConfig), allowProxy);
|
|
32
|
+
export const getInMemoryCompiler = (webpackConfig, allowProxy = true) => {
|
|
33
|
+
return patchCompilerFileSystem(webpack(webpackConfig), allowProxy);
|
|
42
34
|
};
|
|
43
|
-
|
|
44
|
-
//# sourceMappingURL=compiler.helpers.js.map
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGlsZXIuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21waWxlci5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBOEMsTUFBTSxTQUFTLENBQUE7QUFDcEUsT0FBTyxRQUFRLE1BQU0sV0FBVyxDQUFBO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLGtCQUErQyxFQUFFLEVBQUU7SUFDakYsOEhBQThIO0lBQzlILE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUE7SUFDNUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0MsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQWdCLEVBQUUsRUFBNkMsRUFBRSxFQUFFO1FBQy9FLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFpQixFQUFFLE1BQVcsRUFBRSxFQUFFO1lBQ3BELElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1IsT0FBTyxrQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQy9DLENBQUM7WUFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDeEIsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDLENBQUE7SUFDRCxLQUFLLENBQUMsUUFBUSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxFQUE2QyxFQUFFLEVBQUU7UUFDbkYsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQWlCLEVBQUUsTUFBVyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixPQUFPLGtCQUFtQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDbkQsQ0FBQztZQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUN4QixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQTtJQUVELE9BQU8sS0FBSyxDQUFBO0FBQ2QsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxnQkFBMEIsRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLEVBQUU7SUFDdkYsTUFBTSxtQkFBbUIsR0FBRyxnQkFHM0IsQ0FBQTtJQUNELG1CQUFtQixDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQTtJQUNySCxtQkFBbUIsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFBO0lBRXJELE9BQU8sbUJBQW1CLENBQUE7QUFDNUIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxhQUE0QixFQUFFLFVBQVUsR0FBRyxJQUFJLEVBQUUsRUFBRTtJQUNyRixPQUFPLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQTtBQUNwRSxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgd2VicGFjaywgeyB0eXBlIENvbXBpbGVyLCB0eXBlIENvbmZpZ3VyYXRpb24gfSBmcm9tICd3ZWJwYWNrJ1xuaW1wb3J0IE1lbW9yeUZTIGZyb20gJ21lbW9yeS1mcydcblxuZXhwb3J0IGNvbnN0IHByb3h5RmlsZXN5c3RlbSA9IChvcmlnaW5hbEZpbGVzeXN0ZW06IENvbXBpbGVyWydpbnB1dEZpbGVTeXN0ZW0nXSkgPT4ge1xuICAvLyBJbnNwaXJlZCBieTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzg3Nzk5MjQvY29tcGlsaW5nLXdlYnBhY2staW4tbWVtb3J5LWJ1dC1yZXNvbHZpbmctdG8tbm9kZS1tb2R1bGVzLW9uLWRpc2tcbiAgY29uc3QgbWVtRnMgPSBuZXcgTWVtb3J5RlMoKVxuICBjb25zdCBzdGF0T3JpZyA9IG1lbUZzLnN0YXQuYmluZChtZW1GcylcbiAgY29uc3QgcmVhZEZpbGVPcmlnID0gbWVtRnMucmVhZEZpbGUuYmluZChtZW1GcylcbiAgbWVtRnMuc3RhdCA9IChmaWxlUGF0aDogc3RyaW5nLCBjYjogKGVycjogRXJyb3IgfCBudWxsLCByZXN1bHQ/OiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICBzdGF0T3JpZyhmaWxlUGF0aCwgKGVycjogRXJyb3IgfCBudWxsLCByZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gb3JpZ2luYWxGaWxlc3lzdGVtIS5zdGF0KGZpbGVQYXRoLCBjYilcbiAgICAgIH1cbiAgICAgIHJldHVybiBjYihlcnIsIHJlc3VsdClcbiAgICB9KVxuICB9XG4gIG1lbUZzLnJlYWRGaWxlID0gKGZpbGVQYXRoOiBzdHJpbmcsIGNiOiAoZXJyOiBFcnJvciB8IG51bGwsIHJlc3VsdD86IGFueSkgPT4gdm9pZCkgPT4ge1xuICAgIHJlYWRGaWxlT3JpZyhmaWxlUGF0aCwgKGVycjogRXJyb3IgfCBudWxsLCByZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICByZXR1cm4gb3JpZ2luYWxGaWxlc3lzdGVtIS5yZWFkRmlsZShmaWxlUGF0aCwgY2IpXG4gICAgICB9XG4gICAgICByZXR1cm4gY2IoZXJyLCByZXN1bHQpXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBtZW1Gc1xufVxuXG5leHBvcnQgY29uc3QgcGF0Y2hDb21waWxlckZpbGVTeXN0ZW0gPSAob3JpZ2luYWxDb21waWxlcjogQ29tcGlsZXIsIGFsbG93UHJveHkgPSB0cnVlKSA9PiB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkQ29tcGlsZXIgPSBvcmlnaW5hbENvbXBpbGVyIGFzIHVua25vd24gYXMgT21pdDxDb21waWxlciwgJ2lucHV0RmlsZVN5c3RlbScgfCAnb3V0cHV0RmlsZVN5c3RlbSc+ICYge1xuICAgIGlucHV0RmlsZVN5c3RlbTogTWVtb3J5RlNcbiAgICBvdXRwdXRGaWxlU3lzdGVtOiBNZW1vcnlGU1xuICB9XG4gIHRyYW5zZm9ybWVkQ29tcGlsZXIuaW5wdXRGaWxlU3lzdGVtID0gYWxsb3dQcm94eSA/IHByb3h5RmlsZXN5c3RlbShvcmlnaW5hbENvbXBpbGVyLmlucHV0RmlsZVN5c3RlbSkgOiBuZXcgTWVtb3J5RlMoKVxuICB0cmFuc2Zvcm1lZENvbXBpbGVyLm91dHB1dEZpbGVTeXN0ZW0gPSBuZXcgTWVtb3J5RlMoKVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZENvbXBpbGVyXG59XG5cbmV4cG9ydCBjb25zdCBnZXRJbk1lbW9yeUNvbXBpbGVyID0gKHdlYnBhY2tDb25maWc6IENvbmZpZ3VyYXRpb24sIGFsbG93UHJveHkgPSB0cnVlKSA9PiB7XG4gIHJldHVybiBwYXRjaENvbXBpbGVyRmlsZVN5c3RlbSh3ZWJwYWNrKHdlYnBhY2tDb25maWcpLCBhbGxvd1Byb3h5KVxufVxuIl19
|
package/configs/index.d.ts
CHANGED
|
@@ -11,11 +11,47 @@ export declare const typedStylesConfigFactory: ({ raw, filePaths, outputPath }:
|
|
|
11
11
|
devtool: boolean;
|
|
12
12
|
output: {
|
|
13
13
|
path: string;
|
|
14
|
-
};
|
|
14
|
+
} | undefined;
|
|
15
15
|
module: {
|
|
16
16
|
rules: {
|
|
17
17
|
test: RegExp;
|
|
18
|
-
use:
|
|
18
|
+
use: ({
|
|
19
|
+
loader: string;
|
|
20
|
+
options: {
|
|
21
|
+
esModule: boolean;
|
|
22
|
+
modules: {
|
|
23
|
+
localIdentName: string;
|
|
24
|
+
getLocalIdent: (loaderContext: {
|
|
25
|
+
resourcePath: string;
|
|
26
|
+
}, _: any, localName: string) => string | undefined;
|
|
27
|
+
exportLocalsConvention: string;
|
|
28
|
+
namedExport: boolean;
|
|
29
|
+
};
|
|
30
|
+
sourceMap: boolean;
|
|
31
|
+
} | {
|
|
32
|
+
modules: boolean;
|
|
33
|
+
sourceMap: boolean;
|
|
34
|
+
};
|
|
35
|
+
} | {
|
|
36
|
+
loader: string;
|
|
37
|
+
options: {
|
|
38
|
+
raw: boolean;
|
|
39
|
+
emit: boolean;
|
|
40
|
+
typings: boolean;
|
|
41
|
+
publicPath?: undefined;
|
|
42
|
+
};
|
|
43
|
+
} | {
|
|
44
|
+
loader: string;
|
|
45
|
+
options: {
|
|
46
|
+
publicPath: string;
|
|
47
|
+
raw?: undefined;
|
|
48
|
+
emit?: undefined;
|
|
49
|
+
typings?: undefined;
|
|
50
|
+
};
|
|
51
|
+
} | {
|
|
52
|
+
loader: string;
|
|
53
|
+
options?: undefined;
|
|
54
|
+
})[];
|
|
19
55
|
}[];
|
|
20
56
|
};
|
|
21
57
|
plugins: IgnoreEmitWebpackPlugin[];
|
package/configs/index.js
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
exports.typedStylesConfigFactory = void 0;
|
|
7
|
-
const ignore_emit_webpack_plugin_1 = __importDefault(require("ignore-emit-webpack-plugin"));
|
|
8
|
-
const path_1 = __importDefault(require("path"));
|
|
9
|
-
const loaders_1 = require("../loaders");
|
|
10
|
-
const typedStylesConfigFactory = ({ raw, filePaths, outputPath }) => {
|
|
11
|
-
const fileRegexes = filePaths.map((filePath) => new RegExp(`^((?!${path_1.default.basename(filePath).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')}).)*$`));
|
|
1
|
+
import IgnoreEmitWebpackPlugin from 'ignore-emit-webpack-plugin';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { styleConfigFactory } from '../loaders/index.js';
|
|
4
|
+
export const typedStylesConfigFactory = ({ raw, filePaths, outputPath }) => {
|
|
5
|
+
const fileRegexes = filePaths.map((filePath) => new RegExp(`^((?!${path.basename(filePath).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')}).)*$`));
|
|
12
6
|
return {
|
|
13
7
|
mode: 'development',
|
|
14
8
|
entry: { bundle: filePaths },
|
|
@@ -18,16 +12,15 @@ const typedStylesConfigFactory = ({ raw, filePaths, outputPath }) => {
|
|
|
18
12
|
rules: [
|
|
19
13
|
{
|
|
20
14
|
test: /\.(pcss|css)$/,
|
|
21
|
-
use:
|
|
15
|
+
use: styleConfigFactory({ raw, typedStyles: true, parser: 'postcss', extract: !!outputPath }),
|
|
22
16
|
},
|
|
23
17
|
{
|
|
24
18
|
test: /\.(scss|sass)$/,
|
|
25
|
-
use:
|
|
19
|
+
use: styleConfigFactory({ raw, typedStyles: true, parser: 'postcss-scss', extract: !!outputPath }),
|
|
26
20
|
},
|
|
27
21
|
],
|
|
28
22
|
},
|
|
29
|
-
plugins: [new
|
|
23
|
+
plugins: [new IgnoreEmitWebpackPlugin(fileRegexes)],
|
|
30
24
|
};
|
|
31
25
|
};
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=index.js.map
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLHVCQUF1QixNQUFNLDRCQUE0QixDQUFBO0FBQ2hFLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUV2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFL0MsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUErRCxFQUFFLEVBQUU7SUFDdEksTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FDL0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUM3RyxDQUFBO0lBQ0QsT0FBTztRQUNMLElBQUksRUFBRSxhQUFhO1FBQ25CLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7UUFDNUIsT0FBTyxFQUFFLEtBQUs7UUFDZCxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNyRCxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDOUY7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsR0FBRyxFQUFFLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUNuRzthQUNGO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ3BELENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSWdub3JlRW1pdFdlYnBhY2tQbHVnaW4gZnJvbSAnaWdub3JlLWVtaXQtd2VicGFjay1wbHVnaW4nXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgeyBzdHlsZUNvbmZpZ0ZhY3RvcnkgfSBmcm9tICcuLi9sb2FkZXJzJ1xuXG5leHBvcnQgY29uc3QgdHlwZWRTdHlsZXNDb25maWdGYWN0b3J5ID0gKHsgcmF3LCBmaWxlUGF0aHMsIG91dHB1dFBhdGggfTogeyByYXc/OiBib29sZWFuOyBmaWxlUGF0aHM6IHN0cmluZ1tdOyBvdXRwdXRQYXRoPzogc3RyaW5nIH0pID0+IHtcbiAgY29uc3QgZmlsZVJlZ2V4ZXMgPSBmaWxlUGF0aHMubWFwKFxuICAgIChmaWxlUGF0aCkgPT4gbmV3IFJlZ0V4cChgXigoPyEke3BhdGguYmFzZW5hbWUoZmlsZVBhdGgpLnJlcGxhY2UoL1stW1xcXXt9KCkqKz8uLFxcXFxeJHwjXFxzXS9nLCAnXFxcXCQmJyl9KS4pKiRgKSxcbiAgKVxuICByZXR1cm4ge1xuICAgIG1vZGU6ICdkZXZlbG9wbWVudCcsXG4gICAgZW50cnk6IHsgYnVuZGxlOiBmaWxlUGF0aHMgfSxcbiAgICBkZXZ0b29sOiBmYWxzZSxcbiAgICBvdXRwdXQ6IG91dHB1dFBhdGggPyB7IHBhdGg6IG91dHB1dFBhdGggfSA6IHVuZGVmaW5lZCxcbiAgICBtb2R1bGU6IHtcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXN0OiAvXFwuKHBjc3N8Y3NzKSQvLFxuICAgICAgICAgIHVzZTogc3R5bGVDb25maWdGYWN0b3J5KHsgcmF3LCB0eXBlZFN0eWxlczogdHJ1ZSwgcGFyc2VyOiAncG9zdGNzcycsIGV4dHJhY3Q6ICEhb3V0cHV0UGF0aCB9KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRlc3Q6IC9cXC4oc2Nzc3xzYXNzKSQvLFxuICAgICAgICAgIHVzZTogc3R5bGVDb25maWdGYWN0b3J5KHsgcmF3LCB0eXBlZFN0eWxlczogdHJ1ZSwgcGFyc2VyOiAncG9zdGNzcy1zY3NzJywgZXh0cmFjdDogISFvdXRwdXRQYXRoIH0pLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHBsdWdpbnM6IFtuZXcgSWdub3JlRW1pdFdlYnBhY2tQbHVnaW4oZmlsZVJlZ2V4ZXMpXSxcbiAgfVxufVxuIl19
|
package/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as loaders from './loaders';
|
|
2
|
-
import * as plugins from './plugins';
|
|
3
|
-
import * as configs from './configs';
|
|
4
|
-
import * as compiler from './compiler.helpers';
|
|
1
|
+
import * as loaders from './loaders/index.js';
|
|
2
|
+
import * as plugins from './plugins/index.js';
|
|
3
|
+
import * as configs from './configs/index.js';
|
|
4
|
+
import * as compiler from './compiler.helpers.js';
|
|
5
5
|
declare const _default: {
|
|
6
6
|
loaders: typeof loaders;
|
|
7
7
|
plugins: typeof plugins;
|
|
8
8
|
configs: typeof configs;
|
|
9
9
|
compiler: typeof compiler;
|
|
10
10
|
};
|
|
11
|
-
export
|
|
11
|
+
export default _default;
|
package/index.js
CHANGED
|
@@ -1,45 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
const loaders = __importStar(require("./loaders"));
|
|
36
|
-
const plugins = __importStar(require("./plugins"));
|
|
37
|
-
const configs = __importStar(require("./configs"));
|
|
38
|
-
const compiler = __importStar(require("./compiler.helpers"));
|
|
39
|
-
module.exports = {
|
|
1
|
+
import * as loaders from './loaders/index.js';
|
|
2
|
+
import * as plugins from './plugins/index.js';
|
|
3
|
+
import * as configs from './configs/index.js';
|
|
4
|
+
import * as compiler from './compiler.helpers.js';
|
|
5
|
+
export default {
|
|
40
6
|
loaders,
|
|
41
7
|
plugins,
|
|
42
8
|
configs,
|
|
43
9
|
compiler,
|
|
44
10
|
};
|
|
45
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUE7QUFDcEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUE7QUFDcEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUE7QUFDcEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxvQkFBb0IsQ0FBQTtBQUM5QyxlQUFlO0lBQ2IsT0FBTztJQUNQLE9BQU87SUFDUCxPQUFPO0lBQ1AsUUFBUTtDQUNULENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBsb2FkZXJzIGZyb20gJy4vbG9hZGVycydcbmltcG9ydCAqIGFzIHBsdWdpbnMgZnJvbSAnLi9wbHVnaW5zJ1xuaW1wb3J0ICogYXMgY29uZmlncyBmcm9tICcuL2NvbmZpZ3MnXG5pbXBvcnQgKiBhcyBjb21waWxlciBmcm9tICcuL2NvbXBpbGVyLmhlbHBlcnMnXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvYWRlcnMsXG4gIHBsdWdpbnMsXG4gIGNvbmZpZ3MsXG4gIGNvbXBpbGVyLFxufVxuIl19
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { type LoaderDefinitionFunction, type PitchLoaderDefinitionFunction } from 'webpack';
|
|
2
|
+
interface IWebcomponentStyleLoaderOptions {
|
|
3
|
+
pathPrefix?: string;
|
|
4
|
+
emit?: boolean;
|
|
5
|
+
typings?: boolean;
|
|
6
|
+
raw?: boolean;
|
|
7
|
+
named?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const loader: LoaderDefinitionFunction<IWebcomponentStyleLoaderOptions>;
|
|
10
|
+
declare function pitch(this: ThisParameterType<PitchLoaderDefinitionFunction<IWebcomponentStyleLoaderOptions>>, request: string): Promise<void>;
|
|
11
|
+
export default loader;
|
|
12
|
+
export { pitch };
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
const path_1 = __importDefault(require("path"));
|
|
6
|
-
const fs_1 = __importDefault(require("fs"));
|
|
7
|
-
const schema_utils_1 = require("schema-utils");
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { validate } from 'schema-utils';
|
|
8
3
|
const schema = {
|
|
9
4
|
type: 'object',
|
|
10
5
|
properties: {
|
|
@@ -26,45 +21,86 @@ const schema = {
|
|
|
26
21
|
},
|
|
27
22
|
additionalProperties: false,
|
|
28
23
|
};
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
24
|
+
class WebcomponentStyleLoaderHandler {
|
|
25
|
+
_context;
|
|
26
|
+
_options;
|
|
27
|
+
constructor(context) {
|
|
28
|
+
this._context = context;
|
|
29
|
+
this._options = context.getOptions();
|
|
30
|
+
validate(schema, this._options, { name: 'webcomponent-styles' });
|
|
31
|
+
}
|
|
32
|
+
get _typingsCode() {
|
|
33
|
+
return Object.keys(this._context.data)
|
|
34
|
+
.map((exportName) => `export const ${exportName}: string;`)
|
|
35
|
+
.join('\n');
|
|
36
|
+
}
|
|
37
|
+
get _transformedAssetPath() {
|
|
38
|
+
const pathPrefix = this._options.pathPrefix ?? path.join(process.cwd(), 'src');
|
|
39
|
+
return path.join(path.dirname(this._context.resourcePath), `${path.basename(this._context.resourcePath)}.js`).replace(pathPrefix, '');
|
|
40
|
+
}
|
|
41
|
+
get _transformedDtsPath() {
|
|
42
|
+
const pathPrefix = this._options.pathPrefix ?? path.join(process.cwd(), 'src');
|
|
43
|
+
return path.join(path.dirname(this._context.resourcePath), `${path.basename(this._context.resourcePath)}.d.ts`).replace(pathPrefix, '');
|
|
44
|
+
}
|
|
45
|
+
_emitTransformedAssets() {
|
|
46
|
+
const transformedCode = Object.entries(this._context.data)
|
|
39
47
|
.map(([exportName, exportValue]) => `export const ${exportName} = ${exportValue}`)
|
|
40
48
|
.join('\n');
|
|
41
|
-
this.emitFile(
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
.join(path_1.default.dirname(this.resourcePath), `${path_1.default.basename(this.resourcePath)}.d.ts`)
|
|
45
|
-
.replace(pathPrefix, '');
|
|
46
|
-
const typingsCode = [...Object.keys(this.data).map((exportName) => `export const ${exportName}: string;`)].join('\n');
|
|
47
|
-
this.emitFile(transformedDtsPath, typingsCode);
|
|
49
|
+
this._context.emitFile(this._transformedAssetPath, transformedCode);
|
|
50
|
+
if (this._options.typings) {
|
|
51
|
+
this._context.emitFile(this._transformedDtsPath, this._typingsCode);
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
|
-
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
_writeTypingsFile() {
|
|
55
|
+
const dtsDir = path.dirname(this._context.resourcePath);
|
|
56
|
+
const dtsPath = path.join(dtsDir, `${path.basename(this._context.resourcePath)}.d.ts`);
|
|
57
|
+
const typingsCode = this._typingsCode;
|
|
58
|
+
const outputFs = this._context._compiler.outputFileSystem;
|
|
59
|
+
if (!outputFs.existsSync(dtsDir)) {
|
|
60
|
+
outputFs.mkdirSync(dtsDir, { recursive: true });
|
|
61
|
+
}
|
|
62
|
+
if (!outputFs.existsSync(dtsPath) || outputFs.readFileSync(dtsPath).toString() !== typingsCode) {
|
|
63
|
+
outputFs.writeFileSync(dtsPath, typingsCode);
|
|
55
64
|
}
|
|
56
65
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
this.data.css = `\`${defaultExport.toString()}\``;
|
|
66
|
+
run(content) {
|
|
67
|
+
if (this._options.emit) {
|
|
68
|
+
this._emitTransformedAssets();
|
|
69
|
+
}
|
|
70
|
+
if (this._options.typings) {
|
|
71
|
+
this._writeTypingsFile();
|
|
72
|
+
}
|
|
73
|
+
return this._options.raw ? content + `export var css = ${this._context.data.css};\n` : content;
|
|
66
74
|
}
|
|
67
|
-
|
|
75
|
+
async pitch(request) {
|
|
76
|
+
// `this.data` is only shared between the pitch and normal phases once something writes to it -
|
|
77
|
+
// it isn't pre-initialized to an object, so the normal phase would see `undefined` if there are
|
|
78
|
+
// no named exports to forward below (e.g. no CSS-module class names in this stylesheet). webpack
|
|
79
|
+
// types `data` as `readonly`; the cast below is only to assign through that annotation.
|
|
80
|
+
const context = this._context;
|
|
81
|
+
context.data ??= {};
|
|
82
|
+
const result = await this._context.importModule(this._context.resourcePath + '.webpack[javascript/auto]' + '!=!' + request);
|
|
83
|
+
const { default: defaultExport, ...otherExports } = result;
|
|
84
|
+
if (this._options.raw) {
|
|
85
|
+
this._context.data.css = `\`${defaultExport.toString()}\``;
|
|
86
|
+
}
|
|
87
|
+
Object.entries(otherExports).forEach(([exportName, exportValue]) => (this._context.data[exportName] = `'${exportValue.replace(/^["|'](.+)["|']$/, '$1')}'`));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Exported as a plain `default` function plus a top-level named `pitch` export (webpack's own
|
|
91
|
+
// `LoaderModule` shape: `{ default?, pitch?, raw? }`) rather than `loader.pitch = pitch` - this
|
|
92
|
+
// package's dist build is real ESM (`"type": "module"`), and loader-runner's ES-module loading path
|
|
93
|
+
// reads `module.pitch` off the import's top level, never `module.default.pitch`.
|
|
94
|
+
const loader = function (content) {
|
|
95
|
+
return new WebcomponentStyleLoaderHandler(this).run(content);
|
|
68
96
|
};
|
|
69
|
-
|
|
70
|
-
|
|
97
|
+
// PitchLoaderDefinitionFunction's return type doesn't include Promise<void>, only
|
|
98
|
+
// Promise<string | Buffer> - but a pitch loader that only stashes data on `this.data` for the
|
|
99
|
+
// normal phase (rather than short-circuiting it) is expected to resolve to nothing. The cast
|
|
100
|
+
// below is only about that return-type gap; `this` is still fully typed inside the function body.
|
|
101
|
+
async function pitch(request) {
|
|
102
|
+
await new WebcomponentStyleLoaderHandler(this).pitch(request);
|
|
103
|
+
}
|
|
104
|
+
export default loader;
|
|
105
|
+
export { pitch };
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViY29tcG9uZW50U3R5bGVMb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9hZGVycy9XZWJjb21wb25lbnRTdHlsZUxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUE7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQXdCdkMsTUFBTSxNQUFNLEdBQWdCO0lBQzFCLElBQUksRUFBRSxRQUFRO0lBQ2QsVUFBVSxFQUFFO1FBQ1YsVUFBVSxFQUFFO1lBQ1YsSUFBSSxFQUFFLFFBQVE7U0FDZjtRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxTQUFTO1NBQ2hCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsSUFBSSxFQUFFLFNBQVM7U0FDaEI7UUFDRCxHQUFHLEVBQUU7WUFDSCxJQUFJLEVBQUUsU0FBUztTQUNoQjtRQUNELEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxTQUFTO1NBQ2hCO0tBQ0Y7SUFDRCxvQkFBb0IsRUFBRSxLQUFLO0NBQzVCLENBQUE7QUFFRCxNQUFNLDhCQUE4QjtJQUMxQixRQUFRLENBQW1CO0lBQzNCLFFBQVEsQ0FBaUM7SUFFakQsWUFBWSxPQUEwQjtRQUNwQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNwQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO2FBQ25DLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLFVBQVUsV0FB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Q0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFLLFdBQXNCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDbkksQ0FBQTtJQUNILENBQUM7Q0FDRjtBQUVELDhGQUE4RjtBQUM5RixnR0FBZ0c7QUFDaEcsb0dBQW9HO0FBQ3BHLGlGQUFpRjtBQUNqRixNQUFNLE1BQU0sR0FBOEQsVUFBVSxPQUFPO0lBQ3pGLE9BQU8sSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsa0ZBQWtGO0FBQ2xGLDhGQUE4RjtBQUM5Riw2RkFBNkY7QUFDN0Ysa0dBQWtHO0FBQ2xHLEtBQUssVUFBVSxLQUFLLENBQTBGLE9BQWU7SUFDM0gsTUFBTSxJQUFJLDhCQUE4QixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUMvRCxDQUFDO0FBRUQsZUFBZSxNQUFNLENBQUE7QUFDckIsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IHZhbGlkYXRlIH0gZnJvbSAnc2NoZW1hLXV0aWxzJ1xuaW1wb3J0IHsgdHlwZSBKU09OU2NoZW1hNyB9IGZyb20gJ2pzb24tc2NoZW1hJ1xuaW1wb3J0IHsgdHlwZSBMb2FkZXJEZWZpbml0aW9uRnVuY3Rpb24sIHR5cGUgUGl0Y2hMb2FkZXJEZWZpbml0aW9uRnVuY3Rpb24gfSBmcm9tICd3ZWJwYWNrJ1xuXG5pbnRlcmZhY2UgSVdlYmNvbXBvbmVudFN0eWxlTG9hZGVyT3B0aW9ucyB7XG4gIHBhdGhQcmVmaXg/OiBzdHJpbmdcbiAgZW1pdD86IGJvb2xlYW5cbiAgdHlwaW5ncz86IGJvb2xlYW5cbiAgcmF3PzogYm9vbGVhblxuICBuYW1lZD86IGJvb2xlYW5cbn1cblxuLy8gVGhlIGNvbXBpbGVyJ3Mgb3V0cHV0RmlsZVN5c3RlbSBpcyBvbmx5IG9mZmljaWFsbHkgdHlwZWQgd2l0aCBhc3luYyAoY2FsbGJhY2spIG1ldGhvZHMsIGJ1dCBpblxuLy8gcHJhY3RpY2UgaXQncyBlaXRoZXIgTm9kZSdzIHJlYWwgYGZzYCBvciBhIE1lbW9yeUZTIC0gYm90aCBhbHNvIGV4cG9zZSB0aGVzZSBTeW5jIGVxdWl2YWxlbnRzLlxuLy8gU2FtZSBjb21wcm9taXNlIEBlbmhhbmNlZC1kb20vaW50bCdzIHdlYnBhY2sucGx1Z2luLnRzIG1ha2VzIGZvciB0aGUgc2FtZSByZWFzb24uXG5pbnRlcmZhY2UgSVN5bmNGaWxlU3lzdGVtIHtcbiAgZXhpc3RzU3luYzogKHBhdGhPZkl0ZW06IHN0cmluZykgPT4gYm9vbGVhblxuICByZWFkRmlsZVN5bmM6IChwYXRoT2ZJdGVtOiBzdHJpbmcpID0+IEJ1ZmZlclxuICB3cml0ZUZpbGVTeW5jOiAocGF0aE9mSXRlbTogc3RyaW5nLCBjb250ZW50czogc3RyaW5nKSA9PiB2b2lkXG4gIG1rZGlyU3luYzogKHBhdGhPZkl0ZW06IHN0cmluZywgb3B0aW9ucz86IHsgcmVjdXJzaXZlPzogYm9vbGVhbiB9KSA9PiB2b2lkXG59XG5cbnR5cGUgTG9hZGVyQ29udGV4dFR5cGUgPSBUaGlzUGFyYW1ldGVyVHlwZTxMb2FkZXJEZWZpbml0aW9uRnVuY3Rpb248SVdlYmNvbXBvbmVudFN0eWxlTG9hZGVyT3B0aW9ucz4+XG5cbmNvbnN0IHNjaGVtYTogSlNPTlNjaGVtYTcgPSB7XG4gIHR5cGU6ICdvYmplY3QnLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgcGF0aFByZWZpeDoge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSxcbiAgICBlbWl0OiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICB0eXBpbmdzOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgICByYXc6IHtcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICB9LFxuICAgIG5hbWVkOiB7XG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgfSxcbiAgfSxcbiAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxufVxuXG5jbGFzcyBXZWJjb21wb25lbnRTdHlsZUxvYWRlckhhbmRsZXIge1xuICBwcml2YXRlIF9jb250ZXh0OiBMb2FkZXJDb250ZXh0VHlwZVxuICBwcml2YXRlIF9vcHRpb25zOiBJV2ViY29tcG9uZW50U3R5bGVMb2FkZXJPcHRpb25zXG5cbiAgY29uc3RydWN0b3IoY29udGV4dDogTG9hZGVyQ29udGV4dFR5cGUpIHtcbiAgICB0aGlzLl9jb250ZXh0ID0gY29udGV4dFxuICAgIHRoaXMuX29wdGlvbnMgPSBjb250ZXh0LmdldE9wdGlvbnMoKVxuICAgIHZhbGlkYXRlKHNjaGVtYSwgdGhpcy5fb3B0aW9ucywgeyBuYW1lOiAnd2ViY29tcG9uZW50LXN0eWxlcycgfSlcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF90eXBpbmdzQ29kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLl9jb250ZXh0LmRhdGEpXG4gICAgICAubWFwKChleHBvcnROYW1lKSA9PiBgZXhwb3J0IGNvbnN0ICR7ZXhwb3J0TmFtZX06IHN0cmluZztgKVxuICAgICAgLmpvaW4oJ1xcbicpXG4gIH1cblxuICBwcml2YXRlIGdldCBfdHJhbnNmb3JtZWRBc3NldFBhdGgoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXRoUHJlZml4ID0gdGhpcy5fb3B0aW9ucy5wYXRoUHJlZml4ID8/IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnc3JjJylcbiAgICByZXR1cm4gcGF0aC5qb2luKHBhdGguZGlybmFtZSh0aGlzLl9jb250ZXh0LnJlc291cmNlUGF0aCksIGAke3BhdGguYmFzZW5hbWUodGhpcy5fY29udGV4dC5yZXNvdXJjZVBhdGgpfS5qc2ApLnJlcGxhY2UocGF0aFByZWZpeCwgJycpXG4gIH1cblxuICBwcml2YXRlIGdldCBfdHJhbnNmb3JtZWREdHNQYXRoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGF0aFByZWZpeCA9IHRoaXMuX29wdGlvbnMucGF0aFByZWZpeCA/PyBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgJ3NyYycpXG4gICAgcmV0dXJuIHBhdGguam9pbihwYXRoLmRpcm5hbWUodGhpcy5fY29udGV4dC5yZXNvdXJjZVBhdGgpLCBgJHtwYXRoLmJhc2VuYW1lKHRoaXMuX2NvbnRleHQucmVzb3VyY2VQYXRoKX0uZC50c2ApLnJlcGxhY2UocGF0aFByZWZpeCwgJycpXG4gIH1cblxuICBwcml2YXRlIF9lbWl0VHJhbnNmb3JtZWRBc3NldHMoKSB7XG4gICAgY29uc3QgdHJhbnNmb3JtZWRDb2RlID0gT2JqZWN0LmVudHJpZXModGhpcy5fY29udGV4dC5kYXRhKVxuICAgICAgLm1hcCgoW2V4cG9ydE5hbWUsIGV4cG9ydFZhbHVlXSkgPT4gYGV4cG9ydCBjb25zdCAke2V4cG9ydE5hbWV9ID0gJHtleHBvcnRWYWx1ZX1gKVxuICAgICAgLmpvaW4oJ1xcbicpXG4gICAgdGhpcy5fY29udGV4dC5lbWl0RmlsZSh0aGlzLl90cmFuc2Zvcm1lZEFzc2V0UGF0aCwgdHJhbnNmb3JtZWRDb2RlKVxuICAgIGlmICh0aGlzLl9vcHRpb25zLnR5cGluZ3MpIHtcbiAgICAgIHRoaXMuX2NvbnRleHQuZW1pdEZpbGUodGhpcy5fdHJhbnNmb3JtZWREdHNQYXRoLCB0aGlzLl90eXBpbmdzQ29kZSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF93cml0ZVR5cGluZ3NGaWxlKCkge1xuICAgIGNvbnN0IGR0c0RpciA9IHBhdGguZGlybmFtZSh0aGlzLl9jb250ZXh0LnJlc291cmNlUGF0aClcbiAgICBjb25zdCBkdHNQYXRoID0gcGF0aC5qb2luKGR0c0RpciwgYCR7cGF0aC5iYXNlbmFtZSh0aGlzLl9jb250ZXh0LnJlc291cmNlUGF0aCl9LmQudHNgKVxuICAgIGNvbnN0IHR5cGluZ3NDb2RlID0gdGhpcy5fdHlwaW5nc0NvZGVcbiAgICBjb25zdCBvdXRwdXRGcyA9IHRoaXMuX2NvbnRleHQuX2NvbXBpbGVyIS5vdXRwdXRGaWxlU3lzdGVtIGFzIHVua25vd24gYXMgSVN5bmNGaWxlU3lzdGVtXG4gICAgaWYgKCFvdXRwdXRGcy5leGlzdHNTeW5jKGR0c0RpcikpIHtcbiAgICAgIG91dHB1dEZzLm1rZGlyU3luYyhkdHNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pXG4gICAgfVxuICAgIGlmICghb3V0cHV0RnMuZXhpc3RzU3luYyhkdHNQYXRoKSB8fCBvdXRwdXRGcy5yZWFkRmlsZVN5bmMoZHRzUGF0aCkudG9TdHJpbmcoKSAhPT0gdHlwaW5nc0NvZGUpIHtcbiAgICAgIG91dHB1dEZzLndyaXRlRmlsZVN5bmMoZHRzUGF0aCwgdHlwaW5nc0NvZGUpXG4gICAgfVxuICB9XG5cbiAgcnVuKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX29wdGlvbnMuZW1pdCkge1xuICAgICAgdGhpcy5fZW1pdFRyYW5zZm9ybWVkQXNzZXRzKClcbiAgICB9XG4gICAgaWYgKHRoaXMuX29wdGlvbnMudHlwaW5ncykge1xuICAgICAgdGhpcy5fd3JpdGVUeXBpbmdzRmlsZSgpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLnJhdyA/IGNvbnRlbnQgKyBgZXhwb3J0IHZhciBjc3MgPSAke3RoaXMuX2NvbnRleHQuZGF0YS5jc3N9O1xcbmAgOiBjb250ZW50XG4gIH1cblxuICBhc3luYyBwaXRjaChyZXF1ZXN0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBgdGhpcy5kYXRhYCBpcyBvbmx5IHNoYXJlZCBiZXR3ZWVuIHRoZSBwaXRjaCBhbmQgbm9ybWFsIHBoYXNlcyBvbmNlIHNvbWV0aGluZyB3cml0ZXMgdG8gaXQgLVxuICAgIC8vIGl0IGlzbid0IHByZS1pbml0aWFsaXplZCB0byBhbiBvYmplY3QsIHNvIHRoZSBub3JtYWwgcGhhc2Ugd291bGQgc2VlIGB1bmRlZmluZWRgIGlmIHRoZXJlIGFyZVxuICAgIC8vIG5vIG5hbWVkIGV4cG9ydHMgdG8gZm9yd2FyZCBiZWxvdyAoZS5nLiBubyBDU1MtbW9kdWxlIGNsYXNzIG5hbWVzIGluIHRoaXMgc3R5bGVzaGVldCkuIHdlYnBhY2tcbiAgICAvLyB0eXBlcyBgZGF0YWAgYXMgYHJlYWRvbmx5YDsgdGhlIGNhc3QgYmVsb3cgaXMgb25seSB0byBhc3NpZ24gdGhyb3VnaCB0aGF0IGFubm90YXRpb24uXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuX2NvbnRleHQgYXMgeyBkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9XG4gICAgY29udGV4dC5kYXRhID8/PSB7fVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuX2NvbnRleHQuaW1wb3J0TW9kdWxlKHRoaXMuX2NvbnRleHQucmVzb3VyY2VQYXRoICsgJy53ZWJwYWNrW2phdmFzY3JpcHQvYXV0b10nICsgJyE9IScgKyByZXF1ZXN0KVxuICAgIGNvbnN0IHsgZGVmYXVsdDogZGVmYXVsdEV4cG9ydCwgLi4ub3RoZXJFeHBvcnRzIH0gPSByZXN1bHRcbiAgICBpZiAodGhpcy5fb3B0aW9ucy5yYXcpIHtcbiAgICAgIHRoaXMuX2NvbnRleHQuZGF0YS5jc3MgPSBgXFxgJHtkZWZhdWx0RXhwb3J0LnRvU3RyaW5nKCl9XFxgYFxuICAgIH1cbiAgICBPYmplY3QuZW50cmllcyhvdGhlckV4cG9ydHMpLmZvckVhY2goXG4gICAgICAoW2V4cG9ydE5hbWUsIGV4cG9ydFZhbHVlXSkgPT4gKHRoaXMuX2NvbnRleHQuZGF0YVtleHBvcnROYW1lXSA9IGAnJHsoZXhwb3J0VmFsdWUgYXMgc3RyaW5nKS5yZXBsYWNlKC9eW1wifCddKC4rKVtcInwnXSQvLCAnJDEnKX0nYCksXG4gICAgKVxuICB9XG59XG5cbi8vIEV4cG9ydGVkIGFzIGEgcGxhaW4gYGRlZmF1bHRgIGZ1bmN0aW9uIHBsdXMgYSB0b3AtbGV2ZWwgbmFtZWQgYHBpdGNoYCBleHBvcnQgKHdlYnBhY2sncyBvd25cbi8vIGBMb2FkZXJNb2R1bGVgIHNoYXBlOiBgeyBkZWZhdWx0PywgcGl0Y2g/LCByYXc/IH1gKSByYXRoZXIgdGhhbiBgbG9hZGVyLnBpdGNoID0gcGl0Y2hgIC0gdGhpc1xuLy8gcGFja2FnZSdzIGRpc3QgYnVpbGQgaXMgcmVhbCBFU00gKGBcInR5cGVcIjogXCJtb2R1bGVcImApLCBhbmQgbG9hZGVyLXJ1bm5lcidzIEVTLW1vZHVsZSBsb2FkaW5nIHBhdGhcbi8vIHJlYWRzIGBtb2R1bGUucGl0Y2hgIG9mZiB0aGUgaW1wb3J0J3MgdG9wIGxldmVsLCBuZXZlciBgbW9kdWxlLmRlZmF1bHQucGl0Y2hgLlxuY29uc3QgbG9hZGVyOiBMb2FkZXJEZWZpbml0aW9uRnVuY3Rpb248SVdlYmNvbXBvbmVudFN0eWxlTG9hZGVyT3B0aW9ucz4gPSBmdW5jdGlvbiAoY29udGVudCkge1xuICByZXR1cm4gbmV3IFdlYmNvbXBvbmVudFN0eWxlTG9hZGVySGFuZGxlcih0aGlzKS5ydW4oY29udGVudClcbn1cblxuLy8gUGl0Y2hMb2FkZXJEZWZpbml0aW9uRnVuY3Rpb24ncyByZXR1cm4gdHlwZSBkb2Vzbid0IGluY2x1ZGUgUHJvbWlzZTx2b2lkPiwgb25seVxuLy8gUHJvbWlzZTxzdHJpbmcgfCBCdWZmZXI+IC0gYnV0IGEgcGl0Y2ggbG9hZGVyIHRoYXQgb25seSBzdGFzaGVzIGRhdGEgb24gYHRoaXMuZGF0YWAgZm9yIHRoZVxuLy8gbm9ybWFsIHBoYXNlIChyYXRoZXIgdGhhbiBzaG9ydC1jaXJjdWl0aW5nIGl0KSBpcyBleHBlY3RlZCB0byByZXNvbHZlIHRvIG5vdGhpbmcuIFRoZSBjYXN0XG4vLyBiZWxvdyBpcyBvbmx5IGFib3V0IHRoYXQgcmV0dXJuLXR5cGUgZ2FwOyBgdGhpc2AgaXMgc3RpbGwgZnVsbHkgdHlwZWQgaW5zaWRlIHRoZSBmdW5jdGlvbiBib2R5LlxuYXN5bmMgZnVuY3Rpb24gcGl0Y2godGhpczogVGhpc1BhcmFtZXRlclR5cGU8UGl0Y2hMb2FkZXJEZWZpbml0aW9uRnVuY3Rpb248SVdlYmNvbXBvbmVudFN0eWxlTG9hZGVyT3B0aW9ucz4+LCByZXF1ZXN0OiBzdHJpbmcpIHtcbiAgYXdhaXQgbmV3IFdlYmNvbXBvbmVudFN0eWxlTG9hZGVySGFuZGxlcih0aGlzKS5waXRjaChyZXF1ZXN0KVxufVxuXG5leHBvcnQgZGVmYXVsdCBsb2FkZXJcbmV4cG9ydCB7IHBpdGNoIH1cbiJdfQ==
|
package/loaders/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare const styleConfigFactory: ({ raw, extract, sourceMap, typedStyles, modules, parser, aliases, }?: {
|
|
2
|
-
raw?: boolean;
|
|
3
|
-
extract?: boolean;
|
|
4
|
-
sourceMap?: boolean;
|
|
5
|
-
typedStyles?: boolean;
|
|
2
|
+
raw?: boolean | undefined;
|
|
3
|
+
extract?: boolean | undefined;
|
|
4
|
+
sourceMap?: boolean | undefined;
|
|
5
|
+
typedStyles?: boolean | undefined;
|
|
6
6
|
modules?: {
|
|
7
7
|
localIdentName?: string;
|
|
8
8
|
mappings?: {
|
|
@@ -12,12 +12,48 @@ export declare const styleConfigFactory: ({ raw, extract, sourceMap, typedStyles
|
|
|
12
12
|
} | (boolean & {
|
|
13
13
|
localIdentName?: never;
|
|
14
14
|
mappings?: never;
|
|
15
|
-
});
|
|
16
|
-
parser?: "postcss" | "postcss-scss";
|
|
17
|
-
aliases?: Record<string, string
|
|
18
|
-
}) =>
|
|
15
|
+
}) | undefined;
|
|
16
|
+
parser?: "postcss" | "postcss-scss" | undefined;
|
|
17
|
+
aliases?: Record<string, string> | undefined;
|
|
18
|
+
}) => ({
|
|
19
|
+
loader: string;
|
|
20
|
+
options: {
|
|
21
|
+
esModule: boolean;
|
|
22
|
+
modules: {
|
|
23
|
+
localIdentName: string;
|
|
24
|
+
getLocalIdent: (loaderContext: {
|
|
25
|
+
resourcePath: string;
|
|
26
|
+
}, _: any, localName: string) => string | undefined;
|
|
27
|
+
exportLocalsConvention: string;
|
|
28
|
+
namedExport: boolean;
|
|
29
|
+
};
|
|
30
|
+
sourceMap: boolean;
|
|
31
|
+
} | {
|
|
32
|
+
modules: boolean;
|
|
33
|
+
sourceMap: boolean;
|
|
34
|
+
};
|
|
35
|
+
} | {
|
|
36
|
+
loader: string;
|
|
37
|
+
options: {
|
|
38
|
+
raw: boolean;
|
|
39
|
+
emit: boolean;
|
|
40
|
+
typings: boolean;
|
|
41
|
+
publicPath?: undefined;
|
|
42
|
+
};
|
|
43
|
+
} | {
|
|
44
|
+
loader: string;
|
|
45
|
+
options: {
|
|
46
|
+
publicPath: string;
|
|
47
|
+
raw?: undefined;
|
|
48
|
+
emit?: undefined;
|
|
49
|
+
typings?: undefined;
|
|
50
|
+
};
|
|
51
|
+
} | {
|
|
52
|
+
loader: string;
|
|
53
|
+
options?: undefined;
|
|
54
|
+
})[];
|
|
19
55
|
export declare const nullConfigFactory: ({ rules }?: {
|
|
20
|
-
rules?: RegExp[];
|
|
56
|
+
rules?: RegExp[] | undefined;
|
|
21
57
|
}) => {
|
|
22
58
|
test: RegExp;
|
|
23
59
|
use: string;
|
|
@@ -37,4 +73,9 @@ export declare const markdownConfigFactory: ({ babel, remark, rehype, useProvide
|
|
|
37
73
|
remark?: any[];
|
|
38
74
|
rehype?: any[];
|
|
39
75
|
useProvider?: boolean;
|
|
40
|
-
}) =>
|
|
76
|
+
}) => ({
|
|
77
|
+
loader: string;
|
|
78
|
+
options: any;
|
|
79
|
+
} | {
|
|
80
|
+
loader: string;
|
|
81
|
+
})[];
|