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

@statoscope/webpack-stats-extension-compressed

Package Overview
Dependencies
Maintainers
1
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@statoscope/webpack-stats-extension-compressed - npm Package Compare versions

Comparing version 5.9.0 to 5.13.0

11

dist/index.d.ts

@@ -1,5 +0,6 @@

import { Compilation } from 'webpack';
import { Compiler } from 'webpack';
import { ExtensionDescriptor } from '@statoscope/stats/spec/extension';
import CompressedExtensionGenerator, { Format, CompressorOrPreset } from '@statoscope/stats-extension-compressed/dist/generator';
export default class WebpackCompressedExtension {
import CompressedExtensionGenerator, { CompressorOrPreset, Format, Payload } from '@statoscope/stats-extension-compressed/dist/generator';
import { StatsExtensionWebpackAdapter } from '@statoscope/webpack-model/src';
export default class WebpackCompressedExtension implements StatsExtensionWebpackAdapter<Payload> {
compressor: CompressorOrPreset;

@@ -9,4 +10,4 @@ descriptor: ExtensionDescriptor;

constructor(compressor: CompressorOrPreset);
get(): Format;
handleCompilation(compilation: Compilation, recursive?: boolean): Promise<void>;
getExtension(): Format;
handleCompiler(compiler: Compiler): void;
}

@@ -11,2 +11,3 @@ "use strict";

const { author, homepage, name, version, description } = require('../package.json');
const pluginName = `${name}@${version}`;
class WebpackCompressedExtension {

@@ -18,62 +19,74 @@ constructor(compressor) {

}
get() {
getExtension() {
return this.compressedExtensionGenerator.get();
}
async handleCompilation(compilation, recursive = true) {
const stack = [compilation];
let cursor;
while ((cursor = stack.pop())) {
if (recursive) {
handleCompiler(compiler) {
compiler.hooks.done.tapAsync(pluginName, async (stats, cb) => {
const stack = [stats.compilation];
let cursor;
while ((cursor = stack.pop())) {
stack.push(...cursor.children);
}
// webpack 4
let readFile = (0, util_1.promisify)(cursor.compiler.inputFileSystem.readFile.bind(cursor.compiler.inputFileSystem));
// webpack 5
if (cursor.compiler.outputFileSystem &&
typeof cursor.compiler.outputFileSystem.readFile === 'function') {
readFile = (0, util_1.promisify)(cursor.compiler.outputFileSystem.readFile.bind(cursor.compiler.outputFileSystem));
}
for (const name of Object.keys(cursor.assets)) {
const assetPath = path_1.default.join(cursor.compiler.outputPath, name);
let content;
try {
content = await readFile(assetPath);
if (!content) {
throw new Error();
// webpack 4
let readFile = (0, util_1.promisify)(cursor.compiler.inputFileSystem.readFile.bind(cursor.compiler.inputFileSystem));
// webpack 5
if (cursor.compiler.outputFileSystem &&
typeof cursor.compiler.outputFileSystem.readFile === 'function') {
readFile = (0, util_1.promisify)(cursor.compiler.outputFileSystem.readFile.bind(cursor.compiler.outputFileSystem));
}
for (const name of Object.keys(cursor.assets)) {
const assetPath = path_1.default.join(cursor.compiler.outputPath, name);
let content;
try {
content = await readFile(assetPath);
if (!content) {
throw new Error();
}
this.compressedExtensionGenerator.handleResource(cursor.hash, name, content, this.compressor);
}
this.compressedExtensionGenerator.handleResource(cursor.hash, name, content, this.compressor);
catch (e) {
console.warn(`Can't read the asset ${name}`);
}
}
catch (e) {
console.warn(`Can't read the asset ${name}`);
}
}
const modulesStack = [...cursor.modules];
let modulesCursor;
while ((modulesCursor = modulesStack.pop())) {
// @ts-ignore
if (modulesCursor.modules) {
const modulesStack = [...cursor.modules];
let modulesCursor;
while ((modulesCursor = modulesStack.pop())) {
// @ts-ignore
modulesStack.push(...modulesCursor.modules);
}
let concatenated = Buffer.from('');
if (modulesCursor.constructor.name === 'CssModule' &&
// @ts-ignore
(typeof modulesCursor.content === 'string' ||
if (modulesCursor.modules) {
// @ts-ignore
modulesCursor.content instanceof Buffer)) {
this.compressedExtensionGenerator.handleResource(cursor.hash, modulesCursor.identifier(),
// @ts-ignore
modulesCursor.content, this.compressor);
}
else if (cursor.chunkGraph) {
// webpack 5
for (const type of modulesCursor.getSourceTypes()) {
const runtimeChunk = cursor.chunkGraph
.getModuleChunks(modulesCursor)
.find((chunk) => chunk.runtime);
if (runtimeChunk) {
const source = cursor.codeGenerationResults.getSource(modulesCursor, runtimeChunk.runtime, type);
if (!source) {
continue;
modulesStack.push(...modulesCursor.modules);
}
let concatenated = Buffer.from('');
if (modulesCursor.constructor.name === 'CssModule' &&
// @ts-ignore
(typeof modulesCursor.content === 'string' ||
// @ts-ignore
modulesCursor.content instanceof Buffer)) {
this.compressedExtensionGenerator.handleResource(cursor.hash, modulesCursor.identifier(),
// @ts-ignore
modulesCursor.content, this.compressor);
}
else if (cursor.chunkGraph) {
// webpack 5
for (const type of modulesCursor.getSourceTypes()) {
const runtimeChunk = cursor.chunkGraph
.getModuleChunks(modulesCursor)
.find((chunk) => chunk.runtime);
if (runtimeChunk) {
const source = cursor.codeGenerationResults.getSource(modulesCursor, runtimeChunk.runtime, type);
if (!source) {
continue;
}
const content = source.source();
concatenated = Buffer.concat([
concatenated,
content instanceof Buffer ? content : Buffer.from(content),
]);
}
}
}
else {
// webpack 4
try {
// @ts-ignore
const source = cursor.moduleTemplates.javascript.render(modulesCursor, cursor.dependencyTemplates, { chunk: modulesCursor.getChunks()[0] });
const content = source.source();

@@ -85,25 +98,14 @@ concatenated = Buffer.concat([

}
catch (e) {
// in webpack 4 we can't generate source for all the modules :(
}
}
}
else {
// webpack 4
try {
// @ts-ignore
const source = cursor.moduleTemplates.javascript.render(modulesCursor, cursor.dependencyTemplates, { chunk: modulesCursor.getChunks()[0] });
const content = source.source();
concatenated = Buffer.concat([
concatenated,
content instanceof Buffer ? content : Buffer.from(content),
]);
if (!concatenated.length) {
continue;
}
catch (e) {
// in webpack 4 we can't generate source for all the modules :(
}
this.compressedExtensionGenerator.handleResource(cursor.hash, modulesCursor.identifier(), concatenated, this.compressor);
}
if (!concatenated.length) {
continue;
}
this.compressedExtensionGenerator.handleResource(cursor.hash, modulesCursor.identifier(), concatenated, this.compressor);
}
}
cb();
});
}

@@ -110,0 +112,0 @@ }

{
"name": "@statoscope/webpack-stats-extension-compressed",
"version": "5.9.0",
"version": "5.13.0",
"description": "Webpack adapter for @statoscope/stats-extension-compressed",

@@ -22,11 +22,10 @@ "main": "./dist/index.js",

"@statoscope/stats": "5.7.0",
"@statoscope/stats-extension-compressed": "5.9.0"
"@statoscope/stats-extension-compressed": "5.9.0",
"@statoscope/webpack-model": "5.13.0",
"@types/webpack": "^5.0.0"
},
"devDependencies": {
"@types/webpack": "^5.28.0"
},
"peerDependencies": {
"webpack": "^4.0.0 || ^5.0.0"
},
"gitHead": "f8e8a9cd721828a4bc53a2f808441d81e5fdbf84"
"gitHead": "01e3953dc17249874436217248cde6a3ed53be80"
}
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