built in linix env

This commit is contained in:
aaron 2024-10-07 07:38:54 -07:00
parent b085ea7962
commit dd6529a31b
32 changed files with 424 additions and 554 deletions

View file

@ -4,9 +4,9 @@
"description": "This plugin serves as a starting point for writing a Mattermost plugin.", "description": "This plugin serves as a starting point for writing a Mattermost plugin.",
"homepage_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate", "homepage_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate",
"support_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate/issues", "support_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate/issues",
"release_notes_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdatereleases/tag/v0.2.1", "release_notes_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdatereleases/tag/v0.2.2",
"icon_path": "assets/starter-template-icon.svg", "icon_path": "assets/starter-template-icon.svg",
"version": "0.2.1", "version": "0.2.2",
"min_server_version": "6.2.1", "min_server_version": "6.2.1",
"server": { "server": {
"executables": { "executables": {

File diff suppressed because one or more lines are too long

140
node_modules/.package-lock.json generated vendored
View file

@ -1,6 +1,6 @@
{ {
"name": "gameStatusUpdate", "name": "gameStatusUpdate",
"lockfileVersion": 2, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
@ -282,7 +282,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@jridgewell/set-array": "^1.2.1", "@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/sourcemap-codec": "^1.4.10",
@ -297,7 +296,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
} }
@ -307,7 +305,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
} }
@ -317,7 +314,6 @@
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
"integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25" "@jridgewell/trace-mapping": "^0.3.25"
@ -327,15 +323,13 @@
"version": "1.5.0", "version": "1.5.0",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/@jridgewell/trace-mapping": { "node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25", "version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14" "@jridgewell/sourcemap-codec": "^1.4.14"
@ -345,8 +339,7 @@
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
"integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/@types/json-schema": { "node_modules/@types/json-schema": {
"version": "7.0.15", "version": "7.0.15",
@ -359,7 +352,6 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz",
"integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"undici-types": "~6.19.2" "undici-types": "~6.19.2"
} }
@ -369,7 +361,6 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
"integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-numbers": "1.11.6",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6" "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
@ -379,29 +370,25 @@
"version": "1.11.6", "version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
"integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/@webassemblyjs/helper-api-error": { "node_modules/@webassemblyjs/helper-api-error": {
"version": "1.11.6", "version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
"integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/@webassemblyjs/helper-buffer": { "node_modules/@webassemblyjs/helper-buffer": {
"version": "1.12.1", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
"integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/@webassemblyjs/helper-numbers": { "node_modules/@webassemblyjs/helper-numbers": {
"version": "1.11.6", "version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
"integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/floating-point-hex-parser": "1.11.6",
"@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6",
@ -412,15 +399,13 @@
"version": "1.11.6", "version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
"integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/@webassemblyjs/helper-wasm-section": { "node_modules/@webassemblyjs/helper-wasm-section": {
"version": "1.12.1", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
"integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.12.1", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1",
@ -433,7 +418,6 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
"integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@xtuc/ieee754": "^1.2.0" "@xtuc/ieee754": "^1.2.0"
} }
@ -443,7 +427,6 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
"integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@xtuc/long": "4.2.2" "@xtuc/long": "4.2.2"
} }
@ -452,15 +435,13 @@
"version": "1.11.6", "version": "1.11.6",
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
"integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/@webassemblyjs/wasm-edit": { "node_modules/@webassemblyjs/wasm-edit": {
"version": "1.12.1", "version": "1.12.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
"integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.12.1", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1",
@ -477,7 +458,6 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
"integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.12.1", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
@ -491,7 +471,6 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
"integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.12.1", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1",
@ -504,7 +483,6 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
"integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.12.1", "@webassemblyjs/ast": "1.12.1",
"@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6",
@ -519,7 +497,6 @@
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
"integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@webassemblyjs/ast": "1.12.1", "@webassemblyjs/ast": "1.12.1",
"@xtuc/long": "4.2.2" "@xtuc/long": "4.2.2"
@ -529,22 +506,19 @@
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/@xtuc/long": { "node_modules/@xtuc/long": {
"version": "4.2.2", "version": "4.2.2",
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/acorn": { "node_modules/acorn": {
"version": "8.12.1", "version": "8.12.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
"integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==",
"dev": true, "dev": true,
"peer": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@ -557,7 +531,6 @@
"resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
"integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
"dev": true, "dev": true,
"peer": true,
"peerDependencies": { "peerDependencies": {
"acorn": "^8" "acorn": "^8"
} }
@ -625,6 +598,7 @@
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz",
"integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"find-cache-dir": "^4.0.0", "find-cache-dir": "^4.0.0",
"schema-utils": "^4.0.0" "schema-utils": "^4.0.0"
@ -656,7 +630,6 @@
"url": "https://github.com/sponsors/ai" "url": "https://github.com/sponsors/ai"
} }
], ],
"peer": true,
"dependencies": { "dependencies": {
"caniuse-lite": "^1.0.30001646", "caniuse-lite": "^1.0.30001646",
"electron-to-chromium": "^1.5.4", "electron-to-chromium": "^1.5.4",
@ -674,8 +647,7 @@
"version": "1.1.2", "version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001660", "version": "1.0.30001660",
@ -695,8 +667,7 @@
"type": "github", "type": "github",
"url": "https://github.com/sponsors/ai" "url": "https://github.com/sponsors/ai"
} }
], ]
"peer": true
}, },
"node_modules/chalk": { "node_modules/chalk": {
"version": "2.4.2", "version": "2.4.2",
@ -718,7 +689,6 @@
"resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
"integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=6.0" "node": ">=6.0"
} }
@ -744,8 +714,7 @@
"version": "2.20.3", "version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/common-path-prefix": { "node_modules/common-path-prefix": {
"version": "3.0.0", "version": "3.0.0",
@ -782,15 +751,13 @@
"version": "1.5.25", "version": "1.5.25",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.25.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.25.tgz",
"integrity": "sha512-kMb204zvK3PsSlgvvwzI3wBIcAw15tRkYk+NQdsjdDtcQWTp2RABbMQ9rUBy8KNEOM+/E6ep+XC3AykiWZld4g==", "integrity": "sha512-kMb204zvK3PsSlgvvwzI3wBIcAw15tRkYk+NQdsjdDtcQWTp2RABbMQ9rUBy8KNEOM+/E6ep+XC3AykiWZld4g==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/enhanced-resolve": { "node_modules/enhanced-resolve": {
"version": "5.17.1", "version": "5.17.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
"integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"graceful-fs": "^4.2.4", "graceful-fs": "^4.2.4",
"tapable": "^2.2.0" "tapable": "^2.2.0"
@ -803,15 +770,13 @@
"version": "1.5.4", "version": "1.5.4",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
"integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/escalade": { "node_modules/escalade": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -831,7 +796,6 @@
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
"integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"esrecurse": "^4.3.0", "esrecurse": "^4.3.0",
"estraverse": "^4.1.1" "estraverse": "^4.1.1"
@ -845,7 +809,6 @@
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
"integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"estraverse": "^5.2.0" "estraverse": "^5.2.0"
}, },
@ -858,7 +821,6 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
"integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=4.0" "node": ">=4.0"
} }
@ -868,7 +830,6 @@
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
"integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=4.0" "node": ">=4.0"
} }
@ -878,7 +839,6 @@
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
"integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=0.8.x" "node": ">=0.8.x"
} }
@ -893,8 +853,7 @@
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/fast-uri": { "node_modules/fast-uri": {
"version": "3.0.1", "version": "3.0.1",
@ -948,8 +907,7 @@
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/globals": { "node_modules/globals": {
"version": "11.12.0", "version": "11.12.0",
@ -965,8 +923,7 @@
"version": "4.2.11", "version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/has-flag": { "node_modules/has-flag": {
"version": "3.0.0", "version": "3.0.0",
@ -983,7 +940,6 @@
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
"integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@types/node": "*", "@types/node": "*",
"merge-stream": "^2.0.0", "merge-stream": "^2.0.0",
@ -998,7 +954,6 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=8" "node": ">=8"
} }
@ -1008,7 +963,6 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"has-flag": "^4.0.0" "has-flag": "^4.0.0"
}, },
@ -1043,8 +997,7 @@
"version": "2.3.1", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/json-schema-traverse": { "node_modules/json-schema-traverse": {
"version": "1.0.0", "version": "1.0.0",
@ -1070,7 +1023,6 @@
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
"integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=6.11.5" "node": ">=6.11.5"
} }
@ -1104,15 +1056,13 @@
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/mime-db": { "node_modules/mime-db": {
"version": "1.52.0", "version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">= 0.6" "node": ">= 0.6"
} }
@ -1122,7 +1072,6 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"mime-db": "1.52.0" "mime-db": "1.52.0"
}, },
@ -1141,15 +1090,13 @@
"version": "2.6.2", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
"integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/node-releases": { "node_modules/node-releases": {
"version": "2.0.18", "version": "2.0.18",
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
"integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/p-limit": { "node_modules/p-limit": {
"version": "4.0.0", "version": "4.0.0",
@ -1194,8 +1141,7 @@
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
"integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/pkg-dir": { "node_modules/pkg-dir": {
"version": "7.0.0", "version": "7.0.0",
@ -1217,7 +1163,6 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -1227,7 +1172,6 @@
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
"integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"safe-buffer": "^5.1.0" "safe-buffer": "^5.1.0"
} }
@ -1259,8 +1203,7 @@
"type": "consulting", "type": "consulting",
"url": "https://feross.org/support" "url": "https://feross.org/support"
} }
], ]
"peer": true
}, },
"node_modules/schema-utils": { "node_modules/schema-utils": {
"version": "4.2.0", "version": "4.2.0",
@ -1296,7 +1239,6 @@
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
"integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"randombytes": "^2.1.0" "randombytes": "^2.1.0"
} }
@ -1306,7 +1248,6 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
@ -1316,7 +1257,6 @@
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
"source-map": "^0.6.0" "source-map": "^0.6.0"
@ -1340,7 +1280,6 @@
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -1350,7 +1289,6 @@
"resolved": "https://registry.npmjs.org/terser/-/terser-5.33.0.tgz", "resolved": "https://registry.npmjs.org/terser/-/terser-5.33.0.tgz",
"integrity": "sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==", "integrity": "sha512-JuPVaB7s1gdFKPKTelwUyRq5Sid2A3Gko2S0PncwdBq7kN9Ti9HPWDQ06MPsEDGsZeVESjKEnyGy68quBk1w6g==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@jridgewell/source-map": "^0.3.3", "@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2", "acorn": "^8.8.2",
@ -1369,7 +1307,6 @@
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
"integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@jridgewell/trace-mapping": "^0.3.20", "@jridgewell/trace-mapping": "^0.3.20",
"jest-worker": "^27.4.5", "jest-worker": "^27.4.5",
@ -1404,7 +1341,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0", "fast-json-stable-stringify": "^2.0.0",
@ -1421,7 +1357,6 @@
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"dev": true, "dev": true,
"peer": true,
"peerDependencies": { "peerDependencies": {
"ajv": "^6.9.1" "ajv": "^6.9.1"
} }
@ -1430,15 +1365,13 @@
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/terser-webpack-plugin/node_modules/schema-utils": { "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
"integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.8", "@types/json-schema": "^7.0.8",
"ajv": "^6.12.5", "ajv": "^6.12.5",
@ -1466,8 +1399,7 @@
"version": "6.19.8", "version": "6.19.8",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
"integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/update-browserslist-db": { "node_modules/update-browserslist-db": {
"version": "1.1.0", "version": "1.1.0",
@ -1488,7 +1420,6 @@
"url": "https://github.com/sponsors/ai" "url": "https://github.com/sponsors/ai"
} }
], ],
"peer": true,
"dependencies": { "dependencies": {
"escalade": "^3.1.2", "escalade": "^3.1.2",
"picocolors": "^1.0.1" "picocolors": "^1.0.1"
@ -1505,7 +1436,6 @@
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"punycode": "^2.1.0" "punycode": "^2.1.0"
} }
@ -1515,7 +1445,6 @@
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
"integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"glob-to-regexp": "^0.4.1", "glob-to-regexp": "^0.4.1",
"graceful-fs": "^4.1.2" "graceful-fs": "^4.1.2"
@ -1525,11 +1454,11 @@
} }
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.94.0", "version": "5.95.0",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz",
"integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==",
"dev": true, "dev": true,
"peer": true, "license": "MIT",
"dependencies": { "dependencies": {
"@types/estree": "^1.0.5", "@types/estree": "^1.0.5",
"@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/ast": "^1.12.1",
@ -1576,7 +1505,6 @@
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
"dev": true, "dev": true,
"peer": true,
"engines": { "engines": {
"node": ">=10.13.0" "node": ">=10.13.0"
} }
@ -1586,7 +1514,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"fast-deep-equal": "^3.1.1", "fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0", "fast-json-stable-stringify": "^2.0.0",
@ -1603,7 +1530,6 @@
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"dev": true, "dev": true,
"peer": true,
"peerDependencies": { "peerDependencies": {
"ajv": "^6.9.1" "ajv": "^6.9.1"
} }
@ -1612,15 +1538,13 @@
"version": "0.4.1", "version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true, "dev": true
"peer": true
}, },
"node_modules/webpack/node_modules/schema-utils": { "node_modules/webpack/node_modules/schema-utils": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
"integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"@types/json-schema": "^7.0.8", "@types/json-schema": "^7.0.8",
"ajv": "^6.12.5", "ajv": "^6.12.5",

View file

@ -13,15 +13,16 @@ const WebpackError = require("./WebpackError");
class EnvironmentPlugin { class EnvironmentPlugin {
/** /**
* @param {(string | string[] | Record<string, string>)[]} keys keys * @param {(string | string[] | Record<string, any>)[]} keys keys
*/ */
constructor(...keys) { constructor(...keys) {
if (keys.length === 1 && Array.isArray(keys[0])) { if (keys.length === 1 && Array.isArray(keys[0])) {
/** @type {string[]} */
this.keys = keys[0]; this.keys = keys[0];
this.defaultValues = {}; this.defaultValues = {};
} else if (keys.length === 1 && keys[0] && typeof keys[0] === "object") { } else if (keys.length === 1 && keys[0] && typeof keys[0] === "object") {
this.keys = Object.keys(keys[0]); this.keys = Object.keys(keys[0]);
this.defaultValues = /** @type {Record<string, string>} */ (keys[0]); this.defaultValues = /** @type {Record<string, any>} */ (keys[0]);
} else { } else {
this.keys = /** @type {string[]} */ (keys); this.keys = /** @type {string[]} */ (keys);
this.defaultValues = {}; this.defaultValues = {};

View file

@ -526,7 +526,7 @@ class ExternalModule extends Module {
* @returns {string} a unique identifier of the module * @returns {string} a unique identifier of the module
*/ */
identifier() { identifier() {
return `external ${this.externalType} ${JSON.stringify(this.request)}`; return `external ${this._resolveExternalType(this.externalType)} ${JSON.stringify(this.request)}`;
} }
/** /**
@ -546,25 +546,6 @@ class ExternalModule extends Module {
return callback(null, !this.buildMeta); return callback(null, !this.buildMeta);
} }
/**
* @param {string} externalType raw external type
* @returns {string} resolved external type
*/
getModuleImportType(externalType) {
if (externalType === "module-import") {
if (
this.dependencyMeta &&
/** @type {ImportDependencyMeta} */ (this.dependencyMeta).externalType
) {
return /** @type {ImportDependencyMeta} */ (this.dependencyMeta)
.externalType;
}
return "module";
}
return externalType;
}
/** /**
* @param {WebpackOptions} options webpack options * @param {WebpackOptions} options webpack options
* @param {Compilation} compilation the compilation * @param {Compilation} compilation the compilation
@ -597,6 +578,25 @@ class ExternalModule extends Module {
canMangle = true; canMangle = true;
} }
break; break;
case "module":
if (this.buildInfo.module) {
if (!Array.isArray(request) || request.length === 1) {
this.buildMeta.exportsType = "namespace";
canMangle = true;
}
} else {
this.buildMeta.async = true;
EnvironmentNotSupportAsyncWarning.check(
this,
compilation.runtimeTemplate,
"external module"
);
if (!Array.isArray(request) || request.length === 1) {
this.buildMeta.exportsType = "namespace";
canMangle = false;
}
}
break;
case "script": case "script":
this.buildMeta.async = true; this.buildMeta.async = true;
EnvironmentNotSupportAsyncWarning.check( EnvironmentNotSupportAsyncWarning.check(
@ -613,45 +613,18 @@ class ExternalModule extends Module {
"external promise" "external promise"
); );
break; break;
case "module":
case "import": case "import":
case "module-import": { this.buildMeta.async = true;
const type = this.getModuleImportType(externalType); EnvironmentNotSupportAsyncWarning.check(
if (type === "module") { this,
if (this.buildInfo.module) { compilation.runtimeTemplate,
if (!Array.isArray(request) || request.length === 1) { "external import"
this.buildMeta.exportsType = "namespace"; );
canMangle = true; if (!Array.isArray(request) || request.length === 1) {
} this.buildMeta.exportsType = "namespace";
} else { canMangle = false;
this.buildMeta.async = true;
EnvironmentNotSupportAsyncWarning.check(
this,
compilation.runtimeTemplate,
"external module"
);
if (!Array.isArray(request) || request.length === 1) {
this.buildMeta.exportsType = "namespace";
canMangle = false;
}
}
} }
if (type === "import") {
this.buildMeta.async = true;
EnvironmentNotSupportAsyncWarning.check(
this,
compilation.runtimeTemplate,
"external import"
);
if (!Array.isArray(request) || request.length === 1) {
this.buildMeta.exportsType = "namespace";
canMangle = false;
}
}
break; break;
}
} }
this.addDependency(new StaticExportsDependency(true, canMangle)); this.addDependency(new StaticExportsDependency(true, canMangle));
callback(); callback();
@ -687,9 +660,31 @@ class ExternalModule extends Module {
let { request, externalType } = this; let { request, externalType } = this;
if (typeof request === "object" && !Array.isArray(request)) if (typeof request === "object" && !Array.isArray(request))
request = request[externalType]; request = request[externalType];
externalType = this._resolveExternalType(externalType);
return { request, externalType }; return { request, externalType };
} }
/**
* Resolve the detailed external type from the raw external type.
* e.g. resolve "module" or "import" from "module-import" type
* @param {string} externalType raw external type
* @returns {string} resolved external type
*/
_resolveExternalType(externalType) {
if (externalType === "module-import") {
if (
this.dependencyMeta &&
/** @type {ImportDependencyMeta} */ (this.dependencyMeta).externalType
) {
return /** @type {ImportDependencyMeta} */ (this.dependencyMeta)
.externalType;
}
return "module";
}
return externalType;
}
/** /**
* @private * @private
* @param {string | string[]} request request * @param {string | string[]} request request
@ -749,52 +744,43 @@ class ExternalModule extends Module {
runtimeTemplate runtimeTemplate
); );
} }
case "import":
return getSourceForImportExternal(
request,
runtimeTemplate,
/** @type {ImportDependencyMeta} */ (dependencyMeta)
);
case "script": case "script":
return getSourceForScriptExternal(request, runtimeTemplate); return getSourceForScriptExternal(request, runtimeTemplate);
case "module": case "module": {
case "import": if (!(/** @type {BuildInfo} */ (this.buildInfo).module)) {
case "module-import": { if (!runtimeTemplate.supportsDynamicImport()) {
const type = this.getModuleImportType(externalType); throw new Error(
if (type === "import") { `The target environment doesn't support dynamic import() syntax so it's not possible to use external type 'module' within a script${
runtimeTemplate.supportsEcmaScriptModuleSyntax()
? "\nDid you mean to build a EcmaScript Module ('output.module: true')?"
: ""
}`
);
}
return getSourceForImportExternal( return getSourceForImportExternal(
request, request,
runtimeTemplate, runtimeTemplate,
/** @type {ImportDependencyMeta} */ (dependencyMeta) /** @type {ImportDependencyMeta} */ (dependencyMeta)
); );
} }
if (!runtimeTemplate.supportsEcmaScriptModuleSyntax()) {
if (type === "module") { throw new Error(
if (!(/** @type {BuildInfo} */ (this.buildInfo).module)) { "The target environment doesn't support EcmaScriptModule syntax so it's not possible to use external type 'module'"
if (!runtimeTemplate.supportsDynamicImport()) {
throw new Error(
`The target environment doesn't support dynamic import() syntax so it's not possible to use external type 'module' within a script${
runtimeTemplate.supportsEcmaScriptModuleSyntax()
? "\nDid you mean to build a EcmaScript Module ('output.module: true')?"
: ""
}`
);
}
return getSourceForImportExternal(
request,
runtimeTemplate,
/** @type {ImportDependencyMeta} */ (dependencyMeta)
);
}
if (!runtimeTemplate.supportsEcmaScriptModuleSyntax()) {
throw new Error(
"The target environment doesn't support EcmaScriptModule syntax so it's not possible to use external type 'module'"
);
}
return getSourceForModuleExternal(
request,
moduleGraph.getExportsInfo(this),
runtime,
runtimeTemplate,
/** @type {ImportDependencyMeta} */ (dependencyMeta)
); );
} }
return getSourceForModuleExternal(
break; request,
moduleGraph.getExportsInfo(this),
runtime,
runtimeTemplate,
/** @type {ImportDependencyMeta} */ (dependencyMeta)
);
} }
case "var": case "var":
case "promise": case "promise":
@ -939,7 +925,7 @@ class ExternalModule extends Module {
updateHash(hash, context) { updateHash(hash, context) {
const { chunkGraph } = context; const { chunkGraph } = context;
hash.update( hash.update(
`${this.externalType}${JSON.stringify(this.request)}${this.isOptional( `${this._resolveExternalType(this.externalType)}${JSON.stringify(this.request)}${this.isOptional(
chunkGraph.moduleGraph chunkGraph.moduleGraph
)}` )}`
); );

View file

@ -777,6 +777,10 @@ class NormalModule extends Module {
webpack: true, webpack: true,
sourceMap: Boolean(this.useSourceMap), sourceMap: Boolean(this.useSourceMap),
mode: options.mode || "production", mode: options.mode || "production",
hashFunction: options.output.hashFunction,
hashDigest: options.output.hashDigest,
hashDigestLength: options.output.hashDigestLength,
hashSalt: options.output.hashSalt,
_module: this, _module: this,
_compilation: compilation, _compilation: compilation,
_compiler: compilation.compiler, _compiler: compilation.compiler,

View file

@ -162,19 +162,25 @@ const replacePathVariables = (path, data, assetInfo) => {
if (match) { if (match) {
const ext = mime.extension(match[1]); const ext = mime.extension(match[1]);
const emptyReplacer = replacer("", true); const emptyReplacer = replacer("", true);
// "XXXX" used for `updateHash`, so we don't need it here
const contentHash =
data.contentHash && !/X+/.test(data.contentHash)
? data.contentHash
: false;
const baseReplacer = contentHash ? replacer(contentHash) : emptyReplacer;
replacements.set("file", emptyReplacer); replacements.set("file", emptyReplacer);
replacements.set("query", emptyReplacer); replacements.set("query", emptyReplacer);
replacements.set("fragment", emptyReplacer); replacements.set("fragment", emptyReplacer);
replacements.set("path", emptyReplacer); replacements.set("path", emptyReplacer);
replacements.set("base", emptyReplacer); replacements.set("base", baseReplacer);
replacements.set("name", emptyReplacer); replacements.set("name", baseReplacer);
replacements.set("ext", replacer(ext ? `.${ext}` : "", true)); replacements.set("ext", replacer(ext ? `.${ext}` : "", true));
// Legacy // Legacy
replacements.set( replacements.set(
"filebase", "filebase",
deprecated( deprecated(
emptyReplacer, baseReplacer,
"[filebase] is now [base]", "[filebase] is now [base]",
"DEP_WEBPACK_TEMPLATE_PATH_PLUGIN_REPLACE_PATH_VARIABLES_FILENAME" "DEP_WEBPACK_TEMPLATE_PATH_PLUGIN_REPLACE_PATH_VARIABLES_FILENAME"
) )

View file

@ -38,6 +38,7 @@ const { getEntryRuntime, mergeRuntime } = require("./util/runtime");
* @typedef {object} ChunkGroupInfo * @typedef {object} ChunkGroupInfo
* @property {ChunkGroup} chunkGroup the chunk group * @property {ChunkGroup} chunkGroup the chunk group
* @property {RuntimeSpec} runtime the runtimes * @property {RuntimeSpec} runtime the runtimes
* @property {boolean} initialized is this chunk group initialized
* @property {bigint | undefined} minAvailableModules current minimal set of modules available at this point * @property {bigint | undefined} minAvailableModules current minimal set of modules available at this point
* @property {bigint[]} availableModulesToBeMerged enqueued updates to the minimal set of available modules * @property {bigint[]} availableModulesToBeMerged enqueued updates to the minimal set of available modules
* @property {Set<Module>=} skippedItems modules that were skipped because module is already available in parent chunks (need to reconsider when minAvailableModules is shrinking) * @property {Set<Module>=} skippedItems modules that were skipped because module is already available in parent chunks (need to reconsider when minAvailableModules is shrinking)
@ -345,8 +346,8 @@ const visitModules = (
/** @type {Map<DependenciesBlock, ChunkGroupInfo>} */ /** @type {Map<DependenciesBlock, ChunkGroupInfo>} */
const blockChunkGroups = new Map(); const blockChunkGroups = new Map();
/** @type {Map<ChunkGroupInfo, DependenciesBlock>} */ /** @type {Map<ChunkGroupInfo, Set<DependenciesBlock>>} */
const blockByChunkGroups = new Map(); const blocksByChunkGroups = new Map();
/** @type {Map<string, ChunkGroupInfo>} */ /** @type {Map<string, ChunkGroupInfo>} */
const namedChunkGroups = new Map(); const namedChunkGroups = new Map();
@ -367,7 +368,7 @@ const visitModules = (
/** @type {QueueItem[]} */ /** @type {QueueItem[]} */
let queue = []; let queue = [];
/** @type {Map<ChunkGroupInfo, Set<ChunkGroupInfo>>} */ /** @type {Map<ChunkGroupInfo, Set<[ChunkGroupInfo, QueueItem | null]>>} */
const queueConnect = new Map(); const queueConnect = new Map();
/** @type {Set<ChunkGroupInfo>} */ /** @type {Set<ChunkGroupInfo>} */
const chunkGroupsForCombining = new Set(); const chunkGroupsForCombining = new Set();
@ -382,6 +383,7 @@ const visitModules = (
); );
/** @type {ChunkGroupInfo} */ /** @type {ChunkGroupInfo} */
const chunkGroupInfo = { const chunkGroupInfo = {
initialized: false,
chunkGroup, chunkGroup,
runtime, runtime,
minAvailableModules: undefined, minAvailableModules: undefined,
@ -452,7 +454,7 @@ const visitModules = (
/** @type {Set<ChunkGroupInfo>} */ /** @type {Set<ChunkGroupInfo>} */
const outdatedChunkGroupInfo = new Set(); const outdatedChunkGroupInfo = new Set();
/** @type {Set<ChunkGroupInfo>} */ /** @type {Set<[ChunkGroupInfo, QueueItem]>} */
const chunkGroupsForMerging = new Set(); const chunkGroupsForMerging = new Set();
/** @type {QueueItem[]} */ /** @type {QueueItem[]} */
let queueDelayed = []; let queueDelayed = [];
@ -505,6 +507,7 @@ const visitModules = (
entrypoint.index = nextChunkGroupIndex++; entrypoint.index = nextChunkGroupIndex++;
cgi = { cgi = {
chunkGroup: entrypoint, chunkGroup: entrypoint,
initialized: false,
runtime: entrypoint.options.runtime || entrypoint.name, runtime: entrypoint.options.runtime || entrypoint.name,
minAvailableModules: ZERO_BIGINT, minAvailableModules: ZERO_BIGINT,
availableModulesToBeMerged: [], availableModulesToBeMerged: [],
@ -572,6 +575,7 @@ const visitModules = (
maskByChunk.set(c.chunks[0], ZERO_BIGINT); maskByChunk.set(c.chunks[0], ZERO_BIGINT);
c.index = nextChunkGroupIndex++; c.index = nextChunkGroupIndex++;
cgi = { cgi = {
initialized: false,
chunkGroup: c, chunkGroup: c,
runtime: chunkGroupInfo.runtime, runtime: chunkGroupInfo.runtime,
minAvailableModules: undefined, minAvailableModules: undefined,
@ -614,7 +618,6 @@ const visitModules = (
blockConnections.set(b, []); blockConnections.set(b, []);
} }
blockChunkGroups.set(b, /** @type {ChunkGroupInfo} */ (cgi)); blockChunkGroups.set(b, /** @type {ChunkGroupInfo} */ (cgi));
blockByChunkGroups.set(/** @type {ChunkGroupInfo} */ (cgi), b);
} else if (entryOptions) { } else if (entryOptions) {
entrypoint = /** @type {Entrypoint} */ (cgi.chunkGroup); entrypoint = /** @type {Entrypoint} */ (cgi.chunkGroup);
} else { } else {
@ -636,19 +639,17 @@ const visitModules = (
connectList = new Set(); connectList = new Set();
queueConnect.set(chunkGroupInfo, connectList); queueConnect.set(chunkGroupInfo, connectList);
} }
connectList.add(/** @type {ChunkGroupInfo} */ (cgi)); connectList.add([
cgi,
// TODO check if this really need to be done for each traversal {
// or if it is enough when it's queued when created action: PROCESS_BLOCK,
// 4. We enqueue the DependenciesBlock for traversal block: b,
queueDelayed.push({ module,
action: PROCESS_BLOCK, chunk: c.chunks[0],
block: b, chunkGroup: c,
module, chunkGroupInfo: /** @type {ChunkGroupInfo} */ (cgi)
chunk: c.chunks[0], }
chunkGroup: c, ]);
chunkGroupInfo: /** @type {ChunkGroupInfo} */ (cgi)
});
} else if (entrypoint !== undefined) { } else if (entrypoint !== undefined) {
chunkGroupInfo.chunkGroup.addAsyncEntrypoint(entrypoint); chunkGroupInfo.chunkGroup.addAsyncEntrypoint(entrypoint);
} }
@ -901,11 +902,10 @@ const visitModules = (
for (const [chunkGroupInfo, targets] of queueConnect) { for (const [chunkGroupInfo, targets] of queueConnect) {
// 1. Add new targets to the list of children // 1. Add new targets to the list of children
if (chunkGroupInfo.children === undefined) { if (chunkGroupInfo.children === undefined) {
chunkGroupInfo.children = targets; chunkGroupInfo.children = new Set();
} else { }
for (const target of targets) { for (const [target] of targets) {
chunkGroupInfo.children.add(target); chunkGroupInfo.children.add(target);
}
} }
// 2. Calculate resulting available modules // 2. Calculate resulting available modules
@ -915,9 +915,9 @@ const visitModules = (
const runtime = chunkGroupInfo.runtime; const runtime = chunkGroupInfo.runtime;
// 3. Update chunk group info // 3. Update chunk group info
for (const target of targets) { for (const [target, processBlock] of targets) {
target.availableModulesToBeMerged.push(resultingAvailableModules); target.availableModulesToBeMerged.push(resultingAvailableModules);
chunkGroupsForMerging.add(target); chunkGroupsForMerging.add([target, processBlock]);
const oldRuntime = target.runtime; const oldRuntime = target.runtime;
const newRuntime = mergeRuntime(oldRuntime, runtime); const newRuntime = mergeRuntime(oldRuntime, runtime);
if (oldRuntime !== newRuntime) { if (oldRuntime !== newRuntime) {
@ -935,7 +935,7 @@ const visitModules = (
statProcessedChunkGroupsForMerging += chunkGroupsForMerging.size; statProcessedChunkGroupsForMerging += chunkGroupsForMerging.size;
// Execute the merge // Execute the merge
for (const info of chunkGroupsForMerging) { for (const [info, processBlock] of chunkGroupsForMerging) {
const availableModulesToBeMerged = info.availableModulesToBeMerged; const availableModulesToBeMerged = info.availableModulesToBeMerged;
const cachedMinAvailableModules = info.minAvailableModules; const cachedMinAvailableModules = info.minAvailableModules;
let minAvailableModules = cachedMinAvailableModules; let minAvailableModules = cachedMinAvailableModules;
@ -958,6 +958,27 @@ const visitModules = (
info.resultingAvailableModules = undefined; info.resultingAvailableModules = undefined;
outdatedChunkGroupInfo.add(info); outdatedChunkGroupInfo.add(info);
} }
if (processBlock) {
let blocks = blocksByChunkGroups.get(info);
if (!blocks) {
blocksByChunkGroups.set(info, (blocks = new Set()));
}
// Whether to walk block depends on minAvailableModules and input block.
// We can treat creating chunk group as a function with 2 input, entry block and minAvailableModules
// If input is the same, we can skip re-walk
let needWalkBlock = !info.initialized || changed;
if (!blocks.has(processBlock.block)) {
needWalkBlock = true;
blocks.add(processBlock.block);
}
if (needWalkBlock) {
info.initialized = true;
queueDelayed.push(processBlock);
}
}
} }
chunkGroupsForMerging.clear(); chunkGroupsForMerging.clear();
}; };
@ -1057,7 +1078,7 @@ const visitModules = (
connectList = new Set(); connectList = new Set();
queueConnect.set(info, connectList); queueConnect.set(info, connectList);
} }
connectList.add(cgi); connectList.add([cgi, null]);
} }
} }
@ -1117,48 +1138,44 @@ const visitModules = (
for (const info of outdatedOrderIndexChunkGroups) { for (const info of outdatedOrderIndexChunkGroups) {
const { chunkGroup, runtime } = info; const { chunkGroup, runtime } = info;
const block = blockByChunkGroups.get(info); const blocks = blocksByChunkGroups.get(info);
if (!block) { if (!blocks) {
continue; continue;
} }
let preOrderIndex = 0; for (const block of blocks) {
let postOrderIndex = 0; let preOrderIndex = 0;
let postOrderIndex = 0;
/**
* @param {DependenciesBlock} current current
* @param {BlocksWithNestedBlocks} visited visited dependencies blocks
*/
const process = (current, visited) => {
const blockModules = getBlockModules(current, runtime);
for (let i = 0, len = blockModules.length; i < len; i += 3) {
const activeState = /** @type {ConnectionState} */ (
blockModules[i + 1]
);
if (activeState === false) {
continue;
}
const refModule = /** @type {Module} */ (blockModules[i]);
if (visited.has(refModule)) {
continue;
}
/** visited.add(refModule);
* @param {DependenciesBlock} current current
* @param {BlocksWithNestedBlocks} visited visited dependencies blocks
*/
const process = (current, visited) => {
const blockModules = getBlockModules(current, runtime);
if (blockModules === undefined) {
return;
}
for (let i = 0, len = blockModules.length; i < len; i += 3) { if (refModule) {
const activeState = /** @type {ConnectionState} */ ( chunkGroup.setModulePreOrderIndex(refModule, preOrderIndex++);
blockModules[i + 1] process(refModule, visited);
); chunkGroup.setModulePostOrderIndex(refModule, postOrderIndex++);
if (activeState === false) { }
continue;
} }
const refModule = /** @type {Module} */ (blockModules[i]); };
if (visited.has(refModule)) { process(block, new Set());
continue; }
}
visited.add(refModule);
if (refModule) {
chunkGroup.setModulePreOrderIndex(refModule, preOrderIndex++);
process(refModule, visited);
chunkGroup.setModulePostOrderIndex(refModule, postOrderIndex++);
}
}
};
process(block, new Set());
} }
outdatedOrderIndexChunkGroups.clear(); outdatedOrderIndexChunkGroups.clear();
ordinalByModule.clear(); ordinalByModule.clear();

View file

@ -1434,6 +1434,7 @@ const applyOptimizationDefaults = (
D(optimization, "innerGraph", production); D(optimization, "innerGraph", production);
D(optimization, "mangleExports", production); D(optimization, "mangleExports", production);
D(optimization, "concatenateModules", production); D(optimization, "concatenateModules", production);
D(optimization, "avoidEntryIife", production);
D(optimization, "runtimeChunk", false); D(optimization, "runtimeChunk", false);
D(optimization, "emitOnErrors", !production); D(optimization, "emitOnErrors", !production);
D(optimization, "checkWasmTypes", production); D(optimization, "checkWasmTypes", production);

View file

@ -91,7 +91,12 @@ class ContextDependency extends Dependency {
this.options.include this.options.include
)} ${regExpToString(this.options.exclude)} ` + )} ${regExpToString(this.options.exclude)} ` +
`${this.options.mode} ${this.options.chunkName} ` + `${this.options.mode} ${this.options.chunkName} ` +
`${JSON.stringify(this.options.groupOptions)}` `${JSON.stringify(this.options.groupOptions)}` +
`${
this.options.referencedExports
? ` ${JSON.stringify(this.options.referencedExports)}`
: ""
}`
); );
} }

View file

@ -9,7 +9,10 @@ const Dependency = require("../Dependency");
const makeSerializable = require("../util/makeSerializable"); const makeSerializable = require("../util/makeSerializable");
const ModuleDependency = require("./ModuleDependency"); const ModuleDependency = require("./ModuleDependency");
/** @typedef {import("../ContextModule")} ContextModule */
/** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */ /** @typedef {import("../Dependency").ReferencedExport} ReferencedExport */
/** @typedef {import("../Module")} Module */
/** @typedef {import("../Module").BuildMeta} BuildMeta */
/** @typedef {import("../ModuleGraph")} ModuleGraph */ /** @typedef {import("../ModuleGraph")} ModuleGraph */
/** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */ /** @typedef {import("../javascript/JavascriptParser").ImportAttributes} ImportAttributes */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */ /** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
@ -67,12 +70,36 @@ class ContextElementDependency extends ModuleDependency {
* @returns {(string[] | ReferencedExport)[]} referenced exports * @returns {(string[] | ReferencedExport)[]} referenced exports
*/ */
getReferencedExports(moduleGraph, runtime) { getReferencedExports(moduleGraph, runtime) {
return this.referencedExports if (!this.referencedExports) return Dependency.EXPORTS_OBJECT_REFERENCED;
? this.referencedExports.map(e => ({ const refs = [];
name: e, for (const referencedExport of this.referencedExports) {
canMangle: false if (
})) this._typePrefix === "import()" &&
: Dependency.EXPORTS_OBJECT_REFERENCED; referencedExport[0] === "default"
) {
const selfModule =
/** @type {ContextModule} */
(moduleGraph.getParentModule(this));
const importedModule =
/** @type {Module} */
(moduleGraph.getModule(this));
const exportsType = importedModule.getExportsType(
moduleGraph,
selfModule.options.namespaceObject === "strict"
);
if (
exportsType === "default-only" ||
exportsType === "default-with-named"
) {
return Dependency.EXPORTS_OBJECT_REFERENCED;
}
}
refs.push({
name: referencedExport,
canMangle: false
});
}
return refs;
} }
/** /**

View file

@ -839,18 +839,25 @@ class JavascriptModulesPlugin {
startupSource.add(`var ${RuntimeGlobals.exports} = {};\n`); startupSource.add(`var ${RuntimeGlobals.exports} = {};\n`);
} }
const renamedInlinedModule = this.renameInlineModule( const avoidEntryIife = compilation.options.optimization.avoidEntryIife;
allModules, /** @type {Map<Module, Source> | false} */
renderContext, let renamedInlinedModule = false;
inlinedModules, if (avoidEntryIife) {
chunkRenderContext, renamedInlinedModule = this.getRenamedInlineModule(
hooks allModules,
); renderContext,
inlinedModules,
chunkRenderContext,
hooks,
allStrict,
Boolean(chunkModules)
);
}
for (const m of inlinedModules) { for (const m of inlinedModules) {
const renderedModule = const renderedModule = renamedInlinedModule
renamedInlinedModule.get(m) || ? renamedInlinedModule.get(m)
this.renderModule(m, chunkRenderContext, hooks, false); : this.renderModule(m, chunkRenderContext, hooks, false);
if (renderedModule) { if (renderedModule) {
const innerStrict = const innerStrict =
@ -868,9 +875,11 @@ class JavascriptModulesPlugin {
? // TODO check globals and top-level declarations of other entries and chunk modules ? // TODO check globals and top-level declarations of other entries and chunk modules
// to make a better decision // to make a better decision
"it need to be isolated against other entry modules." "it need to be isolated against other entry modules."
: exports && !webpackExports : chunkModules && !renamedInlinedModule
? `it uses a non-standard name for the exports (${m.exportsArgument}).` ? "it need to be isolated against other modules in the chunk."
: hooks.embedInRuntimeBailout.call(m, renderContext); : exports && !webpackExports
? `it uses a non-standard name for the exports (${m.exportsArgument}).`
: hooks.embedInRuntimeBailout.call(m, renderContext);
let footer; let footer;
if (iife !== undefined) { if (iife !== undefined) {
startupSource.add( startupSource.add(
@ -1420,25 +1429,41 @@ class JavascriptModulesPlugin {
* @param {Set<Module>} inlinedModules inlinedModules * @param {Set<Module>} inlinedModules inlinedModules
* @param {ChunkRenderContext} chunkRenderContext chunkRenderContext * @param {ChunkRenderContext} chunkRenderContext chunkRenderContext
* @param {CompilationHooks} hooks hooks * @param {CompilationHooks} hooks hooks
* @returns {Map<Module, Source>} renamed inlined modules * @param {boolean} allStrict allStrict
* @param {boolean} hasChunkModules hasChunkModules
* @returns {Map<Module, Source> | false} renamed inlined modules
*/ */
renameInlineModule( getRenamedInlineModule(
allModules, allModules,
renderContext, renderContext,
inlinedModules, inlinedModules,
chunkRenderContext, chunkRenderContext,
hooks hooks,
allStrict,
hasChunkModules
) { ) {
const innerStrict = !allStrict && allModules.every(m => m.buildInfo.strict);
const isMultipleEntries = inlinedModules.size > 1;
const singleEntryWithModules = inlinedModules.size === 1 && hasChunkModules;
// TODO:
// This step is before the IIFE reason calculation. Ideally, it should only be executed when this function can optimize the
// IIFE reason. Otherwise, it should directly return false. There are four reasons now, we have skipped two already, the left
// one is 'it uses a non-standard name for the exports'.
if (isMultipleEntries || innerStrict || !singleEntryWithModules) {
return false;
}
/** @type {Map<Module, Source>} */
const renamedInlinedModules = new Map();
const { runtimeTemplate } = renderContext; const { runtimeTemplate } = renderContext;
/** @typedef {{ source: Source, ast: any, variables: Set<Variable>, usedInNonInlined: Set<Variable>}} InlinedModulesInfo */ /** @typedef {{ source: Source, ast: any, variables: Set<Variable>, usedInNonInlined: Set<Variable>}} InlinedModulesInfo */
/** @type {Map<Module, InlinedModulesInfo>} */ /** @type {Map<Module, InlinedModulesInfo>} */
const inlinedModulesToInfo = new Map(); const inlinedModulesToInfo = new Map();
/** @type {Set<string>} */ /** @type {Set<string>} */
const nonInlinedModuleThroughIdentifiers = new Set(); const nonInlinedModuleThroughIdentifiers = new Set();
/** @type {Map<Module, Source>} */ /** @type {Map<Module, Source>} */
const renamedInlinedModules = new Map();
for (const m of allModules) { for (const m of allModules) {
const isInlinedModule = inlinedModules && inlinedModules.has(m); const isInlinedModule = inlinedModules && inlinedModules.has(m);

View file

@ -1660,9 +1660,7 @@ ${defineGetters}`
switch (info.type) { switch (info.type) {
case "concatenated": { case "concatenated": {
result.add( result.add(
`\n;// CONCATENATED MODULE: ${info.module.readableIdentifier( `\n;// ${info.module.readableIdentifier(requestShortener)}\n`
requestShortener
)}\n`
); );
result.add(info.source); result.add(info.source);
if (info.chunkInitFragments) { if (info.chunkInitFragments) {

View file

@ -5,7 +5,7 @@
"use strict"; "use strict";
const { STAGE_BASIC } = require("../OptimizationStages"); const { STAGE_ADVANCED } = require("../OptimizationStages");
const { runtimeEqual } = require("../util/runtime"); const { runtimeEqual } = require("../util/runtime");
/** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../Compiler")} Compiler */
@ -22,7 +22,7 @@ class MergeDuplicateChunksPlugin {
compilation.hooks.optimizeChunks.tap( compilation.hooks.optimizeChunks.tap(
{ {
name: "MergeDuplicateChunksPlugin", name: "MergeDuplicateChunksPlugin",
stage: STAGE_BASIC stage: STAGE_ADVANCED
}, },
chunks => { chunks => {
const { chunkGraph, moduleGraph } = compilation; const { chunkGraph, moduleGraph } = compilation;

View file

@ -138,6 +138,9 @@ class LazySet {
return this._set.delete(value); return this._set.delete(value);
} }
/**
* @returns {IterableIterator<[T, T]>} entries
*/
entries() { entries() {
this._deopt = true; this._deopt = true;
if (this._needMerge) this._merge(); if (this._needMerge) this._merge();
@ -165,18 +168,27 @@ class LazySet {
return this._set.has(item); return this._set.has(item);
} }
/**
* @returns {IterableIterator<T>} keys
*/
keys() { keys() {
this._deopt = true; this._deopt = true;
if (this._needMerge) this._merge(); if (this._needMerge) this._merge();
return this._set.keys(); return this._set.keys();
} }
/**
* @returns {IterableIterator<T>} values
*/
values() { values() {
this._deopt = true; this._deopt = true;
if (this._needMerge) this._merge(); if (this._needMerge) this._merge();
return this._set.values(); return this._set.values();
} }
/**
* @returns {IterableIterator<T>} iterable iterator
*/
[Symbol.iterator]() { [Symbol.iterator]() {
this._deopt = true; this._deopt = true;
if (this._needMerge) this._merge(); if (this._needMerge) this._merge();

View file

@ -625,7 +625,7 @@ const lstatReadlinkAbsolute = (fs, p, callback) => {
// we retry 2 times to catch this case before throwing the error // we retry 2 times to catch this case before throwing the error
return doStat(); return doStat();
} }
if (err || !target) return doStat(); if (err) return callback(err);
const value = target.toString(); const value = target.toString();
callback(null, join(fs, dirname(fs, p), value)); callback(null, join(fs, dirname(fs, p), value));
}); });

View file

@ -618,6 +618,9 @@ class RuntimeSpecMap {
} }
} }
/**
* @returns {IterableIterator<T>} values
*/
values() { values() {
switch (this._mode) { switch (this._mode) {
case 0: case 0:
@ -666,6 +669,9 @@ class RuntimeSpecSet {
return this._map.has(getRuntimeKey(runtime)); return this._map.has(getRuntimeKey(runtime));
} }
/**
* @returns {IterableIterator<RuntimeSpec>} iterable iterator
*/
[Symbol.iterator]() { [Symbol.iterator]() {
return this._map.values(); return this._map.values();
} }

8
node_modules/webpack/package.json generated vendored
View file

@ -1,6 +1,6 @@
{ {
"name": "webpack", "name": "webpack",
"version": "5.94.0", "version": "5.95.0",
"author": "Tobias Koppers @sokra", "author": "Tobias Koppers @sokra",
"description": "Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.", "description": "Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.",
"license": "MIT", "license": "MIT",
@ -53,7 +53,7 @@
"core-js": "^3.6.5", "core-js": "^3.6.5",
"cspell": "^8.8.4", "cspell": "^8.8.4",
"css-loader": "^7.1.2", "css-loader": "^7.1.2",
"date-fns": "^3.2.0", "date-fns": "^4.0.0",
"es5-ext": "^0.10.53", "es5-ext": "^0.10.53",
"es6-promise-polyfill": "^1.2.0", "es6-promise-polyfill": "^1.2.0",
"eslint": "^9.5.0", "eslint": "^9.5.0",
@ -103,9 +103,9 @@
"style-loader": "^4.0.0", "style-loader": "^4.0.0",
"terser": "^5.31.1", "terser": "^5.31.1",
"toml": "^3.0.0", "toml": "^3.0.0",
"tooling": "webpack/tooling#v1.23.3", "tooling": "webpack/tooling#v1.23.4",
"ts-loader": "^9.5.1", "ts-loader": "^9.5.1",
"typescript": "^5.4.2", "typescript": "^5.6.2",
"url-loader": "^4.1.0", "url-loader": "^4.1.0",
"wast-loader": "^1.12.1", "wast-loader": "^1.12.1",
"webassembly-feature": "1.3.0", "webassembly-feature": "1.3.0",

File diff suppressed because one or more lines are too long

View file

@ -2580,6 +2580,10 @@
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"avoidEntryIife": {
"description": "Avoid wrapping the entry module in an IIFE.",
"type": "boolean"
},
"checkWasmTypes": { "checkWasmTypes": {
"description": "Check for incompatible wasm types when importing/exporting from/to ESM.", "description": "Check for incompatible wasm types when importing/exporting from/to ESM.",
"type": "boolean" "type": "boolean"

28
node_modules/webpack/types.d.ts generated vendored
View file

@ -4048,9 +4048,9 @@ declare interface Environment {
templateLiteral?: boolean; templateLiteral?: boolean;
} }
declare class EnvironmentPlugin { declare class EnvironmentPlugin {
constructor(...keys: (string | string[] | Record<string, string>)[]); constructor(...keys: (string | string[] | Record<string, any>)[]);
keys: string[]; keys: string[];
defaultValues: Record<string, string>; defaultValues: Record<string, any>;
/** /**
* Apply the plugin * Apply the plugin
@ -4582,7 +4582,6 @@ declare class ExternalModule extends Module {
externalType: string; externalType: string;
userRequest: string; userRequest: string;
dependencyMeta?: ImportDependencyMeta | CssImportDependencyMeta; dependencyMeta?: ImportDependencyMeta | CssImportDependencyMeta;
getModuleImportType(externalType: string): string;
/** /**
* restore unsafe cache data * restore unsafe cache data
@ -5205,6 +5204,7 @@ declare class Hash {
*/ */
digest(encoding?: string): string | Buffer; digest(encoding?: string): string | Buffer;
} }
type HashFunction = string | typeof Hash;
declare interface HashableObject { declare interface HashableObject {
updateHash: (arg0: Hash) => void; updateHash: (arg0: Hash) => void;
} }
@ -5607,13 +5607,15 @@ declare class JavascriptModulesPlugin {
renderContext: RenderBootstrapContext, renderContext: RenderBootstrapContext,
hooks: CompilationHooksJavascriptModulesPlugin hooks: CompilationHooksJavascriptModulesPlugin
): string; ): string;
renameInlineModule( getRenamedInlineModule(
allModules: Module[], allModules: Module[],
renderContext: MainRenderContext, renderContext: MainRenderContext,
inlinedModules: Set<Module>, inlinedModules: Set<Module>,
chunkRenderContext: ChunkRenderContext, chunkRenderContext: ChunkRenderContext,
hooks: CompilationHooksJavascriptModulesPlugin hooks: CompilationHooksJavascriptModulesPlugin,
): Map<Module, Source>; allStrict: boolean,
hasChunkModules: boolean
): false | Map<Module, Source>;
findNewName( findNewName(
oldName: string, oldName: string,
usedName: Set<string>, usedName: Set<string>,
@ -9380,6 +9382,10 @@ declare interface NormalModuleLoaderContext<OptionsType> {
sourceMap?: boolean; sourceMap?: boolean;
mode: "none" | "development" | "production"; mode: "none" | "development" | "production";
webpack?: boolean; webpack?: boolean;
hashFunction: HashFunction;
hashDigest: string;
hashDigestLength: number;
hashSalt: string;
_module?: NormalModule; _module?: NormalModule;
_compilation?: Compilation; _compilation?: Compilation;
_compiler?: Compiler; _compiler?: Compiler;
@ -9544,6 +9550,11 @@ declare interface Open {
* Enables/Disables integrated optimizations. * Enables/Disables integrated optimizations.
*/ */
declare interface Optimization { declare interface Optimization {
/**
* Avoid wrapping the entry module in an IIFE.
*/
avoidEntryIife?: boolean;
/** /**
* Check for incompatible wasm types when importing/exporting from/to ESM. * Check for incompatible wasm types when importing/exporting from/to ESM.
*/ */
@ -13604,11 +13615,6 @@ declare abstract class SortableSet<T> extends Set<T> {
*/ */
getFromUnorderedCache<R>(fn: (arg0: SortableSet<T>) => R): R; getFromUnorderedCache<R>(fn: (arg0: SortableSet<T>) => R): R;
toJSON(): T[]; toJSON(): T[];
/**
* Iterates over values in the set.
*/
[Symbol.iterator](): IterableIterator<T>;
} }
declare class Source { declare class Source {
constructor(); constructor();

307
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,6 @@
{ {
"devDependencies": { "devDependencies": {
"babel-loader": "^9.2.1" "babel-loader": "^9.2.1",
"webpack": "^5.95.0"
} }
} }

View file

@ -18,9 +18,9 @@ const manifestStr = `
"description": "This plugin serves as a starting point for writing a Mattermost plugin.", "description": "This plugin serves as a starting point for writing a Mattermost plugin.",
"homepage_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate", "homepage_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate",
"support_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate/issues", "support_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate/issues",
"release_notes_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdatereleases/tag/v0.2.1", "release_notes_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdatereleases/tag/v0.2.2",
"icon_path": "assets/starter-template-icon.svg", "icon_path": "assets/starter-template-icon.svg",
"version": "0.2.1", "version": "0.2.2",
"min_server_version": "6.2.1", "min_server_version": "6.2.1",
"server": { "server": {
"executables": { "executables": {

2
webapp/dist/main.js vendored

File diff suppressed because one or more lines are too long

View file

@ -7,9 +7,9 @@ const manifest = JSON.parse(`
"description": "This plugin serves as a starting point for writing a Mattermost plugin.", "description": "This plugin serves as a starting point for writing a Mattermost plugin.",
"homepage_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate", "homepage_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate",
"support_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate/issues", "support_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate/issues",
"release_notes_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdatereleases/tag/v0.2.1", "release_notes_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdatereleases/tag/v0.2.2",
"icon_path": "assets/starter-template-icon.svg", "icon_path": "assets/starter-template-icon.svg",
"version": "0.2.1", "version": "0.2.2",
"min_server_version": "6.2.1", "min_server_version": "6.2.1",
"server": { "server": {
"executables": { "executables": {