@oroinc/oro-webpack-config-builder 5.1.0-lts013 → 5.1.0-lts015

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.
@@ -9,8 +9,6 @@ const EntryPointFileWriter = require('./writer/scss-entry-point-file-writer');
9
9
  const LayoutModulesConfigLoader = require('./modules-config/layout-modules-config-loader');
10
10
  const LayoutStyleLoader = require('./style/layout-style-loader');
11
11
  const MapModulesPlugin = require('./plugin/map/map-modules-plugin');
12
- const IntegrityFilePlugin = require('./plugin/integrity/integrity-file-plugin');
13
- const {SubresourceIntegrityPlugin} = require('webpack-subresource-integrity');
14
12
  const MiniCssExtractPlugin = require('mini-css-extract-plugin');
15
13
  const ModulesConfigLoader = require('./modules-config/modules-config-loader');
16
14
  const DynamicImportsFileWriter = require('./writer/dynamic-imports-file-writer');
@@ -282,8 +280,7 @@ class ConfigBuilder {
282
280
  output: {
283
281
  filename: '[name].js',
284
282
  // Because we use third party libraries 'chunkFilename' should include only [name]
285
- chunkFilename: this._getVersionedPath('chunk/[name].js', this.assetVersion),
286
- crossOriginLoading: "anonymous"
283
+ chunkFilename: this._getVersionedPath('chunk/[name].js', this.assetVersion)
287
284
  },
288
285
  devtool: !env.skipSourcemap && 'inline-cheap-module-source-map',
289
286
  mode: 'development',
@@ -350,10 +347,11 @@ class ConfigBuilder {
350
347
  options: {
351
348
  implementation: require("sass"),
352
349
  sassOptions: {
353
- includePaths: [
354
- path.join(this.resolvedPublicPath, '/bundles')
350
+ loadPaths: [
351
+ path.join(this.resolvedPublicPath, '/bundles'),
352
+ path.join(this.resolvedProjectPath, '/assets')
355
353
  ],
356
- outputStyle: 'expanded'
354
+ style: 'expanded'
357
355
  },
358
356
  sourceMap: true
359
357
  }
@@ -386,10 +384,6 @@ class ConfigBuilder {
386
384
  new webpack.optimize.MinChunkSizePlugin({
387
385
  minChunkSize: 30000 // Minimum number of characters
388
386
  }),
389
- new SubresourceIntegrityPlugin(),
390
- new IntegrityFilePlugin({
391
- publicPath: this.resolvedPublicPath
392
- }),
393
387
  new AfterWebpackLogsPlugin(
394
388
  stats => this.emitter.emit('build:complete', stats)
395
389
  ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oroinc/oro-webpack-config-builder",
3
- "version": "5.1.0-lts013",
3
+ "version": "5.1.0-lts015",
4
4
  "author": "Oro, Inc (https://www.oroinc.com)",
5
5
  "license": "MIT",
6
6
  "description": "An integration of OroPlatform based applications with the Webpack.",
@@ -32,8 +32,8 @@
32
32
  "printf": "~0.6.0",
33
33
  "resolve-url-loader": "^5.0.0",
34
34
  "rtlcss-webpack-plugin": "~4.0.6",
35
- "sass": "~1.62.0",
36
- "sass-loader": "~13.2.0",
35
+ "sass": "1.98.0",
36
+ "sass-loader": "16.0.7",
37
37
  "schema-utils": "^4.0.0",
38
38
  "style-loader": "~3.3.1",
39
39
  "terser": "~5.17.1",
@@ -46,7 +46,6 @@
46
46
  "webpack-cli": "~5.0.0",
47
47
  "webpack-dev-server": "^4.11.1",
48
48
  "webpack-merge": "~5.8.0",
49
- "webpack-subresource-integrity": "^5.2.0-rc.1",
50
49
  "wildcard": "~2.0.0"
51
50
  }
52
51
  }
@@ -1,42 +0,0 @@
1
- const { createHash } = require('crypto');
2
- const { Compilation, sources } = require('webpack');
3
- const fs = require('fs').promises;
4
- const path = require('path');
5
-
6
- class IntegrityFilePlugin {
7
- constructor({fileName = 'integrity.json', publicPath = '', algorithm = 'sha384'} = {}) {
8
- this.fileName = fileName;
9
- this.publicPath = publicPath;
10
- this.algorithm = algorithm;
11
- }
12
-
13
- apply(compiler) {
14
- compiler.hooks.thisCompilation.tap('IntegrityFilePlugin', (compilation) => {
15
- compilation.hooks.processAssets.tapPromise(
16
- { name: 'SubresourceIntegrityPlugin', stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_TRANSFER },
17
- async () => {
18
- const integrityData = Object.fromEntries(
19
- Object.entries(compilation.assets)
20
- .filter(([assetName]) => assetName.endsWith('.css') || assetName.endsWith('.js'))
21
- .map(([assetName, asset]) => {
22
- const hash = createHash(this.algorithm).update(asset.source()).digest('base64');
23
- const assetNormalized = assetName.split('?')[0];
24
-
25
- return [
26
- path.join(compiler.options.output.publicPath || '', assetNormalized),
27
- `${this.algorithm}-${hash}`
28
- ];
29
- })
30
- );
31
- const jsonData = JSON.stringify(integrityData, null, 2);
32
- const outputPath = path.join(this.publicPath, compiler.options.output.publicPath, this.fileName);
33
-
34
- await fs.writeFile(outputPath, jsonData, 'utf8');
35
- compilation.emitAsset(outputPath, new sources.RawSource(jsonData));
36
- }
37
- );
38
- });
39
- }
40
- }
41
-
42
- module.exports = IntegrityFilePlugin;