@plaudit/webpack-extensions 4.0.0-rc.1 → 4.1.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.
Files changed (246) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/dist/api/asset-information-emission.d.ts +74 -0
  3. package/dist/api/asset-information-emission.d.ts.map +1 -0
  4. package/dist/api/asset-information-emission.js +398 -0
  5. package/dist/api/asset-information-emission.js.map +1 -0
  6. package/dist/api/configuration.d.ts +102 -0
  7. package/dist/api/configuration.d.ts.map +1 -0
  8. package/dist/api/configuration.js +83 -0
  9. package/dist/api/configuration.js.map +1 -0
  10. package/dist/api/coordinatable-emitter.d.ts +27 -0
  11. package/dist/api/coordinatable-emitter.d.ts.map +1 -0
  12. package/dist/api/coordinatable-emitter.js +20 -0
  13. package/dist/api/coordinatable-emitter.js.map +1 -0
  14. package/dist/api/entries/dependencies.d.ts +69 -0
  15. package/dist/api/entries/dependencies.d.ts.map +1 -0
  16. package/dist/api/entries/dependencies.js +61 -0
  17. package/dist/api/entries/dependencies.js.map +1 -0
  18. package/dist/api/entries/flag-logic.d.ts +37 -0
  19. package/dist/api/entries/flag-logic.d.ts.map +1 -0
  20. package/dist/api/entries/flag-logic.js +110 -0
  21. package/dist/api/entries/flag-logic.js.map +1 -0
  22. package/dist/api/entries/identifiers.d.ts +84 -0
  23. package/dist/api/entries/identifiers.d.ts.map +1 -0
  24. package/dist/api/entries/identifiers.js +590 -0
  25. package/dist/api/entries/identifiers.js.map +1 -0
  26. package/dist/api/entries/index.d.ts +6 -0
  27. package/dist/api/entries/index.d.ts.map +1 -0
  28. package/dist/api/entries/index.js +22 -0
  29. package/dist/api/entries/index.js.map +1 -0
  30. package/dist/api/entries/locations.d.ts +135 -0
  31. package/dist/api/entries/locations.d.ts.map +1 -0
  32. package/dist/api/entries/locations.js +174 -0
  33. package/dist/api/entries/locations.js.map +1 -0
  34. package/dist/api/entries/manager.d.ts +12 -0
  35. package/dist/api/entries/manager.d.ts.map +1 -0
  36. package/dist/api/entries/manager.js +35 -0
  37. package/dist/api/entries/manager.js.map +1 -0
  38. package/dist/api/handle-derivation.d.ts +32 -0
  39. package/dist/api/handle-derivation.d.ts.map +1 -0
  40. package/dist/api/handle-derivation.js +77 -0
  41. package/dist/api/handle-derivation.js.map +1 -0
  42. package/dist/api/index.d.ts +7 -0
  43. package/dist/api/index.d.ts.map +1 -0
  44. package/dist/api/index.js +23 -0
  45. package/dist/api/index.js.map +1 -0
  46. package/dist/api/shared-types.d.ts +86 -0
  47. package/dist/api/shared-types.d.ts.map +1 -0
  48. package/dist/api/shared-types.js +3 -0
  49. package/dist/api/shared-types.js.map +1 -0
  50. package/dist/internal-utils/auto-registering-plugins-loader.d.ts +3 -0
  51. package/dist/internal-utils/auto-registering-plugins-loader.d.ts.map +1 -0
  52. package/dist/internal-utils/auto-registering-plugins-loader.js +42 -0
  53. package/dist/internal-utils/auto-registering-plugins-loader.js.map +1 -0
  54. package/dist/internal-utils/common-config-helpers.d.ts +14 -0
  55. package/dist/internal-utils/common-config-helpers.d.ts.map +1 -0
  56. package/dist/internal-utils/common-config-helpers.js +140 -0
  57. package/dist/internal-utils/common-config-helpers.js.map +1 -0
  58. package/dist/internal-utils/entrypoint-resolution-logic.d.ts +14 -0
  59. package/dist/internal-utils/entrypoint-resolution-logic.d.ts.map +1 -0
  60. package/dist/internal-utils/entrypoint-resolution-logic.js +223 -0
  61. package/dist/internal-utils/entrypoint-resolution-logic.js.map +1 -0
  62. package/dist/internal-utils/internal-pseudo-plugin.d.ts +6 -0
  63. package/dist/internal-utils/internal-pseudo-plugin.d.ts.map +1 -0
  64. package/dist/internal-utils/internal-pseudo-plugin.js +46 -0
  65. package/dist/internal-utils/internal-pseudo-plugin.js.map +1 -0
  66. package/dist/mocks/blocks.d.ts +32 -0
  67. package/dist/mocks/blocks.d.ts.map +1 -0
  68. package/dist/mocks/blocks.js +3 -0
  69. package/dist/mocks/blocks.js.map +1 -0
  70. package/dist/mocks/index.d.ts +2 -0
  71. package/dist/mocks/index.d.ts.map +1 -0
  72. package/dist/mocks/index.js +18 -0
  73. package/dist/mocks/index.js.map +1 -0
  74. package/dist/plugins/AdditionalDependencyInjectorPlugin.d.ts +5 -0
  75. package/dist/plugins/AdditionalDependencyInjectorPlugin.d.ts.map +1 -0
  76. package/dist/plugins/AdditionalDependencyInjectorPlugin.js +59 -0
  77. package/dist/plugins/AdditionalDependencyInjectorPlugin.js.map +1 -0
  78. package/dist/plugins/MiniCSSExtractPluginErrorCleaner.d.ts +5 -0
  79. package/dist/plugins/MiniCSSExtractPluginErrorCleaner.d.ts.map +1 -0
  80. package/dist/plugins/MiniCSSExtractPluginErrorCleaner.js +16 -0
  81. package/dist/plugins/MiniCSSExtractPluginErrorCleaner.js.map +1 -0
  82. package/dist/plugins/PackageConfigSanityChecker.d.ts +5 -0
  83. package/dist/plugins/PackageConfigSanityChecker.d.ts.map +1 -0
  84. package/dist/plugins/PackageConfigSanityChecker.js +31 -0
  85. package/dist/plugins/PackageConfigSanityChecker.js.map +1 -0
  86. package/dist/plugins/RootCoordinatorPluginImpl.d.ts +56 -0
  87. package/dist/plugins/RootCoordinatorPluginImpl.d.ts.map +1 -0
  88. package/dist/plugins/RootCoordinatorPluginImpl.js +767 -0
  89. package/dist/plugins/RootCoordinatorPluginImpl.js.map +1 -0
  90. package/dist/plugins/VariablesJSMonitorPlugin.d.ts +8 -0
  91. package/dist/plugins/VariablesJSMonitorPlugin.d.ts.map +1 -0
  92. package/dist/plugins/VariablesJSMonitorPlugin.js +21 -0
  93. package/dist/plugins/VariablesJSMonitorPlugin.js.map +1 -0
  94. package/dist/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.d.ts +25 -0
  95. package/dist/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.d.ts.map +1 -0
  96. package/dist/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.js +458 -0
  97. package/dist/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.js.map +1 -0
  98. package/dist/plugins/blocks/BlocksDirectoryProcessingPlugin.d.ts +29 -0
  99. package/dist/plugins/blocks/BlocksDirectoryProcessingPlugin.d.ts.map +1 -0
  100. package/dist/plugins/blocks/BlocksDirectoryProcessingPlugin.js +290 -0
  101. package/dist/plugins/blocks/BlocksDirectoryProcessingPlugin.js.map +1 -0
  102. package/dist/plugins/blocks/register.d.ts +6 -0
  103. package/dist/plugins/blocks/register.d.ts.map +1 -0
  104. package/dist/plugins/blocks/register.js +14 -0
  105. package/dist/plugins/blocks/register.js.map +1 -0
  106. package/dist/plugins/blocks/registerEmitter.d.ts +4 -0
  107. package/dist/plugins/blocks/registerEmitter.d.ts.map +1 -0
  108. package/dist/plugins/blocks/registerEmitter.js +13 -0
  109. package/dist/plugins/blocks/registerEmitter.js.map +1 -0
  110. package/dist/plugins/blocks/registerProcessor.d.ts +4 -0
  111. package/dist/plugins/blocks/registerProcessor.d.ts.map +1 -0
  112. package/dist/plugins/blocks/registerProcessor.js +46 -0
  113. package/dist/plugins/blocks/registerProcessor.js.map +1 -0
  114. package/dist/plugins/dependency-extraction-webpack-plugin-config-builder.d.ts +5 -0
  115. package/dist/plugins/dependency-extraction-webpack-plugin-config-builder.d.ts.map +1 -0
  116. package/dist/plugins/dependency-extraction-webpack-plugin-config-builder.js +148 -0
  117. package/dist/plugins/dependency-extraction-webpack-plugin-config-builder.js.map +1 -0
  118. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPlugin.d.ts +14 -0
  119. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPlugin.d.ts.map +1 -0
  120. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPlugin.js +191 -0
  121. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPlugin.js.map +1 -0
  122. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPluginV1.d.ts +14 -0
  123. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPluginV1.d.ts.map +1 -0
  124. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPluginV1.js +102 -0
  125. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPluginV1.js.map +1 -0
  126. package/dist/plugins/extensions/ExtensionsDirectoryProcessingPlugin.d.ts +25 -0
  127. package/dist/plugins/extensions/ExtensionsDirectoryProcessingPlugin.d.ts.map +1 -0
  128. package/dist/plugins/extensions/ExtensionsDirectoryProcessingPlugin.js +229 -0
  129. package/dist/plugins/extensions/ExtensionsDirectoryProcessingPlugin.js.map +1 -0
  130. package/dist/plugins/extensions/register.d.ts +6 -0
  131. package/dist/plugins/extensions/register.d.ts.map +1 -0
  132. package/dist/plugins/extensions/register.js +14 -0
  133. package/dist/plugins/extensions/register.js.map +1 -0
  134. package/dist/plugins/extensions/registerEmitter.d.ts +4 -0
  135. package/dist/plugins/extensions/registerEmitter.d.ts.map +1 -0
  136. package/dist/plugins/extensions/registerEmitter.js +18 -0
  137. package/dist/plugins/extensions/registerEmitter.js.map +1 -0
  138. package/dist/plugins/extensions/registerProcessor.d.ts +4 -0
  139. package/dist/plugins/extensions/registerProcessor.d.ts.map +1 -0
  140. package/dist/plugins/extensions/registerProcessor.js +42 -0
  141. package/dist/plugins/extensions/registerProcessor.js.map +1 -0
  142. package/dist/plugins/index.d.ts +11 -0
  143. package/dist/plugins/index.d.ts.map +1 -0
  144. package/dist/plugins/index.js +27 -0
  145. package/dist/plugins/index.js.map +1 -0
  146. package/dist/plugins/plain/PlainEntrypointProcessingPlugin.d.ts +18 -0
  147. package/dist/plugins/plain/PlainEntrypointProcessingPlugin.d.ts.map +1 -0
  148. package/dist/plugins/plain/PlainEntrypointProcessingPlugin.js +203 -0
  149. package/dist/plugins/plain/PlainEntrypointProcessingPlugin.js.map +1 -0
  150. package/dist/plugins/plain/PlainEntrypointsConfigEmitterPlugin.d.ts +13 -0
  151. package/dist/plugins/plain/PlainEntrypointsConfigEmitterPlugin.d.ts.map +1 -0
  152. package/dist/plugins/plain/PlainEntrypointsConfigEmitterPlugin.js +51 -0
  153. package/dist/plugins/plain/PlainEntrypointsConfigEmitterPlugin.js.map +1 -0
  154. package/dist/plugins/plain/register.d.ts +6 -0
  155. package/dist/plugins/plain/register.d.ts.map +1 -0
  156. package/dist/plugins/plain/register.js +14 -0
  157. package/dist/plugins/plain/register.js.map +1 -0
  158. package/dist/plugins/plain/registerEmitter.d.ts +4 -0
  159. package/dist/plugins/plain/registerEmitter.d.ts.map +1 -0
  160. package/dist/plugins/plain/registerEmitter.js +21 -0
  161. package/dist/plugins/plain/registerEmitter.js.map +1 -0
  162. package/dist/plugins/plain/registerProcessor.d.ts +4 -0
  163. package/dist/plugins/plain/registerProcessor.d.ts.map +1 -0
  164. package/dist/plugins/plain/registerProcessor.js +34 -0
  165. package/dist/plugins/plain/registerProcessor.js.map +1 -0
  166. package/dist/plugins/register.d.ts +3 -0
  167. package/dist/plugins/register.d.ts.map +1 -0
  168. package/dist/plugins/register.js +17 -0
  169. package/dist/plugins/register.js.map +1 -0
  170. package/dist/plugins/special-assets/SpecialAssetsCollectorPlugin.d.ts +20 -0
  171. package/dist/plugins/special-assets/SpecialAssetsCollectorPlugin.d.ts.map +1 -0
  172. package/dist/plugins/special-assets/SpecialAssetsCollectorPlugin.js +56 -0
  173. package/dist/plugins/special-assets/SpecialAssetsCollectorPlugin.js.map +1 -0
  174. package/dist/plugins/special-assets/SpecialAssetsLoaderEmitterPlugin.d.ts +13 -0
  175. package/dist/plugins/special-assets/SpecialAssetsLoaderEmitterPlugin.d.ts.map +1 -0
  176. package/dist/plugins/special-assets/SpecialAssetsLoaderEmitterPlugin.js +105 -0
  177. package/dist/plugins/special-assets/SpecialAssetsLoaderEmitterPlugin.js.map +1 -0
  178. package/dist/plugins/special-assets/register.d.ts +6 -0
  179. package/dist/plugins/special-assets/register.d.ts.map +1 -0
  180. package/dist/plugins/special-assets/register.js +14 -0
  181. package/dist/plugins/special-assets/register.js.map +1 -0
  182. package/dist/plugins/special-assets/registerEmitter.d.ts +4 -0
  183. package/dist/plugins/special-assets/registerEmitter.d.ts.map +1 -0
  184. package/dist/plugins/special-assets/registerEmitter.js +15 -0
  185. package/dist/plugins/special-assets/registerEmitter.js.map +1 -0
  186. package/dist/plugins/special-assets/registerProcessor.d.ts +4 -0
  187. package/dist/plugins/special-assets/registerProcessor.d.ts.map +1 -0
  188. package/dist/plugins/special-assets/registerProcessor.js +15 -0
  189. package/dist/plugins/special-assets/registerProcessor.js.map +1 -0
  190. package/dist/plugins/unified-loader/UnifiedLoaderGenerator.d.ts +22 -0
  191. package/dist/plugins/unified-loader/UnifiedLoaderGenerator.d.ts.map +1 -0
  192. package/dist/plugins/unified-loader/UnifiedLoaderGenerator.js +95 -0
  193. package/dist/plugins/unified-loader/UnifiedLoaderGenerator.js.map +1 -0
  194. package/dist/plugins/wpml-config/WPMLConfigBuilder.d.ts +24 -0
  195. package/dist/plugins/wpml-config/WPMLConfigBuilder.d.ts.map +1 -0
  196. package/dist/plugins/wpml-config/WPMLConfigBuilder.js +542 -0
  197. package/dist/plugins/wpml-config/WPMLConfigBuilder.js.map +1 -0
  198. package/dist/plugins/wpml-config/register.d.ts +6 -0
  199. package/dist/plugins/wpml-config/register.d.ts.map +1 -0
  200. package/dist/plugins/wpml-config/register.js +25 -0
  201. package/dist/plugins/wpml-config/register.js.map +1 -0
  202. package/dist/shared.d.ts +38 -0
  203. package/dist/shared.d.ts.map +1 -0
  204. package/dist/shared.js +163 -0
  205. package/dist/shared.js.map +1 -0
  206. package/dist/utils/error-helpers.d.ts +7 -0
  207. package/dist/utils/error-helpers.d.ts.map +1 -0
  208. package/dist/utils/error-helpers.js +73 -0
  209. package/dist/utils/error-helpers.js.map +1 -0
  210. package/dist/utils/index.d.ts +6 -0
  211. package/dist/utils/index.d.ts.map +1 -0
  212. package/dist/utils/index.js +22 -0
  213. package/dist/utils/index.js.map +1 -0
  214. package/dist/utils/misc.d.ts +4 -0
  215. package/dist/utils/misc.d.ts.map +1 -0
  216. package/dist/utils/misc.js +18 -0
  217. package/dist/utils/misc.js.map +1 -0
  218. package/dist/utils/path-helpers.d.ts +16 -0
  219. package/dist/utils/path-helpers.d.ts.map +1 -0
  220. package/dist/utils/path-helpers.js +115 -0
  221. package/dist/utils/path-helpers.js.map +1 -0
  222. package/dist/utils/pseudo-semaphore.d.ts +15 -0
  223. package/dist/utils/pseudo-semaphore.d.ts.map +1 -0
  224. package/dist/utils/pseudo-semaphore.js +77 -0
  225. package/dist/utils/pseudo-semaphore.js.map +1 -0
  226. package/dist/utils/type-helpers.d.ts +27 -0
  227. package/dist/utils/type-helpers.d.ts.map +1 -0
  228. package/dist/utils/type-helpers.js +33 -0
  229. package/dist/utils/type-helpers.js.map +1 -0
  230. package/dist/utils/writer-utils.d.ts +8 -0
  231. package/dist/utils/writer-utils.d.ts.map +1 -0
  232. package/dist/utils/writer-utils.js +35 -0
  233. package/dist/utils/writer-utils.js.map +1 -0
  234. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/index.d.ts +73 -0
  235. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/index.d.ts.map +1 -0
  236. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/index.js +516 -0
  237. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/index.js.map +1 -0
  238. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/util.d.ts +57 -0
  239. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/util.d.ts.map +1 -0
  240. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/util.js +156 -0
  241. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/util.js.map +1 -0
  242. package/dist/wordpress-scripts-wrapper.d.ts +5 -0
  243. package/dist/wordpress-scripts-wrapper.d.ts.map +1 -0
  244. package/dist/wordpress-scripts-wrapper.js +444 -0
  245. package/dist/wordpress-scripts-wrapper.js.map +1 -0
  246. package/package.json +7 -3
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExtensionsDirectoryProcessingPlugin = void 0;
4
+ const promises_1 = require("node:fs/promises");
5
+ const node_path_1 = require("node:path");
6
+ const webpack_1 = require("webpack");
7
+ const api_1 = require("../../api");
8
+ const utils_1 = require("../../utils");
9
+ class ExtensionsDirectoryProcessingPlugin extends api_1.CoordinatableEmitter {
10
+ coordinator;
11
+ config;
12
+ dest;
13
+ context;
14
+ srcRoot;
15
+ hasAnyNonModuleBuilds;
16
+ constructor(coordinator, config, dest, context, srcRoot, hasAnyNonModuleBuilds) {
17
+ super();
18
+ this.coordinator = coordinator;
19
+ this.config = config;
20
+ this.dest = dest;
21
+ this.context = context;
22
+ this.srcRoot = srcRoot;
23
+ this.hasAnyNonModuleBuilds = hasAnyNonModuleBuilds;
24
+ }
25
+ requires = [];
26
+ defaultCompilationName = undefined;
27
+ get provides() {
28
+ return [`extensions-directory:${this.dest.destination}`];
29
+ }
30
+ apply(compiler) {
31
+ super.apply(compiler);
32
+ const processingModules = !!compiler.options.output.module;
33
+ const canProcessAlternateAssets = !processingModules || !this.hasAnyNonModuleBuilds;
34
+ const handleConfig = this.dest.handle;
35
+ compiler.hooks.make.tapPromise(this.constructor.name, async (compilation) => {
36
+ if (!compilation.contextDependencies.has(this.srcRoot)) {
37
+ compilation.contextDependencies.add(this.srcRoot);
38
+ }
39
+ const myMeta = compilation.moduleGraph.getMeta(this);
40
+ const setupFiles = myMeta["plaudit/setup-files"] ??= {};
41
+ const delegateContext = { compilation };
42
+ const overallHandlePrefix = `${this.config.targetHandlePrefix}/extensions/`;
43
+ const { addEntry, addEntryInjectionPromise, waitHook } = this.makeEntryManager(compiler, compilation, this.context);
44
+ const makeEntryOptions = (blockSlug, handleSuffix, options) => {
45
+ const { dir, name } = (0, node_path_1.parse)((0, node_path_1.normalize)((0, node_path_1.join)(this.dest.destination, (0, node_path_1.relative)(this.srcRoot, options.absoluteSrc))));
46
+ return (0, api_1.makePlauditEntryOptions)(handleConfig, overallHandlePrefix + blockSlug, handleSuffix, {
47
+ ...options,
48
+ additionalDependencies: this.dest.additionalDependencies,
49
+ baseDestination: this.dest.destination,
50
+ name: (0, node_path_1.join)(dir, name),
51
+ blockSlug: blockSlug
52
+ });
53
+ };
54
+ const extensionsJsonProcessingPromises = [];
55
+ for await (const dirent of await (0, promises_1.opendir)(this.srcRoot)) {
56
+ if ((0, utils_1.shouldBeSkipped)(dirent.name)) {
57
+ continue;
58
+ }
59
+ if (dirent.isFile()) {
60
+ const lcName = dirent.name.toLowerCase();
61
+ if (lcName.endsWith("-setup.php")) {
62
+ if (canProcessAlternateAssets) {
63
+ const absoluteSrc = (0, utils_1.joinPossiblyAbsolutePaths)(this.srcRoot, dirent.name);
64
+ addEntryInjectionPromise((0, promises_1.readFile)(absoluteSrc).then(contents => {
65
+ const destination = (0, node_path_1.join)(this.dest.destination, dirent.name);
66
+ compilation.emitAsset(destination, new webpack_1.sources.RawSource(contents), { size: Buffer.byteLength(contents) });
67
+ // We need to record that this is a setup file that we are managing
68
+ setupFiles[dirent.name] = dirent.name.slice(0, -10);
69
+ }));
70
+ }
71
+ continue;
72
+ }
73
+ const { name } = (0, node_path_1.parse)(lcName);
74
+ const { blockSlug, rawEpField } = /^(?<blockSlug>.+)-(?<rawEpField>(?:view|editor)(?:-(?:script|script[-_]module|style))?|script|script[-_]module|style|both)$/i.exec(name)?.groups ?? {};
75
+ if (blockSlug === undefined || rawEpField === undefined) {
76
+ continue;
77
+ }
78
+ const absoluteSrc = (0, utils_1.joinPossiblyAbsolutePaths)(this.srcRoot, dirent.name);
79
+ const conversionRes = safeConversionToEntrypointField(compilation, absoluteSrc, rawEpField);
80
+ if (conversionRes === false) {
81
+ continue;
82
+ }
83
+ const [entrypointField, type] = conversionRes;
84
+ const locations = { register: api_1.DEFAULT_WP_HOOK_PRIORITY };
85
+ if (entrypointField.startsWith("editor")) {
86
+ locations.clientEditor = api_1.DEFAULT_WP_HOOK_PRIORITY;
87
+ }
88
+ else if (entrypointField.startsWith("view")) {
89
+ locations.clientView = api_1.DEFAULT_WP_HOOK_PRIORITY;
90
+ }
91
+ else {
92
+ locations.clientEditor = api_1.DEFAULT_WP_HOOK_PRIORITY;
93
+ locations.clientView = api_1.DEFAULT_WP_HOOK_PRIORITY;
94
+ }
95
+ extensionsJsonProcessingPromises.push(makeEntryOptions(blockSlug, rawEpField, {
96
+ type,
97
+ flags: {},
98
+ absoluteSrc,
99
+ entrypointField,
100
+ locations,
101
+ }));
102
+ }
103
+ else if (dirent.isDirectory()) {
104
+ extensionsJsonProcessingPromises.push(this.recurseThroughDirectories(compilation, this.srcRoot, [dirent.name], makeEntryOptions, canProcessAlternateAssets, setupFiles, addEntryInjectionPromise, delegateContext));
105
+ }
106
+ }
107
+ for (const ep of (0, utils_1.dedupeEntrypointOutputPaths)((await Promise.all(extensionsJsonProcessingPromises)).flat())) {
108
+ if (processingModules === (ep.type === "script_module")) {
109
+ addEntry(ep.absoluteSrc, ep);
110
+ }
111
+ }
112
+ await waitHook();
113
+ });
114
+ compiler.hooks.thisCompilation.tap(this.constructor.name, compilation => {
115
+ compilation.hooks.processAssets.tap({ name: this.constructor.name, stage: webpack_1.Compilation.PROCESS_ASSETS_STAGE_REPORT }, () => {
116
+ const myMeta = compilation.moduleGraph.getMeta(this);
117
+ const setupFiles = myMeta["plaudit/setup-files"] ??= {};
118
+ const reportableData = {
119
+ assets: [],
120
+ setupFiles,
121
+ };
122
+ for (const entrypoint of compilation.entrypoints.values()) {
123
+ if ((0, api_1.isPlauditEntryOptions)(entrypoint.options) && this.dest.destination === entrypoint.options.baseDestination && (0, api_1.isExtensionEntryOptions)(entrypoint.options)) {
124
+ reportableData.assets.push(entrypoint.options.absoluteSrc);
125
+ }
126
+ }
127
+ this.coordinator.reportData(compilation, this, `extensions-directory:${this.dest.destination}`, reportableData);
128
+ });
129
+ });
130
+ //TODO: CONSIDER: If all files are two levels deep (i.e. core/group/view.ts), assume slash in middle. Use that to cut down on a few string ops
131
+ }
132
+ async recurseThroughDirectories(compilation, srcRoot, parent, makeEntryOptions, canProcessAlternateAssets, setupFiles, addEntryInjectionPromise, delegateContext) {
133
+ const res = [];
134
+ for await (const dirent of await (0, promises_1.opendir)((0, node_path_1.join)(srcRoot, ...parent))) {
135
+ if ((0, utils_1.shouldBeSkipped)(dirent.name)) {
136
+ continue;
137
+ }
138
+ if (dirent.isDirectory()) {
139
+ res.push(this.recurseThroughDirectories(compilation, srcRoot, [...parent, dirent.name], makeEntryOptions, canProcessAlternateAssets, setupFiles, addEntryInjectionPromise, delegateContext));
140
+ }
141
+ else if (dirent.isFile()) {
142
+ const lcName = dirent.name.toLowerCase();
143
+ if (lcName === 'setup.php' || lcName.endsWith("-setup.php") || lcName.endsWith(".setup.php")) {
144
+ if (canProcessAlternateAssets) {
145
+ const absoluteSrc = (0, node_path_1.join)(srcRoot, ...parent, dirent.name);
146
+ addEntryInjectionPromise((0, promises_1.readFile)(absoluteSrc).then(contents => {
147
+ const managedName = (0, node_path_1.join)(...parent, dirent.name);
148
+ const destination = (0, node_path_1.join)(this.dest.destination, managedName);
149
+ compilation.emitAsset(destination, new webpack_1.sources.RawSource(contents), { size: Buffer.byteLength(contents) });
150
+ // We need to record that this is a setup file that we are managing
151
+ setupFiles[managedName] = parent.join("-");
152
+ }));
153
+ }
154
+ continue;
155
+ }
156
+ const identifier = (0, api_1.parseEntrypointIdentifierForBlock)(dirent.name, false, delegateContext);
157
+ if (identifier === undefined) {
158
+ continue;
159
+ }
160
+ const { filePath, niceName, ...pluginOptions } = identifier;
161
+ const { entrypointField, locations } = (0, api_1.deriveEntrypointFieldAndBlockSafeLocations)(identifier, compilation.options.output.module, delegateContext);
162
+ if (entrypointField !== undefined) {
163
+ const handleSuffix = niceName ?? (0, node_path_1.parse)(filePath).name;
164
+ res.push(makeEntryOptions(parent.join("-"), handleSuffix, {
165
+ ...pluginOptions,
166
+ absoluteSrc: (0, node_path_1.join)(srcRoot, ...parent, dirent.name),
167
+ entrypointField,
168
+ locations,
169
+ }));
170
+ }
171
+ }
172
+ }
173
+ return (await Promise.all(res)).flat();
174
+ }
175
+ getCoordinatedEmissionTargets() {
176
+ return [];
177
+ }
178
+ }
179
+ exports.ExtensionsDirectoryProcessingPlugin = ExtensionsDirectoryProcessingPlugin;
180
+ /**
181
+ *
182
+ * @param compilation
183
+ * @param absoluteSrc
184
+ * @param value {string} this MUST match /^(?:view|editor)(?:-(?:script|script[-_]module|style))?|script|script[-_]module|style|both)$/
185
+ */
186
+ function safeConversionToEntrypointField(compilation, absoluteSrc, value) {
187
+ switch (value) {
188
+ case 'script':
189
+ return ['script', 'script'];
190
+ case 'script-module':
191
+ case 'script_module':
192
+ (0, utils_1.emitError)("Cannot enqueue script modules anywhere other than the view", { rawIdentifier: absoluteSrc, compilation });
193
+ return false;
194
+ case 'style':
195
+ return ['style', 'style'];
196
+ case 'both': {
197
+ const type = (0, api_1.getAssetType)(absoluteSrc);
198
+ return type === false || type === 'script_module' ? false : [type, type];
199
+ }
200
+ case 'editor':
201
+ case 'view': {
202
+ const type = (0, api_1.getAssetType)(absoluteSrc);
203
+ if (type === false) {
204
+ //TODO: Should we emit a warning here?
205
+ return false;
206
+ }
207
+ else if (value === 'editor' && type === 'script_module') {
208
+ (0, utils_1.emitError)("Cannot enqueue script modules for blocks anywhere other than the view", { rawIdentifier: absoluteSrc, compilation });
209
+ return false;
210
+ }
211
+ return [(value + "S" + type.substring(1)), type];
212
+ }
213
+ }
214
+ const firstDash = value.indexOf("-");
215
+ const prefix = value.substring(0, firstDash);
216
+ const suffix = value.substring(firstDash + 1);
217
+ if (prefix !== 'view' && prefix !== 'editor') {
218
+ return false;
219
+ }
220
+ if (suffix === 'script-module' || suffix === 'script_module') {
221
+ if (prefix === 'view') {
222
+ return ['viewScriptModule', 'script_module'];
223
+ }
224
+ (0, utils_1.emitError)("Cannot enqueue script modules for blocks anywhere other than the view", { rawIdentifier: absoluteSrc, compilation });
225
+ return false;
226
+ }
227
+ return [(prefix + "S" + suffix.substring(1)), suffix];
228
+ }
229
+ //# sourceMappingURL=ExtensionsDirectoryProcessingPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionsDirectoryProcessingPlugin.js","sourceRoot":"","sources":["../../../src/plugins/extensions/ExtensionsDirectoryProcessingPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ declare const _default: {
2
+ plauditWebpackExtensionsPlugin: true;
3
+ register(wrapperManager: import("../../api").WrapperManager): void;
4
+ };
5
+ export = _default;
6
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/plugins/extensions/register.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const registerEmitter_1 = __importDefault(require("./registerEmitter"));
6
+ const registerProcessor_1 = __importDefault(require("./registerProcessor"));
7
+ module.exports = {
8
+ plauditWebpackExtensionsPlugin: true,
9
+ register(...args) {
10
+ (0, registerProcessor_1.default)(...args);
11
+ (0, registerEmitter_1.default)(...args);
12
+ }
13
+ };
14
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/plugins/extensions/register.ts"],"names":[],"mappings":";;;;AAEA,wEAAgD;AAChD,4EAAoD;AAEpD,iBAAS;IACR,8BAA8B,EAAE,IAAI;IACpC,QAAQ,CAAC,GAAG,IAAI;QACf,IAAA,2BAAiB,EAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,IAAA,yBAAe,EAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,CAAC;CAC+B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AutoRegisteringPlugin } from "../../api";
2
+ declare const register: AutoRegisteringPlugin['register'];
3
+ export default register;
4
+ //# sourceMappingURL=registerEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerEmitter.d.ts","sourceRoot":"","sources":["../../../src/plugins/extensions/registerEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,WAAW,CAAC;AAKrD,QAAA,MAAM,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAW/C,CAAC;eAEa,QAAQ"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const ExtensionsDirectoryLoaderEmitterPlugin_1 = require("./ExtensionsDirectoryLoaderEmitterPlugin");
4
+ const ExtensionsDirectoryLoaderEmitterPluginV1_1 = require("./ExtensionsDirectoryLoaderEmitterPluginV1");
5
+ const register = ({ coordinator, emitterPlugins }) => {
6
+ emitterPlugins.push(({ config }, { dest }, destinationHandler) => {
7
+ if (destinationHandler?.sourceType === 'extensions') {
8
+ if (config.extensionsVersion < 2) {
9
+ coordinator.enableAssetPhpFileEmission(`extensions-directory:${dest.destination}`);
10
+ return new ExtensionsDirectoryLoaderEmitterPluginV1_1.ExtensionsDirectoryLoaderEmitterPluginV1(coordinator, config, dest);
11
+ }
12
+ return new ExtensionsDirectoryLoaderEmitterPlugin_1.ExtensionsDirectoryLoaderEmitterPlugin(coordinator, config, dest);
13
+ }
14
+ return undefined;
15
+ });
16
+ };
17
+ exports.default = register;
18
+ //# sourceMappingURL=registerEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerEmitter.js","sourceRoot":"","sources":["../../../src/plugins/extensions/registerEmitter.ts"],"names":[],"mappings":";;AAEA,qGAAgG;AAChG,yGAAoG;AAEpG,MAAM,QAAQ,GAAsC,CAAC,EAAC,WAAW,EAAE,cAAc,EAAC,EAAE,EAAE;IACrF,cAAc,CAAC,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,kBAAkB,EAAE,EAAE;QAC5D,IAAI,kBAAkB,EAAE,UAAU,KAAK,YAAY,EAAE,CAAC;YACrD,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;gBAClC,WAAW,CAAC,0BAA0B,CAAC,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;gBAClF,OAAO,IAAI,mFAAwC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,IAAI,+EAAsC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;kBAEa,QAAQ"}
@@ -0,0 +1,4 @@
1
+ import type { AutoRegisteringPlugin } from "../../api";
2
+ declare const register: AutoRegisteringPlugin['register'];
3
+ export default register;
4
+ //# sourceMappingURL=registerProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerProcessor.d.ts","sourceRoot":"","sources":["../../../src/plugins/extensions/registerProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,WAAW,CAAC;AAOrD,QAAA,MAAM,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAgC/C,CAAC;eAEa,QAAQ"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const node_path_1 = require("node:path");
4
+ const utils_1 = require("../../utils");
5
+ const ExtensionsDirectoryProcessingPlugin_1 = require("./ExtensionsDirectoryProcessingPlugin");
6
+ const SOURCE_TYPE = 'extensions';
7
+ const NAME = `${SOURCE_TYPE.substring(0, 1).toUpperCase()}${SOURCE_TYPE.substring(1)}DirectoryProcessor`;
8
+ const register = ({ hooks, coordinator, supportedSourceTypes }) => {
9
+ supportedSourceTypes.add(SOURCE_TYPE);
10
+ hooks.batch.tap(NAME, (batch, { config, hasAnyNonModuleBuilds, webpackConfig }) => {
11
+ const contextPath = webpackConfig.context ?? process.cwd();
12
+ batch.hooks.destinationHandler.tap({ name: NAME, stage: 1_000 }, ({ dest, srcIsDirectory, srcRoot }) => {
13
+ if (dest.sourceType === SOURCE_TYPE) {
14
+ if (!srcIsDirectory) {
15
+ (0, utils_1.emitError)(`The "${SOURCE_TYPE}" directoryLayout only supports directories`);
16
+ return;
17
+ }
18
+ return {
19
+ sourceType: SOURCE_TYPE,
20
+ plugin: new ExtensionsDirectoryProcessingPlugin_1.ExtensionsDirectoryProcessingPlugin(coordinator, config, dest, contextPath, srcRoot, hasAnyNonModuleBuilds),
21
+ supportsAssetCopying: true,
22
+ };
23
+ }
24
+ else if (dest.sourceType) {
25
+ return;
26
+ }
27
+ if (srcIsDirectory) {
28
+ const bn = (0, node_path_1.basename)(srcRoot);
29
+ if (bn === SOURCE_TYPE || bn.startsWith(SOURCE_TYPE + "-") || bn.endsWith("-" + SOURCE_TYPE)) {
30
+ return {
31
+ sourceType: SOURCE_TYPE,
32
+ plugin: new ExtensionsDirectoryProcessingPlugin_1.ExtensionsDirectoryProcessingPlugin(coordinator, config, dest, contextPath, srcRoot, hasAnyNonModuleBuilds),
33
+ supportsAssetCopying: true,
34
+ };
35
+ }
36
+ }
37
+ return;
38
+ });
39
+ });
40
+ };
41
+ exports.default = register;
42
+ //# sourceMappingURL=registerProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerProcessor.js","sourceRoot":"","sources":["../../../src/plugins/extensions/registerProcessor.ts"],"names":[],"mappings":";;AAAA,yCAAmC;AAGnC,uCAAsC;AAEtC,+FAA0F;AAE1F,MAAM,WAAW,GAAG,YAAY,CAAC;AACjC,MAAM,IAAI,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC;AACzG,MAAM,QAAQ,GAAsC,CAAC,EAAC,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAC,EAAE,EAAE;IAClG,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEtC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAC,MAAM,EAAE,qBAAqB,EAAE,aAAa,EAAC,EAAE,EAAE;QAC/E,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC3D,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,EAAE,CAAC,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAC,EAAE,EAAE;YAClG,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACrB,IAAA,iBAAS,EAAC,QAAQ,WAAW,6CAA6C,CAAC,CAAC;oBAC5E,OAAO;gBACR,CAAC;gBACD,OAAO;oBACN,UAAU,EAAE,WAAW;oBACvB,MAAM,EAAE,IAAI,yEAAmC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,CAAC;oBACvH,oBAAoB,EAAE,IAAI;iBAC1B,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5B,OAAO;YACR,CAAC;YACD,IAAI,cAAc,EAAE,CAAC;gBACpB,MAAM,EAAE,GAAG,IAAA,oBAAQ,EAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,WAAW,CAAC,EAAE,CAAC;oBAC9F,OAAO;wBACN,UAAU,EAAE,WAAW;wBACvB,MAAM,EAAE,IAAI,yEAAmC,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,CAAC;wBACvH,oBAAoB,EAAE,IAAI;qBAC1B,CAAC;gBACH,CAAC;YACF,CAAC;YACD,OAAO;QACR,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAA;AACH,CAAC,CAAC;kBAEa,QAAQ"}
@@ -0,0 +1,11 @@
1
+ export * from "./blocks/BlocksDirectoryLoaderEmitterPlugin";
2
+ export * from "./blocks/BlocksDirectoryProcessingPlugin";
3
+ export * from "./extensions/ExtensionsDirectoryLoaderEmitterPlugin";
4
+ export * from "./extensions/ExtensionsDirectoryProcessingPlugin";
5
+ export * from "./plain/PlainEntrypointProcessingPlugin";
6
+ export * from "./plain/PlainEntrypointsConfigEmitterPlugin";
7
+ export * from "./special-assets/SpecialAssetsCollectorPlugin";
8
+ export * from "./special-assets/SpecialAssetsLoaderEmitterPlugin";
9
+ export * from "./unified-loader/UnifiedLoaderGenerator";
10
+ export * from "./wpml-config/WPMLConfigBuilder";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,qDAAqD,CAAC;AACpE,cAAc,kDAAkD,CAAC;AACjE,cAAc,yCAAyC,CAAC;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./blocks/BlocksDirectoryLoaderEmitterPlugin"), exports);
18
+ __exportStar(require("./blocks/BlocksDirectoryProcessingPlugin"), exports);
19
+ __exportStar(require("./extensions/ExtensionsDirectoryLoaderEmitterPlugin"), exports);
20
+ __exportStar(require("./extensions/ExtensionsDirectoryProcessingPlugin"), exports);
21
+ __exportStar(require("./plain/PlainEntrypointProcessingPlugin"), exports);
22
+ __exportStar(require("./plain/PlainEntrypointsConfigEmitterPlugin"), exports);
23
+ __exportStar(require("./special-assets/SpecialAssetsCollectorPlugin"), exports);
24
+ __exportStar(require("./special-assets/SpecialAssetsLoaderEmitterPlugin"), exports);
25
+ __exportStar(require("./unified-loader/UnifiedLoaderGenerator"), exports);
26
+ __exportStar(require("./wpml-config/WPMLConfigBuilder"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8EAA4D;AAC5D,2EAAyD;AACzD,sFAAoE;AACpE,mFAAiE;AACjE,0EAAwD;AACxD,8EAA4D;AAC5D,gFAA8D;AAC9D,oFAAkE;AAClE,0EAAwD;AACxD,kEAAgD"}
@@ -0,0 +1,18 @@
1
+ import { type Compiler } from "webpack";
2
+ import { CoordinatableEmitter, type CoordinatedEmissionTargetBuilder, type RootCoordinatorPlugin, type VerifiedAdvancedDestinationConfig, type VerifiedPlauditWordpressWebpackConfig } from "../../api";
3
+ export type PlainEntrypointEmitterData = string[];
4
+ export declare class PlainEntrypointProcessingPlugin extends CoordinatableEmitter {
5
+ protected readonly coordinator: RootCoordinatorPlugin;
6
+ private readonly config;
7
+ private readonly context;
8
+ private readonly origins;
9
+ constructor(coordinator: RootCoordinatorPlugin, config: VerifiedPlauditWordpressWebpackConfig, context: string, origins: [string | [string, ...string[]], VerifiedAdvancedDestinationConfig][]);
10
+ readonly requires: readonly [];
11
+ readonly provides: readonly ["plain-entrypoints"];
12
+ readonly defaultCompilationName: undefined;
13
+ apply(compiler: Compiler): void;
14
+ private processDirectorySource;
15
+ private processFileSource;
16
+ getCoordinatedEmissionTargets(): CoordinatedEmissionTargetBuilder[];
17
+ }
18
+ //# sourceMappingURL=PlainEntrypointProcessingPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlainEntrypointProcessingPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/plain/PlainEntrypointProcessingPlugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAAc,KAAK,QAAQ,EAAC,MAAM,SAAS,CAAC;AAEnD,OAAO,EACN,oBAAoB,EAAE,KAAK,gCAAgC,EACyC,KAAK,qBAAqB,EAC9H,KAAK,iCAAiC,EAAE,KAAK,qCAAqC,EAClF,MAAM,WAAW,CAAC;AAGnB,MAAM,MAAM,0BAA0B,GAAG,MAAM,EAAE,CAAC;AAIlD,qBAAa,+BAAgC,SAAQ,oBAAoB;IAEvE,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,qBAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJzB,YACoB,WAAW,EAAE,qBAAqB,EACpC,MAAM,EAAE,qCAAqC,EAC7C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,MAAM,GAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,iCAAiC,CAAC,EAAE,EAG7F;IAED,SAAgB,QAAQ,cAAe;IACvC,SAAgB,QAAQ,YAAI,mBAAmB,EAAW;IAC1D,SAAgB,sBAAsB,YAAa;IAEnD,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAuD9B;YAEa,sBAAsB;YA6FtB,iBAAiB;IAsB/B,6BAA6B,IAAI,gCAAgC,EAAE,CAElE;CACD"}