@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,38 @@
1
+ import type { Compilation } from "webpack";
2
+ import type { PlauditWordpressWebpackConfig, WPModuleDependency } from "./api";
3
+ export type ParsedAssetJson = {
4
+ dependencies: WPModuleDependency[];
5
+ module_dependencies?: WPModuleDependency[];
6
+ version: string;
7
+ type?: 'module';
8
+ handle?: string;
9
+ };
10
+ export type ParsedAssetsJson = Record<string, ParsedAssetJson>;
11
+ export declare function isParsedAssetsJson(thing: unknown): thing is ParsedAssetsJson;
12
+ /** Unified-loader watch output: `dist` → `dist-dev` when SERVER_MODE is development. */
13
+ export declare function shouldWriteDistDev(config: Pick<PlauditWordpressWebpackConfig, 'outputDir' | 'useUnifiedLoader' | 'omitDistDev'>): boolean;
14
+ /**
15
+ * This MUST be kept in sync with the copy in @plaudit/dev-webpack-plugin
16
+ * @returns true for `dist-dev` (or any `*-dev` output folder produced by {@link shouldWriteDistDev}).
17
+ */
18
+ export declare function isDistDevOutputPath(outputPath: string): boolean;
19
+ export declare function applyStandards(config: PlauditWordpressWebpackConfig): PlauditWordpressWebpackConfig;
20
+ export declare function resolveStandard(standard: PlauditWordpressWebpackConfig['standard']): {
21
+ readonly useWebpackResourceFiltering: true;
22
+ readonly extensionsVersion: 3;
23
+ readonly plainEntrypointsVersion: 2;
24
+ readonly srcDir: "src";
25
+ readonly outputDir: "dist";
26
+ readonly useUnifiedLoader: true;
27
+ readonly onlyRunPostCSSOnPCSS: true;
28
+ } | undefined;
29
+ export declare function mergeModuleDependencyArrays(a: WPModuleDependency[] | undefined, b: WPModuleDependency[] | undefined): WPModuleDependency[] | undefined;
30
+ export declare function getAssetsJson(compilation: Compilation): ParsedAssetsJson;
31
+ export declare function tryGetAssetsJson(compilation: Compilation): ParsedAssetsJson | undefined;
32
+ export declare function dedent(text: TemplateStringsArray, ...values: unknown[]): string;
33
+ export declare function resolveLegacyBlockScriptsInFolder(folder: string): string[];
34
+ export type PromiseWithResolversAndValue<T> = ReturnType<typeof Promise.withResolvers<T>> & {
35
+ value: T | undefined;
36
+ };
37
+ export declare function promiseWithResolversAndValue<T>(): PromiseWithResolversAndValue<T>;
38
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAEzC,OAAO,KAAK,EAAC,6BAA6B,EAAE,kBAAkB,EAAC,MAAM,OAAO,CAAC;AAG7E,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,kBAAkB,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAC/D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAc5E;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,6BAA6B,EAAE,WAAW,GAAC,kBAAkB,GAAC,aAAa,CAAC,GAAG,OAAO,CAErI;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,6BAA6B,GAAG,6BAA6B,CAYnG;AACD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,6BAA6B,CAAC,UAAU,CAAC;;gCAK5D,CAAC;sCACK,CAAC;qBAClB,KAAK;wBACF,MAAM;;;cAOpB;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,kBAAkB,EAAE,GAAC,SAAS,EAAE,CAAC,EAAE,kBAAkB,EAAE,GAAC,SAAS,oCA0B/G;AAGD,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,oBAMrD;AACD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,gCASxD;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,UAqBtE;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,YAa/D;AAED,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAC;IAAC,KAAK,EAAE,CAAC,GAAC,SAAS,CAAA;CAAC,CAAC;AAC/G,wBAAgB,4BAA4B,CAAC,CAAC,KAAK,4BAA4B,CAAC,CAAC,CAAC,CAYjF"}
package/dist/shared.js ADDED
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isParsedAssetsJson = isParsedAssetsJson;
4
+ exports.shouldWriteDistDev = shouldWriteDistDev;
5
+ exports.isDistDevOutputPath = isDistDevOutputPath;
6
+ exports.applyStandards = applyStandards;
7
+ exports.resolveStandard = resolveStandard;
8
+ exports.mergeModuleDependencyArrays = mergeModuleDependencyArrays;
9
+ exports.getAssetsJson = getAssetsJson;
10
+ exports.tryGetAssetsJson = tryGetAssetsJson;
11
+ exports.dedent = dedent;
12
+ exports.resolveLegacyBlockScriptsInFolder = resolveLegacyBlockScriptsInFolder;
13
+ exports.promiseWithResolversAndValue = promiseWithResolversAndValue;
14
+ const node_fs_1 = require("node:fs");
15
+ const node_path_1 = require("node:path");
16
+ const utils_1 = require("./utils");
17
+ function isParsedAssetsJson(thing) {
18
+ if (!thing || typeof thing !== 'object') {
19
+ return false;
20
+ }
21
+ for (const value of Object.values(thing)) {
22
+ if ((!value || typeof value !== 'object') ||
23
+ (!('dependencies' in value) || !Array.isArray(value.dependencies) || (value.dependencies.length > 0 && !value.dependencies.every(d => typeof d === 'string' || (d && typeof d === 'object' && typeof d.id === 'string')))) ||
24
+ (!('version' in value) || !value.version || typeof value.version !== 'string')) {
25
+ return false;
26
+ }
27
+ }
28
+ return true;
29
+ }
30
+ /** Unified-loader watch output: `dist` → `dist-dev` when SERVER_MODE is development. */
31
+ function shouldWriteDistDev(config) {
32
+ return !!(config.outputDir && config.useUnifiedLoader && !config.omitDistDev && (process.env['SERVER_MODE'] ?? 'development') === 'development');
33
+ }
34
+ /**
35
+ * This MUST be kept in sync with the copy in @plaudit/dev-webpack-plugin
36
+ * @returns true for `dist-dev` (or any `*-dev` output folder produced by {@link shouldWriteDistDev}).
37
+ */
38
+ function isDistDevOutputPath(outputPath) {
39
+ return (0, node_path_1.basename)(outputPath.replace(/[/\\]+$/, '')).endsWith('-dev');
40
+ }
41
+ function applyStandards(config) {
42
+ switch (config.standard) {
43
+ case '2026-03-13':
44
+ return {
45
+ ...resolveStandard('2026-03-13'),
46
+ ...config
47
+ };
48
+ case undefined:
49
+ return config;
50
+ default:
51
+ throw `Invalid standard: ${config.standard}`;
52
+ }
53
+ }
54
+ function resolveStandard(standard) {
55
+ switch (standard) {
56
+ case "2026-03-13":
57
+ return {
58
+ useWebpackResourceFiltering: true,
59
+ extensionsVersion: 3,
60
+ plainEntrypointsVersion: 2,
61
+ srcDir: "src",
62
+ outputDir: "dist",
63
+ useUnifiedLoader: true,
64
+ onlyRunPostCSSOnPCSS: true,
65
+ };
66
+ default:
67
+ return undefined;
68
+ }
69
+ }
70
+ function mergeModuleDependencyArrays(a, b) {
71
+ if (a === undefined || a.length === 0) {
72
+ return b;
73
+ }
74
+ if (b === undefined || b.length === 0) {
75
+ return a;
76
+ }
77
+ const seenModuleDeps = new Map();
78
+ return [...a, ...b].filter(dep => {
79
+ let id, type;
80
+ if (typeof dep === 'string') {
81
+ id = dep;
82
+ type = 'static';
83
+ }
84
+ else {
85
+ id = dep.id;
86
+ type = dep.import ?? 'static';
87
+ }
88
+ if (seenModuleDeps.has(id)) {
89
+ if (type !== seenModuleDeps.get(id)) {
90
+ throw (0, utils_1.newCleanWebpackError)(`Encountered conflicting import types for the "${id}" module dependency`);
91
+ }
92
+ return false;
93
+ }
94
+ seenModuleDeps.set(id, type);
95
+ return true;
96
+ });
97
+ }
98
+ const missingAssetsJsonMessage = "assets.json is unexpectedly missing";
99
+ function getAssetsJson(compilation) {
100
+ const asset = compilation.getAsset("assets.json");
101
+ if (asset && isParsedAssetsJson(asset.info["parsed-assets-json"])) {
102
+ return asset.info["parsed-assets-json"];
103
+ }
104
+ throw new Error(missingAssetsJsonMessage);
105
+ }
106
+ function tryGetAssetsJson(compilation) {
107
+ try {
108
+ return getAssetsJson(compilation);
109
+ }
110
+ catch (e) {
111
+ if (e instanceof Error && e.message === missingAssetsJsonMessage) {
112
+ return undefined; // If the file hasn't been created yet, return undefined
113
+ }
114
+ throw e; // Otherwise, re-throw the error
115
+ }
116
+ }
117
+ function dedent(text, ...values) {
118
+ const lines = text.reduce((result, part, i) => result + String(values[i - 1]) + part).split(/\r?\n/);
119
+ // A template that opens and closes on its own line frames the content with two throwaway lines
120
+ if (lines[0]?.trim() === "") {
121
+ lines.shift();
122
+ }
123
+ if (lines.length > 1 && lines.at(-1)?.trim() === "") {
124
+ lines.pop();
125
+ }
126
+ // Only the lines with content get a say in the indent, and a line break must never count as one
127
+ const indent = lines.filter(line => line.trim() !== "")
128
+ .reduce((shortest, line) => {
129
+ const lineIndent = /^[ \t]*/.exec(line)?.[0] ?? "";
130
+ return shortest === undefined || lineIndent.length < shortest.length ? lineIndent : shortest;
131
+ }, undefined);
132
+ return indent
133
+ ? lines.map(line => line.startsWith(indent) ? line.substring(indent.length) : line).join("\n")
134
+ : lines.join("\n");
135
+ }
136
+ function resolveLegacyBlockScriptsInFolder(folder) {
137
+ const blockScriptEntrypoints = [];
138
+ for (const blockDir of (0, node_fs_1.readdirSync)(folder)) {
139
+ const fullBlockDir = (0, node_path_1.join)(folder, blockDir);
140
+ const packageJSON = (0, node_path_1.join)(fullBlockDir, 'package.json');
141
+ if ((0, node_fs_1.existsSync)(packageJSON)) {
142
+ const main = JSON.parse((0, node_fs_1.readFileSync)(packageJSON, 'utf8'))['main'];
143
+ if (main && (0, node_fs_1.existsSync)((0, node_path_1.join)(fullBlockDir, main))) {
144
+ blockScriptEntrypoints.push((0, node_path_1.join)(fullBlockDir, main));
145
+ }
146
+ }
147
+ }
148
+ return blockScriptEntrypoints;
149
+ }
150
+ function promiseWithResolversAndValue() {
151
+ const { promise, resolve, reject } = Promise.withResolvers();
152
+ const res = {
153
+ promise: promise.then(v => {
154
+ res.value = v;
155
+ return v;
156
+ }),
157
+ resolve,
158
+ reject,
159
+ value: undefined
160
+ };
161
+ return res;
162
+ }
163
+ //# sourceMappingURL=shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qCAA8D;AAC9D,yCAAyC;AAKzC,mCAA6C;AAU7C,4BAAmC,KAAc;IAChD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAc,EAAE,CAAC;QACvD,IACC,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;YACrC,CAAC,CAAC,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1N,CAAC,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,EAC7E,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,wFAAwF;AACxF,4BAAmC,MAAyF;IAC3H,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,KAAK,aAAa,CAAC,CAAC;AAClJ,CAAC;AAED;;;GAGG;AACH,6BAAoC,UAAkB;IACrD,OAAO,IAAA,oBAAQ,EAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrE,CAAC;AAED,wBAA+B,MAAqC;IACnE,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,YAAY;YAChB,OAAO;gBACN,GAAG,eAAe,CAAC,YAAY,CAAC;gBAChC,GAAG,MAAM;aACA,CAAC;QACZ,KAAK,SAAS;YACb,OAAO,MAAM,CAAC;QACf;YACC,MAAM,qBAAqB,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;AACF,CAAC;AACD,yBAAgC,QAAmD;IAClF,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,YAAY;YAChB,OAAO;gBACN,2BAA2B,EAAE,IAAI;gBACjC,iBAAiB,EAAE,CAAC;gBACpB,uBAAuB,EAAE,CAAC;gBAC1B,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,MAAM;gBACjB,gBAAgB,EAAE,IAAI;gBACtB,oBAAoB,EAAE,IAAI;aACjB,CAAC;QACZ;YACC,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED,qCAA4C,CAAiC,EAAE,CAAiC;IAC/G,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,CAAC;IACV,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAChC,IAAI,EAAU,EAAE,IAAY,CAAC;QAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC7B,EAAE,GAAG,GAAG,CAAC;YACT,IAAI,GAAG,QAAQ,CAAC;QACjB,CAAC;aAAM,CAAC;YACP,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC;QAC/B,CAAC;QACD,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5B,IAAI,IAAI,KAAK,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAA,4BAAoB,EAAC,iDAAiD,EAAE,qBAAqB,CAAC,CAAC;YACtG,CAAC;YACD,OAAO,KAAK,CAAC;QACd,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC,CAAC,CAAA;AACH,CAAC;AAED,MAAM,wBAAwB,GAAG,qCAAqC,CAAC;AACvE,uBAA8B,WAAwB;IACrD,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC;QACnE,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC3C,CAAC;AACD,0BAAiC,WAAwB;IACxD,IAAI,CAAC;QACJ,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,wBAAwB,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC,CAAC,wDAAwD;QAC3E,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,gCAAgC;IAC1C,CAAC;AACF,CAAC;AAED,gBAAuB,IAA0B,EAAE,GAAG,MAAiB;IACtE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAErG,+FAA+F;IAC/F,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7B,KAAK,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,KAAK,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;IAED,gGAAgG;IAChG,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;SACrD,MAAM,CAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnD,OAAO,QAAQ,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9F,CAAC,EAAE,SAAS,CAAC,CAAC;IAEf,OAAO,MAAM;QACZ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9F,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC;AAED,2CAAkD,MAAc;IAC/D,MAAM,sBAAsB,GAAG,EAAE,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,IAAA,qBAAW,EAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAA,gBAAI,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACvD,IAAI,IAAA,oBAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACnE,IAAI,IAAI,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClD,sBAAsB,CAAC,IAAI,CAAC,IAAA,gBAAI,EAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;YACvD,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,sBAAsB,CAAC;AAC/B,CAAC;AAGD;IACC,MAAM,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC,aAAa,EAAK,CAAC;IAC9D,MAAM,GAAG,GAAoC;QAC5C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YACzB,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QACF,OAAO;QACP,MAAM;QACN,KAAK,EAAE,SAAS;KACP,CAAC;IACX,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { WebpackError } from "webpack";
2
+ import type { DelegateContext, DiffErrorDesc } from "../api";
3
+ export declare function newCleanWebpackError(error: string | DiffErrorDesc | ConstructorParameters<typeof WebpackError>): WebpackError;
4
+ export declare function newWebpackErrorForFile(error: string | DiffErrorDesc | ConstructorParameters<typeof WebpackError>, file?: string): WebpackError;
5
+ export declare function emitError(message: string | DiffErrorDesc | Error, { rawIdentifier, compilation, errorBuilder }?: DelegateContext): undefined;
6
+ export declare function emitWarning(message: string | DiffErrorDesc | Error, { rawIdentifier, compilation, errorBuilder }?: DelegateContext): void;
7
+ //# sourceMappingURL=error-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/error-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;AAErC,OAAO,KAAK,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,QAAQ,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAC,aAAa,GAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,gBA4B1G;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAC,aAAa,GAAC,qBAAqB,CAAC,OAAO,YAAY,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,gBAM3H;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAC,aAAa,GAAC,KAAK,EAAE,EAAC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAC,GAAE,eAAoB,aAW9H;AACD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAC,aAAa,GAAC,KAAK,EAAE,EAAC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAC,GAAE,eAAoB,QAUhI"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newCleanWebpackError = newCleanWebpackError;
4
+ exports.newWebpackErrorForFile = newWebpackErrorForFile;
5
+ exports.emitError = emitError;
6
+ exports.emitWarning = emitWarning;
7
+ const webpack_1 = require("webpack");
8
+ function newCleanWebpackError(error) {
9
+ let res;
10
+ if (typeof error === 'string') {
11
+ res = new webpack_1.WebpackError(error);
12
+ }
13
+ else if (Array.isArray(error)) {
14
+ res = new webpack_1.WebpackError(...error);
15
+ }
16
+ else {
17
+ const display = error.display ?? 'text';
18
+ let received = error.received?.toString() ?? "UNKNOWN";
19
+ if (display === 'text') {
20
+ if (!received.includes('"')) {
21
+ received = `"${received}"`;
22
+ }
23
+ else if (!received.includes("'")) {
24
+ received = `'${received}'`;
25
+ }
26
+ }
27
+ let expected = error.expected?.toString() ?? "UNKNOWN";
28
+ if (display === 'text') {
29
+ if (!expected.includes('"')) {
30
+ expected = `"${expected}"`;
31
+ }
32
+ else if (!expected.includes("'")) {
33
+ expected = `'${expected}'`;
34
+ }
35
+ }
36
+ res = new webpack_1.WebpackError(`${error.text}. Received: ${received}, Expected: ${expected}`);
37
+ }
38
+ res.hideStack = true;
39
+ return res;
40
+ }
41
+ function newWebpackErrorForFile(error, file) {
42
+ const res = newCleanWebpackError(error);
43
+ if (file) {
44
+ res.file = file;
45
+ }
46
+ return res;
47
+ }
48
+ function emitError(message, { rawIdentifier, compilation, errorBuilder } = {}) {
49
+ const err = message instanceof Error ? message : (errorBuilder ?? newWebpackErrorForFile)(message, rawIdentifier);
50
+ if (compilation !== undefined) {
51
+ compilation.errors.push(err);
52
+ return undefined;
53
+ }
54
+ else {
55
+ if (err instanceof webpack_1.WebpackError && err.file) {
56
+ err.message = `${err.message}. For file: ${err.file}`;
57
+ }
58
+ throw err;
59
+ }
60
+ }
61
+ function emitWarning(message, { rawIdentifier, compilation, errorBuilder } = {}) {
62
+ const err = message instanceof Error ? message : (errorBuilder ?? newWebpackErrorForFile)(message, rawIdentifier);
63
+ if (compilation !== undefined) {
64
+ compilation.warnings.push(err);
65
+ }
66
+ else {
67
+ if (err instanceof webpack_1.WebpackError && err.file) {
68
+ err.message = `${err.message}. For file: ${err.file}`;
69
+ }
70
+ console.warn(err.message);
71
+ }
72
+ }
73
+ //# sourceMappingURL=error-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-helpers.js","sourceRoot":"","sources":["../../src/utils/error-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from "./error-helpers";
2
+ export * from "./misc";
3
+ export * from "./path-helpers";
4
+ export * from "./type-helpers";
5
+ export * from "./writer-utils";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,22 @@
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("./error-helpers"), exports);
18
+ __exportStar(require("./misc"), exports);
19
+ __exportStar(require("./path-helpers"), exports);
20
+ __exportStar(require("./type-helpers"), exports);
21
+ __exportStar(require("./writer-utils"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,yCAAuB;AACvB,iDAA+B;AAC/B,iDAA+B;AAC/B,iDAA+B"}
@@ -0,0 +1,4 @@
1
+ import { Immer } from "immer";
2
+ export declare const nonFreezingImmer: Immer;
3
+ export declare function unsafeRequire(id: string): any;
4
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC;AAE5B,eAAO,MAAM,gBAAgB,OAAiC,CAAC;AAE/D,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,OASvC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nonFreezingImmer = void 0;
4
+ exports.unsafeRequire = unsafeRequire;
5
+ const immer_1 = require("immer");
6
+ exports.nonFreezingImmer = new immer_1.Immer({ autoFreeze: false });
7
+ function unsafeRequire(id) {
8
+ try {
9
+ return require(id);
10
+ }
11
+ catch (e) {
12
+ if (typeof e === 'object' && e && 'code' in e && e.code === 'MODULE_NOT_FOUND') {
13
+ return undefined;
14
+ }
15
+ throw e;
16
+ }
17
+ }
18
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/utils/misc.ts"],"names":[],"mappings":";;;;AAAA,iCAA4B;AAEf,QAAA,gBAAgB,GAAG,IAAI,aAAK,CAAC,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC,CAAC;AAE/D,uBAA8B,EAAU;IACvC,IAAI,CAAC;QACJ,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAAC,OAAM,CAAC,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChF,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,MAAM,CAAC,CAAC;IACT,CAAC;AACF,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type Dirent } from "node:fs";
2
+ import { type MinEntryInfo } from "../api";
3
+ export declare function joinPossiblyAbsolutePaths(...paths: (string | undefined)[]): string;
4
+ export declare function groupEntrypointsByAssetName<T>(entrypoints: T[], entrypointNameExtractor: (t: T) => string): Record<string, T[]>;
5
+ export declare function dedupeEntrypointOutputPaths<T extends MinEntryInfo>(entrypoints: T[]): T[];
6
+ export declare function fileNameKebabCase(value: string): string;
7
+ export declare function kebabCase(value: string): string;
8
+ export declare function camelCaseForPHPLabels(value: string): string;
9
+ export declare function synchronousDirIterator(dirPath: string): Generator<Dirent<string>, void, unknown>;
10
+ /**
11
+ * This tests if the name starts with a "~", is equal to "example" or "examples", or includes "example" as a name segment
12
+ */
13
+ export declare function shouldBeSkipped(name: string): boolean;
14
+ export declare function stripFilePrefix(file: string): string;
15
+ export declare function stripFileProtocol(file: string): string;
16
+ //# sourceMappingURL=path-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,MAAM,EAAc,MAAM,SAAS,CAAC;AAGjD,OAAO,EAAgF,KAAK,YAAY,EAAC,MAAM,QAAQ,CAAC;AAKxH,wBAAgB,yBAAyB,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAC,SAAS,CAAC,EAAE,UAGvE;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAgB/H;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,YAAY,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAiBzF;AAiBD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,UAG9C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,UAGtC;AACD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,UAWlD;AAED,wBAAiB,sBAAsB,CAAC,OAAO,EAAE,MAAM,4CAWtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AACD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.joinPossiblyAbsolutePaths = joinPossiblyAbsolutePaths;
4
+ exports.groupEntrypointsByAssetName = groupEntrypointsByAssetName;
5
+ exports.dedupeEntrypointOutputPaths = dedupeEntrypointOutputPaths;
6
+ exports.fileNameKebabCase = fileNameKebabCase;
7
+ exports.kebabCase = kebabCase;
8
+ exports.camelCaseForPHPLabels = camelCaseForPHPLabels;
9
+ exports.synchronousDirIterator = synchronousDirIterator;
10
+ exports.shouldBeSkipped = shouldBeSkipped;
11
+ exports.stripFilePrefix = stripFilePrefix;
12
+ exports.stripFileProtocol = stripFileProtocol;
13
+ const node_fs_1 = require("node:fs");
14
+ const node_path_1 = require("node:path");
15
+ const api_1 = require("../api");
16
+ const type_helpers_1 = require("./type-helpers");
17
+ //TODO: Check all uses of this function to confirm that they are actually necessary
18
+ function joinPossiblyAbsolutePaths(...paths) {
19
+ return paths.filter((p) => !!p)
20
+ .reduce((res, p) => !res || (0, node_path_1.isAbsolute)(p) ? p : (0, node_path_1.join)(res, p), '') || '.';
21
+ }
22
+ function groupEntrypointsByAssetName(entrypoints, entrypointNameExtractor) {
23
+ const seenPaths = Object.create(null);
24
+ for (const entrypoint of entrypoints) {
25
+ const { dir, base } = (0, node_path_1.parse)(entrypointNameExtractor(entrypoint));
26
+ if (typeof entrypoint === 'object' && entrypoint && (0, api_1.isPlauditEntryOptions)(entrypoint)) {
27
+ const [name, ext] = (0, api_1.extractNameAndScriptOrStyleExt)(base);
28
+ const safeName = fileNameKebabCase(name);
29
+ if (safeName !== name) {
30
+ (seenPaths[(0, node_path_1.join)(dir, safeName)] ??= []).push({ ...entrypoint, name: safeName + ext });
31
+ continue;
32
+ }
33
+ }
34
+ const [name] = (0, api_1.extractNameAndScriptOrStyleExt)(base);
35
+ (seenPaths[(0, node_path_1.join)(dir, name)] ??= []).push(entrypoint);
36
+ }
37
+ return seenPaths;
38
+ }
39
+ function dedupeEntrypointOutputPaths(entrypoints) {
40
+ const perAssetPathGroupedEntrypoints = groupEntrypointsByAssetName(entrypoints, e => e.name);
41
+ const dedupedEntrypoints = [];
42
+ for (const groupedEntrypoints of Object.values(perAssetPathGroupedEntrypoints)) {
43
+ if ((0, type_helpers_1.arrayHasAtLeastLength)(groupedEntrypoints, 2)) {
44
+ const hasMultipleTypes = groupedEntrypoints.some(ep => ep.type !== groupedEntrypoints[0].type);
45
+ const typeCounts = {};
46
+ for (const entrypoint of groupedEntrypoints) {
47
+ const name = injectTypeAndCountToEntrypointName(entrypoint.name, entrypoint.type, typeCounts, hasMultipleTypes);
48
+ dedupedEntrypoints.push({ ...entrypoint, name });
49
+ }
50
+ }
51
+ else {
52
+ dedupedEntrypoints.push(...groupedEntrypoints);
53
+ }
54
+ }
55
+ return dedupedEntrypoints;
56
+ }
57
+ //TODO: CONSIDER: Modify this to still include the type name if the type name does not match the extension
58
+ function injectTypeAndCountToEntrypointName(entrypointName, type, typeCounts, hasMultipleTypes) {
59
+ const epExt = (0, node_path_1.extname)(entrypointName);
60
+ let entrypointBasename = entrypointName.substring(0, entrypointName.length - epExt.length);
61
+ if (hasMultipleTypes) {
62
+ entrypointBasename += "_" + type;
63
+ }
64
+ if (typeCounts[type] ??= 0) {
65
+ entrypointBasename += "-" + typeCounts[type].toString();
66
+ }
67
+ typeCounts[type] += 1;
68
+ return entrypointBasename;
69
+ }
70
+ function fileNameKebabCase(value) {
71
+ const kebabCaseRegexes = [[/([a-z])([A-Z])/g, "$1-$2"], [/[\s=-]+/g, "-"]];
72
+ return kebabCaseRegexes.reduce((str, [pattern, replacement]) => str.replace(pattern, replacement), value).toLowerCase();
73
+ }
74
+ function kebabCase(value) {
75
+ const kebabCaseRegexes = [[/([a-z])([A-Z])/g, "$1-$2"], [/[\s=_.-]+/g, "-"]];
76
+ return kebabCaseRegexes.reduce((str, [pattern, replacement]) => str.replace(pattern, replacement), value).toLowerCase();
77
+ }
78
+ function camelCaseForPHPLabels(value) {
79
+ return value
80
+ .replaceAll("/", "\\")
81
+ .split("\\")
82
+ .map(part => {
83
+ part = part
84
+ .replaceAll(/[^a-zA-Z0-9\x7f-\xff](\w|$)/ig, (_, chr) => typeof chr === 'string' ? chr.toUpperCase() : "")
85
+ .replaceAll(/\d[a-z]/g, match => match.toUpperCase());
86
+ return part.length > 1 ? part.substring(0, 1).toUpperCase() + part.substring(1) : part.toUpperCase();
87
+ })
88
+ .join("\\");
89
+ }
90
+ function* synchronousDirIterator(dirPath) {
91
+ try {
92
+ using dir = (0, node_fs_1.opendirSync)(dirPath);
93
+ for (let dirent; (dirent = dir.readSync()) !== null;) {
94
+ yield dirent;
95
+ }
96
+ }
97
+ catch (e) {
98
+ if (!(0, type_helpers_1.instanceOfNodeError)(e, Error) || e.code !== 'ENOENT') {
99
+ throw e;
100
+ }
101
+ }
102
+ }
103
+ /**
104
+ * This tests if the name starts with a "~", is equal to "example" or "examples", or includes "example" as a name segment
105
+ */
106
+ function shouldBeSkipped(name) {
107
+ return name.startsWith("~") || name === "example" || name === "examples" || name.startsWith("example.") || name.includes(".example.");
108
+ }
109
+ function stripFilePrefix(file) {
110
+ return file.startsWith("file:./") ? file.substring(7) : file;
111
+ }
112
+ function stripFileProtocol(file) {
113
+ return file.startsWith("file:") ? file.substring(5) : file;
114
+ }
115
+ //# sourceMappingURL=path-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-helpers.js","sourceRoot":"","sources":["../../src/utils/path-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare class PseudoSemaphore<T> {
2
+ private readonly name;
3
+ private flagSet;
4
+ private readonly flags;
5
+ private readonly debugMode;
6
+ constructor(name: string);
7
+ register(id: string): void;
8
+ resolve(id: string, value: T | undefined): void;
9
+ reject(id: string): void;
10
+ reset(id: string): void;
11
+ private getFlag;
12
+ private initializeFlag;
13
+ wait(): Promise<T[]>;
14
+ }
15
+ //# sourceMappingURL=pseudo-semaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pseudo-semaphore.d.ts","sourceRoot":"","sources":["../../src/utils/pseudo-semaphore.ts"],"names":[],"mappings":"AACA,qBAAa,eAAe,CAAC,CAAC;IAKV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJxC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6G;IACnI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,YAAoC,IAAI,EAAE,MAAM,EAAI;IAE7C,QAAQ,CAAC,EAAE,EAAE,MAAM,QAMzB;IAEM,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAC,SAAS,QAO5C;IAEM,MAAM,CAAC,EAAE,EAAE,MAAM,QAOvB;IAEM,KAAK,CAAC,EAAE,EAAE,MAAM,QAWtB;IAED,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,cAAc;IAOT,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAchC;CACD"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PseudoSemaphore = void 0;
4
+ //TODO: Remove this if possible
5
+ class PseudoSemaphore {
6
+ name;
7
+ flagSet = 0;
8
+ flags = new Map();
9
+ debugMode = false;
10
+ constructor(name) {
11
+ this.name = name;
12
+ }
13
+ register(id) {
14
+ if (this.flags.has(id)) {
15
+ throw new Error(`A semaphore with an id of "${id}" already exists`);
16
+ }
17
+ this.initializeFlag(id);
18
+ this.resolve(id, undefined);
19
+ }
20
+ resolve(id, value) {
21
+ if (this.debugMode) {
22
+ console.error("RESOLVED:", this.name, id);
23
+ }
24
+ const flag = this.getFlag(id);
25
+ flag[1].resolve(value); // This is deliberately unsafe - I would rather see a cascading failure than a silent one
26
+ flag[2] = true;
27
+ }
28
+ reject(id) {
29
+ if (this.debugMode) {
30
+ console.error("REJECTED:", this.name, id);
31
+ }
32
+ const flag = this.getFlag(id);
33
+ flag[1].reject(); // This is deliberately unsafe - I would rather see a cascading failure than a silent one
34
+ flag[2] = true;
35
+ }
36
+ reset(id) {
37
+ if (this.debugMode) {
38
+ console.error("RESET:", this.name, id);
39
+ }
40
+ const flag = this.getFlag(id);
41
+ // We reject if we reset early to avoid any permanently-hanging promises
42
+ if (!flag[2]) {
43
+ flag[1].reject(); // This is deliberately unsafe - I would rather see a cascading failure than a silent one
44
+ }
45
+ this.initializeFlag(id);
46
+ }
47
+ getFlag(id) {
48
+ const flag = this.flags.get(id);
49
+ if (flag === undefined) {
50
+ throw new Error(`A semaphore with an id of "${id}" does not exist`);
51
+ }
52
+ return flag;
53
+ }
54
+ initializeFlag(id) {
55
+ const { promise, ...controller } = Promise.withResolvers();
56
+ this.flags.set(id, [promise, controller, false]);
57
+ this.flagSet++;
58
+ promise.catch(() => { });
59
+ }
60
+ async wait() {
61
+ let currentFlagSet;
62
+ let res;
63
+ do {
64
+ currentFlagSet = this.flagSet;
65
+ if (this.debugMode) {
66
+ console.log("WAITING FOR:", this.name, currentFlagSet);
67
+ }
68
+ res = (await Promise.all(this.flags.values().map(flag => flag[0]))).filter(r => r !== undefined);
69
+ if (this.debugMode) {
70
+ console.log("POSSIBLY FINISHED WAITING FOR:", this.name, currentFlagSet);
71
+ }
72
+ } while (currentFlagSet !== this.flagSet);
73
+ return res;
74
+ }
75
+ }
76
+ exports.PseudoSemaphore = PseudoSemaphore;
77
+ //# sourceMappingURL=pseudo-semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pseudo-semaphore.js","sourceRoot":"","sources":["../../src/utils/pseudo-semaphore.ts"],"names":[],"mappings":"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"}