This commit is contained in:
Iliyan Angelov
2025-09-14 23:24:25 +03:00
commit c67067a2a4
71311 changed files with 6800714 additions and 0 deletions

20
frontend/node_modules/source-map-loader/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,20 @@
Copyright JS Foundation and other contributors
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

163
frontend/node_modules/source-map-loader/README.md generated vendored Normal file
View File

@@ -0,0 +1,163 @@
<div align="center">
<a href="https://github.com/webpack/webpack">
<img width="200" height="200" src="https://webpack.js.org/assets/icon-square-big.svg">
</a>
</div>
[![npm][npm]][npm-url]
[![node][node]][node-url]
[![deps][deps]][deps-url]
[![tests][tests]][tests-url]
[![coverage][cover]][cover-url]
[![chat][chat]][chat-url]
[![size][size]][size-url]
# source-map-loader
Extracts source maps from existing source files (from their <code>sourceMappingURL</code>).
## Getting Started
To begin, you'll need to install `source-map-loader`:
```bash
npm i -D source-map-loader
```
Then add the plugin to your `webpack` config. For example:
**file.js**
```js
import css from "file.css";
```
**webpack.config.js**
```js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: "pre",
use: ["source-map-loader"],
},
],
},
};
```
The `source-map-loader` extracts existing source maps from all JavaScript entries.
This includes both inline source maps as well as those linked via URL.
All source map data is passed to webpack for processing as per a chosen [source map style](https://webpack.js.org/configuration/devtool/) specified by the `devtool` option in [webpack.config.js](https://webpack.js.org/configuration/).
This loader is especially useful when using 3rd-party libraries having their own source maps.
If not extracted and processed into the source map of the webpack bundle, browsers may misinterpret source map data. `source-map-loader` allows webpack to maintain source map data continuity across libraries so ease of debugging is preserved.
The `source-map-loader` will extract from any JavaScript file, including those in the `node_modules` directory.
Be mindful in setting [include](https://webpack.js.org/configuration/module/#rule-include) and [exclude](https://webpack.js.org/configuration/module/#rule-exclude) rule conditions to maximize bundling performance.
And run `webpack` via your preferred method.
## Options
| Name | Type | Default | Description |
| :-----------------------------------------------------: | :----------: | :---------: | :--------------------------------------------- |
| **[`filterSourceMappingUrl`](#filtersourcemappingurl)** | `{Function}` | `undefined` | Allows to control `SourceMappingURL` behaviour |
### filterSourceMappingUrl
Type: `Function`
Default: `undefined`
Allows you to specify the behavior of the loader for `SourceMappingURL` comment.
The function must return one of the values:
- `true` or `'consume'` - consume the source map and remove `SourceMappingURL` comment (default behavior)
- `false` or `'remove'` - do not consume the source map and remove `SourceMappingURL` comment
- `skip` - do not consume the source map and do not remove `SourceMappingURL` comment
Example configuration:
**webpack.config.js**
```js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: "pre",
use: [
{
loader: "source-map-loader",
options: {
filterSourceMappingUrl: (url, resourcePath) => {
if (/broker-source-map-url\.js$/i.test(url)) {
return false;
}
if (/keep-source-mapping-url\.js$/i.test(resourcePath)) {
return "skip";
}
return true;
},
},
},
],
},
],
},
};
```
## Examples
### Ignoring Warnings
To ignore warnings, you can use the following configuration:
**webpack.config.js**
```js
module.exports = {
module: {
rules: [
{
test: /\.js$/,
enforce: "pre",
use: ["source-map-loader"],
},
],
},
ignoreWarnings: [/Failed to parse source map/],
};
```
More information about the `ignoreWarnings` option can be found [here](https://webpack.js.org/configuration/other-options/#ignorewarnings)
## Contributing
Please take a moment to read our contributing guidelines if you haven't yet done so.
[CONTRIBUTING](./.github/CONTRIBUTING.md)
## License
[MIT](./LICENSE)
[npm]: https://img.shields.io/npm/v/source-map-loader.svg
[npm-url]: https://npmjs.com/package/source-map-loader
[node]: https://img.shields.io/node/v/source-map-loader.svg
[node-url]: https://nodejs.org
[deps]: https://david-dm.org/webpack-contrib/source-map-loader.svg
[deps-url]: https://david-dm.org/webpack-contrib/source-map-loader
[tests]: https://github.com/webpack-contrib/source-map-loader/workflows/source-map-loader/badge.svg
[tests-url]: https://github.com/webpack-contrib/source-map-loader/actions
[cover]: https://codecov.io/gh/webpack-contrib/source-map-loader/branch/master/graph/badge.svg
[cover-url]: https://codecov.io/gh/webpack-contrib/source-map-loader
[chat]: https://badges.gitter.im/webpack/webpack.svg
[chat-url]: https://gitter.im/webpack/webpack
[size]: https://packagephobia.now.sh/badge?p=source-map-loader
[size-url]: https://packagephobia.now.sh/result?p=source-map-loader

6
frontend/node_modules/source-map-loader/dist/cjs.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
"use strict";
const loader = require("./index");
module.exports = loader.default;
module.exports.raw = loader.raw;

144
frontend/node_modules/source-map-loader/dist/index.js generated vendored Normal file
View File

@@ -0,0 +1,144 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = loader;
var _path = _interopRequireDefault(require("path"));
var _options = _interopRequireDefault(require("./options.json"));
var _utils = require("./utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
async function loader(input, inputMap) {
const options = this.getOptions(_options.default);
const {
sourceMappingURL,
replacementString
} = (0, _utils.getSourceMappingURL)(input);
const callback = this.async();
if (!sourceMappingURL) {
callback(null, input, inputMap);
return;
}
let behaviourSourceMappingUrl;
try {
behaviourSourceMappingUrl = typeof options.filterSourceMappingUrl !== "undefined" ? options.filterSourceMappingUrl(sourceMappingURL, this.resourcePath) : "consume";
} catch (error) {
callback(error);
return;
} // eslint-disable-next-line default-case
switch (behaviourSourceMappingUrl) {
case "skip":
callback(null, input, inputMap);
return;
case false:
case "remove":
callback(null, input.replace(replacementString, ""), inputMap);
return;
}
let sourceURL;
let sourceContent;
try {
({
sourceURL,
sourceContent
} = await (0, _utils.fetchFromURL)(this, this.context, sourceMappingURL));
} catch (error) {
this.emitWarning(error);
callback(null, input, inputMap);
return;
}
if (sourceURL) {
this.addDependency(sourceURL);
}
let map;
try {
map = JSON.parse(sourceContent.replace(/^\)\]\}'/, ""));
} catch (parseError) {
this.emitWarning(new Error(`Failed to parse source map from '${sourceMappingURL}': ${parseError}`));
callback(null, input, inputMap);
return;
}
const context = sourceURL ? _path.default.dirname(sourceURL) : this.context;
if (map.sections) {
// eslint-disable-next-line no-param-reassign
map = await (0, _utils.flattenSourceMap)(map);
}
const resolvedSources = await Promise.all(map.sources.map(async (source, i) => {
// eslint-disable-next-line no-shadow
let sourceURL; // eslint-disable-next-line no-shadow
let sourceContent;
const originalSourceContent = map.sourcesContent && typeof map.sourcesContent[i] !== "undefined" && map.sourcesContent[i] !== null ? map.sourcesContent[i] : // eslint-disable-next-line no-undefined
undefined;
const skipReading = typeof originalSourceContent !== "undefined";
let errored = false; // We do not skipReading here, because we need absolute paths in sources.
// This is necessary so that for sourceMaps with the same file structure in sources, name collisions do not occur.
// https://github.com/webpack-contrib/source-map-loader/issues/51
try {
({
sourceURL,
sourceContent
} = await (0, _utils.fetchFromURL)(this, context, source, map.sourceRoot, skipReading));
} catch (error) {
errored = true;
this.emitWarning(error);
}
if (skipReading) {
sourceContent = originalSourceContent;
} else if (!errored && sourceURL && !(0, _utils.isURL)(sourceURL)) {
this.addDependency(sourceURL);
} // Return original value of `source` when error happens
return {
sourceURL: errored ? source : sourceURL,
sourceContent
};
}));
const newMap = { ...map
};
newMap.sources = [];
newMap.sourcesContent = [];
delete newMap.sourceRoot;
resolvedSources.forEach(source => {
// eslint-disable-next-line no-shadow
const {
sourceURL,
sourceContent
} = source;
newMap.sources.push(sourceURL || "");
newMap.sourcesContent.push(sourceContent || "");
});
const sourcesContentIsEmpty = newMap.sourcesContent.filter(entry => Boolean(entry)).length === 0;
if (sourcesContentIsEmpty) {
delete newMap.sourcesContent;
}
callback(null, input.replace(replacementString, ""), newMap);
}

View File

@@ -0,0 +1,215 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const labelToNames = {
866: "IBM866",
"unicode-1-1-utf-8": "UTF-8",
"utf-8": "UTF-8",
utf8: "UTF-8",
cp866: "IBM866",
csibm866: "IBM866",
ibm866: "IBM866",
csisolatin2: "ISO-8859-2",
"iso-8859-2": "ISO-8859-2",
"iso-ir-101": "ISO-8859-2",
"iso8859-2": "ISO-8859-2",
iso88592: "ISO-8859-2",
"iso_8859-2": "ISO-8859-2",
"iso_8859-2:1987": "ISO-8859-2",
l2: "ISO-8859-2",
latin2: "ISO-8859-2",
csisolatin3: "ISO-8859-3",
"iso-8859-3": "ISO-8859-3",
"iso-ir-109": "ISO-8859-3",
"iso8859-3": "ISO-8859-3",
iso88593: "ISO-8859-3",
"iso_8859-3": "ISO-8859-3",
"iso_8859-3:1988": "ISO-8859-3",
l3: "ISO-8859-3",
latin3: "ISO-8859-3",
csisolatin4: "ISO-8859-4",
"iso-8859-4": "ISO-8859-4",
"iso-ir-110": "ISO-8859-4",
"iso8859-4": "ISO-8859-4",
iso88594: "ISO-8859-4",
"iso_8859-4": "ISO-8859-4",
"iso_8859-4:1988": "ISO-8859-4",
l4: "ISO-8859-4",
latin4: "ISO-8859-4",
csisolatincyrillic: "ISO-8859-5",
cyrillic: "ISO-8859-5",
"iso-8859-5": "ISO-8859-5",
"iso-ir-144": "ISO-8859-5",
"iso8859-5": "ISO-8859-5",
iso88595: "ISO-8859-5",
"iso_8859-5": "ISO-8859-5",
"iso_8859-5:1988": "ISO-8859-5",
arabic: "ISO-8859-6",
"asmo-708": "ISO-8859-6",
csiso88596e: "ISO-8859-6",
csiso88596i: "ISO-8859-6",
csisolatinarabic: "ISO-8859-6",
"ecma-114": "ISO-8859-6",
"iso-8859-6": "ISO-8859-6",
"iso-8859-6-e": "ISO-8859-6",
"iso-8859-6-i": "ISO-8859-6",
"iso-ir-127": "ISO-8859-6",
"iso8859-6": "ISO-8859-6",
iso88596: "ISO-8859-6",
"iso_8859-6": "ISO-8859-6",
"iso_8859-6:1987": "ISO-8859-6",
csisolatingreek: "ISO-8859-7",
"ecma-118": "ISO-8859-7",
elot_928: "ISO-8859-7",
greek: "ISO-8859-7",
greek8: "ISO-8859-7",
"iso-8859-7": "ISO-8859-7",
"iso-ir-126": "ISO-8859-7",
"iso8859-7": "ISO-8859-7",
iso88597: "ISO-8859-7",
"iso_8859-7": "ISO-8859-7",
"iso_8859-7:1987": "ISO-8859-7",
sun_eu_greek: "ISO-8859-7",
csiso88598e: "ISO-8859-8",
csisolatinhebrew: "ISO-8859-8",
hebrew: "ISO-8859-8",
"iso-8859-8": "ISO-8859-8",
"iso-8859-8-e": "ISO-8859-8",
"iso-ir-138": "ISO-8859-8",
"iso8859-8": "ISO-8859-8",
iso88598: "ISO-8859-8",
"iso_8859-8": "ISO-8859-8",
"iso_8859-8:1988": "ISO-8859-8",
visual: "ISO-8859-8",
csisolatin6: "ISO-8859-10",
"iso-8859-10": "ISO-8859-10",
"iso-ir-157": "ISO-8859-10",
"iso8859-10": "ISO-8859-10",
iso885910: "ISO-8859-10",
l6: "ISO-8859-10",
latin6: "ISO-8859-10",
"iso-8859-13": "ISO-8859-13",
"iso8859-13": "ISO-8859-13",
iso885913: "ISO-8859-13",
"iso-8859-14": "ISO-8859-14",
"iso8859-14": "ISO-8859-14",
iso885914: "ISO-8859-14",
csisolatin9: "ISO-8859-15",
"iso-8859-15": "ISO-8859-15",
"iso8859-15": "ISO-8859-15",
iso885915: "ISO-8859-15",
"iso_8859-15": "ISO-8859-15",
l9: "ISO-8859-15",
"iso-8859-16": "ISO-8859-16",
cskoi8r: "KOI8-R",
koi: "KOI8-R",
koi8: "KOI8-R",
"koi8-r": "KOI8-R",
koi8_r: "KOI8-R",
"koi8-ru": "KOI8-U",
"koi8-u": "KOI8-U",
csmacintosh: "macintosh",
mac: "macintosh",
macintosh: "macintosh",
"x-mac-roman": "macintosh",
"dos-874": "windows-874",
"iso-8859-11": "windows-874",
"iso8859-11": "windows-874",
iso885911: "windows-874",
"tis-620": "windows-874",
"windows-874": "windows-874",
cp1250: "windows-1250",
"windows-1250": "windows-1250",
"x-cp1250": "windows-1250",
cp1251: "windows-1251",
"windows-1251": "windows-1251",
"x-cp1251": "windows-1251",
"ansi_x3.4-1968": "windows-1252",
ascii: "windows-1252",
cp1252: "windows-1252",
cp819: "windows-1252",
csisolatin1: "windows-1252",
ibm819: "windows-1252",
"iso-8859-1": "windows-1252",
"iso-ir-100": "windows-1252",
"iso8859-1": "windows-1252",
iso88591: "windows-1252",
"iso_8859-1": "windows-1252",
"iso_8859-1:1987": "windows-1252",
l1: "windows-1252",
latin1: "windows-1252",
"us-ascii": "windows-1252",
"windows-1252": "windows-1252",
"x-cp1252": "windows-1252",
cp1253: "windows-1253",
"windows-1253": "windows-1253",
"x-cp1253": "windows-1253",
cp1254: "windows-1254",
csisolatin5: "windows-1254",
"iso-8859-9": "windows-1254",
"iso-ir-148": "windows-1254",
"iso8859-9": "windows-1254",
iso88599: "windows-1254",
"iso_8859-9": "windows-1254",
"iso_8859-9:1989": "windows-1254",
l5: "windows-1254",
latin5: "windows-1254",
"windows-1254": "windows-1254",
"x-cp1254": "windows-1254",
cp1255: "windows-1255",
"windows-1255": "windows-1255",
"x-cp1255": "windows-1255",
cp1256: "windows-1256",
"windows-1256": "windows-1256",
"x-cp1256": "windows-1256",
cp1257: "windows-1257",
"windows-1257": "windows-1257",
"x-cp1257": "windows-1257",
cp1258: "windows-1258",
"windows-1258": "windows-1258",
"x-cp1258": "windows-1258",
chinese: "GBK",
csgb2312: "GBK",
csiso58gb231280: "GBK",
gb2312: "GBK",
gb_2312: "GBK",
"gb_2312-80": "GBK",
gbk: "GBK",
"iso-ir-58": "GBK",
"x-gbk": "GBK",
gb18030: "gb18030",
big5: "Big5",
"big5-hkscs": "Big5",
"cn-big5": "Big5",
csbig5: "Big5",
"x-x-big5": "Big5",
cseucpkdfmtjapanese: "EUC-JP",
"euc-jp": "EUC-JP",
"x-euc-jp": "EUC-JP",
csshiftjis: "Shift_JIS",
ms932: "Shift_JIS",
ms_kanji: "Shift_JIS",
"shift-jis": "Shift_JIS",
shift_jis: "Shift_JIS",
sjis: "Shift_JIS",
"windows-31j": "Shift_JIS",
"x-sjis": "Shift_JIS",
cseuckr: "EUC-KR",
csksc56011987: "EUC-KR",
"euc-kr": "EUC-KR",
"iso-ir-149": "EUC-KR",
korean: "EUC-KR",
"ks_c_5601-1987": "EUC-KR",
"ks_c_5601-1989": "EUC-KR",
ksc5601: "EUC-KR",
ksc_5601: "EUC-KR",
"windows-949": "EUC-KR",
"utf-16be": "UTF-16BE",
"utf-16": "UTF-16LE",
"utf-16le": "UTF-16LE"
};
var _default = labelToNames;
exports.default = _default;

View File

@@ -0,0 +1,10 @@
{
"title": "Source Map Loader options",
"type": "object",
"additionalProperties": false,
"properties": {
"filterSourceMappingUrl": {
"instanceof": "Function"
}
}
}

View File

@@ -0,0 +1,241 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = parseDataUrl;
var _abab = require("abab");
const removeLeadingAndTrailingHTTPWhitespace = string => string.replace(/^[ \t\n\r]+/, "").replace(/[ \t\n\r]+$/, "");
const removeTrailingHTTPWhitespace = string => string.replace(/[ \t\n\r]+$/, "");
const isHTTPWhitespaceChar = char => char === " " || char === "\t" || char === "\n" || char === "\r";
const solelyContainsHTTPTokenCodePoints = string => /^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/.test(string);
const soleyContainsHTTPQuotedStringTokenCodePoints = string => /^[\t\u0020-\u007E\u0080-\u00FF]*$/.test(string);
const asciiLowercase = string => string.replace(/[A-Z]/g, l => l.toLowerCase());
const collectAnHTTPQuotedString = (input, position) => {
let value = ""; // eslint-disable-next-line no-param-reassign
position += 1; // eslint-disable-next-line no-constant-condition
while (true) {
while (position < input.length && input[position] !== '"' && input[position] !== "\\") {
value += input[position]; // eslint-disable-next-line no-param-reassign
position += 1;
}
if (position >= input.length) {
break;
}
const quoteOrBackslash = input[position]; // eslint-disable-next-line no-param-reassign
position += 1;
if (quoteOrBackslash === "\\") {
if (position >= input.length) {
value += "\\";
break;
}
value += input[position]; // eslint-disable-next-line no-param-reassign
position += 1;
} else {
break;
}
}
return [value, position];
};
function isASCIIHex(c) {
return c >= 0x30 && c <= 0x39 || c >= 0x41 && c <= 0x46 || c >= 0x61 && c <= 0x66;
}
function percentDecodeBytes(input) {
const output = new Uint8Array(input.byteLength);
let outputIndex = 0;
for (let i = 0; i < input.byteLength; ++i) {
const byte = input[i];
if (byte !== 0x25) {
output[outputIndex] = byte;
} else if (byte === 0x25 && (!isASCIIHex(input[i + 1]) || !isASCIIHex(input[i + 2]))) {
output[outputIndex] = byte;
} else {
output[outputIndex] = parseInt(String.fromCodePoint(input[i + 1], input[i + 2]), 16);
i += 2;
}
outputIndex += 1;
}
return output.slice(0, outputIndex);
}
function parseDataUrl(stringInput) {
let parsedUrl;
try {
parsedUrl = new URL(stringInput);
} catch (error) {
return null;
}
if (parsedUrl.protocol !== "data:") {
return null;
}
parsedUrl.hash = ""; // `5` is value of `'data:'.length`
const input = parsedUrl.toString().substring(5);
let position = 0;
let mediaType = "";
while (position < input.length && input[position] !== ",") {
mediaType += input[position];
position += 1;
}
mediaType = mediaType.replace(/^[ \t\n\f\r]+/, "").replace(/[ \t\n\f\r]+$/, "");
if (position === input.length) {
return null;
}
position += 1;
const encodedBody = input.substring(position);
let body = Buffer.from(percentDecodeBytes(Buffer.from(encodedBody, "utf-8"))); // Can't use /i regexp flag because it isn't restricted to ASCII.
const mimeTypeBase64MatchResult = /(.*); *[Bb][Aa][Ss][Ee]64$/.exec(mediaType);
if (mimeTypeBase64MatchResult) {
const stringBody = body.toString("binary");
const asString = (0, _abab.atob)(stringBody);
if (asString === null) {
return null;
}
body = Buffer.from(asString, "binary");
[, mediaType] = mimeTypeBase64MatchResult;
}
if (mediaType.startsWith(";")) {
mediaType = `text/plain ${mediaType}`;
}
const result = {
// eslint-disable-next-line no-undefined
type: undefined,
// eslint-disable-next-line no-undefined
subtype: undefined,
parameters: new Map(),
isBase64: Boolean(mimeTypeBase64MatchResult),
body
};
if (!mediaType) {
return result;
}
const inputMediaType = removeLeadingAndTrailingHTTPWhitespace(mediaType);
let positionMediaType = 0;
let type = "";
while (positionMediaType < inputMediaType.length && inputMediaType[positionMediaType] !== "/") {
type += inputMediaType[positionMediaType];
positionMediaType += 1;
}
if (type.length === 0 || !solelyContainsHTTPTokenCodePoints(type)) {
return result;
}
if (positionMediaType >= inputMediaType.length) {
return result;
} // Skips past "/"
positionMediaType += 1;
let subtype = "";
while (positionMediaType < inputMediaType.length && inputMediaType[positionMediaType] !== ";") {
subtype += inputMediaType[positionMediaType];
positionMediaType += 1;
}
subtype = removeTrailingHTTPWhitespace(subtype);
if (subtype.length === 0 || !solelyContainsHTTPTokenCodePoints(subtype)) {
return result;
}
result.type = asciiLowercase(type);
result.subtype = asciiLowercase(subtype);
while (positionMediaType < inputMediaType.length) {
// Skip past ";"
positionMediaType += 1;
while (isHTTPWhitespaceChar(inputMediaType[positionMediaType])) {
positionMediaType += 1;
}
let parameterName = "";
while (positionMediaType < inputMediaType.length && inputMediaType[positionMediaType] !== ";" && inputMediaType[positionMediaType] !== "=") {
parameterName += inputMediaType[positionMediaType];
positionMediaType += 1;
}
parameterName = asciiLowercase(parameterName);
if (positionMediaType < inputMediaType.length) {
if (inputMediaType[positionMediaType] === ";") {
// eslint-disable-next-line no-continue
continue;
} // Skip past "="
positionMediaType += 1;
}
let parameterValue = "";
if (inputMediaType[positionMediaType] === '"') {
[parameterValue, positionMediaType] = collectAnHTTPQuotedString(inputMediaType, positionMediaType);
while (positionMediaType < inputMediaType.length && inputMediaType[positionMediaType] !== ";") {
positionMediaType += 1;
}
} else {
while (positionMediaType < inputMediaType.length && inputMediaType[positionMediaType] !== ";") {
parameterValue += inputMediaType[positionMediaType];
positionMediaType += 1;
}
parameterValue = removeTrailingHTTPWhitespace(parameterValue);
if (parameterValue === "") {
// eslint-disable-next-line no-continue
continue;
}
}
if (parameterName.length > 0 && solelyContainsHTTPTokenCodePoints(parameterName) && soleyContainsHTTPQuotedStringTokenCodePoints(parameterValue) && !result.parameters.has(parameterName)) {
result.parameters.set(parameterName, parameterValue);
}
}
return result;
}

262
frontend/node_modules/source-map-loader/dist/utils.js generated vendored Normal file
View File

@@ -0,0 +1,262 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.fetchFromURL = fetchFromURL;
exports.flattenSourceMap = flattenSourceMap;
exports.getSourceMappingURL = getSourceMappingURL;
exports.isURL = isURL;
var _path = _interopRequireDefault(require("path"));
var _url = _interopRequireDefault(require("url"));
var _sourceMapJs = _interopRequireDefault(require("source-map-js"));
var _iconvLite = require("iconv-lite");
var _parseDataUrl = _interopRequireDefault(require("./parse-data-url"));
var _labelsToNames = _interopRequireDefault(require("./labels-to-names"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Matches only the last occurrence of sourceMappingURL
const innerRegex = /\s*[#@]\s*sourceMappingURL\s*=\s*([^\s'"]*)\s*/;
/* eslint-disable prefer-template */
const sourceMappingURLRegex = RegExp("(?:" + "/\\*" + "(?:\\s*\r?\n(?://)?)?" + "(?:" + innerRegex.source + ")" + "\\s*" + "\\*/" + "|" + "//(?:" + innerRegex.source + ")" + ")" + "\\s*");
/* eslint-enable prefer-template */
function labelToName(label) {
const labelLowercase = String(label).trim().toLowerCase();
return _labelsToNames.default[labelLowercase] || null;
}
async function flattenSourceMap(map) {
const consumer = await new _sourceMapJs.default.SourceMapConsumer(map);
const generatedMap = map.file ? new _sourceMapJs.default.SourceMapGenerator({
file: map.file
}) : new _sourceMapJs.default.SourceMapGenerator();
consumer.sources.forEach(sourceFile => {
const sourceContent = consumer.sourceContentFor(sourceFile, true);
generatedMap.setSourceContent(sourceFile, sourceContent);
});
consumer.eachMapping(mapping => {
const {
source
} = consumer.originalPositionFor({
line: mapping.generatedLine,
column: mapping.generatedColumn
});
const mappings = {
source,
original: {
line: mapping.originalLine,
column: mapping.originalColumn
},
generated: {
line: mapping.generatedLine,
column: mapping.generatedColumn
}
};
if (source) {
generatedMap.addMapping(mappings);
}
});
return generatedMap.toJSON();
}
function getSourceMappingURL(code) {
const lines = code.split(/^/m);
let match;
for (let i = lines.length - 1; i >= 0; i--) {
match = lines[i].match(sourceMappingURLRegex);
if (match) {
break;
}
}
const sourceMappingURL = match ? match[1] || match[2] || "" : null;
return {
sourceMappingURL: sourceMappingURL ? decodeURI(sourceMappingURL) : sourceMappingURL,
replacementString: match ? match[0] : null
};
}
function getAbsolutePath(context, request, sourceRoot) {
if (isURL(sourceRoot)) {
return new URL(request, sourceRoot).toString();
}
if (sourceRoot) {
if (_path.default.isAbsolute(sourceRoot)) {
return _path.default.join(sourceRoot, request);
}
return _path.default.join(context, sourceRoot, request);
}
return _path.default.join(context, request);
}
function fetchFromDataURL(loaderContext, sourceURL) {
const dataURL = (0, _parseDataUrl.default)(sourceURL);
if (dataURL) {
// https://tools.ietf.org/html/rfc4627
// JSON text SHALL be encoded in Unicode. The default encoding is UTF-8.
const encodingName = labelToName(dataURL.parameters.get("charset")) || "UTF-8";
return (0, _iconvLite.decode)(dataURL.body, encodingName);
}
throw new Error(`Failed to parse source map from "data" URL: ${sourceURL}`);
}
async function fetchFromFilesystem(loaderContext, sourceURL) {
let buffer;
if (isURL(sourceURL)) {
return {
path: sourceURL
};
}
try {
buffer = await new Promise((resolve, reject) => {
loaderContext.fs.readFile(sourceURL, (error, data) => {
if (error) {
return reject(error);
}
return resolve(data);
});
});
} catch (error) {
throw new Error(`Failed to parse source map from '${sourceURL}' file: ${error}`);
}
return {
path: sourceURL,
data: buffer.toString()
};
}
async function fetchPathsFromFilesystem(loaderContext, possibleRequests, errorsAccumulator = "") {
let result;
try {
result = await fetchFromFilesystem(loaderContext, possibleRequests[0], errorsAccumulator);
} catch (error) {
// eslint-disable-next-line no-param-reassign
errorsAccumulator += `${error.message}\n\n`;
const [, ...tailPossibleRequests] = possibleRequests;
if (tailPossibleRequests.length === 0) {
error.message = errorsAccumulator;
throw error;
}
return fetchPathsFromFilesystem(loaderContext, tailPossibleRequests, errorsAccumulator);
}
return result;
}
function isURL(value) {
return /^[a-z][a-z0-9+.-]*:/i.test(value) && !_path.default.win32.isAbsolute(value);
}
async function fetchFromURL(loaderContext, context, url, sourceRoot, skipReading = false) {
// 1. It's an absolute url and it is not `windows` path like `C:\dir\file`
if (isURL(url)) {
const {
protocol
} = _url.default.parse(url);
if (protocol === "data:") {
if (skipReading) {
return {
sourceURL: ""
};
}
const sourceContent = fetchFromDataURL(loaderContext, url);
return {
sourceURL: "",
sourceContent
};
}
if (skipReading) {
return {
sourceURL: url
};
}
if (protocol === "file:") {
const pathFromURL = _url.default.fileURLToPath(url);
const sourceURL = _path.default.normalize(pathFromURL);
const {
data: sourceContent
} = await fetchFromFilesystem(loaderContext, sourceURL);
return {
sourceURL,
sourceContent
};
}
throw new Error(`Failed to parse source map: '${url}' URL is not supported`);
} // 2. It's a scheme-relative
if (/^\/\//.test(url)) {
throw new Error(`Failed to parse source map: '${url}' URL is not supported`);
} // 3. Absolute path
if (_path.default.isAbsolute(url)) {
let sourceURL = _path.default.normalize(url);
let sourceContent;
if (!skipReading) {
const possibleRequests = [sourceURL];
if (url.startsWith("/")) {
possibleRequests.push(getAbsolutePath(context, sourceURL.slice(1), sourceRoot));
}
const result = await fetchPathsFromFilesystem(loaderContext, possibleRequests);
sourceURL = result.path;
sourceContent = result.data;
}
return {
sourceURL,
sourceContent
};
} // 4. Relative path
const sourceURL = getAbsolutePath(context, url, sourceRoot);
let sourceContent;
if (!skipReading) {
const {
data
} = await fetchFromFilesystem(loaderContext, sourceURL);
sourceContent = data;
}
return {
sourceURL,
sourceContent
};
}

73
frontend/node_modules/source-map-loader/package.json generated vendored Normal file
View File

@@ -0,0 +1,73 @@
{
"name": "source-map-loader",
"version": "3.0.2",
"description": "extracts inlined source map and offers it to webpack",
"license": "MIT",
"repository": "webpack-contrib/source-map-loader",
"author": "Tobias Koppers @sokra",
"homepage": "https://github.com/webpack-contrib/source-map-loader",
"bugs": "https://github.com/webpack-contrib/source-map-loader/issues",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/webpack"
},
"main": "dist/cjs.js",
"engines": {
"node": ">= 12.13.0"
},
"scripts": {
"start": "npm run build -- -w",
"clean": "del-cli dist",
"prebuild": "npm run clean",
"build": "cross-env NODE_ENV=production babel src -d dist --copy-files",
"commitlint": "commitlint --from=master",
"security": "npm audit",
"lint:prettier": "prettier --list-different .",
"lint:js": "eslint --cache .",
"lint": "npm-run-all -l -p \"lint:**\"",
"test:only": "cross-env NODE_ENV=test jest",
"test:watch": "npm run test:only -- --watch",
"test:coverage": "npm run test:only -- --collectCoverageFrom=\"src/**/*.js\" --coverage",
"pretest": "npm run lint",
"test": "npm run test:coverage",
"prepare": "husky install && npm run build",
"release": "standard-version"
},
"files": [
"dist"
],
"peerDependencies": {
"webpack": "^5.0.0"
},
"dependencies": {
"abab": "^2.0.5",
"iconv-lite": "^0.6.3",
"source-map-js": "^1.0.1"
},
"devDependencies": {
"@babel/cli": "^7.14.5",
"@babel/core": "^7.14.6",
"@babel/preset-env": "^7.14.7",
"@commitlint/cli": "^16.0.1",
"@commitlint/config-conventional": "^16.0.0",
"@webpack-contrib/eslint-config-webpack": "^3.0.0",
"babel-jest": "^27.0.6",
"cross-env": "^7.0.3",
"del": "^6.0.0",
"del-cli": "^4.0.0",
"eslint": "^8.6.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.23.4",
"husky": "^7.0.1",
"jest": "^27.0.6",
"lint-staged": "^12.1.5",
"memfs": "^3.2.2",
"npm-run-all": "^4.1.5",
"prettier": "^2.3.2",
"standard-version": "^9.3.1",
"webpack": "^5.44.0"
},
"keywords": [
"webpack"
]
}