rollup-plugin-webpack-stats 2.1.5-beta.5 → 2.1.5

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/README.md CHANGED
@@ -173,3 +173,26 @@ export default defineConfig((env) => ({
173
173
 
174
174
  - [example-vite-github-action](https://github.com/relative-ci/example-vite-github-action)
175
175
  - [example-vite-cli-github-action](https://github.com/relative-ci/example-vite-cli-github-action)
176
+
177
+ ## Related projects
178
+
179
+ ### [bundle-stats](https://github.com/relative-ci/bundle-stats)
180
+
181
+ Analyze bundle stats(bundle size, assets, modules, packages) and compare the results between different builds. Support for webpack, rspack, vite, rolldown and rollup.
182
+
183
+ ### [rollup-plugin-stats](https://github.com/relative-ci/rollup-webpack-stats)
184
+
185
+ Output vite/rollup/rolldown stats.
186
+
187
+ ### :cyclone: [relative-ci.com](https://relative-ci.com?utm_medium=rollup-plugin-webpack-stats)
188
+
189
+ #### Automated bundle analysis, reviews and monitoring - Quickly identify and fix bundle regressions before shipping to production.
190
+
191
+ - :crystal_ball: In-depth bundle stats analysis for every build
192
+ - :chart_with_upwards_trend: Monitor bundle stats changes and identify opportunities for optimizations
193
+ - :bell: Quick feedback with [rule based automated review flow](https://relative-ci.com/documentation/setup/configure/integrations/github-commit-status-review?utm_medium=rollup-plugin-webpack-stats), [GitHub Pull Request comments](https://relative-ci.com/documentation/setup/configure/integrations/github-pull-request-comment?utm_medium=rollup-plugin-webpack-stats), [GitHub check reports](https://relative-ci.com/documentation/setup/configure/integrations/github-check-report?utm_medium=rollup-plugin-webpack-stats), or [Slack messages](https://relative-ci.com/documentation/setup/configure/integrations/slack-notification?utm_medium=rollup-plugin-webpack-stats)
194
+ - :wrench: Support for **webpack**, **vite**, **rspack**, **rollup**, **rolldwon**
195
+ - :hammer: Support for all major CI services(CircleCI, GitHub Actions, Gitlab CI, Jenkins, Travis CI)
196
+ - :nut_and_bolt: Support for **npm**, **yarn** and **pnpm**; support for monorepos
197
+ - :two_hearts: [**Always free** for **Open Source**](https://relative-ci.com/open-source)
198
+
@@ -1,11 +1,81 @@
1
1
  'use strict';
2
2
 
3
- var path = require('path');
4
- var utils = require('./utils.js');
3
+ var path$1 = require('path');
4
+ var path = require('node:path');
5
+ var crypto = require('node:crypto');
5
6
 
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var path__default = /*#__PURE__*/_interopDefault(path);
7
+ const HASH_LENGTH = 7;
8
+ /**
9
+ * Get content byte size
10
+ */
11
+ function getByteSize(content) {
12
+ if (!content) {
13
+ return 0;
14
+ }
15
+ if (typeof content === 'string') {
16
+ return Buffer.byteLength(content);
17
+ }
18
+ return content?.length || 0;
19
+ }
20
+ /**
21
+ * Generate a 7 chars hash from a filepath
22
+ */
23
+ function getHash(filepath) {
24
+ const digest = crypto.createHash('sha256');
25
+ return digest.update(filepath).digest('hex').substr(0, HASH_LENGTH);
26
+ }
27
+ function getChunkId(chunk) {
28
+ let value = chunk.name;
29
+ // Use entry module relative path
30
+ if (chunk.moduleIds?.length > 0) {
31
+ const absoluteModulePath = chunk.moduleIds[chunk.moduleIds.length - 1];
32
+ value = path.relative(process.cwd(), absoluteModulePath);
33
+ }
34
+ return getHash([chunk, value].join('-'));
35
+ }
36
+ function round(value, precision = 2) {
37
+ const multiplier = 10 ^ precision;
38
+ return Math.round(value * multiplier) / multiplier;
39
+ }
40
+ const FILE_SIZE = {
41
+ BYTE: {
42
+ symbol: 'B',
43
+ multiplier: 1,
44
+ },
45
+ KILO: {
46
+ symbol: 'KiB',
47
+ multiplier: 1024,
48
+ },
49
+ MEGA: {
50
+ symbol: 'MiB',
51
+ multiplier: 1024 * 1024,
52
+ },
53
+ };
54
+ function formatFileSize(value) {
55
+ let unit = FILE_SIZE.BYTE;
56
+ if (typeof value !== 'number') {
57
+ return `0${unit.symbol}`;
58
+ }
59
+ if (value < FILE_SIZE.KILO.multiplier) {
60
+ unit = FILE_SIZE.BYTE;
61
+ }
62
+ else if (value < FILE_SIZE.MEGA.multiplier) {
63
+ unit = FILE_SIZE.KILO;
64
+ }
65
+ else {
66
+ unit = FILE_SIZE.MEGA;
67
+ }
68
+ return `${round(value / unit.multiplier, 2)}${unit.symbol}`;
69
+ }
70
+ const DEFAULT_FILE_NAME = 'webpack-stats.json';
71
+ function resolveFilepath(fileName = DEFAULT_FILE_NAME, outputDir) {
72
+ // Check if the fileName is an absolute path
73
+ if (path.isAbsolute(fileName)) {
74
+ return fileName;
75
+ }
76
+ // If the fileName is not an absolute path, join it with the output directory or the current working directory
77
+ return path.join(outputDir || process.cwd(), fileName);
78
+ }
9
79
 
10
80
  /**
11
81
  * Recursivily check if a chunk is async based on the chunks issuers
@@ -54,29 +124,29 @@ const lookupChunkAsync = (chunksIssuers, chunk, processedChunks = []) => {
54
124
  class TransformSources {
55
125
  constructor() {
56
126
  this.entries = {};
57
- /**
58
- * Get asset source
59
- */
60
- this.getByAsset = (asset) => {
61
- return this.entries[asset.name];
62
- };
63
- /**
64
- * Get chunk source
65
- */
66
- this.getByChunk = (chunk) => {
67
- return this.entries[chunk.id];
68
- };
69
- /**
70
- * Get module source
71
- */
72
- this.getByModule = (module) => {
73
- return this.entries[module.name];
74
- };
75
- this.entries = {};
76
127
  }
128
+ entries = {};
77
129
  push(id, source) {
78
130
  this.entries[id] = source;
79
131
  }
132
+ /**
133
+ * Get asset source
134
+ */
135
+ getByAsset = (asset) => {
136
+ return this.entries[asset.name];
137
+ };
138
+ /**
139
+ * Get chunk source
140
+ */
141
+ getByChunk = (chunk) => {
142
+ return this.entries[chunk.id];
143
+ };
144
+ /**
145
+ * Get module source
146
+ */
147
+ getByModule = (module) => {
148
+ return this.entries[module.name];
149
+ };
80
150
  }
81
151
  const defaultTransform = (stats) => stats;
82
152
  const bundleToWebpackStats = (bundle, pluginOptions) => {
@@ -108,10 +178,10 @@ const bundleToWebpackStats = (bundle, pluginOptions) => {
108
178
  if (entry.type === 'chunk') {
109
179
  assets.push({
110
180
  name: entry.fileName,
111
- size: utils.getByteSize(entry.code),
181
+ size: getByteSize(entry.code),
112
182
  });
113
183
  sources.push(entry.fileName, entry);
114
- const chunkId = utils.getChunkId(entry);
184
+ const chunkId = getChunkId(entry);
115
185
  const chunkAsync = lookupChunkAsync(chunksIssuers, entry);
116
186
  chunks.push({
117
187
  id: chunkId,
@@ -124,11 +194,11 @@ const bundleToWebpackStats = (bundle, pluginOptions) => {
124
194
  Object.entries(entry.modules).forEach(([modulePath, moduleInfo]) => {
125
195
  // Remove unexpected rollup null prefix
126
196
  const normalizedModulePath = modulePath.replace('\u0000', '');
127
- const relativeModulePath = path__default.default.relative(process.cwd(), normalizedModulePath);
197
+ const relativeModulePath = path$1.relative(process.cwd(), normalizedModulePath);
128
198
  // Match webpack output - add current directory prefix for child modules
129
199
  const relativeModulePathWithPrefix = relativeModulePath.match(/^\.\./)
130
200
  ? relativeModulePath
131
- : `.${path__default.default.sep}${relativeModulePath}`;
201
+ : `.${path$1.sep}${relativeModulePath}`;
132
202
  const moduleEntry = moduleByFileName[relativeModulePathWithPrefix];
133
203
  if (moduleEntry) {
134
204
  moduleEntry.chunks.push(chunkId);
@@ -148,7 +218,7 @@ const bundleToWebpackStats = (bundle, pluginOptions) => {
148
218
  else if (entry.type === 'asset') {
149
219
  assets.push({
150
220
  name: entry.fileName,
151
- size: utils.getByteSize(entry.source),
221
+ size: getByteSize(entry.source),
152
222
  });
153
223
  sources.push(entry.fileName, entry);
154
224
  }
@@ -172,5 +242,8 @@ const bundleToWebpackStats = (bundle, pluginOptions) => {
172
242
  };
173
243
 
174
244
  exports.bundleToWebpackStats = bundleToWebpackStats;
245
+ exports.formatFileSize = formatFileSize;
246
+ exports.getByteSize = getByteSize;
175
247
  exports.lookupChunkAsync = lookupChunkAsync;
176
- //# sourceMappingURL=transform.js.map
248
+ exports.resolveFilepath = resolveFilepath;
249
+ //# sourceMappingURL=transform.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.cjs","sources":["../../src/utils.ts","../../src/transform.ts"],"sourcesContent":[null,null],"names":["path"],"mappings":"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"}
@@ -1,5 +1,79 @@
1
- import path from 'path';
2
- import { getByteSize, getChunkId } from './utils.js';
1
+ import path$1 from 'path';
2
+ import path from 'node:path';
3
+ import crypto from 'node:crypto';
4
+
5
+ const HASH_LENGTH = 7;
6
+ /**
7
+ * Get content byte size
8
+ */
9
+ function getByteSize(content) {
10
+ if (!content) {
11
+ return 0;
12
+ }
13
+ if (typeof content === 'string') {
14
+ return Buffer.byteLength(content);
15
+ }
16
+ return content?.length || 0;
17
+ }
18
+ /**
19
+ * Generate a 7 chars hash from a filepath
20
+ */
21
+ function getHash(filepath) {
22
+ const digest = crypto.createHash('sha256');
23
+ return digest.update(filepath).digest('hex').substr(0, HASH_LENGTH);
24
+ }
25
+ function getChunkId(chunk) {
26
+ let value = chunk.name;
27
+ // Use entry module relative path
28
+ if (chunk.moduleIds?.length > 0) {
29
+ const absoluteModulePath = chunk.moduleIds[chunk.moduleIds.length - 1];
30
+ value = path.relative(process.cwd(), absoluteModulePath);
31
+ }
32
+ return getHash([chunk, value].join('-'));
33
+ }
34
+ function round(value, precision = 2) {
35
+ const multiplier = 10 ^ precision;
36
+ return Math.round(value * multiplier) / multiplier;
37
+ }
38
+ const FILE_SIZE = {
39
+ BYTE: {
40
+ symbol: 'B',
41
+ multiplier: 1,
42
+ },
43
+ KILO: {
44
+ symbol: 'KiB',
45
+ multiplier: 1024,
46
+ },
47
+ MEGA: {
48
+ symbol: 'MiB',
49
+ multiplier: 1024 * 1024,
50
+ },
51
+ };
52
+ function formatFileSize(value) {
53
+ let unit = FILE_SIZE.BYTE;
54
+ if (typeof value !== 'number') {
55
+ return `0${unit.symbol}`;
56
+ }
57
+ if (value < FILE_SIZE.KILO.multiplier) {
58
+ unit = FILE_SIZE.BYTE;
59
+ }
60
+ else if (value < FILE_SIZE.MEGA.multiplier) {
61
+ unit = FILE_SIZE.KILO;
62
+ }
63
+ else {
64
+ unit = FILE_SIZE.MEGA;
65
+ }
66
+ return `${round(value / unit.multiplier, 2)}${unit.symbol}`;
67
+ }
68
+ const DEFAULT_FILE_NAME = 'webpack-stats.json';
69
+ function resolveFilepath(fileName = DEFAULT_FILE_NAME, outputDir) {
70
+ // Check if the fileName is an absolute path
71
+ if (path.isAbsolute(fileName)) {
72
+ return fileName;
73
+ }
74
+ // If the fileName is not an absolute path, join it with the output directory or the current working directory
75
+ return path.join(outputDir || process.cwd(), fileName);
76
+ }
3
77
 
4
78
  /**
5
79
  * Recursivily check if a chunk is async based on the chunks issuers
@@ -48,29 +122,29 @@ const lookupChunkAsync = (chunksIssuers, chunk, processedChunks = []) => {
48
122
  class TransformSources {
49
123
  constructor() {
50
124
  this.entries = {};
51
- /**
52
- * Get asset source
53
- */
54
- this.getByAsset = (asset) => {
55
- return this.entries[asset.name];
56
- };
57
- /**
58
- * Get chunk source
59
- */
60
- this.getByChunk = (chunk) => {
61
- return this.entries[chunk.id];
62
- };
63
- /**
64
- * Get module source
65
- */
66
- this.getByModule = (module) => {
67
- return this.entries[module.name];
68
- };
69
- this.entries = {};
70
125
  }
126
+ entries = {};
71
127
  push(id, source) {
72
128
  this.entries[id] = source;
73
129
  }
130
+ /**
131
+ * Get asset source
132
+ */
133
+ getByAsset = (asset) => {
134
+ return this.entries[asset.name];
135
+ };
136
+ /**
137
+ * Get chunk source
138
+ */
139
+ getByChunk = (chunk) => {
140
+ return this.entries[chunk.id];
141
+ };
142
+ /**
143
+ * Get module source
144
+ */
145
+ getByModule = (module) => {
146
+ return this.entries[module.name];
147
+ };
74
148
  }
75
149
  const defaultTransform = (stats) => stats;
76
150
  const bundleToWebpackStats = (bundle, pluginOptions) => {
@@ -118,11 +192,11 @@ const bundleToWebpackStats = (bundle, pluginOptions) => {
118
192
  Object.entries(entry.modules).forEach(([modulePath, moduleInfo]) => {
119
193
  // Remove unexpected rollup null prefix
120
194
  const normalizedModulePath = modulePath.replace('\u0000', '');
121
- const relativeModulePath = path.relative(process.cwd(), normalizedModulePath);
195
+ const relativeModulePath = path$1.relative(process.cwd(), normalizedModulePath);
122
196
  // Match webpack output - add current directory prefix for child modules
123
197
  const relativeModulePathWithPrefix = relativeModulePath.match(/^\.\./)
124
198
  ? relativeModulePath
125
- : `.${path.sep}${relativeModulePath}`;
199
+ : `.${path$1.sep}${relativeModulePath}`;
126
200
  const moduleEntry = moduleByFileName[relativeModulePathWithPrefix];
127
201
  if (moduleEntry) {
128
202
  moduleEntry.chunks.push(chunkId);
@@ -165,5 +239,5 @@ const bundleToWebpackStats = (bundle, pluginOptions) => {
165
239
  return result;
166
240
  };
167
241
 
168
- export { bundleToWebpackStats, lookupChunkAsync };
169
- //# sourceMappingURL=transform.js.map
242
+ export { bundleToWebpackStats as b, formatFileSize as f, getByteSize as g, lookupChunkAsync as l, resolveFilepath as r };
243
+ //# sourceMappingURL=transform.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.mjs","sources":["../../src/utils.ts","../../src/transform.ts"],"sourcesContent":[null,null],"names":["path"],"mappings":"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"}
package/dist/index.cjs ADDED
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ var extractStats = require('rollup-plugin-stats/extract');
4
+ var transform = require('./chunks/transform.cjs');
5
+ var path = require('node:path');
6
+ var fs = require('node:fs/promises');
7
+ require('path');
8
+ require('node:crypto');
9
+
10
+ async function statsWrite(filepath, stats) {
11
+ const content = JSON.stringify(stats, null, 2);
12
+ // Create base directory if it does not exist
13
+ await fs.mkdir(path.dirname(filepath), { recursive: true });
14
+ await fs.writeFile(filepath, content);
15
+ return {
16
+ filepath,
17
+ content,
18
+ };
19
+ }
20
+
21
+ const PLUGIN_NAME = 'webpackStats';
22
+ const webpackStats = (options = {}) => ({
23
+ name: PLUGIN_NAME,
24
+ async generateBundle(outputOptions, bundle) {
25
+ const resolvedOptions = typeof options === 'function' ? options(outputOptions) : options;
26
+ const { fileName, excludeAssets, excludeModules, write = statsWrite, ...transformOptions } = resolvedOptions;
27
+ const rollupStats = extractStats(bundle, {
28
+ excludeAssets,
29
+ excludeModules,
30
+ // Extract stats source to compute size
31
+ source: true,
32
+ });
33
+ const stats = transform.bundleToWebpackStats(rollupStats, transformOptions);
34
+ const filepath = transform.resolveFilepath(fileName, outputOptions.dir);
35
+ try {
36
+ const res = await write(filepath, stats);
37
+ const outputSize = transform.getByteSize(res.content);
38
+ this.info(`Stats saved to ${res.filepath} (${transform.formatFileSize(outputSize)})`);
39
+ }
40
+ catch (error) { // eslint-disable-line
41
+ // Log error, but do not throw to allow the compilation to continue
42
+ this.warn(error);
43
+ }
44
+ },
45
+ });
46
+
47
+ module.exports = webpackStats;
48
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/write.ts","../src/plugin.ts"],"sourcesContent":[null,null],"names":["bundleToWebpackStats","resolveFilepath","getByteSize","formatFileSize"],"mappings":";;;;;;;;;AAaO,eAAe,UAAU,CAE9B,QAAgB,EAAE,KAAQ,EAAA;AAC1B,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;AAG9C,IAAA,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAE3D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAErC,OAAO;QACL,QAAQ;QACR,OAAO;KACR;AACH;;ACpBA,MAAM,WAAW,GAAG,cAAc;AAmB3B,MAAM,YAAY,GAAG,CAC1B,UAAwC,EAAE,MAC9B;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAA;AACxC,QAAA,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO;AACxF,QAAA,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,KAAK,GAAG,UAAU,EAClB,GAAG,gBAAgB,EACpB,GAAG,eAAe;AAEnB,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE;YACvC,aAAa;YACb,cAAc;;AAEd,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC;QACF,MAAM,KAAK,GAAGA,8BAAoB,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACjE,MAAM,QAAQ,GAAGC,yBAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC;AAE7D,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,KAA2C,CAAC;YAC9E,MAAM,UAAU,GAAGC,qBAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAE3C,YAAA,IAAI,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAC,QAAQ,CAAA,EAAA,EAAKC,wBAAc,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC;QAC7E;AAAE,QAAA,OAAO,KAAU,EAAE;;AAEnB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClB;IACF,CAAC;AACF,CAAA;;;;"}
@@ -1,7 +1,20 @@
1
1
  import extractStats from 'rollup-plugin-stats/extract';
2
- import { bundleToWebpackStats } from './transform.js';
3
- import { statsWrite } from './write.js';
4
- import { resolveFilepath, getByteSize, formatFileSize } from './utils.js';
2
+ import { b as bundleToWebpackStats, r as resolveFilepath, g as getByteSize, f as formatFileSize } from './chunks/transform.mjs';
3
+ import path from 'node:path';
4
+ import fs from 'node:fs/promises';
5
+ import 'path';
6
+ import 'node:crypto';
7
+
8
+ async function statsWrite(filepath, stats) {
9
+ const content = JSON.stringify(stats, null, 2);
10
+ // Create base directory if it does not exist
11
+ await fs.mkdir(path.dirname(filepath), { recursive: true });
12
+ await fs.writeFile(filepath, content);
13
+ return {
14
+ filepath,
15
+ content,
16
+ };
17
+ }
5
18
 
6
19
  const PLUGIN_NAME = 'webpackStats';
7
20
  const webpackStats = (options = {}) => ({
@@ -29,5 +42,5 @@ const webpackStats = (options = {}) => ({
29
42
  },
30
43
  });
31
44
 
32
- export { webpackStats };
33
- //# sourceMappingURL=plugin.js.map
45
+ export { webpackStats as default };
46
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/write.ts","../src/plugin.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;;;;;;AAaO,eAAe,UAAU,CAE9B,QAAgB,EAAE,KAAQ,EAAA;AAC1B,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;AAG9C,IAAA,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAE3D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAErC,OAAO;QACL,QAAQ;QACR,OAAO;KACR;AACH;;ACpBA,MAAM,WAAW,GAAG,cAAc;AAmB3B,MAAM,YAAY,GAAG,CAC1B,UAAwC,EAAE,MAC9B;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAA;AACxC,QAAA,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO;AACxF,QAAA,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,KAAK,GAAG,UAAU,EAClB,GAAG,gBAAgB,EACpB,GAAG,eAAe;AAEnB,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE;YACvC,aAAa;YACb,cAAc;;AAEd,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC;QACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACjE,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC;AAE7D,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,KAA2C,CAAC;YAC9E,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAE3C,YAAA,IAAI,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAC,QAAQ,CAAA,EAAA,EAAK,cAAc,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC;QAC7E;AAAE,QAAA,OAAO,KAAU,EAAE;;AAEnB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClB;IACF,CAAC;AACF,CAAA;;;;"}
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ require('path');
4
+ var transform = require('./chunks/transform.cjs');
5
+ require('node:path');
6
+ require('node:crypto');
7
+
8
+
9
+
10
+ exports.bundleToWebpackStats = transform.bundleToWebpackStats;
11
+ exports.lookupChunkAsync = transform.lookupChunkAsync;
12
+ //# sourceMappingURL=transform.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import 'path';
2
+ export { b as bundleToWebpackStats, l as lookupChunkAsync } from './chunks/transform.mjs';
3
+ import 'node:path';
4
+ import 'node:crypto';
5
+ //# sourceMappingURL=transform.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rollup-plugin-webpack-stats",
3
- "version": "2.1.5-beta.5",
3
+ "version": "2.1.5",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -11,19 +11,19 @@
11
11
  "stats",
12
12
  "bundle-stats"
13
13
  ],
14
- "main": "lib/cjs/index.js",
15
- "module": "lib/esm/index.js",
16
- "typings": "lib/types/index.d.ts",
14
+ "main": "dist/index.cjs",
15
+ "module": "dist/index.mjs",
16
+ "typings": "dist/index.d.ts",
17
17
  "exports": {
18
18
  ".": {
19
- "types": "./lib/types/index.d.ts",
20
- "import": "./lib/esm/index.js",
21
- "require": "./lib/cjs/index.js"
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.mjs",
21
+ "require": "./dist/index.cjs"
22
22
  },
23
23
  "./transform": {
24
- "types": "./lib/types/transform.d.ts",
25
- "import": "./lib/esm/transform.js",
26
- "require": "./lib/cjs/transform.js"
24
+ "types": "./dist/transform.d.ts",
25
+ "import": "./dist/transform.mjs",
26
+ "require": "./dist/transform.cjs"
27
27
  }
28
28
  },
29
29
  "author": {
@@ -40,20 +40,17 @@
40
40
  },
41
41
  "homepage": "https://github.com/relative-ci/rollup-plugin-webpack-stats/blob/master/#readme",
42
42
  "files": [
43
- "lib"
43
+ "dist"
44
44
  ],
45
45
  "engines": {
46
46
  "node": ">=18"
47
47
  },
48
48
  "scripts": {
49
- "build": "npm run clean && rollup -c && npm run build-package-type",
50
- "build-package-type": "echo '{\"type\":\"module\"}' > lib/esm/package.json",
51
- "clean": "rimraf ./lib",
49
+ "prebuild": "rimraf ./dist",
50
+ "build": "tsc && rollup -c rollup.config.mjs",
52
51
  "lint": "exit 0",
53
52
  "test:unit": "vitest test/unit",
54
- "test:package": "npm run test:package:rollup && npm run test:package:vite",
55
- "test:package:rollup": "cd test/package/rollup && vitest",
56
- "test:package:vite": "cd test/package/vite && vitest",
53
+ "test:package": "cd test/package && vitest",
57
54
  "bump": "./scripts/bump.sh",
58
55
  "release": "./scripts/release.sh"
59
56
  },
@@ -70,29 +67,25 @@
70
67
  },
71
68
  "devDependencies": {
72
69
  "@release-it/conventional-changelog": "10.0.1",
73
- "@rollup/plugin-commonjs": "28.0.6",
74
- "@rollup/plugin-node-resolve": "16.0.1",
75
70
  "@rollup/plugin-typescript": "12.1.4",
76
71
  "@tsconfig/node18": "18.2.4",
77
- "@types/node": "24.3.0",
78
- "dotenv": "17.2.1",
72
+ "@types/node": "24.5.2",
79
73
  "husky": "9.1.7",
80
- "memfs": "4.36.3",
81
- "release-it": "19.0.4",
74
+ "memfs": "4.47.0",
75
+ "release-it": "19.0.5",
82
76
  "rimraf": "6.0.1",
83
- "rollup": "4.46.4",
84
- "rollup-plugin-node-externals": "8.1.0",
77
+ "rollup": "4.52.3",
85
78
  "tslib": "2.8.1",
86
79
  "typescript": "5.9.2",
87
80
  "vitest": "3.2.4"
88
81
  },
89
82
  "dependencies": {
90
- "rollup-plugin-stats": "1.5.1-beta.3"
83
+ "rollup-plugin-stats": "1.5.1"
91
84
  },
92
85
  "peerDependencies": {
93
- "rolldown": "^1.0.0-beta.0",
86
+ "vite": "^5.0.0 || ^6.0.0 || ^7.0.0",
94
87
  "rollup": "^3.0.0 || ^4.0.0",
95
- "vite": "^5.0.0 || ^6.0.0 || ^7.0.0"
88
+ "rolldown": "^1.0.0-beta.0"
96
89
  },
97
90
  "peerDependenciesMeta": {
98
91
  "vite": {
package/lib/cjs/index.js DELETED
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- var plugin = require('./plugin.js');
4
-
5
-
6
-
7
- module.exports = plugin.webpackStats;
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
package/lib/cjs/plugin.js DELETED
@@ -1,39 +0,0 @@
1
- 'use strict';
2
-
3
- var extractStats = require('rollup-plugin-stats/extract');
4
- var transform = require('./transform.js');
5
- var write = require('./write.js');
6
- var utils = require('./utils.js');
7
-
8
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
-
10
- var extractStats__default = /*#__PURE__*/_interopDefault(extractStats);
11
-
12
- const PLUGIN_NAME = 'webpackStats';
13
- const webpackStats = (options = {}) => ({
14
- name: PLUGIN_NAME,
15
- async generateBundle(outputOptions, bundle) {
16
- const resolvedOptions = typeof options === 'function' ? options(outputOptions) : options;
17
- const { fileName, excludeAssets, excludeModules, write: write$1 = write.statsWrite, ...transformOptions } = resolvedOptions;
18
- const rollupStats = extractStats__default.default(bundle, {
19
- excludeAssets,
20
- excludeModules,
21
- // Extract stats source to compute size
22
- source: true,
23
- });
24
- const stats = transform.bundleToWebpackStats(rollupStats, transformOptions);
25
- const filepath = utils.resolveFilepath(fileName, outputOptions.dir);
26
- try {
27
- const res = await write$1(filepath, stats);
28
- const outputSize = utils.getByteSize(res.content);
29
- this.info(`Stats saved to ${res.filepath} (${utils.formatFileSize(outputSize)})`);
30
- }
31
- catch (error) { // eslint-disable-line
32
- // Log error, but do not throw to allow the compilation to continue
33
- this.warn(error);
34
- }
35
- },
36
- });
37
-
38
- exports.webpackStats = webpackStats;
39
- //# sourceMappingURL=plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sources":["../../../src/plugin.ts"],"sourcesContent":[null],"names":["write","statsWrite","extractStats","bundleToWebpackStats","resolveFilepath","getByteSize","formatFileSize"],"mappings":";;;;;;;;;;;AAOA,MAAM,WAAW,GAAG,cAAc;AAmB3B,MAAM,YAAY,GAAG,CAC1B,UAAwC,EAAE,MAC9B;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAA;AACxC,QAAA,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO;AACxF,QAAA,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,cAAc,SACdA,OAAK,GAAGC,gBAAU,EAClB,GAAG,gBAAgB,EACpB,GAAG,eAAe;AAEnB,QAAA,MAAM,WAAW,GAAGC,6BAAY,CAAC,MAAM,EAAE;YACvC,aAAa;YACb,cAAc;;AAEd,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC;QACF,MAAM,KAAK,GAAGC,8BAAoB,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACjE,MAAM,QAAQ,GAAGC,qBAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC;AAE7D,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,MAAMJ,OAAK,CAAC,QAAQ,EAAE,KAA2C,CAAC;YAC9E,MAAM,UAAU,GAAGK,iBAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAE3C,YAAA,IAAI,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAC,QAAQ,CAAA,EAAA,EAAKC,oBAAc,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC;QAC7E;AAAE,QAAA,OAAO,KAAU,EAAE;;AAEnB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClB;IACF,CAAC;AACF,CAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sources":["../../../src/transform.ts"],"sourcesContent":[null],"names":["getByteSize","getChunkId","path"],"mappings":"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"}
package/lib/cjs/utils.js DELETED
@@ -1,90 +0,0 @@
1
- 'use strict';
2
-
3
- var path = require('node:path');
4
- var crypto = require('node:crypto');
5
-
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var path__default = /*#__PURE__*/_interopDefault(path);
9
- var crypto__default = /*#__PURE__*/_interopDefault(crypto);
10
-
11
- const HASH_LENGTH = 7;
12
- /**
13
- * Get content byte size
14
- */
15
- function getByteSize(content) {
16
- if (!content) {
17
- return 0;
18
- }
19
- if (typeof content === 'string') {
20
- return Buffer.byteLength(content);
21
- }
22
- return content?.length || 0;
23
- }
24
- /**
25
- * Generate a 7 chars hash from a filepath
26
- */
27
- function getHash(filepath) {
28
- const digest = crypto__default.default.createHash('sha256');
29
- return digest.update(filepath).digest('hex').substr(0, HASH_LENGTH);
30
- }
31
- function getChunkId(chunk) {
32
- let value = chunk.name;
33
- // Use entry module relative path
34
- if (chunk.moduleIds?.length > 0) {
35
- const absoluteModulePath = chunk.moduleIds[chunk.moduleIds.length - 1];
36
- value = path__default.default.relative(process.cwd(), absoluteModulePath);
37
- }
38
- return getHash([chunk, value].join('-'));
39
- }
40
- function round(value, precision = 2) {
41
- const multiplier = 10 ^ precision;
42
- return Math.round(value * multiplier) / multiplier;
43
- }
44
- const FILE_SIZE = {
45
- BYTE: {
46
- symbol: 'B',
47
- multiplier: 1,
48
- },
49
- KILO: {
50
- symbol: 'KiB',
51
- multiplier: 1024,
52
- },
53
- MEGA: {
54
- symbol: 'MiB',
55
- multiplier: 1024 * 1024,
56
- },
57
- };
58
- function formatFileSize(value) {
59
- let unit = FILE_SIZE.BYTE;
60
- if (typeof value !== 'number') {
61
- return `0${unit.symbol}`;
62
- }
63
- if (value < FILE_SIZE.KILO.multiplier) {
64
- unit = FILE_SIZE.BYTE;
65
- }
66
- else if (value < FILE_SIZE.MEGA.multiplier) {
67
- unit = FILE_SIZE.KILO;
68
- }
69
- else {
70
- unit = FILE_SIZE.MEGA;
71
- }
72
- return `${round(value / unit.multiplier, 2)}${unit.symbol}`;
73
- }
74
- const DEFAULT_FILE_NAME = 'webpack-stats.json';
75
- function resolveFilepath(fileName = DEFAULT_FILE_NAME, outputDir) {
76
- // Check if the fileName is an absolute path
77
- if (path__default.default.isAbsolute(fileName)) {
78
- return fileName;
79
- }
80
- // If the fileName is not an absolute path, join it with the output directory or the current working directory
81
- return path__default.default.join(outputDir || process.cwd(), fileName);
82
- }
83
-
84
- exports.formatFileSize = formatFileSize;
85
- exports.getByteSize = getByteSize;
86
- exports.getChunkId = getChunkId;
87
- exports.getHash = getHash;
88
- exports.resolveFilepath = resolveFilepath;
89
- exports.round = round;
90
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/utils.ts"],"sourcesContent":[null],"names":["crypto","path"],"mappings":"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"}
package/lib/cjs/write.js DELETED
@@ -1,23 +0,0 @@
1
- 'use strict';
2
-
3
- var path = require('node:path');
4
- var fs = require('node:fs/promises');
5
-
6
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
7
-
8
- var path__default = /*#__PURE__*/_interopDefault(path);
9
- var fs__default = /*#__PURE__*/_interopDefault(fs);
10
-
11
- async function statsWrite(filepath, stats) {
12
- const content = JSON.stringify(stats, null, 2);
13
- // Create base directory if it does not exist
14
- await fs__default.default.mkdir(path__default.default.dirname(filepath), { recursive: true });
15
- await fs__default.default.writeFile(filepath, content);
16
- return {
17
- filepath,
18
- content,
19
- };
20
- }
21
-
22
- exports.statsWrite = statsWrite;
23
- //# sourceMappingURL=write.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"write.js","sources":["../../../src/write.ts"],"sourcesContent":[null],"names":["fs","path"],"mappings":";;;;;;;;;;AAaO,eAAe,UAAU,CAE9B,QAAgB,EAAE,KAAQ,EAAA;AAC1B,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;AAG9C,IAAA,MAAMA,mBAAE,CAAC,KAAK,CAACC,qBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAE3D,MAAMD,mBAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAErC,OAAO;QACL,QAAQ;QACR,OAAO;KACR;AACH;;;;"}
package/lib/esm/index.js DELETED
@@ -1,6 +0,0 @@
1
- import { webpackStats } from './plugin.js';
2
-
3
-
4
-
5
- export { webpackStats as default };
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1 +0,0 @@
1
- {"type":"module"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sources":["../../../src/plugin.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAOA,MAAM,WAAW,GAAG,cAAc;AAmB3B,MAAM,YAAY,GAAG,CAC1B,UAAwC,EAAE,MAC9B;AACZ,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,MAAM,cAAc,CAAC,aAAa,EAAE,MAAM,EAAA;AACxC,QAAA,MAAM,eAAe,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO;AACxF,QAAA,MAAM,EACJ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,KAAK,GAAG,UAAU,EAClB,GAAG,gBAAgB,EACpB,GAAG,eAAe;AAEnB,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE;YACvC,aAAa;YACb,cAAc;;AAEd,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC;QACF,MAAM,KAAK,GAAG,oBAAoB,CAAC,WAAW,EAAE,gBAAgB,CAAC;QACjE,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC;AAE7D,QAAA,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,KAA2C,CAAC;YAC9E,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAE3C,YAAA,IAAI,CAAC,IAAI,CAAC,CAAA,eAAA,EAAkB,GAAG,CAAC,QAAQ,CAAA,EAAA,EAAK,cAAc,CAAC,UAAU,CAAC,CAAA,CAAA,CAAG,CAAC;QAC7E;AAAE,QAAA,OAAO,KAAU,EAAE;;AAEnB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClB;IACF,CAAC;AACF,CAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transform.js","sources":["../../../src/transform.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/lib/esm/utils.js DELETED
@@ -1,78 +0,0 @@
1
- import path from 'node:path';
2
- import crypto from 'node:crypto';
3
-
4
- const HASH_LENGTH = 7;
5
- /**
6
- * Get content byte size
7
- */
8
- function getByteSize(content) {
9
- if (!content) {
10
- return 0;
11
- }
12
- if (typeof content === 'string') {
13
- return Buffer.byteLength(content);
14
- }
15
- return content?.length || 0;
16
- }
17
- /**
18
- * Generate a 7 chars hash from a filepath
19
- */
20
- function getHash(filepath) {
21
- const digest = crypto.createHash('sha256');
22
- return digest.update(filepath).digest('hex').substr(0, HASH_LENGTH);
23
- }
24
- function getChunkId(chunk) {
25
- let value = chunk.name;
26
- // Use entry module relative path
27
- if (chunk.moduleIds?.length > 0) {
28
- const absoluteModulePath = chunk.moduleIds[chunk.moduleIds.length - 1];
29
- value = path.relative(process.cwd(), absoluteModulePath);
30
- }
31
- return getHash([chunk, value].join('-'));
32
- }
33
- function round(value, precision = 2) {
34
- const multiplier = 10 ^ precision;
35
- return Math.round(value * multiplier) / multiplier;
36
- }
37
- const FILE_SIZE = {
38
- BYTE: {
39
- symbol: 'B',
40
- multiplier: 1,
41
- },
42
- KILO: {
43
- symbol: 'KiB',
44
- multiplier: 1024,
45
- },
46
- MEGA: {
47
- symbol: 'MiB',
48
- multiplier: 1024 * 1024,
49
- },
50
- };
51
- function formatFileSize(value) {
52
- let unit = FILE_SIZE.BYTE;
53
- if (typeof value !== 'number') {
54
- return `0${unit.symbol}`;
55
- }
56
- if (value < FILE_SIZE.KILO.multiplier) {
57
- unit = FILE_SIZE.BYTE;
58
- }
59
- else if (value < FILE_SIZE.MEGA.multiplier) {
60
- unit = FILE_SIZE.KILO;
61
- }
62
- else {
63
- unit = FILE_SIZE.MEGA;
64
- }
65
- return `${round(value / unit.multiplier, 2)}${unit.symbol}`;
66
- }
67
- const DEFAULT_FILE_NAME = 'webpack-stats.json';
68
- function resolveFilepath(fileName = DEFAULT_FILE_NAME, outputDir) {
69
- // Check if the fileName is an absolute path
70
- if (path.isAbsolute(fileName)) {
71
- return fileName;
72
- }
73
- // If the fileName is not an absolute path, join it with the output directory or the current working directory
74
- return path.join(outputDir || process.cwd(), fileName);
75
- }
76
-
77
- export { formatFileSize, getByteSize, getChunkId, getHash, resolveFilepath, round };
78
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
package/lib/esm/write.js DELETED
@@ -1,16 +0,0 @@
1
- import path from 'node:path';
2
- import fs from 'node:fs/promises';
3
-
4
- async function statsWrite(filepath, stats) {
5
- const content = JSON.stringify(stats, null, 2);
6
- // Create base directory if it does not exist
7
- await fs.mkdir(path.dirname(filepath), { recursive: true });
8
- await fs.writeFile(filepath, content);
9
- return {
10
- filepath,
11
- content,
12
- };
13
- }
14
-
15
- export { statsWrite };
16
- //# sourceMappingURL=write.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"write.js","sources":["../../../src/write.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAaO,eAAe,UAAU,CAE9B,QAAgB,EAAE,KAAQ,EAAA;AAC1B,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;AAG9C,IAAA,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAE3D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC;IAErC,OAAO;QACL,QAAQ;QACR,OAAO;KACR;AACH;;;;"}
File without changes
File without changes
File without changes
File without changes
File without changes