@plaudit/webpack-extensions 2.93.1 → 2.94.1
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/CHANGELOG.md +8 -0
- package/dist/plugins/EnhancedBlockJSONPlugin.d.ts +5 -3
- package/dist/plugins/EnhancedBlockJSONPlugin.js +17 -8
- package/dist/plugins/PlainEntrypointsConfigFileGeneratorPlugin.js +22 -19
- package/dist/shared.d.ts +17 -10
- package/dist/shared.js +11 -13
- package/dist/utils/path-query-and-related-helpers.d.ts +9 -2
- package/dist/utils/path-query-and-related-helpers.js +14 -4
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -60,6 +60,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
60
60
|
- Legacy PostCSS features that have been integrated into modern CSS
|
|
61
61
|
- `@extends` support
|
|
62
62
|
|
|
63
|
+
## [2.94.1] - 2026-07-20
|
|
64
|
+
### Fixed
|
|
65
|
+
- A bug that caused all styles bound for editor use to be emitted as inline CSS
|
|
66
|
+
|
|
67
|
+
## [2.94.0] - 2026-07-17
|
|
68
|
+
### Changed
|
|
69
|
+
- The `add_editor_style()` enqueue path to use `block_editor_settings_all` to avoid a litany of bugs courtesy of WordPress's high-quality code
|
|
70
|
+
|
|
63
71
|
## [2.93.1] - 2026-07-15
|
|
64
72
|
### Fixed
|
|
65
73
|
- The new supported features code overriding unintended data in theme.json
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { Compilation } from "webpack";
|
|
2
2
|
import type WebpackRemoveEmptyScriptsPlugin from "webpack-remove-empty-scripts";
|
|
3
3
|
import { AbstractBiPhasicGroupAndEntryPlugin, EntryProvider } from "./AbstractBiPhasicGroupAndEntryPlugin";
|
|
4
|
-
import { BlockEntrypointInfo, FileSegmentBlockEntrypointInfo,
|
|
4
|
+
import { AssetMetaSegment, BlockEntrypointInfo, FileSegmentBlockEntrypointInfo, ParsedAssetJsonProvider, ParsedAssetsJson, ScriptArgsObject, VerifiedAdvancedOutputConfig } from "../shared";
|
|
5
5
|
import type { VerifiedPlauditWordpressWebpackConfig } from "../utils/common-config-helpers";
|
|
6
6
|
type WorkableBlockEntrypointInfo = Omit<FileSegmentBlockEntrypointInfo, 'originalValue' | 'pathQueryParameters'> & Partial<Pick<FileSegmentBlockEntrypointInfo, 'originalValue'>> & {
|
|
7
7
|
outputPath: string;
|
|
8
8
|
assetData: ParsedAssetsJson[string];
|
|
9
9
|
hash: string;
|
|
10
10
|
scriptArgsObject: ScriptArgsObject | undefined;
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
} & (AssetMetaSegment | {
|
|
12
|
+
inlinedAsset?: undefined;
|
|
13
|
+
assetContents?: string;
|
|
14
|
+
});
|
|
13
15
|
type CollatedWorkableBlockInfo = Record<string, {
|
|
14
16
|
sourcePath?: string;
|
|
15
17
|
workableBlockEntrypointsInfo: WorkableBlockEntrypointInfo[];
|
|
@@ -65,8 +65,8 @@ class EnhancedBlockJSONPlugin extends AbstractBiPhasicGroupAndEntryPlugin_1.Abst
|
|
|
65
65
|
.filter((item) => item[1] !== '')
|
|
66
66
|
.map(([file, assetType]) => {
|
|
67
67
|
const enqueuingFlags = (0, path_query_and_related_helpers_1.mergeTwoEnqueuingControlFlagSets)(file, metadata.enqueuingFlags, this.dest.enqueuingFlags);
|
|
68
|
-
const { scriptArgsObject,
|
|
69
|
-
if (inlinedAsset !== undefined) {
|
|
68
|
+
const { scriptArgsObject, assetMeta } = (0, path_query_and_related_helpers_1.convertEnqueuingControlFlagsToScriptArgsObject)(compilation, file, enqueuingFlags);
|
|
69
|
+
if (assetMeta?.inlinedAsset !== undefined) {
|
|
70
70
|
staticallyLoadedEntrypoints.push(file);
|
|
71
71
|
}
|
|
72
72
|
const wasOriginallyAStyleField = (0, shared_1.isStyleField)(metadata.entrypointField);
|
|
@@ -75,10 +75,10 @@ class EnhancedBlockJSONPlugin extends AbstractBiPhasicGroupAndEntryPlugin_1.Abst
|
|
|
75
75
|
const entrypointField = (0, shared_1.convertEntrypointFieldForAssetType)(metadata.entrypointField, assetType);
|
|
76
76
|
return {
|
|
77
77
|
...metadata, outputPath, assetData, originalValue: undefined, hash: entrypointChunk.hash ?? "",
|
|
78
|
-
entrypointField, handleGroup: (0, shared_1.getHandleGroup)(entrypointField), scriptArgsObject,
|
|
78
|
+
entrypointField, handleGroup: (0, shared_1.getHandleGroup)(entrypointField), scriptArgsObject, ...assetMeta
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
|
-
return { ...metadata, outputPath, assetData, hash: entrypointChunk.hash ?? "", scriptArgsObject,
|
|
81
|
+
return { ...metadata, outputPath, assetData, hash: entrypointChunk.hash ?? "", scriptArgsObject, ...assetMeta };
|
|
82
82
|
});
|
|
83
83
|
if (applicableBlockJsonFiles[epBlockJson]) {
|
|
84
84
|
applicableBlockJsonFiles[epBlockJson].workableBlockEntrypointsInfo.push(...workableBlockEntrypointsInfo);
|
|
@@ -127,7 +127,7 @@ class EnhancedBlockJSONPlugin extends AbstractBiPhasicGroupAndEntryPlugin_1.Abst
|
|
|
127
127
|
const { inlinedAsset, ...finalizedHandle } = handleData;
|
|
128
128
|
if (inlinedAsset !== undefined) {
|
|
129
129
|
finalizedHandle.src = false;
|
|
130
|
-
inlinedAssets.push([handle, type,
|
|
130
|
+
inlinedAssets.push([handle, type, handleData]);
|
|
131
131
|
}
|
|
132
132
|
registerableHandles[handle] = finalizedHandle;
|
|
133
133
|
}
|
|
@@ -327,7 +327,10 @@ class EnhancedBlockJSONPlugin extends AbstractBiPhasicGroupAndEntryPlugin_1.Abst
|
|
|
327
327
|
.convertToScriptHandles(handleData.filter(hd => !(0, shared_1.isStyleField)(hd.entrypointField) && (0, shared_1.isScriptModuleField)(hd.entrypointField)))),
|
|
328
328
|
styleHandles: Object.fromEntries(handleData.filter(hd => (0, shared_1.isStyleField)(hd.entrypointField))
|
|
329
329
|
.map(hd => {
|
|
330
|
-
|
|
330
|
+
if (hd.inlinedAsset === undefined) {
|
|
331
|
+
return [hd.handle, { src: hd.outputPath, rest: [hd.originalValue !== undefined ? hd.assetData.dependencies : [], hd.assetData.version], assetContents: hd.assetContents }];
|
|
332
|
+
}
|
|
333
|
+
return [hd.handle, { src: hd.outputPath, rest: [hd.originalValue !== undefined ? hd.assetData.dependencies : [], hd.assetData.version], inlinedAsset: hd.inlinedAsset, assetContents: hd.assetContents }];
|
|
331
334
|
})),
|
|
332
335
|
bindableBlockAttributes
|
|
333
336
|
},
|
|
@@ -340,7 +343,7 @@ class EnhancedBlockJSONPlugin extends AbstractBiPhasicGroupAndEntryPlugin_1.Abst
|
|
|
340
343
|
}
|
|
341
344
|
static convertToScriptHandles(handleData) {
|
|
342
345
|
return handleData.map(hd => {
|
|
343
|
-
const { inlinedAsset, originalValue, outputPath, entrypointField, scriptArgsObject: rawScriptArgsObject, assetData, handle } = hd;
|
|
346
|
+
const { assetContents, inlinedAsset, originalValue, outputPath, entrypointField, scriptArgsObject: rawScriptArgsObject, assetData, handle } = hd;
|
|
344
347
|
const { dependencies = [], module_dependencies = undefined } = originalValue !== undefined ? assetData : {};
|
|
345
348
|
let scriptArgsObject;
|
|
346
349
|
if (rawScriptArgsObject !== undefined) {
|
|
@@ -366,7 +369,13 @@ class EnhancedBlockJSONPlugin extends AbstractBiPhasicGroupAndEntryPlugin_1.Abst
|
|
|
366
369
|
}
|
|
367
370
|
}
|
|
368
371
|
}
|
|
369
|
-
|
|
372
|
+
const rest = scriptArgsObject !== undefined ? [dependencies, assetData.version, scriptArgsObject] : [dependencies, assetData.version];
|
|
373
|
+
if (inlinedAsset) {
|
|
374
|
+
return [handle, { src: outputPath, rest, inlinedAsset, assetContents }];
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
return [handle, { src: outputPath, rest, assetContents }];
|
|
378
|
+
}
|
|
370
379
|
});
|
|
371
380
|
}
|
|
372
381
|
static doFileOrHandleReplacements(compilation, blockJson, workableBlockEntrypointsInfo, getter) {
|
|
@@ -78,13 +78,12 @@ class PlainEntrypointsConfigFileGeneratorPlugin extends AbstractBiPhasicGroupAnd
|
|
|
78
78
|
writer.action("init", writer => {
|
|
79
79
|
writer.call("plaudit_webpack_extensions__resolve_base_uri", [expressions_1.Constants.__DIR__], { assignTo: baseUriVar });
|
|
80
80
|
for (const { handle, type, data } of prioritizedHandleList) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
(0, shared_1.appendAddInlineAssetCall)(compilation, writer, handle, type, inlinedAsset, data, src);
|
|
81
|
+
if (data.inlinedAsset !== undefined) {
|
|
82
|
+
writer.call(`wp_register_${type}`, [handle, false, ...data.rest]);
|
|
83
|
+
(0, shared_1.appendAddInlineAssetCall)(compilation, writer, handle, type, data);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
writer.call(`wp_register_${type}`, [handle, expressions_1.Op.concat(baseUriVar, (0, node_path_1.relative)(emitDir, data.src)), ...data.rest]);
|
|
88
87
|
}
|
|
89
88
|
}
|
|
90
89
|
}, { priority, accountForAlreadyDoing: this.config.includePostInitFallback });
|
|
@@ -93,10 +92,9 @@ class PlainEntrypointsConfigFileGeneratorPlugin extends AbstractBiPhasicGroupAnd
|
|
|
93
92
|
writer.action("init", writer => {
|
|
94
93
|
writer.call("plaudit_webpack_extensions__resolve_base_uri", [expressions_1.Constants.__DIR__], { assignTo: baseUriVar });
|
|
95
94
|
for (const { handle, type, data } of prioritizedHandleList) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
(0, shared_1.appendAddInlineAssetCall)(compilation, writer, handle, type, inlinedAsset, data, src);
|
|
95
|
+
writer.call(`wp_register_${type}`, [handle, false, ...data.rest]);
|
|
96
|
+
if (data.inlinedAsset !== undefined) {
|
|
97
|
+
(0, shared_1.appendAddInlineAssetCall)(compilation, writer, handle, type, data);
|
|
100
98
|
}
|
|
101
99
|
}
|
|
102
100
|
}, { priority, accountForAlreadyDoing: this.config.includePostInitFallback });
|
|
@@ -109,14 +107,19 @@ class PlainEntrypointsConfigFileGeneratorPlugin extends AbstractBiPhasicGroupAnd
|
|
|
109
107
|
const aPriority = typeof a[1].locations.clientEditor === 'boolean' ? 10 : a[1].locations.clientEditor;
|
|
110
108
|
const bPriority = typeof b[1].locations.clientEditor === 'boolean' ? 10 : b[1].locations.clientEditor;
|
|
111
109
|
return aPriority - bPriority;
|
|
112
|
-
})
|
|
113
|
-
.map(info => info[1].src);
|
|
110
|
+
});
|
|
114
111
|
if (sortedEditorStyleHandles.length > 0) {
|
|
115
112
|
writer.linebreak();
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
const editorSettings = new expressions_1.Var("editor_settings");
|
|
114
|
+
writer.filter("block_editor_settings_all", writer => {
|
|
115
|
+
for (const [handle, data] of sortedEditorStyleHandles) {
|
|
116
|
+
const contents = data.assetContents;
|
|
117
|
+
if (contents) {
|
|
118
|
+
writer.appendExpr(new expressions_1.Assignment(new expressions_1.ArrayAccess(editorSettings, "styles"), new expressions_1.PHPArray({ css: (0, shared_1.wrapInlineAssetContents)(compilation, "plaudit_editor_style", handle, contents) }), true));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
writer.return(editorSettings);
|
|
122
|
+
}, { functionArgParameters: [editorSettings], accountForAlreadyDoing: false });
|
|
120
123
|
}
|
|
121
124
|
const lazyLoadedHandles = Object.values(handleLists)
|
|
122
125
|
.flatMap(handleList => handleList.map(handle => [handle.data.lazyLoader, handle]))
|
|
@@ -300,7 +303,7 @@ class PlainEntrypointsConfigFileGeneratorPlugin extends AbstractBiPhasicGroupAnd
|
|
|
300
303
|
const { dependencies = [], module_dependencies = undefined } = isScript === entrypointChunkIsScript ? assetData : {};
|
|
301
304
|
const { lazyLoader, locations } = this.dest;
|
|
302
305
|
const { flags } = (0, path_query_and_related_helpers_1.unpackEnqueuingControlFlagsFromPathQueryParameters)(typeof locations.registerScriptArgs === 'object' ? locations.registerScriptArgs : { strategy: locations.registerScriptArgs }, file, "registerScriptArgs");
|
|
303
|
-
const {
|
|
306
|
+
const { assetMeta, scriptArgsObject } = (0, path_query_and_related_helpers_1.convertEnqueuingControlFlagsToScriptArgsObject)(compilation, file, (0, path_query_and_related_helpers_1.mergeTwoEnqueuingControlFlagSets)(file, flags, this.dest.enqueuingFlags), type === 'style' && (!!locations.clientEditor || locations.clientEditor === 0));
|
|
304
307
|
const completeScriptArgsObject = module_dependencies?.length ? { ...scriptArgsObject, module_dependencies } : scriptArgsObject;
|
|
305
308
|
const rest = isScript && completeScriptArgsObject !== undefined ? [dependencies, assetData.version, completeScriptArgsObject] : [dependencies, assetData.version];
|
|
306
309
|
const destPath = (0, node_path_1.join)(compilation.outputOptions.path, file);
|
|
@@ -311,7 +314,7 @@ class PlainEntrypointsConfigFileGeneratorPlugin extends AbstractBiPhasicGroupAnd
|
|
|
311
314
|
locations,
|
|
312
315
|
handleName: useHandleName ? locations.handle : undefined,
|
|
313
316
|
lazyLoader,
|
|
314
|
-
|
|
317
|
+
...assetMeta
|
|
315
318
|
});
|
|
316
319
|
}
|
|
317
320
|
myAssetHandles.push({ handles, handlePrefix: this.config.targetHandlePrefix });
|
package/dist/shared.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { PHPWriter } from "@plaudit/php-writer";
|
|
2
|
+
import { HereOrNowDoc } from "@plaudit/php-writer/expressions";
|
|
2
3
|
import type { Options as PostcssFunctionsOptions } from "postcss-functions";
|
|
3
4
|
import { type AssetInfo, type Compilation, type Configuration, type Entrypoint, WebpackError, type Compiler } from "webpack";
|
|
4
5
|
import { SourceType } from "./utils/entrypoint-resolution-logic";
|
|
@@ -14,22 +15,29 @@ export type ParsedAssetsJson = Record<string, {
|
|
|
14
15
|
module_dependencies?: (string | WPModuleDependency)[];
|
|
15
16
|
}>;
|
|
16
17
|
export declare function isParsedAssetsJson(thing: any): thing is ParsedAssetsJson;
|
|
18
|
+
type BaseRestType = [/* dependencies: */ string[], /* version: */ string];
|
|
19
|
+
export type AssetMetaSegment = {
|
|
20
|
+
inlinedAsset: InlinedAsset;
|
|
21
|
+
assetContents: string;
|
|
22
|
+
};
|
|
23
|
+
export type BaseHandleData = {
|
|
24
|
+
src: string;
|
|
25
|
+
rest: BaseRestType | [...BaseRestType, ScriptArgsObject];
|
|
26
|
+
};
|
|
17
27
|
export type ScriptArgsObject = {
|
|
18
28
|
strategy?: 'defer' | 'async';
|
|
19
29
|
in_footer?: boolean;
|
|
20
30
|
fetchpriority?: 'auto' | 'low' | 'high';
|
|
21
31
|
module_dependencies?: (string | WPModuleDependency)[];
|
|
22
32
|
};
|
|
23
|
-
type BaseRestType = [/* dependencies: */ string[], /* version: */ string];
|
|
24
33
|
export type InlinedAsset = {
|
|
25
|
-
contents: string;
|
|
26
34
|
position?: 'before' | 'after';
|
|
27
35
|
};
|
|
28
|
-
export type
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
};
|
|
36
|
+
export type IAHandleData = BaseHandleData & AssetMetaSegment;
|
|
37
|
+
export type HandleData = BaseHandleData & (AssetMetaSegment | {
|
|
38
|
+
inlinedAsset?: undefined;
|
|
39
|
+
assetContents?: string;
|
|
40
|
+
});
|
|
33
41
|
export declare const standardLocationNamesMeta: {
|
|
34
42
|
readonly clientView: {
|
|
35
43
|
readonly action: "wp_enqueue_scripts";
|
|
@@ -253,11 +261,10 @@ export declare function resolveLegacyBlockScriptsInFolder(folder: string): strin
|
|
|
253
261
|
* @param writer
|
|
254
262
|
* @param handle
|
|
255
263
|
* @param type 'script_module' is NOT supported at this time; however, it is *handled* in this function
|
|
256
|
-
* @param inlinedAsset
|
|
257
264
|
* @param handleData
|
|
258
|
-
* @param file something that represents the file that is being inlined (this is purely for error-reporting purposes)
|
|
259
265
|
*/
|
|
260
|
-
export declare function appendAddInlineAssetCall(compilation: Compilation, writer: PHPWriter, handle: string, type: 'script' | 'style' | 'script_module',
|
|
266
|
+
export declare function appendAddInlineAssetCall(compilation: Compilation, writer: PHPWriter, handle: string, type: 'script' | 'style' | 'script_module', handleData: IAHandleData): void;
|
|
267
|
+
export declare function wrapInlineAssetContents(compilation: Compilation, wrapperIdPrefix: string, handle: string, contents: string): HereOrNowDoc;
|
|
261
268
|
export declare function synchronousDirIterator(dirPath: string): Generator<import("node:fs").Dirent<string>, void, unknown>;
|
|
262
269
|
/**
|
|
263
270
|
* A type-guarded version of `instanceof Error` for Node.js.
|
package/dist/shared.js
CHANGED
|
@@ -50,6 +50,7 @@ exports.emitPHPWriterAsAsset = emitPHPWriterAsAsset;
|
|
|
50
50
|
exports.dedent = dedent;
|
|
51
51
|
exports.resolveLegacyBlockScriptsInFolder = resolveLegacyBlockScriptsInFolder;
|
|
52
52
|
exports.appendAddInlineAssetCall = appendAddInlineAssetCall;
|
|
53
|
+
exports.wrapInlineAssetContents = wrapInlineAssetContents;
|
|
53
54
|
exports.synchronousDirIterator = synchronousDirIterator;
|
|
54
55
|
exports.instanceOfNodeError = instanceOfNodeError;
|
|
55
56
|
const node_crypto_1 = require("node:crypto");
|
|
@@ -347,30 +348,27 @@ function resolveLegacyBlockScriptsInFolder(folder) {
|
|
|
347
348
|
* @param writer
|
|
348
349
|
* @param handle
|
|
349
350
|
* @param type 'script_module' is NOT supported at this time; however, it is *handled* in this function
|
|
350
|
-
* @param inlinedAsset
|
|
351
351
|
* @param handleData
|
|
352
|
-
* @param file something that represents the file that is being inlined (this is purely for error-reporting purposes)
|
|
353
352
|
*/
|
|
354
|
-
function appendAddInlineAssetCall(compilation, writer, handle, type,
|
|
353
|
+
function appendAddInlineAssetCall(compilation, writer, handle, type, handleData) {
|
|
355
354
|
if (type === 'script_module') {
|
|
356
|
-
throw newWebpackErrorForFile("WordPress does not support inlined script modules",
|
|
355
|
+
throw newWebpackErrorForFile("WordPress does not support inlined script modules", handleData.src);
|
|
357
356
|
}
|
|
358
357
|
if (handleData.rest[0]?.length) { // If there are any dependencies
|
|
359
358
|
compilation.errors.push(newWebpackErrorForFile("Inlined scripts MUST NOT have dependencies. It WILL cause runtime inconsistencies and potentially cause sever performance issues", handleData.src));
|
|
360
359
|
}
|
|
361
|
-
|
|
362
|
-
if (
|
|
363
|
-
contents = inlinedAsset.contents;
|
|
364
|
-
}
|
|
365
|
-
else {
|
|
366
|
-
contents = inlinedAsset.contents.replaceAll(/\/\*#\s+sourceMappingURL=.*?\*\/|\/\/#\s+sourceMappingURL=[^\r\n]*?([\r\n]|$)/gis, "$1");
|
|
367
|
-
}
|
|
368
|
-
const args = [handle, new expressions_1.HereOrNowDoc(`plaudit_inlined_${type}_${(0, node_crypto_1.createHash)('md5').update(handle).digest("hex")}`, contents.trim(), false)];
|
|
369
|
-
if (type === 'script' && inlinedAsset.position === 'before') {
|
|
360
|
+
const args = [handle, wrapInlineAssetContents(compilation, `plaudit_inlined_${type}`, handle, handleData.assetContents)];
|
|
361
|
+
if (type === 'script' && handleData.inlinedAsset.position === 'before') {
|
|
370
362
|
args.push('before');
|
|
371
363
|
}
|
|
372
364
|
writer.call(`wp_add_inline_${type}`, args);
|
|
373
365
|
}
|
|
366
|
+
function wrapInlineAssetContents(compilation, wrapperIdPrefix, handle, contents) {
|
|
367
|
+
if (!compilation.outputOptions.path?.endsWith("-dev")) {
|
|
368
|
+
contents = contents.replaceAll(/\/\*#\s+sourceMappingURL=.*?\*\/|\/\/#\s+sourceMappingURL=[^\r\n]*?([\r\n]|$)/gis, "$1");
|
|
369
|
+
}
|
|
370
|
+
return new expressions_1.HereOrNowDoc(`${wrapperIdPrefix}_${(0, node_crypto_1.createHash)('md5').update(handle).digest("hex")}`, contents.trim(), false);
|
|
371
|
+
}
|
|
374
372
|
function* synchronousDirIterator(dirPath) {
|
|
375
373
|
try {
|
|
376
374
|
using dir = (0, node_fs_1.opendirSync)(dirPath);
|
|
@@ -51,8 +51,15 @@ export declare function unpackEnqueuingControlFlagsFromPathQueryParameters(pathQ
|
|
|
51
51
|
* @param compilation
|
|
52
52
|
* @param file
|
|
53
53
|
* @param flags
|
|
54
|
+
* @param forceRecordContents
|
|
54
55
|
*/
|
|
55
|
-
export declare function convertEnqueuingControlFlagsToScriptArgsObject(compilation: Compilation, file: string, flags: NormalizedEnqueuingControlFlags | undefined): {
|
|
56
|
+
export declare function convertEnqueuingControlFlagsToScriptArgsObject(compilation: Compilation, file: string, flags: NormalizedEnqueuingControlFlags | undefined, forceRecordContents?: boolean): {
|
|
56
57
|
scriptArgsObject?: ScriptArgsObject;
|
|
57
|
-
|
|
58
|
+
assetMeta?: {
|
|
59
|
+
inlinedAsset: InlinedAsset;
|
|
60
|
+
assetContents: string;
|
|
61
|
+
} | {
|
|
62
|
+
inlinedAsset?: undefined;
|
|
63
|
+
assetContents: string | undefined;
|
|
64
|
+
};
|
|
58
65
|
};
|
|
@@ -192,14 +192,19 @@ function unpackEnqueuingControlFlagsFromPathQueryParameters(pathQueryParameters,
|
|
|
192
192
|
* @param compilation
|
|
193
193
|
* @param file
|
|
194
194
|
* @param flags
|
|
195
|
+
* @param forceRecordContents
|
|
195
196
|
*/
|
|
196
|
-
function convertEnqueuingControlFlagsToScriptArgsObject(compilation, file, flags) {
|
|
197
|
+
function convertEnqueuingControlFlagsToScriptArgsObject(compilation, file, flags, forceRecordContents = false) {
|
|
197
198
|
if (flags === undefined) {
|
|
199
|
+
if (forceRecordContents) {
|
|
200
|
+
return { assetMeta: { assetContents: getAssetFileContents(compilation, file) } };
|
|
201
|
+
}
|
|
198
202
|
return {};
|
|
199
203
|
}
|
|
200
204
|
const { strategy, in_footer, inline, position, fetchpriority } = flags;
|
|
201
205
|
const scriptArgsObject = {};
|
|
202
206
|
let inlinedAsset = undefined;
|
|
207
|
+
let assetContents = undefined;
|
|
203
208
|
switch (strategy) {
|
|
204
209
|
case 'async':
|
|
205
210
|
case 'defer':
|
|
@@ -230,7 +235,8 @@ function convertEnqueuingControlFlagsToScriptArgsObject(compilation, file, flags
|
|
|
230
235
|
scriptArgsObject.in_footer = in_footer;
|
|
231
236
|
}
|
|
232
237
|
if (inline) {
|
|
233
|
-
inlinedAsset = {
|
|
238
|
+
inlinedAsset = {};
|
|
239
|
+
assetContents = getAssetFileContents(compilation, file);
|
|
234
240
|
removeFileAndAssetPHP(compilation, file);
|
|
235
241
|
if (position !== undefined) {
|
|
236
242
|
if (!isValidPositionForInlineStrategy(position)) {
|
|
@@ -245,16 +251,20 @@ function convertEnqueuingControlFlagsToScriptArgsObject(compilation, file, flags
|
|
|
245
251
|
scriptArgsObject.in_footer = true;
|
|
246
252
|
}
|
|
247
253
|
}
|
|
254
|
+
else if (forceRecordContents) {
|
|
255
|
+
assetContents = getAssetFileContents(compilation, file);
|
|
256
|
+
}
|
|
248
257
|
if (fetchpriority !== undefined) {
|
|
249
258
|
if (!isValidFetchPriority(fetchpriority)) {
|
|
250
259
|
throw newInvalidFetchPriorityError(fetchpriority, file);
|
|
251
260
|
}
|
|
252
|
-
if (
|
|
261
|
+
if (inline) {
|
|
253
262
|
compilation.warnings.push((0, shared_1.newWebpackErrorForFile)("Fetchpriority has no effect on inlined assets", file));
|
|
254
263
|
}
|
|
255
264
|
scriptArgsObject.fetchpriority = fetchpriority;
|
|
256
265
|
}
|
|
257
|
-
|
|
266
|
+
const assetMeta = inlinedAsset ? { inlinedAsset, assetContents: assetContents } : { assetContents };
|
|
267
|
+
return Object.keys(scriptArgsObject).length > 0 ? { scriptArgsObject, assetMeta } : { assetMeta };
|
|
258
268
|
}
|
|
259
269
|
function removeFileAndAssetPHP(compilation, file) {
|
|
260
270
|
const pathParts = (0, node_path_1.parse)(file);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plaudit/webpack-extensions",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.94.1",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
5
5
|
"files": [
|
|
6
6
|
"/dist",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
|
-
"@plaudit/gutenberg-api-extensions": "^2.
|
|
31
|
+
"@plaudit/gutenberg-api-extensions": "^2.98.0",
|
|
32
32
|
"@types/browser-sync-webpack-plugin": "^2.2.5",
|
|
33
33
|
"@types/jsdom": "^28.0.3",
|
|
34
34
|
"@types/node": "^25.9.5",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"webpack-bundle-analyzer": "^4.10.2"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@plaudit/php-writer": "^1.5.
|
|
42
|
+
"@plaudit/php-writer": "^1.5.5",
|
|
43
43
|
"@plaudit/postcss-color-function": "^5.1.0",
|
|
44
44
|
"@plaudit/postcss-legacy-shorthand": "^1.0.0",
|
|
45
45
|
"@plaudit/postcss-silent-extend": "^3.0.0",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"@plaudit/postcss-variables": "^1.1.0",
|
|
48
48
|
"@wordpress/dependency-extraction-webpack-plugin": "^6.51.0",
|
|
49
49
|
"@wordpress/scripts": "^32.6.0",
|
|
50
|
-
"autoprefixer": "^10.5.
|
|
50
|
+
"autoprefixer": "^10.5.4",
|
|
51
51
|
"browser-sync": "^3.0.4",
|
|
52
52
|
"copy-webpack-plugin": "10.2.4",
|
|
53
53
|
"css-minimizer-webpack-plugin": "^6.0.0",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"fork-ts-checker-webpack-plugin": "^9.1.0",
|
|
56
56
|
"http-proxy-middleware": "^3.0.7",
|
|
57
57
|
"jsdom": "^29.1.1",
|
|
58
|
-
"json2php": "
|
|
58
|
+
"json2php": "0.0.12",
|
|
59
59
|
"postcss": "^8.5.19",
|
|
60
60
|
"postcss-calc": "^9.0.1",
|
|
61
61
|
"postcss-discard-comments": "^6.0.2",
|