@plaudit/webpack-extensions 2.45.1 → 2.47.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/README.md +1 -7
- package/build/wordpress-scripts-wrapper/BlockJSONManagingPlugin.js +6 -3
- package/build/wordpress-scripts-wrapper/dependency-extraction-webpack-plugin-config-builder.d.ts +2 -1
- package/build/wordpress-scripts-wrapper/dependency-extraction-webpack-plugin-config-builder.js +64 -15
- package/build/wordpress-scripts-wrapper.d.ts +1 -1
- package/build/wordpress-scripts-wrapper.js +2 -2
- package/package.json +75 -90
package/README.md
CHANGED
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
To test locally, either set up yarn to pull from this folder or (ideally) build and copy the resulting built files into another project for testing purposes.
|
|
3
3
|
|
|
4
4
|
# To Deploy
|
|
5
|
-
If you haven't
|
|
6
5
|
```
|
|
7
|
-
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
To deploy
|
|
11
|
-
```
|
|
12
|
-
./publish.sh y
|
|
6
|
+
publish-pnpm-package
|
|
13
7
|
```
|
|
@@ -404,7 +404,7 @@ class BlockJSONManagingPlugin {
|
|
|
404
404
|
if (Array.isArray(cfg)) {
|
|
405
405
|
for (let i = 0; i < cfg.length; i++) {
|
|
406
406
|
const assetDetails = BlockJSONManagingPlugin
|
|
407
|
-
.getAssetDetails(blockFolder, cfg[i], rawAssetData, derivedFilesMap, mappableKey, usedHandles);
|
|
407
|
+
.getAssetDetails(blockFolder, config["name"], cfg[i], rawAssetData, derivedFilesMap, mappableKey, usedHandles);
|
|
408
408
|
if (assetDetails) {
|
|
409
409
|
(assetDetails.isCss ? styleHandles : scriptHandles)[assetDetails.handle] = assetDetails.handleData;
|
|
410
410
|
cfg[i] = assetDetails.handle;
|
|
@@ -413,7 +413,7 @@ class BlockJSONManagingPlugin {
|
|
|
413
413
|
}
|
|
414
414
|
else {
|
|
415
415
|
const assetDetails = BlockJSONManagingPlugin
|
|
416
|
-
.getAssetDetails(blockFolder, cfg, rawAssetData, derivedFilesMap, mappableKey, usedHandles);
|
|
416
|
+
.getAssetDetails(blockFolder, config["name"], cfg, rawAssetData, derivedFilesMap, mappableKey, usedHandles);
|
|
417
417
|
if (assetDetails) {
|
|
418
418
|
(assetDetails.isCss ? styleHandles : scriptHandles)[assetDetails.handle] = assetDetails.handleData;
|
|
419
419
|
config[mappableKey] = assetDetails.handle;
|
|
@@ -509,7 +509,7 @@ class BlockJSONManagingPlugin {
|
|
|
509
509
|
});
|
|
510
510
|
return res;
|
|
511
511
|
}
|
|
512
|
-
static getAssetDetails(blockFolder, asset, rawAssetData, derivedFilesMap, mappableKey, usedHandles) {
|
|
512
|
+
static getAssetDetails(blockFolder, blockName, asset, rawAssetData, derivedFilesMap, mappableKey, usedHandles) {
|
|
513
513
|
if (!asset.startsWith("file:./")) {
|
|
514
514
|
return undefined;
|
|
515
515
|
}
|
|
@@ -541,6 +541,9 @@ class BlockJSONManagingPlugin {
|
|
|
541
541
|
return undefined;
|
|
542
542
|
}
|
|
543
543
|
let handle = src.substring(0, src.length - (isCss ? 4 : 3));
|
|
544
|
+
if (blockName && handle.startsWith(blockName.substring(blockName.indexOf("/") + 1) + "/")) {
|
|
545
|
+
handle = blockName + handle.substring(handle.indexOf("/"));
|
|
546
|
+
}
|
|
544
547
|
if (usedHandles[isCss ? 'css' : 'js'][handle] !== undefined) {
|
|
545
548
|
handle += "-" + (++usedHandles[isCss ? 'css' : 'js'][handle]);
|
|
546
549
|
}
|
package/build/wordpress-scripts-wrapper/dependency-extraction-webpack-plugin-config-builder.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import DependencyExtractionWebpackPlugin from "@wordpress/dependency-extraction-webpack-plugin";
|
|
2
|
+
import type { Configuration } from "webpack";
|
|
2
3
|
export type IndividualExternalDepConfig = string | {
|
|
3
4
|
import?: string | [string, ...string[]];
|
|
4
5
|
handle: string;
|
|
@@ -6,7 +7,7 @@ export type IndividualExternalDepConfig = string | {
|
|
|
6
7
|
export type Externals = {
|
|
7
8
|
[dep: string]: IndividualExternalDepConfig;
|
|
8
9
|
};
|
|
9
|
-
export declare function makeDependencyExtractionPlugin(externals: Externals | undefined, assumeGlobalizedPlauditLibraries: boolean, wantsGroupedDepData: boolean): {
|
|
10
|
+
export declare function makeDependencyExtractionPlugin(externals: Externals | undefined, assumeGlobalizedPlauditLibraries: boolean, wantsGroupedDepData: boolean, externalizing: Required<Configuration>['output']['library']): {
|
|
10
11
|
instance: DependencyExtractionWebpackPlugin;
|
|
11
12
|
addExternalizedDep: (dep: string) => void;
|
|
12
13
|
};
|
package/build/wordpress-scripts-wrapper/dependency-extraction-webpack-plugin-config-builder.js
CHANGED
|
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.makeDependencyExtractionPlugin = makeDependencyExtractionPlugin;
|
|
7
7
|
const dependency_extraction_webpack_plugin_1 = __importDefault(require("@wordpress/dependency-extraction-webpack-plugin"));
|
|
8
|
-
function makeDependencyExtractionPlugin(externals, assumeGlobalizedPlauditLibraries, wantsGroupedDepData) {
|
|
9
|
-
const baseProps = makeDependencyExtractionPluginProps(externals, assumeGlobalizedPlauditLibraries);
|
|
8
|
+
function makeDependencyExtractionPlugin(externals, assumeGlobalizedPlauditLibraries, wantsGroupedDepData, externalizing) {
|
|
9
|
+
const baseProps = makeDependencyExtractionPluginProps(externals, assumeGlobalizedPlauditLibraries, externalizing);
|
|
10
10
|
const instance = new dependency_extraction_webpack_plugin_1.default(wantsGroupedDepData ? { ...baseProps, outputFormat: "json", combineAssets: true } : baseProps);
|
|
11
11
|
return {
|
|
12
12
|
instance,
|
|
@@ -15,11 +15,11 @@ function makeDependencyExtractionPlugin(externals, assumeGlobalizedPlauditLibrar
|
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
|
-
function makeDependencyExtractionPluginProps(externals, assumeGlobalizedPlauditLibraries) {
|
|
18
|
+
function makeDependencyExtractionPluginProps(externals, assumeGlobalizedPlauditLibraries, externalizing) {
|
|
19
19
|
if (!externals) {
|
|
20
20
|
if (assumeGlobalizedPlauditLibraries) {
|
|
21
21
|
return {
|
|
22
|
-
requestToExternal: plauditRequestToExternal,
|
|
22
|
+
requestToExternal: plauditRequestToExternal(externalizing),
|
|
23
23
|
requestToHandle: plauditRequestToHandle
|
|
24
24
|
};
|
|
25
25
|
}
|
|
@@ -38,11 +38,11 @@ function makeDependencyExtractionPluginProps(externals, assumeGlobalizedPlauditL
|
|
|
38
38
|
}
|
|
39
39
|
const resolvePossibleExternal = (request) => {
|
|
40
40
|
if (request in exactExternals) {
|
|
41
|
-
return exactExternals[request];
|
|
41
|
+
return handleExternalizingEqualsPossibleExternal(exactExternals[request], externalizing);
|
|
42
42
|
}
|
|
43
43
|
for (const [key, value] of suffixExternals) {
|
|
44
44
|
if (request.endsWith(key)) {
|
|
45
|
-
return value;
|
|
45
|
+
return handleExternalizingEqualsPossibleExternal(value, externalizing);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
return undefined;
|
|
@@ -66,7 +66,7 @@ function makeDependencyExtractionPluginProps(externals, assumeGlobalizedPlauditL
|
|
|
66
66
|
};
|
|
67
67
|
if (assumeGlobalizedPlauditLibraries) {
|
|
68
68
|
return {
|
|
69
|
-
requestToExternal: curryRequestHandlers(baselineRequestToExternal, plauditRequestToExternal),
|
|
69
|
+
requestToExternal: curryRequestHandlers(baselineRequestToExternal, plauditRequestToExternal(externalizing)),
|
|
70
70
|
requestToHandle: curryRequestHandlers(baselineRequestToHandle, plauditRequestToHandle),
|
|
71
71
|
};
|
|
72
72
|
}
|
|
@@ -77,16 +77,29 @@ function makeDependencyExtractionPluginProps(externals, assumeGlobalizedPlauditL
|
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (EXTERNALIZABLE_PLAUDIT_LIBRARIES.includes(request)) {
|
|
84
|
-
return ['plaudit', camelCaseDash(request.substring(PLAUDIT_NAMESPACE.length))];
|
|
80
|
+
function firstLayersEqual(first, second) {
|
|
81
|
+
if (first.length !== second.length) {
|
|
82
|
+
return false;
|
|
85
83
|
}
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
for (let i = 0; i < first.length; i++) {
|
|
85
|
+
if (first[i] !== second[i]) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
88
|
}
|
|
89
|
-
return
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
const PLAUDIT_NAMESPACE = '@plaudit/';
|
|
92
|
+
const EXTERNALIZABLE_PLAUDIT_LIBRARIES = ['@plaudit/frontend-apis', '@plaudit/library-extensions'];
|
|
93
|
+
function plauditRequestToExternal(ext) {
|
|
94
|
+
return function (request) {
|
|
95
|
+
if (EXTERNALIZABLE_PLAUDIT_LIBRARIES.includes(request)) {
|
|
96
|
+
return handleExternalizingEqualsPossibleExternal({ import: ['plaudit', camelCaseDash(request.substring(PLAUDIT_NAMESPACE.length))], handle: "" }, ext)?.import;
|
|
97
|
+
}
|
|
98
|
+
else if (request.startsWith('@plaudit/gutenberg-api-extensions')) {
|
|
99
|
+
return handleExternalizingEqualsPossibleExternal({ import: ['plaudit', 'gutenbergApiExtensions'], handle: "" }, ext)?.import;
|
|
100
|
+
}
|
|
101
|
+
return undefined;
|
|
102
|
+
};
|
|
90
103
|
}
|
|
91
104
|
function plauditRequestToHandle(request) {
|
|
92
105
|
if (EXTERNALIZABLE_PLAUDIT_LIBRARIES.includes(request)) {
|
|
@@ -106,3 +119,39 @@ function curryRequestHandlers(primary, secondary) {
|
|
|
106
119
|
function camelCaseDash(string) {
|
|
107
120
|
return string.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
108
121
|
}
|
|
122
|
+
function handleExternalizingEqualsPossibleExternal(possibleExternal, ext) {
|
|
123
|
+
if (!ext || !possibleExternal) {
|
|
124
|
+
return possibleExternal;
|
|
125
|
+
}
|
|
126
|
+
const possibleImport = typeof possibleExternal === 'string' ? possibleExternal : possibleExternal['import'];
|
|
127
|
+
if (!possibleImport) {
|
|
128
|
+
return possibleExternal;
|
|
129
|
+
}
|
|
130
|
+
if (typeof ext === 'string') {
|
|
131
|
+
if (typeof possibleImport === 'string') {
|
|
132
|
+
return ext !== possibleImport ? possibleExternal : undefined;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
return possibleImport.length !== 1 || ext !== possibleImport[0] ? possibleExternal : undefined;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (Array.isArray(ext)) {
|
|
139
|
+
if (typeof possibleImport === 'string') {
|
|
140
|
+
return ext.length !== 1 || ext[0] !== possibleImport ? possibleExternal : undefined;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
return !firstLayersEqual(ext, possibleImport) ? possibleExternal : undefined;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else if ('name' in ext) {
|
|
147
|
+
return handleExternalizingEqualsPossibleExternal(possibleExternal, ext.name);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
for (const key of ['amd', 'commonjs', 'root']) {
|
|
151
|
+
if (key in ext && handleExternalizingEqualsPossibleExternal(possibleExternal, ext[key])) {
|
|
152
|
+
return undefined;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return possibleExternal;
|
|
157
|
+
}
|
|
@@ -7,7 +7,7 @@ interface AdvancedOutputConfig {
|
|
|
7
7
|
additionalDependencies?: string[];
|
|
8
8
|
directoryLayout?: 'blocks' | 'extensions' | 'plain';
|
|
9
9
|
assumeGlobalizedPlauditLibraries?: boolean;
|
|
10
|
-
externalize?:
|
|
10
|
+
externalize?: Required<Configuration>['output']['library'];
|
|
11
11
|
}
|
|
12
12
|
type PlauditWordpressWebpackConfig = {
|
|
13
13
|
standaloneBlocks?: boolean;
|
|
@@ -339,8 +339,8 @@ function processIndividualWebpackConfig(config, webpackConfig, sources) {
|
|
|
339
339
|
console.error("Cannot apply externals when they have been disabled via CLI flag. This will greatly increase bundle size and will likely cause the build to file");
|
|
340
340
|
}
|
|
341
341
|
else {
|
|
342
|
-
const localAssumeGlobalizedPlauditLibraries = typeof dest !== 'string' ? dest.assumeGlobalizedPlauditLibraries : undefined;
|
|
343
|
-
const builtDependencyExtractionWebpackPlugin = (0, dependency_extraction_webpack_plugin_config_builder_1.makeDependencyExtractionPlugin)(externals, localAssumeGlobalizedPlauditLibraries
|
|
342
|
+
const localAssumeGlobalizedPlauditLibraries = (typeof dest !== 'string' ? dest.assumeGlobalizedPlauditLibraries : undefined) ?? assumeGlobalizedPlauditLibraries;
|
|
343
|
+
const builtDependencyExtractionWebpackPlugin = (0, dependency_extraction_webpack_plugin_config_builder_1.makeDependencyExtractionPlugin)(externals, localAssumeGlobalizedPlauditLibraries, combineAssetMetadata && !processingModules && forBlocksDirectory, typeof dest !== 'string' ? dest.externalize : undefined);
|
|
344
344
|
plugins[pluginIndex] = builtDependencyExtractionWebpackPlugin.instance;
|
|
345
345
|
plugins.push(new AdditionalDependencyInjectorPlugin_1.default(typeof dest !== 'string' && dest.additionalDependencies ? dest.additionalDependencies : [], processingModules, builtDependencyExtractionWebpackPlugin.addExternalizedDep));
|
|
346
346
|
}
|
package/package.json
CHANGED
|
@@ -1,91 +1,76 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
"pnpm": {
|
|
78
|
-
"onlyBuiltDependencies": [
|
|
79
|
-
"core-js",
|
|
80
|
-
"core-js-pure"
|
|
81
|
-
],
|
|
82
|
-
"ignoredBuiltDependencies": [
|
|
83
|
-
"@parcel/watcher"
|
|
84
|
-
],
|
|
85
|
-
"overrides": {
|
|
86
|
-
"micromatch": "^4",
|
|
87
|
-
"react-autosize-textarea>react": "*",
|
|
88
|
-
"react-autosize-textarea>react-dom": "*"
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
2
|
+
"name": "@plaudit/webpack-extensions",
|
|
3
|
+
"version": "2.47.0",
|
|
4
|
+
"license": "UNLICENSED",
|
|
5
|
+
"files": [
|
|
6
|
+
"/build"
|
|
7
|
+
],
|
|
8
|
+
"exports": {
|
|
9
|
+
"./wordpress-scripts-wrapper": "./build/wordpress-scripts-wrapper.js"
|
|
10
|
+
},
|
|
11
|
+
"typesVersions": {
|
|
12
|
+
"*": {
|
|
13
|
+
"wordpress-scripts-wrapper": [
|
|
14
|
+
"build/wordpress-scripts-wrapper.d.ts"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@plaudit/gutenberg-api-extensions": "^2.68.1",
|
|
20
|
+
"@types/browser-sync-webpack-plugin": "^2.2.5",
|
|
21
|
+
"@types/node": "^22.15.18",
|
|
22
|
+
"@types/postcss-functions": "^4.0.4",
|
|
23
|
+
"@types/tapable": "^2.2.7",
|
|
24
|
+
"@types/webpack": "^5.28.5",
|
|
25
|
+
"@types/webpack-sources": "^3.2.3",
|
|
26
|
+
"postcss-load-config": "^4.0.2",
|
|
27
|
+
"postcss-loader": "^7.3.4",
|
|
28
|
+
"ts-node": "^10.9.2",
|
|
29
|
+
"typescript": "^5.8.3"
|
|
30
|
+
},
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@plaudit/postcss-color-function": "^5.0.0",
|
|
33
|
+
"@plaudit/postcss-legacy-shorthand": "^1.0.0",
|
|
34
|
+
"@plaudit/postcss-silent-extend": "^3.0.0",
|
|
35
|
+
"@plaudit/postcss-strip-units": "^3.0.0",
|
|
36
|
+
"@plaudit/postcss-variables": "^1.1.0",
|
|
37
|
+
"@wordpress/dependency-extraction-webpack-plugin": "^6.23.0",
|
|
38
|
+
"@wordpress/scripts": "^30.16.0",
|
|
39
|
+
"autoprefixer": "^10.4.21",
|
|
40
|
+
"browser-sync": "^3.0.4",
|
|
41
|
+
"clean-webpack-plugin": "^4.0.0",
|
|
42
|
+
"copy-webpack-plugin": "^10.2.4",
|
|
43
|
+
"cssnano": "^6.1.2",
|
|
44
|
+
"eslint-plugin-jsdoc": "^48.11.0",
|
|
45
|
+
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
|
46
|
+
"http-proxy-middleware": "^3.0.5",
|
|
47
|
+
"json2php": "^0.0.12",
|
|
48
|
+
"postcss": "^8.5.3",
|
|
49
|
+
"postcss-calc": "^9.0.1",
|
|
50
|
+
"postcss-discard-comments": "^6.0.2",
|
|
51
|
+
"postcss-fallback": "^0.1.0",
|
|
52
|
+
"postcss-functions": "^4.0.2",
|
|
53
|
+
"postcss-import": "^16.1.0",
|
|
54
|
+
"postcss-inline-svg": "^6.0.0",
|
|
55
|
+
"postcss-media-minmax": "^5.0.0",
|
|
56
|
+
"postcss-mixins": "6.2.3",
|
|
57
|
+
"postcss-nested": "^6.2.0",
|
|
58
|
+
"postcss-property-lookup": "^3.0.0",
|
|
59
|
+
"postcss-quantity-queries": "^0.5.0",
|
|
60
|
+
"postcss-reporter": "^7.1.0",
|
|
61
|
+
"postcss-simple-vars": "^7.0.1",
|
|
62
|
+
"postcss-url": "^10.1.3",
|
|
63
|
+
"react": "^18.3.1",
|
|
64
|
+
"react-dom": "^18.3.1",
|
|
65
|
+
"webpack": "^5.99.8",
|
|
66
|
+
"webpack-remove-empty-scripts": "^1.0.4",
|
|
67
|
+
"xml-formatter": "^3.6.6"
|
|
68
|
+
},
|
|
69
|
+
"engines": {
|
|
70
|
+
"node": ">=20"
|
|
71
|
+
},
|
|
72
|
+
"scripts": {
|
|
73
|
+
"build": "tsc",
|
|
74
|
+
"watch": "tsc -w"
|
|
75
|
+
}
|
|
76
|
+
}
|