@plaudit/webpack-extensions 3.21.2 → 4.0.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 (279) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/USER-GUIDE.md +2 -1
  3. package/dist/api/asset-information-emission.d.ts +74 -0
  4. package/dist/api/asset-information-emission.d.ts.map +1 -0
  5. package/dist/api/asset-information-emission.js +398 -0
  6. package/dist/api/asset-information-emission.js.map +1 -0
  7. package/dist/api/configuration.d.ts +102 -0
  8. package/dist/api/configuration.d.ts.map +1 -0
  9. package/dist/api/configuration.js +83 -0
  10. package/dist/api/configuration.js.map +1 -0
  11. package/dist/api/coordinatable-emitter.d.ts +27 -0
  12. package/dist/api/coordinatable-emitter.d.ts.map +1 -0
  13. package/dist/api/coordinatable-emitter.js +20 -0
  14. package/dist/api/coordinatable-emitter.js.map +1 -0
  15. package/dist/api/entries/dependencies.d.ts +69 -0
  16. package/dist/api/entries/dependencies.d.ts.map +1 -0
  17. package/dist/api/entries/dependencies.js +61 -0
  18. package/dist/api/entries/dependencies.js.map +1 -0
  19. package/dist/api/entries/flag-logic.d.ts +37 -0
  20. package/dist/api/entries/flag-logic.d.ts.map +1 -0
  21. package/dist/api/entries/flag-logic.js +110 -0
  22. package/dist/api/entries/flag-logic.js.map +1 -0
  23. package/dist/api/entries/identifiers.d.ts +84 -0
  24. package/dist/api/entries/identifiers.d.ts.map +1 -0
  25. package/dist/api/entries/identifiers.js +590 -0
  26. package/dist/api/entries/identifiers.js.map +1 -0
  27. package/dist/api/entries/index.d.ts +6 -0
  28. package/dist/api/entries/index.d.ts.map +1 -0
  29. package/dist/{plugins → api/entries}/index.js +6 -8
  30. package/dist/api/entries/index.js.map +1 -0
  31. package/dist/api/entries/locations.d.ts +135 -0
  32. package/dist/api/entries/locations.d.ts.map +1 -0
  33. package/dist/api/entries/locations.js +174 -0
  34. package/dist/api/entries/locations.js.map +1 -0
  35. package/dist/api/entries/manager.d.ts +12 -0
  36. package/dist/api/entries/manager.d.ts.map +1 -0
  37. package/dist/api/entries/manager.js +35 -0
  38. package/dist/api/entries/manager.js.map +1 -0
  39. package/dist/api/handle-derivation.d.ts +32 -0
  40. package/dist/api/handle-derivation.d.ts.map +1 -0
  41. package/dist/api/handle-derivation.js +77 -0
  42. package/dist/api/handle-derivation.js.map +1 -0
  43. package/dist/api/index.d.ts +7 -0
  44. package/dist/api/index.d.ts.map +1 -0
  45. package/dist/api/index.js +23 -0
  46. package/dist/api/index.js.map +1 -0
  47. package/dist/api/shared-types.d.ts +86 -0
  48. package/dist/api/shared-types.d.ts.map +1 -0
  49. package/dist/api/shared-types.js +3 -0
  50. package/dist/api/shared-types.js.map +1 -0
  51. package/dist/internal-utils/auto-registering-plugins-loader.d.ts +3 -0
  52. package/dist/internal-utils/auto-registering-plugins-loader.d.ts.map +1 -0
  53. package/dist/internal-utils/auto-registering-plugins-loader.js +42 -0
  54. package/dist/internal-utils/auto-registering-plugins-loader.js.map +1 -0
  55. package/dist/internal-utils/common-config-helpers.d.ts +14 -0
  56. package/dist/internal-utils/common-config-helpers.d.ts.map +1 -0
  57. package/dist/internal-utils/common-config-helpers.js +140 -0
  58. package/dist/internal-utils/common-config-helpers.js.map +1 -0
  59. package/dist/internal-utils/entrypoint-resolution-logic.d.ts +14 -0
  60. package/dist/internal-utils/entrypoint-resolution-logic.d.ts.map +1 -0
  61. package/dist/internal-utils/entrypoint-resolution-logic.js +223 -0
  62. package/dist/internal-utils/entrypoint-resolution-logic.js.map +1 -0
  63. package/dist/internal-utils/internal-pseudo-plugin.d.ts +6 -0
  64. package/dist/internal-utils/internal-pseudo-plugin.d.ts.map +1 -0
  65. package/dist/internal-utils/internal-pseudo-plugin.js +46 -0
  66. package/dist/internal-utils/internal-pseudo-plugin.js.map +1 -0
  67. package/dist/mocks/blocks.d.ts +32 -0
  68. package/dist/mocks/blocks.d.ts.map +1 -0
  69. package/dist/mocks/blocks.js +3 -0
  70. package/dist/mocks/blocks.js.map +1 -0
  71. package/dist/mocks/index.d.ts +2 -0
  72. package/dist/mocks/index.d.ts.map +1 -0
  73. package/dist/mocks/index.js +18 -0
  74. package/dist/mocks/index.js.map +1 -0
  75. package/dist/plugins/AdditionalDependencyInjectorPlugin.d.ts +4 -10
  76. package/dist/plugins/AdditionalDependencyInjectorPlugin.d.ts.map +1 -0
  77. package/dist/plugins/AdditionalDependencyInjectorPlugin.js +48 -47
  78. package/dist/plugins/AdditionalDependencyInjectorPlugin.js.map +1 -0
  79. package/dist/plugins/MiniCSSExtractPluginErrorCleaner.d.ts +1 -0
  80. package/dist/plugins/MiniCSSExtractPluginErrorCleaner.d.ts.map +1 -0
  81. package/dist/plugins/MiniCSSExtractPluginErrorCleaner.js +1 -0
  82. package/dist/plugins/MiniCSSExtractPluginErrorCleaner.js.map +1 -0
  83. package/dist/plugins/PackageConfigSanityChecker.d.ts +1 -0
  84. package/dist/plugins/PackageConfigSanityChecker.d.ts.map +1 -0
  85. package/dist/plugins/PackageConfigSanityChecker.js +1 -0
  86. package/dist/plugins/PackageConfigSanityChecker.js.map +1 -0
  87. package/dist/plugins/RootCoordinatorPluginImpl.d.ts +56 -0
  88. package/dist/plugins/RootCoordinatorPluginImpl.d.ts.map +1 -0
  89. package/dist/plugins/RootCoordinatorPluginImpl.js +767 -0
  90. package/dist/plugins/RootCoordinatorPluginImpl.js.map +1 -0
  91. package/dist/plugins/VariablesJSMonitorPlugin.d.ts +2 -1
  92. package/dist/plugins/VariablesJSMonitorPlugin.d.ts.map +1 -0
  93. package/dist/plugins/VariablesJSMonitorPlugin.js +1 -0
  94. package/dist/plugins/VariablesJSMonitorPlugin.js.map +1 -0
  95. package/dist/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.d.ts +25 -0
  96. package/dist/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.d.ts.map +1 -0
  97. package/dist/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.js +458 -0
  98. package/dist/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.js.map +1 -0
  99. package/dist/plugins/blocks/BlocksDirectoryProcessingPlugin.d.ts +29 -0
  100. package/dist/plugins/blocks/BlocksDirectoryProcessingPlugin.d.ts.map +1 -0
  101. package/dist/plugins/blocks/BlocksDirectoryProcessingPlugin.js +290 -0
  102. package/dist/plugins/blocks/BlocksDirectoryProcessingPlugin.js.map +1 -0
  103. package/dist/plugins/blocks/register.d.ts +6 -0
  104. package/dist/plugins/blocks/register.d.ts.map +1 -0
  105. package/dist/plugins/blocks/register.js +14 -0
  106. package/dist/plugins/blocks/register.js.map +1 -0
  107. package/dist/plugins/blocks/registerEmitter.d.ts +4 -0
  108. package/dist/plugins/blocks/registerEmitter.d.ts.map +1 -0
  109. package/dist/plugins/blocks/registerEmitter.js +13 -0
  110. package/dist/plugins/blocks/registerEmitter.js.map +1 -0
  111. package/dist/plugins/blocks/registerProcessor.d.ts +4 -0
  112. package/dist/plugins/blocks/registerProcessor.d.ts.map +1 -0
  113. package/dist/plugins/blocks/registerProcessor.js +46 -0
  114. package/dist/plugins/blocks/registerProcessor.js.map +1 -0
  115. package/dist/plugins/dependency-extraction-webpack-plugin-config-builder.d.ts +3 -2
  116. package/dist/plugins/dependency-extraction-webpack-plugin-config-builder.d.ts.map +1 -0
  117. package/dist/plugins/dependency-extraction-webpack-plugin-config-builder.js +2 -1
  118. package/dist/plugins/dependency-extraction-webpack-plugin-config-builder.js.map +1 -0
  119. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPlugin.d.ts +14 -0
  120. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPlugin.d.ts.map +1 -0
  121. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPlugin.js +191 -0
  122. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPlugin.js.map +1 -0
  123. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPluginV1.d.ts +14 -0
  124. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPluginV1.d.ts.map +1 -0
  125. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPluginV1.js +102 -0
  126. package/dist/plugins/extensions/ExtensionsDirectoryLoaderEmitterPluginV1.js.map +1 -0
  127. package/dist/plugins/extensions/ExtensionsDirectoryProcessingPlugin.d.ts +25 -0
  128. package/dist/plugins/extensions/ExtensionsDirectoryProcessingPlugin.d.ts.map +1 -0
  129. package/dist/plugins/extensions/ExtensionsDirectoryProcessingPlugin.js +229 -0
  130. package/dist/plugins/extensions/ExtensionsDirectoryProcessingPlugin.js.map +1 -0
  131. package/dist/plugins/extensions/register.d.ts +6 -0
  132. package/dist/plugins/extensions/register.d.ts.map +1 -0
  133. package/dist/plugins/extensions/register.js +14 -0
  134. package/dist/plugins/extensions/register.js.map +1 -0
  135. package/dist/plugins/extensions/registerEmitter.d.ts +4 -0
  136. package/dist/plugins/extensions/registerEmitter.d.ts.map +1 -0
  137. package/dist/plugins/extensions/registerEmitter.js +18 -0
  138. package/dist/plugins/extensions/registerEmitter.js.map +1 -0
  139. package/dist/plugins/extensions/registerProcessor.d.ts +4 -0
  140. package/dist/plugins/extensions/registerProcessor.d.ts.map +1 -0
  141. package/dist/plugins/extensions/registerProcessor.js +42 -0
  142. package/dist/plugins/extensions/registerProcessor.js.map +1 -0
  143. package/dist/plugins/plain/PlainEntrypointProcessingPlugin.d.ts +18 -0
  144. package/dist/plugins/plain/PlainEntrypointProcessingPlugin.d.ts.map +1 -0
  145. package/dist/plugins/plain/PlainEntrypointProcessingPlugin.js +203 -0
  146. package/dist/plugins/plain/PlainEntrypointProcessingPlugin.js.map +1 -0
  147. package/dist/plugins/plain/PlainEntrypointsConfigEmitterPlugin.d.ts +13 -0
  148. package/dist/plugins/plain/PlainEntrypointsConfigEmitterPlugin.d.ts.map +1 -0
  149. package/dist/plugins/plain/PlainEntrypointsConfigEmitterPlugin.js +51 -0
  150. package/dist/plugins/plain/PlainEntrypointsConfigEmitterPlugin.js.map +1 -0
  151. package/dist/plugins/plain/register.d.ts +6 -0
  152. package/dist/plugins/plain/register.d.ts.map +1 -0
  153. package/dist/plugins/plain/register.js +14 -0
  154. package/dist/plugins/plain/register.js.map +1 -0
  155. package/dist/plugins/plain/registerEmitter.d.ts +4 -0
  156. package/dist/plugins/plain/registerEmitter.d.ts.map +1 -0
  157. package/dist/plugins/plain/registerEmitter.js +21 -0
  158. package/dist/plugins/plain/registerEmitter.js.map +1 -0
  159. package/dist/plugins/plain/registerProcessor.d.ts +4 -0
  160. package/dist/plugins/plain/registerProcessor.d.ts.map +1 -0
  161. package/dist/plugins/plain/registerProcessor.js +34 -0
  162. package/dist/plugins/plain/registerProcessor.js.map +1 -0
  163. package/dist/plugins/register.d.ts +3 -0
  164. package/dist/plugins/register.d.ts.map +1 -0
  165. package/dist/plugins/register.js +17 -0
  166. package/dist/plugins/register.js.map +1 -0
  167. package/dist/plugins/special-assets/SpecialAssetsCollectorPlugin.d.ts +20 -0
  168. package/dist/plugins/special-assets/SpecialAssetsCollectorPlugin.d.ts.map +1 -0
  169. package/dist/plugins/special-assets/SpecialAssetsCollectorPlugin.js +56 -0
  170. package/dist/plugins/special-assets/SpecialAssetsCollectorPlugin.js.map +1 -0
  171. package/dist/plugins/special-assets/SpecialAssetsLoaderEmitterPlugin.d.ts +13 -0
  172. package/dist/plugins/special-assets/SpecialAssetsLoaderEmitterPlugin.d.ts.map +1 -0
  173. package/dist/plugins/special-assets/SpecialAssetsLoaderEmitterPlugin.js +105 -0
  174. package/dist/plugins/special-assets/SpecialAssetsLoaderEmitterPlugin.js.map +1 -0
  175. package/dist/plugins/special-assets/register.d.ts +6 -0
  176. package/dist/plugins/special-assets/register.d.ts.map +1 -0
  177. package/dist/plugins/special-assets/register.js +14 -0
  178. package/dist/plugins/special-assets/register.js.map +1 -0
  179. package/dist/plugins/special-assets/registerEmitter.d.ts +4 -0
  180. package/dist/plugins/special-assets/registerEmitter.d.ts.map +1 -0
  181. package/dist/plugins/special-assets/registerEmitter.js +15 -0
  182. package/dist/plugins/special-assets/registerEmitter.js.map +1 -0
  183. package/dist/plugins/special-assets/registerProcessor.d.ts +4 -0
  184. package/dist/plugins/special-assets/registerProcessor.d.ts.map +1 -0
  185. package/dist/plugins/special-assets/registerProcessor.js +15 -0
  186. package/dist/plugins/special-assets/registerProcessor.js.map +1 -0
  187. package/dist/plugins/unified-loader/UnifiedLoaderGenerator.d.ts +22 -0
  188. package/dist/plugins/unified-loader/UnifiedLoaderGenerator.d.ts.map +1 -0
  189. package/dist/plugins/unified-loader/UnifiedLoaderGenerator.js +95 -0
  190. package/dist/plugins/unified-loader/UnifiedLoaderGenerator.js.map +1 -0
  191. package/dist/plugins/wpml-config/WPMLConfigBuilder.d.ts +24 -0
  192. package/dist/plugins/wpml-config/WPMLConfigBuilder.d.ts.map +1 -0
  193. package/dist/plugins/{WPMLConfigBuilder.js → wpml-config/WPMLConfigBuilder.js} +123 -53
  194. package/dist/plugins/wpml-config/WPMLConfigBuilder.js.map +1 -0
  195. package/dist/plugins/wpml-config/register.d.ts +6 -0
  196. package/dist/plugins/wpml-config/register.d.ts.map +1 -0
  197. package/dist/plugins/wpml-config/register.js +25 -0
  198. package/dist/plugins/wpml-config/register.js.map +1 -0
  199. package/dist/shared.d.ts +10 -283
  200. package/dist/shared.d.ts.map +1 -0
  201. package/dist/shared.js +32 -405
  202. package/dist/shared.js.map +1 -0
  203. package/dist/utils/error-helpers.d.ts +7 -0
  204. package/dist/utils/error-helpers.d.ts.map +1 -0
  205. package/dist/utils/error-helpers.js +73 -0
  206. package/dist/utils/error-helpers.js.map +1 -0
  207. package/dist/utils/index.d.ts +6 -0
  208. package/dist/utils/index.d.ts.map +1 -0
  209. package/dist/utils/index.js +22 -0
  210. package/dist/utils/index.js.map +1 -0
  211. package/dist/utils/misc.d.ts +4 -0
  212. package/dist/utils/misc.d.ts.map +1 -0
  213. package/dist/utils/misc.js +18 -0
  214. package/dist/utils/misc.js.map +1 -0
  215. package/dist/utils/path-helpers.d.ts +16 -0
  216. package/dist/utils/path-helpers.d.ts.map +1 -0
  217. package/dist/utils/path-helpers.js +115 -0
  218. package/dist/utils/path-helpers.js.map +1 -0
  219. package/dist/utils/pseudo-semaphore.d.ts +1 -0
  220. package/dist/utils/pseudo-semaphore.d.ts.map +1 -0
  221. package/dist/utils/pseudo-semaphore.js +3 -5
  222. package/dist/utils/pseudo-semaphore.js.map +1 -0
  223. package/dist/utils/type-helpers.d.ts +27 -0
  224. package/dist/utils/type-helpers.d.ts.map +1 -0
  225. package/dist/utils/type-helpers.js +33 -0
  226. package/dist/utils/type-helpers.js.map +1 -0
  227. package/dist/utils/writer-utils.d.ts +8 -0
  228. package/dist/utils/writer-utils.d.ts.map +1 -0
  229. package/dist/utils/writer-utils.js +35 -0
  230. package/dist/utils/writer-utils.js.map +1 -0
  231. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/index.d.ts +2 -1
  232. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/index.d.ts.map +1 -0
  233. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/index.js +5 -7
  234. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/index.js.map +1 -0
  235. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/util.d.ts +1 -0
  236. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/util.d.ts.map +1 -0
  237. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/util.js +1 -0
  238. package/dist/wordpress-ports/dependency-extraction-webpack-plugin/util.js.map +1 -0
  239. package/dist/wordpress-scripts-wrapper.d.ts +3 -2
  240. package/dist/wordpress-scripts-wrapper.d.ts.map +1 -0
  241. package/dist/wordpress-scripts-wrapper.js +137 -391
  242. package/dist/wordpress-scripts-wrapper.js.map +1 -0
  243. package/package.json +28 -50
  244. package/dist/plugins/AbstractBiPhasicGroupAndEntryPlugin.d.ts +0 -25
  245. package/dist/plugins/AbstractBiPhasicGroupAndEntryPlugin.js +0 -86
  246. package/dist/plugins/AbstractBiPhasicGroupPlugin.d.ts +0 -31
  247. package/dist/plugins/AbstractBiPhasicGroupPlugin.js +0 -91
  248. package/dist/plugins/EnhancedBlockJSONPlugin.d.ts +0 -47
  249. package/dist/plugins/EnhancedBlockJSONPlugin.js +0 -657
  250. package/dist/plugins/EnhancedDynamicEntryPlugin.d.ts +0 -8
  251. package/dist/plugins/EnhancedDynamicEntryPlugin.js +0 -14
  252. package/dist/plugins/ExtensionsConfigFileGeneratorPlugin.d.ts +0 -20
  253. package/dist/plugins/ExtensionsConfigFileGeneratorPlugin.js +0 -191
  254. package/dist/plugins/ExtensionsConfigFileGeneratorPluginV1.d.ts +0 -9
  255. package/dist/plugins/ExtensionsConfigFileGeneratorPluginV1.js +0 -45
  256. package/dist/plugins/MixableBiPhasicGroupAndEntryPlugin.d.ts +0 -6
  257. package/dist/plugins/MixableBiPhasicGroupAndEntryPlugin.js +0 -13
  258. package/dist/plugins/MixableBiPhasicGroupPlugin.d.ts +0 -6
  259. package/dist/plugins/MixableBiPhasicGroupPlugin.js +0 -13
  260. package/dist/plugins/PlainEntrypointsConfigFileGeneratorPlugin.d.ts +0 -26
  261. package/dist/plugins/PlainEntrypointsConfigFileGeneratorPlugin.js +0 -392
  262. package/dist/plugins/SpecialAssetHandlingPlugin.d.ts +0 -12
  263. package/dist/plugins/SpecialAssetHandlingPlugin.js +0 -134
  264. package/dist/plugins/UnifiedLoaderGenerator.d.ts +0 -21
  265. package/dist/plugins/UnifiedLoaderGenerator.js +0 -144
  266. package/dist/plugins/WPMLConfigBuilder.d.ts +0 -17
  267. package/dist/plugins/index.d.ts +0 -8
  268. package/dist/plugins/static-configs.d.ts +0 -3
  269. package/dist/plugins/static-configs.js +0 -44
  270. package/dist/utils/common-config-helpers.d.ts +0 -28
  271. package/dist/utils/common-config-helpers.js +0 -489
  272. package/dist/utils/css-writer.d.ts +0 -4
  273. package/dist/utils/css-writer.js +0 -46
  274. package/dist/utils/entrypoint-resolution-logic.d.ts +0 -13
  275. package/dist/utils/entrypoint-resolution-logic.js +0 -82
  276. package/dist/utils/location-encoding-filename-parser.d.ts +0 -30
  277. package/dist/utils/location-encoding-filename-parser.js +0 -120
  278. package/dist/utils/path-query-and-related-helpers.d.ts +0 -64
  279. package/dist/utils/path-query-and-related-helpers.js +0 -269
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RootCoordinatorPluginImpl.js","sourceRoot":"","sources":["../../src/plugins/RootCoordinatorPluginImpl.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import type { VerifiedPlauditWordpressWebpackConfig } from "../shared";
2
1
  import type { Compiler, WebpackPluginInstance } from "webpack";
