New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

html-bundler-webpack-plugin

Package Overview
Dependencies
Maintainers
1
Versions
192
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

html-bundler-webpack-plugin - npm Package Compare versions

Comparing version 1.6.0 to 1.6.1

6

CHANGELOG.md
# Change log
## 1.6.1 (2023-03-07)
- fix: correct inline JS when used split chunks
- refactor: optimize code for windows, clean up from needless code
- test: add test for inline JS with split chunks
- test: refactor and clean up tests
## 1.6.0 (2023-03-06)

@@ -4,0 +10,0 @@ - feat: add `css.inline` option, replaces the functionality of `style-loader`.\

2

package.json
{
"name": "html-bundler-webpack-plugin",
"version": "1.6.0",
"version": "1.6.1",
"description": "HTML bundler plugin for webpack handels HTML template as entry point, extracts CSS and JS from their sources specified in HTML.",

@@ -5,0 +5,0 @@ "keywords": [

@@ -92,2 +92,13 @@ const path = require('path');

/**
* Parse resource path and raw query from request.
*
* @param {string} request
* @return {{resource: string, query: string|null}}
*/
const parseRequest = (request) => {
const [resource, query] = request.split('?');
return { resource, query };
};
module.exports = {

@@ -98,4 +109,5 @@ isWin,

parseQuery,
parseRequest,
outToConsole,
pathRelativeByPwd,
};

@@ -5,3 +5,2 @@ const path = require('path');

const Options = require('./Options');
const { isWin } = require('./Utils');
const { verboseWatchFiles } = require('./Messages/Info');

@@ -60,3 +59,2 @@

static addFile(file) {
file = isWin ? path.normalize(file) : file;
this.files.add(file);

@@ -63,0 +61,0 @@

@@ -6,3 +6,3 @@ const { merge } = require('webpack-merge');

const Options = require('./Options');
const { parseQuery } = require('./Utils');
const { parseQuery } = require('../Common/Helpers');

@@ -9,0 +9,0 @@ class Loader {

@@ -0,5 +1,4 @@

const { black, ansi } = require('ansis/colors');
const { pluginName } = require('../../config');
const { pathRelativeByPwd } = require('../../Common/Helpers');
const { outToConsole } = require('../Utils');
const { black, ansi } = require('ansis/colors');
const { pathRelativeByPwd, outToConsole } = require('../../Common/Helpers');

@@ -6,0 +5,0 @@ /**

@@ -76,3 +76,3 @@ const Eta = require('eta');

{ tag: 'img', attributes: ['src', 'srcset'] },
{ tag: 'image', attributes: ['href'] }, // <svg><image href="image.png"></image></svg>
{ tag: 'image', attributes: ['href', 'xlink:href'] }, // <svg><image href="image.png"></image></svg>
{ tag: 'use', attributes: ['href'] }, // <svg><use href="icons.svg#home"></use></svg>

@@ -79,0 +79,0 @@ { tag: 'input', attributes: ['src'] }, // type="image"

@@ -8,3 +8,2 @@ const fs = require('fs');

const PluginService = require('../Plugin/PluginService');
const { isWin, pathToPosix } = require('./Utils');
const { resolveException } = require('./Messages/Exeptions');

@@ -117,3 +116,3 @@

return isWin ? pathToPosix(resolvedFile) : resolvedFile;
return resolvedFile;
}

@@ -120,0 +119,0 @@

const PluginService = require('../Plugin/PluginService');
const Loader = require('./Loader');
const Options = require('./Options');
const { isWin, pathToPosix } = require('./Utils');

@@ -98,4 +97,2 @@ const spaceChars = [' ', '\t', '\n', '\r', '\f'];

if (isWin) issuer = pathToPosix(issuer);
for (let { type, file, startPos, endPos } of result) {

@@ -102,0 +99,0 @@ const resolvedFile = this.resolve({ type, file, issuer });

const path = require('path');
const { isWin, pathToPosix, parseQuery, outToConsole } = require('../Common/Helpers');
const { isWin, pathToPosix } = require('../Common/Helpers');

@@ -9,7 +9,3 @@ let hmrFile = path.join(__dirname, 'hmr.js');

module.exports = {
isWin,
pathToPosix,
outToConsole,
hmrFile,
parseQuery,
};

@@ -9,3 +9,4 @@ const vm = require('vm');

const { pluginName } = require('../config');
const { isWin, pathToPosix, isFunction, toCommonJS } = require('./Utils');
const { isFunction } = require('../Common/Helpers');
const { toCommonJS } = require('./Utils');

@@ -209,5 +210,2 @@ const Options = require('./Options');

const [, entryDataId] = module.layer.split('=', 2);
// loaderContext.entryData = this.entryDataCache.get(entryDataId);
// loaderContext.data = this.entryDataCache.get(entryDataId);
loaderContext.entryData = AssetEntry.getData(entryDataId);

@@ -403,3 +401,3 @@ loaderContext.data = AssetEntry.getData(entryDataId);

if (!sourceRequest || AssetInline.isDataUrl(sourceRequest)) continue;
if (!sourceRequest || !resourceResolveData?.context || AssetInline.isDataUrl(sourceRequest)) continue;

@@ -746,4 +744,3 @@ const { issuer } = resourceResolveData.context;

case 'script': {
const posixSourceFile = isWin ? pathToPosix(sourceFile) : sourceFile;
const entity = ScriptCollection.getEntity(posixSourceFile);
const entity = ScriptCollection.getEntity(sourceFile);
verboseExtractScript({

@@ -750,0 +747,0 @@ entity,

const path = require('path');
const { isFunction } = require('./Utils');
const Options = require('./Options');
const { isFunction } = require('../Common/Helpers');

@@ -5,0 +5,0 @@ /**

@@ -1,4 +0,1 @@

const path = require('path');
const { isWin } = require('./Utils');
/**

@@ -112,3 +109,2 @@ * @param {{key: string, value: string}} attrs

static getDataUrl(sourceFile, issuer) {
if (isWin) sourceFile = path.win32.normalize(sourceFile);
const item = this.data.get(sourceFile);

@@ -115,0 +111,0 @@

const path = require('path');
const Asset = require('./Asset');
const AssetEntry = require('./AssetEntry');

@@ -7,3 +6,2 @@ const AssetTrash = require('./AssetTrash');

const ScriptCollection = require('./ScriptCollection');
const { isWin, pathToPosix } = require('./Utils');

@@ -42,3 +40,2 @@ class AssetScript {

let [scriptFile] = module.resource.split('?', 1);
if (isWin) scriptFile = pathToPosix(scriptFile);
module.__isScript = ScriptCollection.has(scriptFile);

@@ -148,11 +145,4 @@ }

const issuerAssets = issuer.assets.get(issuerAssetFilename);
// init script cache by current issuer
if (!usedScripts.has(issuerAssetFilename)) {
usedScripts.set(issuerAssetFilename, new Set());
}
const content = assets[issuerAssetFilename].source();
let newContent = content;
let scriptTags = '';

@@ -182,2 +172,8 @@ // replace source filename with asset filename

} else {
// init script cache by current issuer
if (!usedScripts.has(issuerAssetFilename)) {
usedScripts.set(issuerAssetFilename, new Set());
}
const chunkScripts = usedScripts.get(issuerAssetFilename);
// extract original script tag with all attributes for usage it as template for chunks

@@ -188,2 +184,3 @@ let srcStartPos = content.indexOf(sourceFile);

let tagEndPos = srcEndPos;
let scriptTags = '';

@@ -193,14 +190,28 @@ while (tagStartPos >= 0 && content.charAt(--tagStartPos) !== '<') {}

const tmplScriptStart = content.slice(tagStartPos, srcStartPos);
const tmplScriptEnd = content.slice(srcEndPos, tagEndPos);
if (asset.inline === true) {
const tmplScriptStart = '<script>';
const tmplScriptEnd = '</script>';
// generate additional scripts of chunks
const chunkScripts = usedScripts.get(issuerAssetFilename);
for (let chunkFile of chunkFiles) {
// avoid generate a script of the same split chunk used in different js files required in one template file,
// happens when used optimisation.splitChunks
if (!chunkScripts.has(chunkFile)) {
const assetFile = Options.getAssetOutputFile(chunkFile, issuerAssetFilename);
// generate additional scripts of chunks
for (let chunkFile of chunkFiles) {
// ignore already injected common used script
if (chunkScripts.has(chunkFile)) continue;
const source = assets[chunkFile].source();
if (scriptTags) scriptTags += LF;
scriptTags += tmplScriptStart + source + tmplScriptEnd;
chunkScripts.add(chunkFile);
AssetTrash.add(chunkFile);
}
} else {
const tmplScriptStart = content.slice(tagStartPos, srcStartPos);
const tmplScriptEnd = content.slice(srcEndPos, tagEndPos);
// generate additional scripts of chunks
for (let chunkFile of chunkFiles) {
// ignore already injected common used script
if (chunkScripts.has(chunkFile)) continue;
const assetFile = Options.getAssetOutputFile(chunkFile, issuerAssetFilename);
if (scriptTags) scriptTags += LF;
scriptTags += tmplScriptStart + assetFile + tmplScriptEnd;

@@ -212,2 +223,5 @@ chunkScripts.add(chunkFile);

}
// set relation between source file and generated output filenames
chunkFiles.forEach(asset.chunkFiles.add, asset.chunkFiles);
}

@@ -221,5 +235,2 @@

}
// set relation between source file and generated output filenames
chunkFiles.forEach(asset.chunkFiles.add, asset.chunkFiles);
}

@@ -226,0 +237,0 @@

const path = require('path');
const { isWin, pathToPosix } = require('./Utils');

@@ -50,4 +49,2 @@ class AssetSource {

for (let [sourceFile, item] of this.data) {
if (isWin) sourceFile = pathToPosix(sourceFile);
for (let [assetFile, source] of item.issuers) {

@@ -54,0 +51,0 @@ const asset = compilation.assets[assetFile];

const vm = require('vm');
const Asset = require('../Asset');
const { isWin, parseQuery } = require('../Utils');
const Options = require('../Options');
const { isWin, parseQuery } = require('../../Common/Helpers');

@@ -6,0 +6,0 @@ class ResponsiveLoader {

const { red, green, black } = require('ansis/colors');
const { pluginName } = require('../../config');
const { outToConsole } = require('../Utils');
const { outToConsole } = require('../../Common/Helpers');

@@ -5,0 +5,0 @@ const header = `\n${black.bgYellow` ${pluginName} `}${black.bgAnsi(227)` DEPRECATE `} `;

const { pluginName } = require('../../config');
const { pathRelativeByPwd, outToConsole, isFunction } = require('../Utils');
const { pathRelativeByPwd, outToConsole, isFunction } = require('../../Common/Helpers');
const { green, greenBright, cyan, cyanBright, magenta, yellowBright, black, ansi, yellow } = require('ansis/colors');

@@ -4,0 +4,0 @@ const Asset = require('../Asset');

const { black, yellow, cyan, magenta } = require('ansis/colors');
const { pluginName } = require('../../config');
const { outToConsole, parseRequest } = require('../Utils');
const { outToConsole, parseRequest } = require('../../Common/Helpers');

@@ -5,0 +5,0 @@ const header = `\n${black.bgYellow` ${pluginName} `}${black.bgAnsi(227)` WARNING `} `;

const path = require('path');
const extractCssModule = require('./Modules/extractCss');
const { isWin, isFunction, pathToPosix } = require('./Utils');
const { isWin, isFunction, pathToPosix } = require('../Common/Helpers');
const { optionModulesException } = require('./Messages/Exception');

@@ -5,0 +5,0 @@

@@ -1,4 +0,2 @@

const path = require('path');
const Options = require('./Options');
const { isWin } = require('../Common/Helpers');

@@ -41,5 +39,2 @@ /**

// normalize slashes for windows
if (isWin) issuer = path.normalize(issuer);
// add only unique issuer

@@ -46,0 +41,0 @@ if (!item.issuers.find(({ request }) => request === issuer)) {

@@ -1,15 +0,2 @@

const { isWin, isFunction, pathRelativeByPwd, pathToPosix, parseQuery, outToConsole } = require('../Common/Helpers');
/**
* Parse resource path and raw query from request.
*
* @param {string} request
* @return {{resource: string, query: string|null}}
*/
const parseRequest = (request) => {
const [resource, query] = request.split('?');
return { resource, query };
};
/**
* Transform source code from ESM to CommonJS.

@@ -42,10 +29,3 @@ *

module.exports = {
isWin,
pathToPosix,
outToConsole,
pathRelativeByPwd,
parseQuery,
parseRequest,
isFunction,
toCommonJS,
};

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc