@rushstack/set-webpack-public-path-plugin 5.2.7 → 5.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.json CHANGED
@@ -1,6 +1,63 @@
1
1
  {
2
2
  "name": "@rushstack/set-webpack-public-path-plugin",
3
3
  "entries": [
4
+ {
5
+ "version": "5.2.11",
6
+ "tag": "@rushstack/set-webpack-public-path-plugin_v5.2.11",
7
+ "date": "Thu, 08 Jan 2026 01:12:30 GMT",
8
+ "comments": {
9
+ "dependency": [
10
+ {
11
+ "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.5.10`"
12
+ },
13
+ {
14
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.10`"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "version": "5.2.10",
21
+ "tag": "@rushstack/set-webpack-public-path-plugin_v5.2.10",
22
+ "date": "Wed, 07 Jan 2026 01:12:24 GMT",
23
+ "comments": {
24
+ "dependency": [
25
+ {
26
+ "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.5.9`"
27
+ },
28
+ {
29
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.9`"
30
+ }
31
+ ]
32
+ }
33
+ },
34
+ {
35
+ "version": "5.2.9",
36
+ "tag": "@rushstack/set-webpack-public-path-plugin_v5.2.9",
37
+ "date": "Mon, 05 Jan 2026 16:12:50 GMT",
38
+ "comments": {
39
+ "dependency": [
40
+ {
41
+ "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.5.8`"
42
+ },
43
+ {
44
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.8`"
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ "version": "5.2.8",
51
+ "tag": "@rushstack/set-webpack-public-path-plugin_v5.2.8",
52
+ "date": "Thu, 18 Dec 2025 01:13:04 GMT",
53
+ "comments": {
54
+ "patch": [
55
+ {
56
+ "comment": "Fix support for newer webpack typings."
57
+ }
58
+ ]
59
+ }
60
+ },
4
61
  {
5
62
  "version": "5.2.7",
6
63
  "tag": "@rushstack/set-webpack-public-path-plugin_v5.2.7",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,28 @@
1
1
  # Change Log - @rushstack/set-webpack-public-path-plugin
2
2
 
3
- This log was last generated on Sat, 06 Dec 2025 01:12:28 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 08 Jan 2026 01:12:30 GMT and should not be manually modified.
4
+
5
+ ## 5.2.11
6
+ Thu, 08 Jan 2026 01:12:30 GMT
7
+
8
+ _Version update only_
9
+
10
+ ## 5.2.10
11
+ Wed, 07 Jan 2026 01:12:24 GMT
12
+
13
+ _Version update only_
14
+
15
+ ## 5.2.9
16
+ Mon, 05 Jan 2026 16:12:50 GMT
17
+
18
+ _Version update only_
19
+
20
+ ## 5.2.8
21
+ Thu, 18 Dec 2025 01:13:04 GMT
22
+
23
+ ### Patches
24
+
25
+ - Fix support for newer webpack typings.
4
26
 
5
27
  ## 5.2.7
6
28
  Sat, 06 Dec 2025 01:12:28 GMT
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.55.1"
8
+ "packageVersion": "7.55.5"
9
9
  }
10
10
  ]
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SetPublicPathCurrentScriptPlugin.d.ts","sourceRoot":"","sources":["../src/SetPublicPathCurrentScriptPlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAcpE;;;;;GAKG;AACH,qBAAa,gCAAiC,SAAQ,uBAAuB;;IAK3E,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI;CAmFjG"}
1
+ {"version":3,"file":"SetPublicPathCurrentScriptPlugin.d.ts","sourceRoot":"","sources":["../src/SetPublicPathCurrentScriptPlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAcpE;;;;;GAKG;AACH,qBAAa,gCAAiC,SAAQ,uBAAuB;;IAK3E,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,IAAI;CA2FjG"}
@@ -65,6 +65,10 @@ class SetPublicPathCurrentScriptPlugin extends SetPublicPathPluginBase_1.SetPubl
65
65
  }
66
66
  if (hasProblematicLibraryType) {
67
67
  const codeGenerationResults = compilation.codeGenerationResults;
68
+ if (!codeGenerationResults) {
69
+ compilation.errors.push(new thisWebpack.WebpackError(`${PLUGIN_NAME}: codeGenerationResults is undefined in afterSeal. This is unexpected and may indicate a misconfiguration or bug.`));
70
+ return;
71
+ }
68
72
  let appliesToAnyChunk = false;
69
73
  for (const chunk of compilation.chunks) {
70
74
  if (appliesToChunk(chunk, codeGenerationResults)) {
@@ -1 +1 @@
1
- {"version":3,"file":"SetPublicPathCurrentScriptPlugin.js","sourceRoot":"","sources":["../src/SetPublicPathCurrentScriptPlugin.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport type webpack from 'webpack';\n\nimport { SetPublicPathPluginBase } from './SetPublicPathPluginBase';\n\nconst PLUGIN_NAME: string = 'set-webpack-public-path-current-script-plugin';\n\nconst CURRENT_SCRIPT_VARIABLE_NAME: string = '__RUSHSTACK_CURRENT_SCRIPT__';\nconst PUBLIC_PATH_VARIABLE_NAME: string = '_publicPath';\n\ntype JavascriptModulesPluginHooks = ReturnType<\n typeof webpack.javascript.JavascriptModulesPlugin.getCompilationHooks\n>;\ntype CodeGenerationResults = Parameters<\n Parameters<JavascriptModulesPluginHooks['render']['tap']>[1]\n>[1]['codeGenerationResults'];\n\n/**\n * This simple plugin wraps the webpack bundle in an IIFE that sets a the `document.currentScript` value to a variable\n * that is then used to populate the `__webpack_public_path__` variable.\n *\n * @public\n */\nexport class SetPublicPathCurrentScriptPlugin extends SetPublicPathPluginBase {\n public constructor() {\n super(PLUGIN_NAME);\n }\n\n protected _applyCompilation(thisWebpack: typeof webpack, compilation: webpack.Compilation): void {\n const outputLibraryType: string | undefined = compilation.options.output.library?.type;\n\n class SetPublicPathRuntimeModule extends thisWebpack.RuntimeModule {\n public constructor() {\n super('publicPath', thisWebpack.RuntimeModule.STAGE_BASIC);\n }\n\n public generate(): string {\n return [\n `var ${PUBLIC_PATH_VARIABLE_NAME} = ${CURRENT_SCRIPT_VARIABLE_NAME} ? ${CURRENT_SCRIPT_VARIABLE_NAME}.src : '';`,\n `${thisWebpack.RuntimeGlobals.publicPath} = ${PUBLIC_PATH_VARIABLE_NAME}.slice(0, ${PUBLIC_PATH_VARIABLE_NAME}.lastIndexOf('/') + 1);`\n ].join('\\n');\n }\n }\n\n const runtimeModule: SetPublicPathRuntimeModule = new SetPublicPathRuntimeModule();\n\n function appliesToChunk(chunk: webpack.Chunk, codeGenerationResults: CodeGenerationResults): boolean {\n return chunk.hasRuntime() && codeGenerationResults.has(runtimeModule, chunk.runtime);\n }\n\n compilation.hooks.runtimeRequirementInTree\n .for(thisWebpack.RuntimeGlobals.publicPath)\n .tap(PLUGIN_NAME, (chunk: webpack.Chunk, set: Set<string>) => {\n compilation.addRuntimeModule(chunk, runtimeModule);\n });\n\n const javascriptModulesPluginHooks: JavascriptModulesPluginHooks =\n thisWebpack.javascript.JavascriptModulesPlugin.getCompilationHooks(compilation);\n\n javascriptModulesPluginHooks.render.tap(\n { name: PLUGIN_NAME, stage: Number.MAX_SAFE_INTEGER },\n (source, { codeGenerationResults, chunk }) => {\n if (appliesToChunk(chunk, codeGenerationResults)) {\n return new thisWebpack.sources.ConcatSource(\n `(()=>{ var ${CURRENT_SCRIPT_VARIABLE_NAME} = document.currentScript; `,\n source,\n '})();'\n );\n } else {\n return source;\n }\n }\n );\n\n javascriptModulesPluginHooks.chunkHash.tap(PLUGIN_NAME, (chunk, hash, { codeGenerationResults }) => {\n hash.update(PLUGIN_NAME);\n if (appliesToChunk(chunk, codeGenerationResults)) {\n hash.update('set-public-path');\n }\n });\n\n compilation.hooks.afterSeal.tap(PLUGIN_NAME, () => {\n let hasProblematicLibraryType: boolean = false;\n switch (outputLibraryType) {\n case 'var':\n case 'module':\n hasProblematicLibraryType = true;\n break;\n }\n\n if (hasProblematicLibraryType) {\n const codeGenerationResults: CodeGenerationResults = compilation.codeGenerationResults;\n let appliesToAnyChunk: boolean = false;\n for (const chunk of compilation.chunks) {\n if (appliesToChunk(chunk, codeGenerationResults)) {\n appliesToAnyChunk = true;\n break;\n }\n }\n\n if (appliesToAnyChunk) {\n compilation.errors.push(\n new thisWebpack.WebpackError(\n `The \"${outputLibraryType}\" output.library.type is not supported by the ${SetPublicPathCurrentScriptPlugin.name}` +\n ' plugin. Including this plugin with produce unexpected or invalid results.'\n )\n );\n }\n }\n });\n }\n}\n"]}
1
+ {"version":3,"file":"SetPublicPathCurrentScriptPlugin.js","sourceRoot":"","sources":["../src/SetPublicPathCurrentScriptPlugin.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport type webpack from 'webpack';\n\nimport { SetPublicPathPluginBase } from './SetPublicPathPluginBase';\n\nconst PLUGIN_NAME: string = 'set-webpack-public-path-current-script-plugin';\n\nconst CURRENT_SCRIPT_VARIABLE_NAME: string = '__RUSHSTACK_CURRENT_SCRIPT__';\nconst PUBLIC_PATH_VARIABLE_NAME: string = '_publicPath';\n\ntype JavascriptModulesPluginHooks = ReturnType<\n typeof webpack.javascript.JavascriptModulesPlugin.getCompilationHooks\n>;\ntype CodeGenerationResults = Parameters<\n Parameters<JavascriptModulesPluginHooks['render']['tap']>[1]\n>[1]['codeGenerationResults'];\n\n/**\n * This simple plugin wraps the webpack bundle in an IIFE that sets a the `document.currentScript` value to a variable\n * that is then used to populate the `__webpack_public_path__` variable.\n *\n * @public\n */\nexport class SetPublicPathCurrentScriptPlugin extends SetPublicPathPluginBase {\n public constructor() {\n super(PLUGIN_NAME);\n }\n\n protected _applyCompilation(thisWebpack: typeof webpack, compilation: webpack.Compilation): void {\n const outputLibraryType: string | undefined = compilation.options.output.library?.type;\n\n class SetPublicPathRuntimeModule extends thisWebpack.RuntimeModule {\n public constructor() {\n super('publicPath', thisWebpack.RuntimeModule.STAGE_BASIC);\n }\n\n public generate(): string {\n return [\n `var ${PUBLIC_PATH_VARIABLE_NAME} = ${CURRENT_SCRIPT_VARIABLE_NAME} ? ${CURRENT_SCRIPT_VARIABLE_NAME}.src : '';`,\n `${thisWebpack.RuntimeGlobals.publicPath} = ${PUBLIC_PATH_VARIABLE_NAME}.slice(0, ${PUBLIC_PATH_VARIABLE_NAME}.lastIndexOf('/') + 1);`\n ].join('\\n');\n }\n }\n\n const runtimeModule: SetPublicPathRuntimeModule = new SetPublicPathRuntimeModule();\n\n function appliesToChunk(chunk: webpack.Chunk, codeGenerationResults: CodeGenerationResults): boolean {\n return chunk.hasRuntime() && codeGenerationResults.has(runtimeModule, chunk.runtime);\n }\n\n compilation.hooks.runtimeRequirementInTree\n .for(thisWebpack.RuntimeGlobals.publicPath)\n .tap(PLUGIN_NAME, (chunk: webpack.Chunk, set: Set<string>) => {\n compilation.addRuntimeModule(chunk, runtimeModule);\n });\n\n const javascriptModulesPluginHooks: JavascriptModulesPluginHooks =\n thisWebpack.javascript.JavascriptModulesPlugin.getCompilationHooks(compilation);\n\n javascriptModulesPluginHooks.render.tap(\n { name: PLUGIN_NAME, stage: Number.MAX_SAFE_INTEGER },\n (source, { codeGenerationResults, chunk }) => {\n if (appliesToChunk(chunk, codeGenerationResults)) {\n return new thisWebpack.sources.ConcatSource(\n `(()=>{ var ${CURRENT_SCRIPT_VARIABLE_NAME} = document.currentScript; `,\n source,\n '})();'\n );\n } else {\n return source;\n }\n }\n );\n\n javascriptModulesPluginHooks.chunkHash.tap(PLUGIN_NAME, (chunk, hash, { codeGenerationResults }) => {\n hash.update(PLUGIN_NAME);\n if (appliesToChunk(chunk, codeGenerationResults)) {\n hash.update('set-public-path');\n }\n });\n\n compilation.hooks.afterSeal.tap(PLUGIN_NAME, () => {\n let hasProblematicLibraryType: boolean = false;\n switch (outputLibraryType) {\n case 'var':\n case 'module':\n hasProblematicLibraryType = true;\n break;\n }\n\n if (hasProblematicLibraryType) {\n const codeGenerationResults: CodeGenerationResults | undefined = compilation.codeGenerationResults;\n if (!codeGenerationResults) {\n compilation.errors.push(\n new thisWebpack.WebpackError(\n `${PLUGIN_NAME}: codeGenerationResults is undefined in afterSeal. This is unexpected and may indicate a misconfiguration or bug.`\n )\n );\n return;\n }\n let appliesToAnyChunk: boolean = false;\n for (const chunk of compilation.chunks) {\n if (appliesToChunk(chunk, codeGenerationResults)) {\n appliesToAnyChunk = true;\n break;\n }\n }\n\n if (appliesToAnyChunk) {\n compilation.errors.push(\n new thisWebpack.WebpackError(\n `The \"${outputLibraryType}\" output.library.type is not supported by the ${SetPublicPathCurrentScriptPlugin.name}` +\n ' plugin. Including this plugin with produce unexpected or invalid results.'\n )\n );\n }\n }\n });\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/set-webpack-public-path-plugin",
3
- "version": "5.2.7",
3
+ "version": "5.2.11",
4
4
  "description": "This plugin sets the webpack public path at runtime.",
5
5
  "main": "lib/index.js",
6
6
  "typings": "dist/set-webpack-public-path-plugin.d.ts",
@@ -20,15 +20,15 @@
20
20
  }
21
21
  },
22
22
  "dependencies": {
23
- "@rushstack/node-core-library": "5.19.1",
24
- "@rushstack/webpack-plugin-utilities": "0.5.7"
23
+ "@rushstack/webpack-plugin-utilities": "0.5.10",
24
+ "@rushstack/node-core-library": "5.19.1"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "20.17.19",
28
28
  "eslint": "~9.37.0",
29
29
  "memfs": "4.12.0",
30
- "webpack": "~5.98.0",
31
- "@rushstack/heft": "1.1.7",
30
+ "webpack": "~5.103.0",
31
+ "@rushstack/heft": "1.1.10",
32
32
  "local-node-rig": "1.0.0"
33
33
  },
34
34
  "scripts": {