2
+ import type { VerifiedPlauditWordpressWebpackConfig } from "../api";
3
3
  export declare class VariablesJSMonitorPlugin implements WebpackPluginInstance {
4
4
  private readonly config;
5
5
  constructor(config: VerifiedPlauditWordpressWebpackConfig);
6
6
  apply(compiler: Compiler): void;
7
7
  }
8
+ //# sourceMappingURL=VariablesJSMonitorPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariablesJSMonitorPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/VariablesJSMonitorPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAE,qBAAqB,EAAC,MAAM,SAAS,CAAC;AAE7D,OAAO,KAAK,EAAC,qCAAqC,EAAC,MAAM,QAAQ,CAAC;AAElE,qBAAa,wBAAyB,YAAW,qBAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,qCAAqC,EAAI;IAE9E,KAAK,CAAC,QAAQ,EAAE,QAAQ,QASvB;CACD"}
@@ -18,3 +18,4 @@ class VariablesJSMonitorPlugin {
18
18
  }
19
19
  }
20
20
  exports.VariablesJSMonitorPlugin = VariablesJSMonitorPlugin;
21
+ //# sourceMappingURL=VariablesJSMonitorPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariablesJSMonitorPlugin.js","sourceRoot":"","sources":["../../src/plugins/VariablesJSMonitorPlugin.ts"],"names":[],"mappings":";;;AAIA;IAC8B,MAAM;IAAnC,YAA6B,MAA6C;sBAA7C,MAAM;IAA0C,CAAC;IAE9E,KAAK,CAAC,QAAkB;QACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;QACxD,IAAI,iBAAiB,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;gBAC5D,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC1D,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gBACrD,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,25 @@
1
+ import { type Compiler } from "webpack";
2
+ import { CoordinatableEmitter, type CoordinatedEmissionTargetBuilder, type RootCoordinatorPlugin, type VerifiedAdvancedDestinationConfig, type VerifiedPlauditWordpressWebpackConfig } from "../../api";
3
+ export declare class BlocksDirectoryLoaderEmitterPlugin extends CoordinatableEmitter {
4
+ protected readonly coordinator: RootCoordinatorPlugin;
5
+ private readonly config;
6
+ private readonly dest;
7
+ constructor(coordinator: RootCoordinatorPlugin, config: VerifiedPlauditWordpressWebpackConfig, dest: VerifiedAdvancedDestinationConfig);
8
+ readonly provides: readonly ["unified-loader"];
9
+ get requires(): readonly [`blocks-directory:${string}`];
10
+ get defaultCompilationName(): string;
11
+ apply(compiler: Compiler): void;
12
+ private emitBlockdirLoaderPHP;
13
+ private static readonly THEME_JSON_FLAG_PROPS;
14
+ private static pickOutFlagPropsFromBlockSupports;
15
+ private static doFileOrHandleReplacements;
16
+ private static hashThingForAsset;
17
+ static findCommonAncestor(...paths: string[]): string[];
18
+ static findRelativeRouteBetween(path1: string, path2: string): string;
19
+ private static remapReferencedPHPFilesOnKey;
20
+ private static normalizeRenderTemplate;
21
+ private static readonly knownExperimentalProperties;
22
+ private static handleExperimentalBlockSupportsFlags;
23
+ getCoordinatedEmissionTargets(): CoordinatedEmissionTargetBuilder[];
24
+ }
25
+ //# sourceMappingURL=BlocksDirectoryLoaderEmitterPlugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlocksDirectoryLoaderEmitterPlugin.d.ts","sourceRoot":"","sources":["../../../src/plugins/blocks/BlocksDirectoryLoaderEmitterPlugin.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,QAAQ,EAAU,MAAM,SAAS,CAAC;AAE5D,OAAO,EAKN,oBAAoB,EACpB,KAAK,gCAAgC,EAIrC,KAAK,qBAAqB,EAE1B,KAAK,iCAAiC,EACtC,KAAK,qCAAqC,EAC1C,MAAM,WAAW,CAAC;AAcnB,qBAAa,kCAAmC,SAAQ,oBAAoB;IAE1E,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,qBAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHtB,YACoB,WAAW,EAAE,qBAAqB,EACpC,MAAM,EAAE,qCAAqC,EAC7C,IAAI,EAAE,iCAAiC,EAGxD;IAED,SAAgB,QAAQ,YAAI,gBAAgB,EAAW;IAEvD,IAAW,QAAQ,4CAElB;IACD,IAAW,sBAAsB,WAEhC;IAED,KAAK,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAqF9B;IAED,OAAO,CAAC,qBAAqB;IA8J7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAe3C;IACF,OAAO,CAAC,MAAM,CAAC,iCAAiC;IAyBhD,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAqCzC,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,MAAM,CAAC,kBAAkB,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,YAS3C;IACD,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAG3D;IAED,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAqD3C,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAmDtC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAEuD;IAC1G,OAAO,CAAC,MAAM,CAAC,oCAAoC;IAsBnD,6BAA6B,IAAI,gCAAgC,EAAE,CAElE;CACD"}
@@ -0,0 +1,458 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlocksDirectoryLoaderEmitterPlugin = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const node_fs_1 = require("node:fs");
6
+ const node_path_1 = require("node:path");
7
+ const php_writer_1 = require("@plaudit/php-writer");
8
+ const expressions_1 = require("@plaudit/php-writer/expressions");
9
+ const webpack_1 = require("webpack");
10
+ const api_1 = require("../../api");
11
+ const utils_1 = require("../../utils");
12
+ const UnifiedLoaderGenerator_1 = require("../unified-loader/UnifiedLoaderGenerator");
13
+ class BlocksDirectoryLoaderEmitterPlugin extends api_1.CoordinatableEmitter {
14
+ coordinator;
15
+ config;
16
+ dest;
17
+ constructor(coordinator, config, dest) {
18
+ super();
19
+ this.coordinator = coordinator;
20
+ this.config = config;
21
+ this.dest = dest;
22
+ }
23
+ provides = ["unified-loader"];
24
+ get requires() {
25
+ return [`blocks-directory:${this.dest.destination}`];
26
+ }
27
+ get defaultCompilationName() {
28
+ return `blockdir-loader:${this.dest.destination}`;
29
+ }
30
+ apply(compiler) {
31
+ super.apply(compiler);
32
+ compiler.hooks.thisCompilation.tap(this.constructor.name, compilation => {
33
+ compilation.hooks.processAssets.tapPromise({ name: this.constructor.name, stage: webpack_1.Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL }, async () => {
34
+ const blockData = Object.create(null);
35
+ const bindableBlockAttributes = Object.create(null);
36
+ const collectedHandles = { script: [], script_module: [], style: [] };
37
+ const emittedBlocks = Object.fromEntries(this.coordinator.getData(`blocks-directory:${this.dest.destination}`)
38
+ .flatMap(Object.entries)
39
+ .sort(([a], [b]) => a.localeCompare(b)));
40
+ const relevantAssetToEntryMapping = Object.create(null);
41
+ for (const [asset, data] of Object.entries(await this.coordinator.getHandles(compilation))) {
42
+ if ((0, api_1.isBlockEntryOptionsHolder)(data) && emittedBlocks[data.options.blockJsonAssetAbsoluteSrc]) {
43
+ (relevantAssetToEntryMapping[data.options.blockJsonAssetAbsoluteSrc] ??= []).push([asset, data]);
44
+ }
45
+ }
46
+ for (const [blockJsonAbsoluteSrc, { blockJsonAssetName, blockJson }] of Object.entries(emittedBlocks)) {
47
+ const sourceDir = (0, node_path_1.dirname)(blockJsonAbsoluteSrc);
48
+ const outputDir = (0, node_path_1.join)(compilation.compiler.outputPath, (0, node_path_1.dirname)(blockJsonAssetName));
49
+ const pathsNeedRemapping = !this.config.standaloneBlocks && blockJson.plaudit !== "simple";
50
+ const preppedBlockJson = utils_1.nonFreezingImmer.produce(blockJson, draftBlockJson => {
51
+ BlocksDirectoryLoaderEmitterPlugin.remapReferencedPHPFilesOnKey(draftBlockJson, "setup", pathsNeedRemapping, sourceDir, outputDir, compilation, true);
52
+ BlocksDirectoryLoaderEmitterPlugin.remapReferencedPHPFilesOnKey(draftBlockJson, "variations", pathsNeedRemapping, sourceDir, outputDir, compilation, false);
53
+ BlocksDirectoryLoaderEmitterPlugin.handleExperimentalBlockSupportsFlags(draftBlockJson);
54
+ const hashes = relevantAssetToEntryMapping[blockJsonAbsoluteSrc]?.map(v => v[1].finalizedHandleMetadata.version) ?? [];
55
+ const hashForVersion = BlocksDirectoryLoaderEmitterPlugin.hashThingForAsset([JSON.stringify(draftBlockJson), ...hashes].join("~"));
56
+ if (draftBlockJson["version"]) {
57
+ draftBlockJson["version"] = `${draftBlockJson["version"]}-${hashForVersion}`;
58
+ }
59
+ else {
60
+ draftBlockJson["version"] = hashForVersion;
61
+ }
62
+ for (const [name, attr] of Object.entries(draftBlockJson.attributes ?? {})) {
63
+ if ("supports-bindings" in attr) {
64
+ const supportsBindings = attr["supports-bindings"];
65
+ delete attr["supports-bindings"];
66
+ if (supportsBindings) {
67
+ if (!bindableBlockAttributes[draftBlockJson["name"]]?.push(name)) { // This will "return" a falsey value if push fails or is not available
68
+ bindableBlockAttributes[draftBlockJson["name"]] = [name];
69
+ }
70
+ }
71
+ }
72
+ }
73
+ BlocksDirectoryLoaderEmitterPlugin.normalizeRenderTemplate(draftBlockJson, pathsNeedRemapping, sourceDir, outputDir, compilation);
74
+ });
75
+ const blockDirName = (0, node_path_1.dirname)((0, node_path_1.relative)(this.dest.destination, blockJsonAssetName));
76
+ const assetDataForReplacement = relevantAssetToEntryMapping[blockJsonAbsoluteSrc] ?? [];
77
+ blockData[blockDirName] = utils_1.nonFreezingImmer.produce(Object.fromEntries(Object.entries(preppedBlockJson).filter(e => e[0] !== '$schema')), draftBlockJson => {
78
+ BlocksDirectoryLoaderEmitterPlugin.doFileOrHandleReplacements(compilation, draftBlockJson, assetDataForReplacement, (_, data) => data.handle);
79
+ });
80
+ const blockJsonAssetPathPrefix = (0, node_path_1.join)(this.dest.destination, blockDirName);
81
+ const emittableBlockJson = utils_1.nonFreezingImmer.produce(preppedBlockJson, draftBlockJson => {
82
+ BlocksDirectoryLoaderEmitterPlugin.doFileOrHandleReplacements(compilation, draftBlockJson, assetDataForReplacement, asset => `file:./${(0, node_path_1.relative)(blockJsonAssetPathPrefix, asset)}`);
83
+ });
84
+ compilation[blockJsonAssetName in compilation.assets ? 'updateAsset' : 'emitAsset'](blockJsonAssetName, new webpack_1.sources.RawSource(JSON.stringify(emittableBlockJson, undefined, " ")));
85
+ for (const [, data] of assetDataForReplacement) {
86
+ collectedHandles[data.type].push((0, api_1.convertToFinalHandleData)(data, this.dest.destination));
87
+ }
88
+ }
89
+ this.emitBlockdirLoaderPHP(compilation, bindableBlockAttributes, blockData, collectedHandles);
90
+ });
91
+ });
92
+ }
93
+ emitBlockdirLoaderPHP(compilation, bindableBlockAttributes, blockData, collectedHandles) {
94
+ const emitLoader = (writer) => {
95
+ (0, api_1.appendBlockManagerInitCall)(writer);
96
+ (0, api_1.appendAssetRegistrations)(compilation, writer, collectedHandles);
97
+ const entries = Object.entries(bindableBlockAttributes);
98
+ const supportedAttributes = new expressions_1.Var("supported_block_attributes", "?array");
99
+ if ((0, utils_1.arrayIsLength)(entries, 1)) {
100
+ writer.filter(`block_bindings_supported_attributes_${entries[0][0]}`, writer => {
101
+ const parameters = entries[0][1];
102
+ if (parameters.length === 1) {
103
+ writer.appendExpr(new expressions_1.Assignment(supportedAttributes, parameters[0], true));
104
+ }
105
+ else {
106
+ writer.call("array_push", [supportedAttributes, ...parameters]);
107
+ }
108
+ writer.return(supportedAttributes);
109
+ }, { functionArgParameters: [supportedAttributes] });
110
+ }
111
+ else if (entries.length > 1) {
112
+ const compiledBindingSupportingAttributes = new expressions_1.Var("compiled_binding_supporting_attributes");
113
+ writer.assignment("compiled_binding_supporting_attributes", new expressions_1.PHPArray(bindableBlockAttributes));
114
+ const blockType = new expressions_1.Var("block_type", "?string");
115
+ writer.filter(`block_bindings_supported_attributes`, writer => {
116
+ writer
117
+ .if(expressions_1.Op.or(expressions_1.Expr.call("empty", [blockType]), expressions_1.Expr.call("empty", [new expressions_1.ArrayAccess(compiledBindingSupportingAttributes, blockType)])))
118
+ .return(supportedAttributes)
119
+ .endIf()
120
+ .call("array_push", [supportedAttributes, new expressions_1.Op("...", new expressions_1.ArrayAccess(compiledBindingSupportingAttributes, blockType))])
121
+ .return(supportedAttributes);
122
+ }, { functionArgParameters: [supportedAttributes, blockType], useVars: [compiledBindingSupportingAttributes] });
123
+ }
124
+ const blockdirConfig = new expressions_1.Var("blockdirConfig", "array");
125
+ writer.assign(blockdirConfig, new expressions_1.EnclosedLiteral((0, api_1.makeEmittableConfigPHP)(blockData, false, "\t")));
126
+ const reflectionClass = expressions_1.Expr.namespacedRef("ReflectionClass");
127
+ const targetClass = expressions_1.Expr.namespacedRef("WP_Block_Metadata_Registry");
128
+ const reflectedClass = new expressions_1.Var("reflectedClass", targetClass);
129
+ const collections = new expressions_1.Var("collections", "?array");
130
+ writer
131
+ .if(targetClass.isAvailable())
132
+ .assign(reflectedClass, reflectionClass.construct(targetClass.toTestableName()))
133
+ .assign(collections, new expressions_1.InstanceAccess(reflectedClass, expressions_1.Expr.call('getStaticPropertyValue', [expressions_1.Literal.primitive('collections')])))
134
+ .assign(new expressions_1.ArrayAccess(collections, expressions_1.Constants.__DIR__), new expressions_1.PHPArray({ metadata: blockdirConfig, manifest: expressions_1.Constants.__FILE__ }))
135
+ .appendExpr(new expressions_1.InstanceAccess(reflectedClass, expressions_1.Expr.call('setStaticPropertyValue', [expressions_1.Literal.primitive('collections'), collections])))
136
+ .endIf();
137
+ //TODO: Consider unrolling this if there are less than 5 blocks
138
+ const blockInfo = new expressions_1.Var("blockInfo");
139
+ const blockJSONFile = new expressions_1.Var("blockJSONFile");
140
+ writer
141
+ .foreach(blockdirConfig, blockInfo, blockJSONFile, writer => {
142
+ const skipInnerBlocks = new expressions_1.ArrayAccess(blockInfo, expressions_1.Literal.primitive('skipInnerBlocks'));
143
+ const jsonFilePath = expressions_1.Op.concat(expressions_1.Constants.__DIR__, expressions_1.Literal.primitive('/'), blockJSONFile);
144
+ const additionalMetadata = expressions_1.Expr.ternary(expressions_1.Expr.isset(skipInnerBlocks), new expressions_1.PHPArray({ skip_inner_blocks: skipInnerBlocks }), new expressions_1.PHPArray([]));
145
+ const errorMessage = expressions_1.Literal.interpolatedString(`The block.json file ${blockJSONFile} is listed in the blockdir.config, but does not represent a valid block.`);
146
+ writer
147
+ .if(expressions_1.Expr.call('register_block_type', [jsonFilePath, additionalMetadata]).not())
148
+ .call(expressions_1.Literal.name("trigger_error"), [errorMessage, expressions_1.Constants.E_USER_WARNING])
149
+ .endIf();
150
+ }, { enforceScope: 'none' });
151
+ };
152
+ const emitThemeJsonInjector = (writer) => {
153
+ if (this.config.useBlockSupportsAsThemeJsonDefaults) {
154
+ const copyableBlockSupports = [];
155
+ for (const { name, supports } of Object.values(blockData)) {
156
+ if (typeof name === 'string' && name && typeof supports === 'object' && supports && !Array.isArray(supports)) {
157
+ const flagProps = BlocksDirectoryLoaderEmitterPlugin.pickOutFlagPropsFromBlockSupports(supports);
158
+ if (flagProps) {
159
+ copyableBlockSupports.push([name, flagProps]);
160
+ }
161
+ }
162
+ }
163
+ if (copyableBlockSupports.length > 0) {
164
+ const themeJsonBlockSettings = new expressions_1.EnclosedLiteral((0, api_1.makeEmittableConfigPHP)({
165
+ version: 3,
166
+ settings: {
167
+ blocks: Object.fromEntries(copyableBlockSupports)
168
+ }
169
+ }, false, "\t"));
170
+ const theme_json = new expressions_1.Var("theme_json");
171
+ writer.filter('wp_theme_json_data_blocks', writer => {
172
+ const updateCall = new expressions_1.Call(expressions_1.Literal.name("update_with"), [themeJsonBlockSettings]);
173
+ writer.return(new expressions_1.InstanceAccess(theme_json, [updateCall]));
174
+ }, { functionArgParameters: [theme_json] });
175
+ }
176
+ }
177
+ };
178
+ const file = new php_writer_1.PHPFile();
179
+ const compatibilityMode = !this.config.useUnifiedLoader;
180
+ if (compatibilityMode) {
181
+ (0, utils_1.emitResolveBaseUriFunction)(file);
182
+ }
183
+ let writer;
184
+ if (this.dest.locations.lazyLoader) {
185
+ if (compatibilityMode) {
186
+ (0, utils_1.emitError)("Cannot use the lazyLoader while useUnifiedLoader is false", { compilation, rawIdentifier: this.dest.destination });
187
+ return;
188
+ }
189
+ writer = file.getWriter(this.config.targetNamespace);
190
+ for (const functionName of this.dest.locations.lazyLoader) {
191
+ writer.function(functionName, [], emitLoader);
192
+ }
193
+ emitThemeJsonInjector(writer);
194
+ }
195
+ else {
196
+ writer = file.getWriter("");
197
+ if (compatibilityMode) {
198
+ const dedupeHash = (0, node_crypto_1.createHash)('md5').update(this.dest.destination).digest("hex");
199
+ writer.function(`plaudit_compat_mode_blocks_loader_${dedupeHash}`, [], writer => {
200
+ const has_run_check = new expressions_1.Var("has_run_check", 'bool');
201
+ writer
202
+ .append(`static ${has_run_check} = false;`)
203
+ .if(has_run_check)
204
+ .append("return;")
205
+ .endIf()
206
+ .assign(has_run_check, expressions_1.Literal.primitive(true))
207
+ .action("init", emitLoader, { accountForAlreadyDoing: this.config.includePostInitFallback });
208
+ emitThemeJsonInjector(writer);
209
+ }, { returnType: 'void', includeExistenceCheck: true });
210
+ }
211
+ else {
212
+ writer.action("init", emitLoader, { accountForAlreadyDoing: this.config.includePostInitFallback });
213
+ emitThemeJsonInjector(writer);
214
+ }
215
+ if (compatibilityMode) {
216
+ writer.return(new expressions_1.PHPArray({ __metadata: { version: 3, scriptHandles: [], styleHandles: [] } }));
217
+ }
218
+ }
219
+ const assetName = (0, node_path_1.join)(this.dest.destination, compatibilityMode ? "blockdir.config.php" : "blockdir-loader.php");
220
+ (0, utils_1.emitPHPWriterAsAsset)(file, compilation, assetName);
221
+ this.coordinator.reportData(compilation, this, "unified-loader", {
222
+ group: `blocks-directory:${this.dest.destination}`,
223
+ requiresBaseURI: true,
224
+ action: file => file.require(assetName, { dirRelative: true, once: true }),
225
+ });
226
+ }
227
+ /*
228
+ * The block supports that have a boolean counterpart under theme.json's settings, as
229
+ * `settings key -> {support prop: settings prop}`. This is an allow-list rather than an ignore-list
230
+ * because most supports (align, alignWide, anchor, contentRole, inserter, interactivity, listView,
231
+ * plaudit, ...) have no theme.json settings equivalent at all, and the ones that do don't always
232
+ * share a name: typography's fontSize is settings.typography.customFontSize, and Gutenberg still
233
+ * ships several of these under an __experimental prefix.
234
+ */
235
+ static THEME_JSON_FLAG_PROPS = {
236
+ color: { background: 'background', link: 'link', text: 'text' },
237
+ dimensions: { aspectRatio: 'aspectRatio', minHeight: 'minHeight' },
238
+ spacing: { blockGap: 'blockGap', margin: 'margin', padding: 'padding' },
239
+ typography: {
240
+ fontSize: 'customFontSize',
241
+ lineHeight: 'lineHeight',
242
+ textAlign: 'textAlign',
243
+ fontStyle: 'fontStyle', __experimentalFontStyle: 'fontStyle',
244
+ fontWeight: 'fontWeight', __experimentalFontWeight: 'fontWeight',
245
+ letterSpacing: 'letterSpacing', __experimentalLetterSpacing: 'letterSpacing',
246
+ textDecoration: 'textDecoration', __experimentalTextDecoration: 'textDecoration',
247
+ textTransform: 'textTransform', __experimentalTextTransform: 'textTransform',
248
+ writingMode: 'writingMode', __experimentalWritingMode: 'writingMode'
249
+ }
250
+ };
251
+ static pickOutFlagPropsFromBlockSupports(supports) {
252
+ function isRecord(value) {
253
+ return typeof value === 'object' && !!value && !Array.isArray(value);
254
+ }
255
+ let addedProp = false;
256
+ const res = {};
257
+ for (const [settingsKey, props] of Object.entries(BlocksDirectoryLoaderEmitterPlugin.THEME_JSON_FLAG_PROPS)) {
258
+ const support = supports[settingsKey];
259
+ if (!isRecord(support)) {
260
+ continue;
261
+ }
262
+ const flags = {};
263
+ for (const [supportProp, settingsProp] of Object.entries(props)) {
264
+ // A sided support such as `"margin": ["top", "bottom"]` is still just "on" as far as theme.json is concerned
265
+ if (support[supportProp]) {
266
+ flags[settingsProp] = true;
267
+ res[settingsKey] = flags;
268
+ addedProp = true;
269
+ }
270
+ }
271
+ }
272
+ return addedProp ? res : undefined;
273
+ }
274
+ static doFileOrHandleReplacements(compilation, blockJson, assetDataForReplacement, getter) {
275
+ for (const [asset, data] of assetDataForReplacement) {
276
+ const { blockJsonAssetAbsoluteSrc, entrypointField, originalEntrypointFieldValue } = data.options;
277
+ const fieldValue = blockJson[entrypointField];
278
+ if (originalEntrypointFieldValue !== undefined) {
279
+ if (originalEntrypointFieldValue === fieldValue) {
280
+ blockJson[entrypointField] = getter(asset, data);
281
+ }
282
+ else if (typeof fieldValue === 'string') {
283
+ blockJson[entrypointField] = [fieldValue, getter(asset, data)];
284
+ }
285
+ else if (Array.isArray(fieldValue)) {
286
+ const replacementPos = fieldValue.indexOf(originalEntrypointFieldValue);
287
+ if (replacementPos === -1) {
288
+ compilation.warnings.push((0, utils_1.newWebpackErrorForFile)(`Unable to find ${originalEntrypointFieldValue} in ${entrypointField}`, blockJsonAssetAbsoluteSrc));
289
+ blockJson[entrypointField] = fieldValue.concat(getter(asset, data));
290
+ }
291
+ else {
292
+ blockJson[entrypointField] = fieldValue.toSpliced(replacementPos, 1, getter(asset, data));
293
+ }
294
+ }
295
+ else {
296
+ blockJson[entrypointField] = getter(asset, data);
297
+ }
298
+ }
299
+ else {
300
+ if (typeof fieldValue === 'string') {
301
+ blockJson[entrypointField] = [fieldValue, getter(asset, data)];
302
+ }
303
+ else if (Array.isArray(fieldValue)) {
304
+ blockJson[entrypointField] = fieldValue.concat(getter(asset, data));
305
+ }
306
+ else {
307
+ blockJson[entrypointField] = getter(asset, data);
308
+ }
309
+ }
310
+ }
311
+ }
312
+ static hashThingForAsset(thing) {
313
+ return (0, node_crypto_1.createHash)('md5').update(thing).digest("hex").substring(0, 20).toLowerCase();
314
+ }
315
+ static findCommonAncestor(...paths) {
316
+ return paths.map(p => (0, node_path_1.normalize)(p).split(node_path_1.sep)).reduce((prior, current) => {
317
+ for (let i = 0, limit = Math.min(prior.length, current.length); i < limit; i++) {
318
+ if (prior[i] !== current[i]) {
319
+ return prior.slice(0, i);
320
+ }
321
+ }
322
+ return current.length < prior.length ? current : prior;
323
+ });
324
+ }
325
+ static findRelativeRouteBetween(path1, path2) {
326
+ const commonAncestor = BlocksDirectoryLoaderEmitterPlugin.findCommonAncestor(path1, path2);
327
+ return (".." + node_path_1.sep).repeat(path1.split(node_path_1.sep).length - commonAncestor.length) + (0, node_path_1.relative)(commonAncestor.join(node_path_1.sep), path2);
328
+ }
329
+ static remapReferencedPHPFilesOnKey(blockJson, key, pathsNeedRemapping, sourceDir, outputDir, compilation, inPlaudit) {
330
+ const rawValue = (inPlaudit ? blockJson["plaudit"] : blockJson)?.[key];
331
+ let rawFiles;
332
+ let deleteOnEmpty = true;
333
+ if (typeof rawValue === 'string') {
334
+ rawFiles = [rawValue];
335
+ }
336
+ else if (Array.isArray(rawValue) && rawValue.length > 0) {
337
+ const fileReferences = rawValue.filter((value) => typeof value === 'string' && value.startsWith("file:./"));
338
+ if (fileReferences.length === rawValue.length) {
339
+ rawFiles = fileReferences;
340
+ }
341
+ else {
342
+ if (fileReferences.length !== 0) {
343
+ compilation.warnings.push((0, utils_1.newWebpackErrorForFile)(`Encountered a block with a mixture of file-reference and non-file-reference elements in the "${inPlaudit ? 'plaudit.' : ''}${key}" property`, (0, node_path_1.join)(sourceDir, 'block.json')));
344
+ rawFiles = fileReferences;
345
+ }
346
+ else {
347
+ rawFiles = [`${key}.php`]; // We want to emit an error if both an appropriately-named file AND an incompatible value exist, so we still need to do the check
348
+ }
349
+ deleteOnEmpty = false;
350
+ }
351
+ }
352
+ else {
353
+ if (rawValue && (!Array.isArray(rawValue) || rawValue.length === 0)) {
354
+ deleteOnEmpty = false;
355
+ }
356
+ rawFiles = [`${key}.php`];
357
+ }
358
+ const mappedFiles = pathsNeedRemapping
359
+ ? rawFiles
360
+ .map(p => (0, node_path_1.normalize)((0, node_path_1.join)(sourceDir, (0, utils_1.stripFilePrefix)(p))))
361
+ .filter(node_fs_1.existsSync)
362
+ .map(p => `file:./${BlocksDirectoryLoaderEmitterPlugin.findRelativeRouteBetween(outputDir, p)}`)
363
+ : rawFiles
364
+ .filter(p => (0, node_fs_1.existsSync)((0, node_path_1.normalize)((0, node_path_1.join)(sourceDir, (0, utils_1.stripFilePrefix)(p)))));
365
+ if (mappedFiles.length === 0) {
366
+ if (deleteOnEmpty && rawValue !== undefined) {
367
+ delete (inPlaudit ? blockJson["plaudit"] : blockJson)[key];
368
+ }
369
+ }
370
+ else {
371
+ if (inPlaudit && typeof blockJson["plaudit"] !== 'object') {
372
+ if (blockJson["plaudit"] === "native") {
373
+ blockJson["plaudit"] = { type: "native" };
374
+ }
375
+ else {
376
+ blockJson["plaudit"] = {};
377
+ }
378
+ }
379
+ (inPlaudit ? blockJson["plaudit"] : blockJson)[key] = mappedFiles.length === 1 ? mappedFiles[0] : mappedFiles;
380
+ }
381
+ }
382
+ static normalizeRenderTemplate(blockJson, pathsNeedRemapping, sourceDir, outputDir, compilation) {
383
+ if (blockJson["acf"]) {
384
+ if (blockJson["acf"]["renderTemplate"]) {
385
+ blockJson["render_template"] = blockJson["acf"]["renderTemplate"];
386
+ delete blockJson["acf"]["renderTemplate"];
387
+ }
388
+ else if (blockJson["acf"]["render_template"]) {
389
+ blockJson["render_template"] = blockJson["acf"]["render_template"];
390
+ delete blockJson["acf"]["render_template"];
391
+ }
392
+ }
393
+ const blockName = blockJson["name"]?.toString() || "non-existent/block-name";
394
+ let rawRenderTemplate = blockJson["render"] ?? blockJson["render_template"];
395
+ rawRenderTemplate = (rawRenderTemplate
396
+ ? (typeof rawRenderTemplate === 'string' ? [rawRenderTemplate] : rawRenderTemplate)
397
+ : [`${blockName.substring(blockName.indexOf('/') + 1)}.php`, "template.php", "template.twig"]);
398
+ const renderTemplate = pathsNeedRemapping
399
+ ? rawRenderTemplate
400
+ .map(p => (0, node_path_1.normalize)((0, node_path_1.join)(sourceDir, (0, utils_1.stripFilePrefix)(p))))
401
+ .filter(node_fs_1.existsSync)
402
+ .map(p => `file:./${BlocksDirectoryLoaderEmitterPlugin.findRelativeRouteBetween(outputDir, p)}`)
403
+ : rawRenderTemplate
404
+ .filter(p => (0, node_fs_1.existsSync)((0, node_path_1.normalize)((0, node_path_1.join)(sourceDir, (0, utils_1.stripFilePrefix)(p)))));
405
+ if (renderTemplate.length === 0) {
406
+ delete blockJson["render_template"];
407
+ delete blockJson["render"];
408
+ }
409
+ else {
410
+ let validTemplateLocation, invalidTemplateLocation;
411
+ if (blockJson["acf"] || (blockJson["plaudit"] && (blockJson["plaudit"] !== "native" && (typeof blockJson["plaudit"] !== 'object' || blockJson["plaudit"]?.["type"] !== "native")))) {
412
+ // ACF-like blocks need to have the template stored in render_template.
413
+ // Because we can statically detect ACF-like blocks, we can make the move here instead of at run-time.
414
+ validTemplateLocation = "render_template";
415
+ invalidTemplateLocation = "render";
416
+ }
417
+ else {
418
+ validTemplateLocation = "render";
419
+ invalidTemplateLocation = "render_template";
420
+ }
421
+ delete blockJson[invalidTemplateLocation];
422
+ if (renderTemplate.length > 1) {
423
+ compilation.warnings.push((0, utils_1.newWebpackErrorForFile)("Encountered a block with multiple possible render files. Please set the render key in block.json to the intended one", (0, node_path_1.join)(sourceDir, 'block.json')));
424
+ blockJson[validTemplateLocation] = renderTemplate.find(p => p.endsWith(".php")) ?? renderTemplate[0];
425
+ }
426
+ else {
427
+ blockJson[validTemplateLocation] = renderTemplate[0];
428
+ }
429
+ }
430
+ }
431
+ static knownExperimentalProperties = ['border', 'defaultControls', 'fontFamily', 'fontWeight', 'fontStyle', 'letterSpacing', 'textTransform', 'textDecoration']
432
+ .map(prop => [prop, "__experimental" + prop.substring(0, 1).toUpperCase() + prop.substring(1)]);
433
+ static handleExperimentalBlockSupportsFlags(blockSupports) {
434
+ for (const [key, value] of Object.entries(blockSupports)) {
435
+ if (typeof value === 'object' && value && !Array.isArray(value)) {
436
+ BlocksDirectoryLoaderEmitterPlugin.handleExperimentalBlockSupportsFlags(value);
437
+ }
438
+ if (!key.startsWith("__experimental")) {
439
+ continue;
440
+ }
441
+ const realKey = key.substring(14, 15).toLowerCase() + key.substring(15);
442
+ if (!(realKey in blockSupports)) {
443
+ blockSupports[realKey] = value;
444
+ }
445
+ }
446
+ // This handles known currently-experimental properties
447
+ for (const [eventualKey, experimentalKey] of BlocksDirectoryLoaderEmitterPlugin.knownExperimentalProperties) {
448
+ if (eventualKey in blockSupports && !(experimentalKey in blockSupports)) {
449
+ blockSupports[experimentalKey] = blockSupports[eventualKey];
450
+ }
451
+ }
452
+ }
453
+ getCoordinatedEmissionTargets() {
454
+ return [UnifiedLoaderGenerator_1.UnifiedLoaderGenerator.emissionTarget(this.config)];
455
+ }
456
+ }
457
+ exports.BlocksDirectoryLoaderEmitterPlugin = BlocksDirectoryLoaderEmitterPlugin;
458
+ //# sourceMappingURL=BlocksDirectoryLoaderEmitterPlugin.js.map