From 9c90f6a3a86aeeb5c48539ceb4916f02e5de8b9d Mon Sep 17 00:00:00 2001 From: Miles Richardson Date: Fri, 20 Aug 2021 17:28:34 +0100 Subject: [PATCH] Fix bug with webpack5, storybook 6.4.0-alpha, and react-docgen-typescript-plugin - tl;dr : Add a resolutions field. Note that this field needs to be in the root workspace to have any effect, and so therefore must be repeated in the root package.json of both this repo and its parent monorepo. - Add a longer explanation of what happened in the .ci/chromatic.sh script, since package.json doesn't allow comments, and since the next time this breaks, it's gonna be in that file - Bump webpack to absolute cutting edge bleeding nightly super early bird - In storybook config, explicitly configure react-docgen-typescript-plugin, although I have no reason to think it made a difference - Allow specifying tsconfig file via env var TSCONFIG_FILE, default to tsconfig.json CU-qthhx6 ref https://github.com/storybookjs/storybook/issues/15336 ref https://github.com/hipstersmoothie/react-docgen-typescript-plugin/blob/31ce4e84008a45269b8524157ad51bf9d191acac/package.json#L81 ref https://gist.github.com/shilman/8856ea1786dcd247139b47b270912324 --- .ci/chromatic.sh | 77 ++++++ .../workflows/build_and_deploy_preview.yml | 2 +- docs/.storybook/main.js | 23 ++ docs/package.json | 2 +- package.json | 3 + yarn-public-workspace.lock | 223 +----------------- 6 files changed, 111 insertions(+), 219 deletions(-) diff --git a/.ci/chromatic.sh b/.ci/chromatic.sh index 68d8b623..6b74f1c0 100755 --- a/.ci/chromatic.sh +++ b/.ci/chromatic.sh @@ -47,3 +47,80 @@ yarn dlx chromatic \ && exit 0 exit 1 +# the end. remainder of file is for debugging and notes + +# When debugging, you probably just want to run a build, so uncomment this: +# yarn run storybook-build \ +# --output-dir out-storybook \ +# && exit 0 + +# NOTE +# TEMPORARY WORKAROUND for upstream bugs amidst the ecosystem migration to webpack 5 +# [Commenting here since this is the file that could have a CI failure due to this.] +# +# The relevant code is actually in `splitgraph.com/package.json`, but I can't +# leave comments in JS files, and this deserves an explanation... +# +# "@storybook/react/webpack": "5.51.1" +# +# We are telling @storybook/react to resolve webpack to 5.51.1, which means it +# will _provide_ webpack@5.51.1 as a peerDependency to the buggy package +# below it, `react-docgen-typescript-plugin`, which we want to force to +# accept webpack 5 instead of webpack 4 while both are within its range of >= 4. +# +# -- PROBLEM: +# Problem is `react-docgen-typescript-plugin` peerDependency webpack @ >= 4 +# We're using webpack 5 for storybook compilation, but it's experimental, and +# Storybook still uses webpack 4 for its "manager interface." So we need to +# keep a copy of both webpack 4 and webpack 5. +# +# webpack 5 is _not_ hoisted (it's in docs) +# webpack 4 _is_ hoisted (it goes to root) +# +# There is a bug (IMO) in `react-docgen-typescript-plugin`, where it tries to +# import directly from the resolved location of webpack 4, even though it's +# attempting to import files that only exist in webpack 5. The maintainer is +# not going to drop webpack 4 until the next major release. +# +# n.b: This problem will only reproduce when `splitgraph/splitgraph.com` repo +# is running in "isolation", i.e. during CI or by a developer outside the monorepo. +# +# To reproduce locally, you can use ACT or just clone the repo to a temp dir. +# For details on using ACT, see README.md +# +# -- FIX: +# yarn resolutions to the rescue! We want to force `react-docgen-typescript-plugin` +# to resolve webpack 4 to webpack 5, but _without_ overriding resolutions of other +# packages that depend on webpack 4 (like this alleged manager code). +# +# But since it's a peer dependency, the package has no say in what version satisfies +# its range of >= 4. So setting a resolution for that package wouldn't do anything. +# +# Instead, we want to tell the _parent_ of the buggy package to _provide_ it with +# webpack 5 as a peerDependency to satisfy the range of `webpack >= 4`. +# +# In this case, the parent is `@storybook/react`, and it's _providing_ `webpack` +# so we need to use `@storybook/react/webpack` as the key in the `resolutions` field. + +# Note: This will likely also change the version of webpack provided to any other +# direct dependencies of `@storybook/react` that have a webpack peer dependency +# of any version. This hasn't caused problems yet. +# +#[More targeted approach would be to `yarn patch` that buggy +# repository and change its peerDependencies to 5. ] +# +# DEBUGGING / INVESTIGATING IF HACK IS STILL NECESSARY +# +# Eventually this bug will be fixed and this hack will be unnecessary. +# Here are some helpful commands for investigating (but first, reproduce the error) +# +# # find the relevant peer-requirement. Need 5 digit pHash, e.g. p387a7 +# yarn explain peer-requirements | grep webpack | grep docgen +# +# # explain that specific ID +# yarn explain peer-requirements p387a7 +# +# # set the resolution for webpack to pin at 5.51.1 +# # (we will want 5.51.1 to match whatever version of webpack is installed) +# yarn set resolution @storybook/react-docgen-typescript-plugin@*/webpack 5.51.1 +# diff --git a/.github/workflows/build_and_deploy_preview.yml b/.github/workflows/build_and_deploy_preview.yml index 32286e94..25b7d242 100644 --- a/.github/workflows/build_and_deploy_preview.yml +++ b/.github/workflows/build_and_deploy_preview.yml @@ -54,7 +54,7 @@ jobs: # Typecheck - uses: actions/cache@v1 with: - path: ${github.workspace} + path: ${github.workspace}/dist key: typecache - name: Typecheck id: typecheck diff --git a/docs/.storybook/main.js b/docs/.storybook/main.js index ed3e60c8..3efa1727 100644 --- a/docs/.storybook/main.js +++ b/docs/.storybook/main.js @@ -1,7 +1,30 @@ +const TSCONFIG_PATH = require("path").join( + __dirname, + "..", + process.env.TSCONFIG_PATH ?? `tsconfig.json` +); + +console.log("TSCONFIG_PATH:", TSCONFIG_PATH); + module.exports = { core: { builder: "webpack5", }, + // https://storybook.js.org/docs/react/configure/typescript + typescript: { + check: false, + checkOptions: {}, + reactDocgen: "react-docgen-typescript", + + // https://github.com/hipstersmoothie/react-docgen-typescript-plugin + // https://github.com/styleguidist/react-docgen-typescript#parseroptions + // https://github.com/hipstersmoothie/react-docgen-typescript-plugin#debugging + reactDocgenTypescriptOptions: { + shouldExtractLiteralValuesFromEnum: true, + propFilter: (prop) => + prop.parent ? !/node_modules/.test(prop.parent.fileName) : true, + }, + }, reactOptions: { fastRefresh: true, }, diff --git a/docs/package.json b/docs/package.json index 6373dd4b..323172ab 100644 --- a/docs/package.json +++ b/docs/package.json @@ -76,7 +76,7 @@ "@types/styled-system": "5.1.10", "babel-loader": "8.2.2", "now": "18.0.0", - "webpack": "5.28.0" + "webpack": "5.51.1" }, "peerDependencies": { "@emotion/react": "*", diff --git a/package.json b/package.json index 645269f8..741ee780 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,9 @@ "templaters", "lib" ], + "resolutions": { + "@storybook/react/webpack": "5.51.1" + }, "scripts": { "typecheck-and-build": "yarn run typecheck && yarn run build", "build": "yarn workspace @splitgraph/docs run build", diff --git a/yarn-public-workspace.lock b/yarn-public-workspace.lock index ad22353b..c19c915a 100644 --- a/yarn-public-workspace.lock +++ b/yarn-public-workspace.lock @@ -2648,7 +2648,7 @@ __metadata: serve: 11.3.2 storybook-addon-designs: 6.0.1 unist-util-find: 1.0.2 - webpack: 5.28.0 + webpack: 5.51.1 peerDependencies: "@emotion/react": "*" "@emotion/styled": "*" @@ -4141,13 +4141,6 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:^0.0.46": - version: 0.0.46 - resolution: "@types/estree@npm:0.0.46" - checksum: 69fcf647706f5b6a475ec2f9aacf73b40866f577eef6c6f33de95cc3b4897381c2a8257646f13cd5d91fffc5debfe6289b6864ba29ad349ae68703f8b993c9f6 - languageName: node - linkType: hard - "@types/glob@npm:*, @types/glob@npm:^7.1.1": version: 7.1.4 resolution: "@types/glob@npm:7.1.4" @@ -4506,16 +4499,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/ast@npm:1.11.0" - dependencies: - "@webassemblyjs/helper-numbers": 1.11.0 - "@webassemblyjs/helper-wasm-bytecode": 1.11.0 - checksum: fc26bf2c831c472535eb45b21931c2118d3037cd132b4837accf41a3a2e3501a5a894389b79fd80106af936c574be164a1af42219e66237de96a617690aecfcf - languageName: node - linkType: hard - "@webassemblyjs/ast@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/ast@npm:1.11.1" @@ -4537,13 +4520,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/floating-point-hex-parser@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.0" - checksum: ae591c9e961f14510ea599c6aa08b9a728cc23e7ba19bd8383bf23b695035c5bbeb5f25dba34ad2fba441eb39beebe0d1aa6e83ead4a19a78120449ab3a56ef0 - languageName: node - linkType: hard - "@webassemblyjs/floating-point-hex-parser@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.1" @@ -4558,13 +4534,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-api-error@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.0" - checksum: 6a2c533780e63d79df33a2f455d0bcfbbbd0543da4f5e845eb6f7f7d68debf124a6e3c5d50888cc2eb4c251d90f77e6203498fff3177e8eb03e5175bae37a956 - languageName: node - linkType: hard - "@webassemblyjs/helper-api-error@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/helper-api-error@npm:1.11.1" @@ -4579,13 +4548,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/helper-buffer@npm:1.11.0" - checksum: 9303e0eaa4a1ab63fa1c8be95b6777499440946c4213846672cca4bb4657674d6c4a05cdfdfc8c0b22e885c830abdbcd9132ca1b869f3f41c244aacec3a4013e - languageName: node - linkType: hard - "@webassemblyjs/helper-buffer@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/helper-buffer@npm:1.11.1" @@ -4625,17 +4587,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.0" - dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.0 - "@webassemblyjs/helper-api-error": 1.11.0 - "@xtuc/long": 4.2.2 - checksum: 58c29d37f9d6c5eaa1feb6af7ab7282cb35d1c9eaa95406c64942507ac11de1a975082fc825556e73b9ed5cdecb8aa22020559028ae45d5b3d42a7f2a6773881 - languageName: node - linkType: hard - "@webassemblyjs/helper-numbers@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/helper-numbers@npm:1.11.1" @@ -4647,13 +4598,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.0" - checksum: 5bcd67b430c6b39a25fe8904cc2f832ebfef7e2da17a84326553e2b69dde7aa6bc486380f4fa0d01f17f966fff93ac3b6523ffad79e4b8661eb6ddf7f9182e88 - languageName: node - linkType: hard - "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.1" @@ -4668,18 +4612,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.0" - dependencies: - "@webassemblyjs/ast": 1.11.0 - "@webassemblyjs/helper-buffer": 1.11.0 - "@webassemblyjs/helper-wasm-bytecode": 1.11.0 - "@webassemblyjs/wasm-gen": 1.11.0 - checksum: ad4dd37c2b88ad2f7b53e5e9c04a1ce75eace4fd05b117a5459ebf9b8bd4f417ec6837c8b448481da95cad14d48413b937072146fee79796d1c86ec0cc32339d - languageName: node - linkType: hard - "@webassemblyjs/helper-wasm-section@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/helper-wasm-section@npm:1.11.1" @@ -4704,15 +4636,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/ieee754@npm:1.11.0" - dependencies: - "@xtuc/ieee754": ^1.2.0 - checksum: 7f282b7ab0754d89ad42f224de34622309e67a4869fc016b51fc8931ce0443a7bab289d5a59c683a9197fdaa60849e26cd68d2b36492af28b9d89139fda3c6c3 - languageName: node - linkType: hard - "@webassemblyjs/ieee754@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/ieee754@npm:1.11.1" @@ -4731,15 +4654,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/leb128@npm:1.11.0" - dependencies: - "@xtuc/long": 4.2.2 - checksum: d101b817361498a92697ddf9432bcde12bb52924d2494fad8bddd79ce6386f0c81275f014905b0342edd61d3b2a5b97e044b91f023fab9b44b0e00f8f794b888 - languageName: node - linkType: hard - "@webassemblyjs/leb128@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/leb128@npm:1.11.1" @@ -4758,13 +4672,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/utf8@npm:1.11.0" - checksum: 772caa33fe900043a0dcf1cb4a6cc82a3359460a9de1df7dd9aaf736fcade80e678d939ca8e23063eccd17e44c0184769899874fe8d8f787e56318d462dcb83e - languageName: node - linkType: hard - "@webassemblyjs/utf8@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/utf8@npm:1.11.1" @@ -4779,22 +4686,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/wasm-edit@npm:1.11.0" - dependencies: - "@webassemblyjs/ast": 1.11.0 - "@webassemblyjs/helper-buffer": 1.11.0 - "@webassemblyjs/helper-wasm-bytecode": 1.11.0 - "@webassemblyjs/helper-wasm-section": 1.11.0 - "@webassemblyjs/wasm-gen": 1.11.0 - "@webassemblyjs/wasm-opt": 1.11.0 - "@webassemblyjs/wasm-parser": 1.11.0 - "@webassemblyjs/wast-printer": 1.11.0 - checksum: 3d83a925a54270fbc443a9606375b63469fc938e8af0ddd2516c98c2dd52d3113345a9ce1c8c42b524ee1301c45124685377a6dd764b56628cf5563e484fee0f - languageName: node - linkType: hard - "@webassemblyjs/wasm-edit@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/wasm-edit@npm:1.11.1" @@ -4827,19 +4718,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/wasm-gen@npm:1.11.0" - dependencies: - "@webassemblyjs/ast": 1.11.0 - "@webassemblyjs/helper-wasm-bytecode": 1.11.0 - "@webassemblyjs/ieee754": 1.11.0 - "@webassemblyjs/leb128": 1.11.0 - "@webassemblyjs/utf8": 1.11.0 - checksum: 3886702e589f8c19a34b7778837e2928da730291d1b19bae4fe2954dd8bf28ae5e1574880346762b788445a096c3b6a94c244d38ef66823a76c8f7a8d989c8e1 - languageName: node - linkType: hard - "@webassemblyjs/wasm-gen@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/wasm-gen@npm:1.11.1" @@ -4866,18 +4744,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/wasm-opt@npm:1.11.0" - dependencies: - "@webassemblyjs/ast": 1.11.0 - "@webassemblyjs/helper-buffer": 1.11.0 - "@webassemblyjs/wasm-gen": 1.11.0 - "@webassemblyjs/wasm-parser": 1.11.0 - checksum: 8e2757994c07c4534f5f747da54919a37777ec0f97bc6a9a53739d87408346fa1464e1932f66d671091c51e3a983977e31be464568ad6e06762ec2c052eeda0c - languageName: node - linkType: hard - "@webassemblyjs/wasm-opt@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/wasm-opt@npm:1.11.1" @@ -4902,20 +4768,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/wasm-parser@npm:1.11.0" - dependencies: - "@webassemblyjs/ast": 1.11.0 - "@webassemblyjs/helper-api-error": 1.11.0 - "@webassemblyjs/helper-wasm-bytecode": 1.11.0 - "@webassemblyjs/ieee754": 1.11.0 - "@webassemblyjs/leb128": 1.11.0 - "@webassemblyjs/utf8": 1.11.0 - checksum: 12bfbb25b96630a1e44570cb71db33c368d0b86ccb56d2f80951217f7e072da894eef4512302e2f4155793acd2cf510d36af2b71aac672e94c64752d96cd3e97 - languageName: node - linkType: hard - "@webassemblyjs/wasm-parser@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/wasm-parser@npm:1.11.1" @@ -4958,16 +4810,6 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.11.0": - version: 1.11.0 - resolution: "@webassemblyjs/wast-printer@npm:1.11.0" - dependencies: - "@webassemblyjs/ast": 1.11.0 - "@xtuc/long": 4.2.2 - checksum: 06eafb92cb347400f3a025102ad8f605fab706c8a89b4ecabedfe6d06854370e7f38304fd5b345bafa1c9c5de988318eb69b2252e9c67edacea8709d2e966dca - languageName: node - linkType: hard - "@webassemblyjs/wast-printer@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/wast-printer@npm:1.11.1" @@ -8182,13 +8024,6 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.4.0": - version: 0.4.1 - resolution: "es-module-lexer@npm:0.4.1" - checksum: 0c634ce62d3a77b04aa56b9ca2af2b58ff73a834afc76ac6747b25173e97d9050a28451b6ed39b54b84b8498d887ac8bd5bcf2c9aa9ba948ca0aee0acd613618 - languageName: node - linkType: hard - "es-module-lexer@npm:^0.7.1": version: 0.7.1 resolution: "es-module-lexer@npm:0.7.1" @@ -8282,7 +8117,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": +"eslint-scope@npm:5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -15512,7 +15347,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"source-list-map@npm:^2.0.0, source-list-map@npm:^2.0.1": +"source-list-map@npm:^2.0.0": version: 2.0.1 resolution: "source-list-map@npm:2.0.1" checksum: d8d45f29987d00d995ccda308dcc78b710031a9958fdb5d26674d32220c952eb7a8562062638d91896628ae4eef30e1cd112a6a547563dfda0b013024c2a9bf7 @@ -16345,7 +16180,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.0.3, terser-webpack-plugin@npm:^5.1.1, terser-webpack-plugin@npm:^5.1.3": +"terser-webpack-plugin@npm:^5.0.3, terser-webpack-plugin@npm:^5.1.3": version: 5.1.4 resolution: "terser-webpack-plugin@npm:5.1.4" dependencies: @@ -17496,7 +17331,7 @@ typescript@4.2.4: languageName: node linkType: hard -"watchpack@npm:^2.0.0, watchpack@npm:^2.2.0": +"watchpack@npm:^2.2.0": version: 2.2.0 resolution: "watchpack@npm:2.2.0" dependencies: @@ -17611,16 +17446,6 @@ typescript@4.2.4: languageName: node linkType: hard -"webpack-sources@npm:^2.1.1": - version: 2.2.0 - resolution: "webpack-sources@npm:2.2.0" - dependencies: - source-list-map: ^2.0.1 - source-map: ^0.6.1 - checksum: 7c4b797fa90d310872b70469dc04254e35571fb34530280a47b93edbe9cd6b0ffb79cf2b7565f4a18ff5b70315ff245d465ad35f952366cfd93c55d6445e2378 - languageName: node - linkType: hard - "webpack-sources@npm:^3.2.0": version: 3.2.0 resolution: "webpack-sources@npm:3.2.0" @@ -17682,43 +17507,7 @@ typescript@4.2.4: languageName: node linkType: hard -"webpack@npm:5.28.0": - version: 5.28.0 - resolution: "webpack@npm:5.28.0" - dependencies: - "@types/eslint-scope": ^3.7.0 - "@types/estree": ^0.0.46 - "@webassemblyjs/ast": 1.11.0 - "@webassemblyjs/wasm-edit": 1.11.0 - "@webassemblyjs/wasm-parser": 1.11.0 - acorn: ^8.0.4 - browserslist: ^4.14.5 - chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.7.0 - es-module-lexer: ^0.4.0 - eslint-scope: ^5.1.1 - events: ^3.2.0 - glob-to-regexp: ^0.4.1 - graceful-fs: ^4.2.4 - json-parse-better-errors: ^1.0.2 - loader-runner: ^4.2.0 - mime-types: ^2.1.27 - neo-async: ^2.6.2 - schema-utils: ^3.0.0 - tapable: ^2.1.1 - terser-webpack-plugin: ^5.1.1 - watchpack: ^2.0.0 - webpack-sources: ^2.1.1 - peerDependenciesMeta: - webpack-cli: - optional: true - bin: - webpack: bin/webpack.js - checksum: bb1948e6a2039499284f231b1b71e69414e673cd086e55db118f112a18c4a7979c93b607bea4429fc63034babf2b2d21d2f4ba1ee620f1dda614e485848972e3 - languageName: node - linkType: hard - -"webpack@npm:^5.9.0": +"webpack@npm:5.51.1, webpack@npm:^5.9.0": version: 5.51.1 resolution: "webpack@npm:5.51.1" dependencies: