From 412d454cd677443e11eb14dd6c5897c55fb3840e Mon Sep 17 00:00:00 2001 From: Dong Nguyen Date: Tue, 4 Jan 2022 10:36:51 +0700 Subject: [PATCH 1/2] v5.0.0rc1 - Switch to es6 module system --- .gitignore | 1 + README.md | 24 +- build.js | 53 + build.test.js | 25 + cjs-eval.js | 24 + dist/cjs/feed-reader.js | 5310 +++++++++++++++++++++++++++++++++++ dist/cjs/package.json | 5 + eval.js | 8 +- index.js | 9 - package.json | 28 +- pnpm-lock.yaml | 2656 ------------------ reset.js | 11 +- src/config.js | 15 +- src/config.test.js | 4 +- src/main.js | 24 +- src/main.test.js | 8 +- src/utils/isValidUrl.js | 2 +- src/utils/logger.js | 12 +- src/utils/parser.js | 17 +- src/utils/purifyUrl.js | 2 +- src/utils/purifyUrl.test.js | 2 +- src/utils/retrieve.js | 8 +- src/utils/retrieve.test.js | 4 +- src/utils/validator.js | 16 +- src/utils/validator.test.js | 6 +- src/utils/xml2obj.js | 8 +- 26 files changed, 5524 insertions(+), 2758 deletions(-) create mode 100644 build.js create mode 100644 build.test.js create mode 100644 cjs-eval.js create mode 100644 dist/cjs/feed-reader.js create mode 100644 dist/cjs/package.json delete mode 100755 index.js delete mode 100644 pnpm-lock.yaml diff --git a/.gitignore b/.gitignore index 41f15ad..c8edf23 100755 --- a/.gitignore +++ b/.gitignore @@ -14,5 +14,6 @@ coverage yarn.lock coverage.lcov package-lock.json +pnpm-lock.yaml output.json diff --git a/README.md b/README.md index 24a0c2c..0da9390 100755 --- a/README.md +++ b/README.md @@ -8,19 +8,18 @@ Load and parse RSS/ATOM data from given feed url. [![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=ndaidong_feed-reader&metric=sqale_rating)](https://sonarcloud.io/summary/new_code?id=ndaidong_feed-reader) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) +## Demo -### Usage - -```bash -npm install feed-reader -``` +- [Give it a try!](https://demos.pwshub.com/feed-reader) +- [Example FaaS](https://extractor.pwshub.com/feed/parse?url=https://news.google.com/rss&apikey=demo-orePhhidnWKWPvF8EYKap7z55cN) -Then +### Usage ```js -const { - read -} = require('feed-reader') +import { read } from 'feed-reader' + +// with CommonJS environments +// const { read } = require('feed-reader/dist/cjs/feed-reader.js') const url = 'https://news.google.com/rss' @@ -31,6 +30,13 @@ read(url).then((feed) => { }) ``` +##### Note: + +> Since Node.js v14, ECMAScript modules [have became the official standard format](https://nodejs.org/docs/latest-v14.x/api/esm.html#esm_modules_ecmascript_modules). + +> Just ensure that you are [using module system](https://nodejs.org/api/packages.html#determining-module-system) and enjoy with ES6 import/export syntax. + + ## APIs - [.read(String url)](#readstring-url) diff --git a/build.js b/build.js new file mode 100644 index 0000000..9628a88 --- /dev/null +++ b/build.js @@ -0,0 +1,53 @@ +/** + * build.js + * @ndaidong +**/ + +import { readFileSync, writeFileSync } from 'fs' +import { execSync } from 'child_process' + +import { buildSync } from 'esbuild' + +const pkg = JSON.parse(readFileSync('./package.json')) + +execSync('rm -rf dist') +execSync('mkdir dist') + +const buildTime = (new Date()).toISOString() +const comment = [ + `// ${pkg.name}@${pkg.version}, by ${pkg.author}`, + `built with esbuild at ${buildTime}`, + `published under ${pkg.license} license` +].join(' - ') + +const baseOpt = { + entryPoints: ['src/main.js'], + bundle: true, + charset: 'utf8', + target: ['es2020', 'node14'], + minify: false, + write: true +} + +const cjsVersion = { + ...baseOpt, + platform: 'node', + format: 'cjs', + mainFields: ['main'], + outfile: `dist/cjs/${pkg.name}.js`, + banner: { + js: comment + } +} +buildSync(cjsVersion) + +const cjspkg = { + name: pkg.name + '-cjs', + version: pkg.version, + main: `./${pkg.name}.js` +} +writeFileSync( + 'dist/cjs/package.json', + JSON.stringify(cjspkg, null, ' '), + 'utf8' +) diff --git a/build.test.js b/build.test.js new file mode 100644 index 0000000..5c48ed4 --- /dev/null +++ b/build.test.js @@ -0,0 +1,25 @@ +// release.test + +/* eslint-env jest */ + +import { + existsSync, + readFileSync +} from 'fs' + +const pkg = JSON.parse(readFileSync('./package.json')) + +const cjsFile = `./dist/cjs/${pkg.name}.js` + +describe('Validate commonjs version output', () => { + test(`Check if ${cjsFile} created`, () => { + expect(existsSync(cjsFile)).toBeTruthy() + }) + const constent = readFileSync(cjsFile, 'utf8') + const lines = constent.split('\n') + test('Check if file meta contains package info', () => { + expect(lines[0].includes(`${pkg.name}@${pkg.version}`)).toBeTruthy() + expect(lines[0].includes(pkg.author)).toBeTruthy() + expect(lines[0].includes(pkg.license)).toBeTruthy() + }) +}) diff --git a/cjs-eval.js b/cjs-eval.js new file mode 100644 index 0000000..4279af9 --- /dev/null +++ b/cjs-eval.js @@ -0,0 +1,24 @@ +// cjs-eval.js + +const { writeFileSync } = require('fs') + +const { read } = require('./dist/cjs/feed-reader.js') + +const extractFromUrl = async (url) => { + try { + const art = await read(url) + console.log(art) + writeFileSync('./output.json', JSON.stringify(art), 'utf8') + } catch (err) { + console.trace(err) + } +} + +const init = (argv) => { + if (argv.length === 3) { + return extractFromUrl(argv[2]) + } + return 'Nothing to do!' +} + +init(process.argv) diff --git a/dist/cjs/feed-reader.js b/dist/cjs/feed-reader.js new file mode 100644 index 0000000..d0bb8c2 --- /dev/null +++ b/dist/cjs/feed-reader.js @@ -0,0 +1,5310 @@ +// feed-reader@5.0.0rc1, by @ndaidong - built with esbuild at 2022-01-04T03:35:30.889Z - published under MIT license +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name2 in all) + __defProp(target, name2, { get: all[name2], enumerable: true }); +}; +var __reExport = (target, module2, copyDefault, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default")) + __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable }); + } + return target; +}; +var __toESM = (module2, isNodeMode) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __toCommonJS = /* @__PURE__ */ ((cache) => { + return (module2, temp) => { + return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp); + }; +})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0); + +// node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name2) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name2 + (isPlural ? "s" : ""); + } + } +}); + +// node_modules/.pnpm/debug@4.3.3/node_modules/debug/src/common.js +var require_common = __commonJS({ + "node_modules/.pnpm/debug@4.3.3/node_modules/debug/src/common.js"(exports, module2) { + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env).forEach((key) => { + createDebug[key] = env[key]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; + } + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug2(...args) { + if (!debug2.enabled) { + return; + } + const self2 = debug2; + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self2, val); + args.splice(index, 1); + index--; + } + return match; + }); + createDebug.formatArgs.call(self2, args); + const logFn = self2.log || createDebug.log; + logFn.apply(self2, args); + } + debug2.namespace = namespace; + debug2.useColors = createDebug.useColors(); + debug2.color = createDebug.selectColor(namespace); + debug2.extend = extend; + debug2.destroy = createDebug.destroy; + Object.defineProperty(debug2, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug2); + } + return debug2; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + let i; + const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + const len = split.length; + for (i = 0; i < len; i++) { + if (!split[i]) { + continue; + } + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + createDebug.skips.push(new RegExp("^" + namespaces.substr(1) + "$")); + } else { + createDebug.names.push(new RegExp("^" + namespaces + "$")); + } + } + } + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + function enabled(name2) { + if (name2[name2.length - 1] === "*") { + return true; + } + let i; + let len; + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name2)) { + return false; + } + } + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name2)) { + return true; + } + } + return false; + } + function toNamespace(regexp) { + return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); + } + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module2.exports = setup; + } +}); + +// node_modules/.pnpm/debug@4.3.3/node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "node_modules/.pnpm/debug@4.3.3/node_modules/debug/src/browser.js"(exports, module2) { + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.storage = localstorage(); + exports.destroy = (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index++; + if (match === "%c") { + lastC = index; + } + }); + args.splice(lastC, 0, c); + } + exports.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem("debug", namespaces); + } else { + exports.storage.removeItem("debug"); + } + } catch (error2) { + } + } + function load() { + let r; + try { + r = exports.storage.getItem("debug"); + } catch (error2) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + function localstorage() { + try { + return localStorage; + } catch (error2) { + } + } + module2.exports = require_common()(exports); + var { formatters } = module2.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error2) { + return "[UnexpectedJSONParseError]: " + error2.message; + } + }; + } +}); + +// node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js +var require_has_flag = __commonJS({ + "node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js"(exports, module2) { + "use strict"; + module2.exports = (flag, argv = process.argv) => { + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf("--"); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); + }; + } +}); + +// node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js +var require_supports_color = __commonJS({ + "node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js"(exports, module2) { + "use strict"; + var os = require("os"); + var tty = require("tty"); + var hasFlag = require_has_flag(); + var { env } = process; + var forceColor; + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { + forceColor = 0; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + forceColor = 1; + } + if ("FORCE_COLOR" in env) { + if (env.FORCE_COLOR === "true") { + forceColor = 1; + } else if (env.FORCE_COLOR === "false") { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } + } + function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0; + } + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + if (haveStream && !streamIsTTY && forceColor === void 0) { + return 0; + } + const min = forceColor || 0; + if (env.TERM === "dumb") { + return min; + } + if (process.platform === "win32") { + const osRelease = os.release().split("."); + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + return min; + } + function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY); + return translateLevel(level); + } + module2.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) + }; + } +}); + +// node_modules/.pnpm/debug@4.3.3/node_modules/debug/src/node.js +var require_node = __commonJS({ + "node_modules/.pnpm/debug@4.3.3/node_modules/debug/src/node.js"(exports, module2) { + var tty = require("tty"); + var util = require("util"); + exports.init = init; + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.destroy = util.deprecate(() => { + }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + exports.colors = [6, 2, 3, 4, 5, 1]; + try { + const supportsColor = require_supports_color(); + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (error2) { + } + exports.inspectOpts = Object.keys(process.env).filter((key) => { + return /^debug_/i.test(key); + }).reduce((obj, key) => { + const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); + } + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); + } + function formatArgs(args) { + const { namespace: name2, useColors: useColors2 } = this; + if (useColors2) { + const c = this.color; + const colorCode = "[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name2} `; + args[0] = prefix + args[0].split("\n").join("\n" + prefix); + args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + ""); + } else { + args[0] = getDate() + name2 + " " + args[0]; + } + } + function getDate() { + if (exports.inspectOpts.hideDate) { + return ""; + } + return new Date().toISOString() + " "; + } + function log(...args) { + return process.stderr.write(util.format(...args) + "\n"); + } + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + delete process.env.DEBUG; + } + } + function load() { + return process.env.DEBUG; + } + function init(debug2) { + debug2.inspectOpts = {}; + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug2.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } + } + module2.exports = require_common()(exports); + var { formatters } = module2.exports; + formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); + }; + formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + } +}); + +// node_modules/.pnpm/debug@4.3.3/node_modules/debug/src/index.js +var require_src = __commonJS({ + "node_modules/.pnpm/debug@4.3.3/node_modules/debug/src/index.js"(exports, module2) { + if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { + module2.exports = require_browser(); + } else { + module2.exports = require_node(); + } + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/bind.js +var require_bind = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/bind.js"(exports, module2) { + "use strict"; + module2.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/utils.js +var require_utils = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/utils.js"(exports, module2) { + "use strict"; + var bind = require_bind(); + var toString = Object.prototype.toString; + function isArray2(val) { + return toString.call(val) === "[object Array]"; + } + function isUndefined(val) { + return typeof val === "undefined"; + } + function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === "function" && val.constructor.isBuffer(val); + } + function isArrayBuffer(val) { + return toString.call(val) === "[object ArrayBuffer]"; + } + function isFormData(val) { + return typeof FormData !== "undefined" && val instanceof FormData; + } + function isArrayBufferView(val) { + var result; + if (typeof ArrayBuffer !== "undefined" && ArrayBuffer.isView) { + result = ArrayBuffer.isView(val); + } else { + result = val && val.buffer && val.buffer instanceof ArrayBuffer; + } + return result; + } + function isString2(val) { + return typeof val === "string"; + } + function isNumber(val) { + return typeof val === "number"; + } + function isObject2(val) { + return val !== null && typeof val === "object"; + } + function isPlainObject(val) { + if (toString.call(val) !== "[object Object]") { + return false; + } + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; + } + function isDate(val) { + return toString.call(val) === "[object Date]"; + } + function isFile(val) { + return toString.call(val) === "[object File]"; + } + function isBlob(val) { + return toString.call(val) === "[object Blob]"; + } + function isFunction(val) { + return toString.call(val) === "[object Function]"; + } + function isStream(val) { + return isObject2(val) && isFunction(val.pipe); + } + function isURLSearchParams(val) { + return typeof URLSearchParams !== "undefined" && val instanceof URLSearchParams; + } + function trim(str) { + return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ""); + } + function isStandardBrowserEnv() { + if (typeof navigator !== "undefined" && (navigator.product === "ReactNative" || navigator.product === "NativeScript" || navigator.product === "NS")) { + return false; + } + return typeof window !== "undefined" && typeof document !== "undefined"; + } + function forEach(obj, fn) { + if (obj === null || typeof obj === "undefined") { + return; + } + if (typeof obj !== "object") { + obj = [obj]; + } + if (isArray2(obj)) { + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } + } + function merge() { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray2(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; + } + function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === "function") { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; + } + function stripBOM(content) { + if (content.charCodeAt(0) === 65279) { + content = content.slice(1); + } + return content; + } + module2.exports = { + isArray: isArray2, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString: isString2, + isNumber, + isObject: isObject2, + isPlainObject, + isUndefined, + isDate, + isFile, + isBlob, + isFunction, + isStream, + isURLSearchParams, + isStandardBrowserEnv, + forEach, + merge, + extend, + trim, + stripBOM + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/buildURL.js +var require_buildURL = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/buildURL.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + function encode(val) { + return encodeURIComponent(val).replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); + } + module2.exports = function buildURL(url, params, paramsSerializer) { + if (!params) { + return url; + } + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === "undefined") { + return; + } + if (utils.isArray(val)) { + key = key + "[]"; + } else { + val = [val]; + } + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + "=" + encode(v)); + }); + }); + serializedParams = parts.join("&"); + } + if (serializedParams) { + var hashmarkIndex = url.indexOf("#"); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf("?") === -1 ? "?" : "&") + serializedParams; + } + return url; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/InterceptorManager.js +var require_InterceptorManager = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/InterceptorManager.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + function InterceptorManager() { + this.handlers = []; + } + InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; + }; + InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + }; + InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + }; + module2.exports = InterceptorManager; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/normalizeHeaderName.js +var require_normalizeHeaderName = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/normalizeHeaderName.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + module2.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name2) { + if (name2 !== normalizedName && name2.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name2]; + } + }); + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/enhanceError.js +var require_enhanceError = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/enhanceError.js"(exports, module2) { + "use strict"; + module2.exports = function enhanceError(error2, config, code, request, response) { + error2.config = config; + if (code) { + error2.code = code; + } + error2.request = request; + error2.response = response; + error2.isAxiosError = true; + error2.toJSON = function toJSON() { + return { + message: this.message, + name: this.name, + description: this.description, + number: this.number, + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + config: this.config, + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + }; + return error2; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/createError.js +var require_createError = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/createError.js"(exports, module2) { + "use strict"; + var enhanceError = require_enhanceError(); + module2.exports = function createError(message, config, code, request, response) { + var error2 = new Error(message); + return enhanceError(error2, config, code, request, response); + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/settle.js +var require_settle = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/settle.js"(exports, module2) { + "use strict"; + var createError = require_createError(); + module2.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError("Request failed with status code " + response.status, response.config, null, response.request, response)); + } + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/cookies.js +var require_cookies = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/cookies.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + module2.exports = utils.isStandardBrowserEnv() ? function standardBrowserEnv() { + return { + write: function write(name2, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name2 + "=" + encodeURIComponent(value)); + if (utils.isNumber(expires)) { + cookie.push("expires=" + new Date(expires).toGMTString()); + } + if (utils.isString(path)) { + cookie.push("path=" + path); + } + if (utils.isString(domain)) { + cookie.push("domain=" + domain); + } + if (secure === true) { + cookie.push("secure"); + } + document.cookie = cookie.join("; "); + }, + read: function read2(name2) { + var match = document.cookie.match(new RegExp("(^|;\\s*)(" + name2 + ")=([^;]*)")); + return match ? decodeURIComponent(match[3]) : null; + }, + remove: function remove(name2) { + this.write(name2, "", Date.now() - 864e5); + } + }; + }() : function nonStandardBrowserEnv() { + return { + write: function write() { + }, + read: function read2() { + return null; + }, + remove: function remove() { + } + }; + }(); + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/isAbsoluteURL.js +var require_isAbsoluteURL = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/isAbsoluteURL.js"(exports, module2) { + "use strict"; + module2.exports = function isAbsoluteURL(url) { + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/combineURLs.js +var require_combineURLs = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/combineURLs.js"(exports, module2) { + "use strict"; + module2.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL ? baseURL.replace(/\/+$/, "") + "/" + relativeURL.replace(/^\/+/, "") : baseURL; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/buildFullPath.js +var require_buildFullPath = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/buildFullPath.js"(exports, module2) { + "use strict"; + var isAbsoluteURL = require_isAbsoluteURL(); + var combineURLs = require_combineURLs(); + module2.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/parseHeaders.js +var require_parseHeaders = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/parseHeaders.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var ignoreDuplicateOf = [ + "age", + "authorization", + "content-length", + "content-type", + "etag", + "expires", + "from", + "host", + "if-modified-since", + "if-unmodified-since", + "last-modified", + "location", + "max-forwards", + "proxy-authorization", + "referer", + "retry-after", + "user-agent" + ]; + module2.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + if (!headers) { + return parsed; + } + utils.forEach(headers.split("\n"), function parser(line) { + i = line.indexOf(":"); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === "set-cookie") { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ", " + val : val; + } + } + }); + return parsed; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/isURLSameOrigin.js +var require_isURLSameOrigin = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/isURLSameOrigin.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + module2.exports = utils.isStandardBrowserEnv() ? function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement("a"); + var originURL; + function resolveURL(url) { + var href = url; + if (msie) { + urlParsingNode.setAttribute("href", href); + href = urlParsingNode.href; + } + urlParsingNode.setAttribute("href", href); + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "", + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "", + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "", + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname + }; + } + originURL = resolveURL(window.location.href); + return function isURLSameOrigin(requestURL) { + var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL; + return parsed.protocol === originURL.protocol && parsed.host === originURL.host; + }; + }() : function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + }(); + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/cancel/Cancel.js +var require_Cancel = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/cancel/Cancel.js"(exports, module2) { + "use strict"; + function Cancel(message) { + this.message = message; + } + Cancel.prototype.toString = function toString() { + return "Cancel" + (this.message ? ": " + this.message : ""); + }; + Cancel.prototype.__CANCEL__ = true; + module2.exports = Cancel; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/adapters/xhr.js +var require_xhr = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/adapters/xhr.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var settle = require_settle(); + var cookies = require_cookies(); + var buildURL = require_buildURL(); + var buildFullPath = require_buildFullPath(); + var parseHeaders = require_parseHeaders(); + var isURLSameOrigin = require_isURLSameOrigin(); + var createError = require_createError(); + var defaults = require_defaults(); + var Cancel = require_Cancel(); + module2.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + var responseType = config.responseType; + var onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + if (config.signal) { + config.signal.removeEventListener("abort", onCanceled); + } + } + if (utils.isFormData(requestData)) { + delete requestHeaders["Content-Type"]; + } + var request = new XMLHttpRequest(); + if (config.auth) { + var username = config.auth.username || ""; + var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ""; + requestHeaders.Authorization = "Basic " + btoa(username + ":" + password); + } + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + request.timeout = config.timeout; + function onloadend() { + if (!request) { + return; + } + var responseHeaders = "getAllResponseHeaders" in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !responseType || responseType === "text" || responseType === "json" ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request + }; + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + request = null; + } + if ("onloadend" in request) { + request.onloadend = onloadend; + } else { + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf("file:") === 0)) { + return; + } + setTimeout(onloadend); + }; + } + request.onabort = function handleAbort() { + if (!request) { + return; + } + reject(createError("Request aborted", config, "ECONNABORTED", request)); + request = null; + }; + request.onerror = function handleError() { + reject(createError("Network Error", config, null, request)); + request = null; + }; + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = config.timeout ? "timeout of " + config.timeout + "ms exceeded" : "timeout exceeded"; + var transitional = config.transitional || defaults.transitional; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, transitional.clarifyTimeoutError ? "ETIMEDOUT" : "ECONNABORTED", request)); + request = null; + }; + if (utils.isStandardBrowserEnv()) { + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : void 0; + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + if ("setRequestHeader" in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === "undefined" && key.toLowerCase() === "content-type") { + delete requestHeaders[key]; + } else { + request.setRequestHeader(key, val); + } + }); + } + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + if (responseType && responseType !== "json") { + request.responseType = config.responseType; + } + if (typeof config.onDownloadProgress === "function") { + request.addEventListener("progress", config.onDownloadProgress); + } + if (typeof config.onUploadProgress === "function" && request.upload) { + request.upload.addEventListener("progress", config.onUploadProgress); + } + if (config.cancelToken || config.signal) { + onCanceled = function(cancel) { + if (!request) { + return; + } + reject(!cancel || cancel && cancel.type ? new Cancel("canceled") : cancel); + request.abort(); + request = null; + }; + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener("abort", onCanceled); + } + } + if (!requestData) { + requestData = null; + } + request.send(requestData); + }); + }; + } +}); + +// node_modules/.pnpm/follow-redirects@1.14.6_debug@4.3.3/node_modules/follow-redirects/debug.js +var require_debug = __commonJS({ + "node_modules/.pnpm/follow-redirects@1.14.6_debug@4.3.3/node_modules/follow-redirects/debug.js"(exports, module2) { + var debug2; + module2.exports = function() { + if (!debug2) { + try { + debug2 = require_src()("follow-redirects"); + } catch (error2) { + } + if (typeof debug2 !== "function") { + debug2 = function() { + }; + } + } + debug2.apply(null, arguments); + }; + } +}); + +// node_modules/.pnpm/follow-redirects@1.14.6_debug@4.3.3/node_modules/follow-redirects/index.js +var require_follow_redirects = __commonJS({ + "node_modules/.pnpm/follow-redirects@1.14.6_debug@4.3.3/node_modules/follow-redirects/index.js"(exports, module2) { + var url = require("url"); + var URL2 = url.URL; + var http = require("http"); + var https = require("https"); + var Writable = require("stream").Writable; + var assert = require("assert"); + var debug2 = require_debug(); + var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; + var eventHandlers = /* @__PURE__ */ Object.create(null); + events.forEach(function(event) { + eventHandlers[event] = function(arg1, arg2, arg3) { + this._redirectable.emit(event, arg1, arg2, arg3); + }; + }); + var RedirectionError = createErrorType("ERR_FR_REDIRECTION_FAILURE", "Redirected request failed"); + var TooManyRedirectsError = createErrorType("ERR_FR_TOO_MANY_REDIRECTS", "Maximum number of redirects exceeded"); + var MaxBodyLengthExceededError = createErrorType("ERR_FR_MAX_BODY_LENGTH_EXCEEDED", "Request body larger than maxBodyLength limit"); + var WriteAfterEndError = createErrorType("ERR_STREAM_WRITE_AFTER_END", "write after end"); + function RedirectableRequest(options, responseCallback) { + Writable.call(this); + this._sanitizeOptions(options); + this._options = options; + this._ended = false; + this._ending = false; + this._redirectCount = 0; + this._redirects = []; + this._requestBodyLength = 0; + this._requestBodyBuffers = []; + if (responseCallback) { + this.on("response", responseCallback); + } + var self2 = this; + this._onNativeResponse = function(response) { + self2._processResponse(response); + }; + this._performRequest(); + } + RedirectableRequest.prototype = Object.create(Writable.prototype); + RedirectableRequest.prototype.abort = function() { + abortRequest(this._currentRequest); + this.emit("abort"); + }; + RedirectableRequest.prototype.write = function(data, encoding, callback) { + if (this._ending) { + throw new WriteAfterEndError(); + } + if (!(typeof data === "string" || typeof data === "object" && "length" in data)) { + throw new TypeError("data should be a string, Buffer or Uint8Array"); + } + if (typeof encoding === "function") { + callback = encoding; + encoding = null; + } + if (data.length === 0) { + if (callback) { + callback(); + } + return; + } + if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { + this._requestBodyLength += data.length; + this._requestBodyBuffers.push({ data, encoding }); + this._currentRequest.write(data, encoding, callback); + } else { + this.emit("error", new MaxBodyLengthExceededError()); + this.abort(); + } + }; + RedirectableRequest.prototype.end = function(data, encoding, callback) { + if (typeof data === "function") { + callback = data; + data = encoding = null; + } else if (typeof encoding === "function") { + callback = encoding; + encoding = null; + } + if (!data) { + this._ended = this._ending = true; + this._currentRequest.end(null, null, callback); + } else { + var self2 = this; + var currentRequest = this._currentRequest; + this.write(data, encoding, function() { + self2._ended = true; + currentRequest.end(null, null, callback); + }); + this._ending = true; + } + }; + RedirectableRequest.prototype.setHeader = function(name2, value) { + this._options.headers[name2] = value; + this._currentRequest.setHeader(name2, value); + }; + RedirectableRequest.prototype.removeHeader = function(name2) { + delete this._options.headers[name2]; + this._currentRequest.removeHeader(name2); + }; + RedirectableRequest.prototype.setTimeout = function(msecs, callback) { + var self2 = this; + function destroyOnTimeout(socket) { + socket.setTimeout(msecs); + socket.removeListener("timeout", socket.destroy); + socket.addListener("timeout", socket.destroy); + } + function startTimer(socket) { + if (self2._timeout) { + clearTimeout(self2._timeout); + } + self2._timeout = setTimeout(function() { + self2.emit("timeout"); + clearTimer(); + }, msecs); + destroyOnTimeout(socket); + } + function clearTimer() { + if (self2._timeout) { + clearTimeout(self2._timeout); + self2._timeout = null; + } + self2.removeListener("abort", clearTimer); + self2.removeListener("error", clearTimer); + self2.removeListener("response", clearTimer); + if (callback) { + self2.removeListener("timeout", callback); + } + if (!self2.socket) { + self2._currentRequest.removeListener("socket", startTimer); + } + } + if (callback) { + this.on("timeout", callback); + } + if (this.socket) { + startTimer(this.socket); + } else { + this._currentRequest.once("socket", startTimer); + } + this.on("socket", destroyOnTimeout); + this.on("abort", clearTimer); + this.on("error", clearTimer); + this.on("response", clearTimer); + return this; + }; + [ + "flushHeaders", + "getHeader", + "setNoDelay", + "setSocketKeepAlive" + ].forEach(function(method) { + RedirectableRequest.prototype[method] = function(a, b) { + return this._currentRequest[method](a, b); + }; + }); + ["aborted", "connection", "socket"].forEach(function(property) { + Object.defineProperty(RedirectableRequest.prototype, property, { + get: function() { + return this._currentRequest[property]; + } + }); + }); + RedirectableRequest.prototype._sanitizeOptions = function(options) { + if (!options.headers) { + options.headers = {}; + } + if (options.host) { + if (!options.hostname) { + options.hostname = options.host; + } + delete options.host; + } + if (!options.pathname && options.path) { + var searchPos = options.path.indexOf("?"); + if (searchPos < 0) { + options.pathname = options.path; + } else { + options.pathname = options.path.substring(0, searchPos); + options.search = options.path.substring(searchPos); + } + } + }; + RedirectableRequest.prototype._performRequest = function() { + var protocol = this._options.protocol; + var nativeProtocol = this._options.nativeProtocols[protocol]; + if (!nativeProtocol) { + this.emit("error", new TypeError("Unsupported protocol " + protocol)); + return; + } + if (this._options.agents) { + var scheme = protocol.substr(0, protocol.length - 1); + this._options.agent = this._options.agents[scheme]; + } + var request = this._currentRequest = nativeProtocol.request(this._options, this._onNativeResponse); + this._currentUrl = url.format(this._options); + request._redirectable = this; + for (var e = 0; e < events.length; e++) { + request.on(events[e], eventHandlers[events[e]]); + } + if (this._isRedirect) { + var i = 0; + var self2 = this; + var buffers = this._requestBodyBuffers; + (function writeNext(error2) { + if (request === self2._currentRequest) { + if (error2) { + self2.emit("error", error2); + } else if (i < buffers.length) { + var buffer = buffers[i++]; + if (!request.finished) { + request.write(buffer.data, buffer.encoding, writeNext); + } + } else if (self2._ended) { + request.end(); + } + } + })(); + } + }; + RedirectableRequest.prototype._processResponse = function(response) { + var statusCode = response.statusCode; + if (this._options.trackRedirects) { + this._redirects.push({ + url: this._currentUrl, + headers: response.headers, + statusCode + }); + } + var location = response.headers.location; + if (location && this._options.followRedirects !== false && statusCode >= 300 && statusCode < 400) { + abortRequest(this._currentRequest); + response.destroy(); + if (++this._redirectCount > this._options.maxRedirects) { + this.emit("error", new TooManyRedirectsError()); + return; + } + if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || statusCode === 303 && !/^(?:GET|HEAD)$/.test(this._options.method)) { + this._options.method = "GET"; + this._requestBodyBuffers = []; + removeMatchingHeaders(/^content-/i, this._options.headers); + } + var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); + var currentUrlParts = url.parse(this._currentUrl); + var currentHost = currentHostHeader || currentUrlParts.host; + var currentUrl = /^\w+:/.test(location) ? this._currentUrl : url.format(Object.assign(currentUrlParts, { host: currentHost })); + var redirectUrl; + try { + redirectUrl = url.resolve(currentUrl, location); + } catch (cause) { + this.emit("error", new RedirectionError(cause)); + return; + } + debug2("redirecting to", redirectUrl); + this._isRedirect = true; + var redirectUrlParts = url.parse(redirectUrl); + Object.assign(this._options, redirectUrlParts); + if (!(redirectUrlParts.host === currentHost || isSubdomainOf(redirectUrlParts.host, currentHost))) { + removeMatchingHeaders(/^authorization$/i, this._options.headers); + } + if (typeof this._options.beforeRedirect === "function") { + var responseDetails = { headers: response.headers }; + try { + this._options.beforeRedirect.call(null, this._options, responseDetails); + } catch (err) { + this.emit("error", err); + return; + } + this._sanitizeOptions(this._options); + } + try { + this._performRequest(); + } catch (cause) { + this.emit("error", new RedirectionError(cause)); + } + } else { + response.responseUrl = this._currentUrl; + response.redirects = this._redirects; + this.emit("response", response); + this._requestBodyBuffers = []; + } + }; + function wrap(protocols) { + var exports2 = { + maxRedirects: 21, + maxBodyLength: 10 * 1024 * 1024 + }; + var nativeProtocols = {}; + Object.keys(protocols).forEach(function(scheme) { + var protocol = scheme + ":"; + var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; + var wrappedProtocol = exports2[scheme] = Object.create(nativeProtocol); + function request(input, options, callback) { + if (typeof input === "string") { + var urlStr = input; + try { + input = urlToOptions(new URL2(urlStr)); + } catch (err) { + input = url.parse(urlStr); + } + } else if (URL2 && input instanceof URL2) { + input = urlToOptions(input); + } else { + callback = options; + options = input; + input = { protocol }; + } + if (typeof options === "function") { + callback = options; + options = null; + } + options = Object.assign({ + maxRedirects: exports2.maxRedirects, + maxBodyLength: exports2.maxBodyLength + }, input, options); + options.nativeProtocols = nativeProtocols; + assert.equal(options.protocol, protocol, "protocol mismatch"); + debug2("options", options); + return new RedirectableRequest(options, callback); + } + function get(input, options, callback) { + var wrappedRequest = wrappedProtocol.request(input, options, callback); + wrappedRequest.end(); + return wrappedRequest; + } + Object.defineProperties(wrappedProtocol, { + request: { value: request, configurable: true, enumerable: true, writable: true }, + get: { value: get, configurable: true, enumerable: true, writable: true } + }); + }); + return exports2; + } + function noop() { + } + function urlToOptions(urlObject) { + var options = { + protocol: urlObject.protocol, + hostname: urlObject.hostname.startsWith("[") ? urlObject.hostname.slice(1, -1) : urlObject.hostname, + hash: urlObject.hash, + search: urlObject.search, + pathname: urlObject.pathname, + path: urlObject.pathname + urlObject.search, + href: urlObject.href + }; + if (urlObject.port !== "") { + options.port = Number(urlObject.port); + } + return options; + } + function removeMatchingHeaders(regex, headers) { + var lastValue; + for (var header in headers) { + if (regex.test(header)) { + lastValue = headers[header]; + delete headers[header]; + } + } + return lastValue === null || typeof lastValue === "undefined" ? void 0 : String(lastValue).trim(); + } + function createErrorType(code, defaultMessage) { + function CustomError(cause) { + Error.captureStackTrace(this, this.constructor); + if (!cause) { + this.message = defaultMessage; + } else { + this.message = defaultMessage + ": " + cause.message; + this.cause = cause; + } + } + CustomError.prototype = new Error(); + CustomError.prototype.constructor = CustomError; + CustomError.prototype.name = "Error [" + code + "]"; + CustomError.prototype.code = code; + return CustomError; + } + function abortRequest(request) { + for (var e = 0; e < events.length; e++) { + request.removeListener(events[e], eventHandlers[events[e]]); + } + request.on("error", noop); + request.abort(); + } + function isSubdomainOf(subdomain, domain) { + const dot = subdomain.length - domain.length - 1; + return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); + } + module2.exports = wrap({ http, https }); + module2.exports.wrap = wrap; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/env/data.js +var require_data = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/env/data.js"(exports, module2) { + module2.exports = { + "version": "0.24.0" + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/adapters/http.js +var require_http = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/adapters/http.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var settle = require_settle(); + var buildFullPath = require_buildFullPath(); + var buildURL = require_buildURL(); + var http = require("http"); + var https = require("https"); + var httpFollow = require_follow_redirects().http; + var httpsFollow = require_follow_redirects().https; + var url = require("url"); + var zlib = require("zlib"); + var VERSION = require_data().version; + var createError = require_createError(); + var enhanceError = require_enhanceError(); + var defaults = require_defaults(); + var Cancel = require_Cancel(); + var isHttps = /https:?/; + function setProxy(options, proxy, location) { + options.hostname = proxy.host; + options.host = proxy.host; + options.port = proxy.port; + options.path = location; + if (proxy.auth) { + var base64 = Buffer.from(proxy.auth.username + ":" + proxy.auth.password, "utf8").toString("base64"); + options.headers["Proxy-Authorization"] = "Basic " + base64; + } + options.beforeRedirect = function beforeRedirect(redirection) { + redirection.headers.host = redirection.host; + setProxy(redirection, proxy, redirection.href); + }; + } + module2.exports = function httpAdapter(config) { + return new Promise(function dispatchHttpRequest(resolvePromise, rejectPromise) { + var onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + if (config.signal) { + config.signal.removeEventListener("abort", onCanceled); + } + } + var resolve = function resolve2(value) { + done(); + resolvePromise(value); + }; + var reject = function reject2(value) { + done(); + rejectPromise(value); + }; + var data = config.data; + var headers = config.headers; + var headerNames = {}; + Object.keys(headers).forEach(function storeLowerName(name2) { + headerNames[name2.toLowerCase()] = name2; + }); + if ("user-agent" in headerNames) { + if (!headers[headerNames["user-agent"]]) { + delete headers[headerNames["user-agent"]]; + } + } else { + headers["User-Agent"] = "axios/" + VERSION; + } + if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) { + } else if (utils.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils.isString(data)) { + data = Buffer.from(data, "utf-8"); + } else { + return reject(createError("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream", config)); + } + if (!headerNames["content-length"]) { + headers["Content-Length"] = data.length; + } + } + var auth = void 0; + if (config.auth) { + var username = config.auth.username || ""; + var password = config.auth.password || ""; + auth = username + ":" + password; + } + var fullPath = buildFullPath(config.baseURL, config.url); + var parsed = url.parse(fullPath); + var protocol = parsed.protocol || "http:"; + if (!auth && parsed.auth) { + var urlAuth = parsed.auth.split(":"); + var urlUsername = urlAuth[0] || ""; + var urlPassword = urlAuth[1] || ""; + auth = urlUsername + ":" + urlPassword; + } + if (auth && headerNames.authorization) { + delete headers[headerNames.authorization]; + } + var isHttpsRequest = isHttps.test(protocol); + var agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + var options = { + path: buildURL(parsed.path, config.params, config.paramsSerializer).replace(/^\?/, ""), + method: config.method.toUpperCase(), + headers, + agent, + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth + }; + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + } + var proxy = config.proxy; + if (!proxy && proxy !== false) { + var proxyEnv = protocol.slice(0, -1) + "_proxy"; + var proxyUrl = process.env[proxyEnv] || process.env[proxyEnv.toUpperCase()]; + if (proxyUrl) { + var parsedProxyUrl = url.parse(proxyUrl); + var noProxyEnv = process.env.no_proxy || process.env.NO_PROXY; + var shouldProxy = true; + if (noProxyEnv) { + var noProxy = noProxyEnv.split(",").map(function trim(s) { + return s.trim(); + }); + shouldProxy = !noProxy.some(function proxyMatch(proxyElement) { + if (!proxyElement) { + return false; + } + if (proxyElement === "*") { + return true; + } + if (proxyElement[0] === "." && parsed.hostname.substr(parsed.hostname.length - proxyElement.length) === proxyElement) { + return true; + } + return parsed.hostname === proxyElement; + }); + } + if (shouldProxy) { + proxy = { + host: parsedProxyUrl.hostname, + port: parsedProxyUrl.port, + protocol: parsedProxyUrl.protocol + }; + if (parsedProxyUrl.auth) { + var proxyUrlAuth = parsedProxyUrl.auth.split(":"); + proxy.auth = { + username: proxyUrlAuth[0], + password: proxyUrlAuth[1] + }; + } + } + } + } + if (proxy) { + options.headers.host = parsed.hostname + (parsed.port ? ":" + parsed.port : ""); + setProxy(options, proxy, protocol + "//" + parsed.hostname + (parsed.port ? ":" + parsed.port : "") + options.path); + } + var transport; + var isHttpsProxy = isHttpsRequest && (proxy ? isHttps.test(proxy.protocol) : true); + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsProxy ? https : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + transport = isHttpsProxy ? httpsFollow : httpFollow; + } + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + var req = transport.request(options, function handleResponse(res) { + if (req.aborted) + return; + var stream = res; + var lastRequest = res.req || req; + if (res.statusCode !== 204 && lastRequest.method !== "HEAD" && config.decompress !== false) { + switch (res.headers["content-encoding"]) { + case "gzip": + case "compress": + case "deflate": + stream = stream.pipe(zlib.createUnzip()); + delete res.headers["content-encoding"]; + break; + } + } + var response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: res.headers, + config, + request: lastRequest + }; + if (config.responseType === "stream") { + response.data = stream; + settle(resolve, reject, response); + } else { + var responseBuffer = []; + var totalResponseBytes = 0; + stream.on("data", function handleStreamData(chunk) { + responseBuffer.push(chunk); + totalResponseBytes += chunk.length; + if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { + stream.destroy(); + reject(createError("maxContentLength size of " + config.maxContentLength + " exceeded", config, null, lastRequest)); + } + }); + stream.on("error", function handleStreamError(err) { + if (req.aborted) + return; + reject(enhanceError(err, config, null, lastRequest)); + }); + stream.on("end", function handleStreamEnd() { + var responseData = Buffer.concat(responseBuffer); + if (config.responseType !== "arraybuffer") { + responseData = responseData.toString(config.responseEncoding); + if (!config.responseEncoding || config.responseEncoding === "utf8") { + responseData = utils.stripBOM(responseData); + } + } + response.data = responseData; + settle(resolve, reject, response); + }); + } + }); + req.on("error", function handleRequestError(err) { + if (req.aborted && err.code !== "ERR_FR_TOO_MANY_REDIRECTS") + return; + reject(enhanceError(err, config, null, req)); + }); + if (config.timeout) { + var timeout = parseInt(config.timeout, 10); + if (isNaN(timeout)) { + reject(createError("error trying to parse `config.timeout` to int", config, "ERR_PARSE_TIMEOUT", req)); + return; + } + req.setTimeout(timeout, function handleRequestTimeout() { + req.abort(); + var transitional = config.transitional || defaults.transitional; + reject(createError("timeout of " + timeout + "ms exceeded", config, transitional.clarifyTimeoutError ? "ETIMEDOUT" : "ECONNABORTED", req)); + }); + } + if (config.cancelToken || config.signal) { + onCanceled = function(cancel) { + if (req.aborted) + return; + req.abort(); + reject(!cancel || cancel && cancel.type ? new Cancel("canceled") : cancel); + }; + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener("abort", onCanceled); + } + } + if (utils.isStream(data)) { + data.on("error", function handleStreamError(err) { + reject(enhanceError(err, config, null, req)); + }).pipe(req); + } else { + req.end(data); + } + }); + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/defaults.js +var require_defaults = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/defaults.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var normalizeHeaderName = require_normalizeHeaderName(); + var enhanceError = require_enhanceError(); + var DEFAULT_CONTENT_TYPE = { + "Content-Type": "application/x-www-form-urlencoded" + }; + function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers["Content-Type"])) { + headers["Content-Type"] = value; + } + } + function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== "undefined") { + adapter = require_xhr(); + } else if (typeof process !== "undefined" && Object.prototype.toString.call(process) === "[object process]") { + adapter = require_http(); + } + return adapter; + } + function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils.trim(rawValue); + } catch (e) { + if (e.name !== "SyntaxError") { + throw e; + } + } + } + return (encoder || JSON.stringify)(rawValue); + } + var defaults = { + transitional: { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false + }, + adapter: getDefaultAdapter(), + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, "Accept"); + normalizeHeaderName(headers, "Content-Type"); + if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, "application/x-www-form-urlencoded;charset=utf-8"); + return data.toString(); + } + if (utils.isObject(data) || headers && headers["Content-Type"] === "application/json") { + setContentTypeIfUnset(headers, "application/json"); + return stringifySafely(data); + } + return data; + }], + transformResponse: [function transformResponse(data) { + var transitional = this.transitional || defaults.transitional; + var silentJSONParsing = transitional && transitional.silentJSONParsing; + var forcedJSONParsing = transitional && transitional.forcedJSONParsing; + var strictJSONParsing = !silentJSONParsing && this.responseType === "json"; + if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) { + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === "SyntaxError") { + throw enhanceError(e, this, "E_JSON_PARSE"); + } + throw e; + } + } + } + return data; + }], + timeout: 0, + xsrfCookieName: "XSRF-TOKEN", + xsrfHeaderName: "X-XSRF-TOKEN", + maxContentLength: -1, + maxBodyLength: -1, + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + headers: { + common: { + "Accept": "application/json, text/plain, */*" + } + } + }; + utils.forEach(["delete", "get", "head"], function forEachMethodNoData(method) { + defaults.headers[method] = {}; + }); + utils.forEach(["post", "put", "patch"], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); + }); + module2.exports = defaults; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/transformData.js +var require_transformData = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/transformData.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var defaults = require_defaults(); + module2.exports = function transformData(data, headers, fns) { + var context = this || defaults; + utils.forEach(fns, function transform(fn) { + data = fn.call(context, data, headers); + }); + return data; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/cancel/isCancel.js +var require_isCancel = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/cancel/isCancel.js"(exports, module2) { + "use strict"; + module2.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/dispatchRequest.js +var require_dispatchRequest = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/dispatchRequest.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var transformData = require_transformData(); + var isCancel = require_isCancel(); + var defaults = require_defaults(); + var Cancel = require_Cancel(); + function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + if (config.signal && config.signal.aborted) { + throw new Cancel("canceled"); + } + } + module2.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + config.headers = config.headers || {}; + config.data = transformData.call(config, config.data, config.headers, config.transformRequest); + config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers); + utils.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function cleanHeaderConfig(method) { + delete config.headers[method]; + }); + var adapter = config.adapter || defaults.adapter; + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + response.data = transformData.call(config, response.data, response.headers, config.transformResponse); + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + if (reason && reason.response) { + reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse); + } + } + return Promise.reject(reason); + }); + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/mergeConfig.js +var require_mergeConfig = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/mergeConfig.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + module2.exports = function mergeConfig(config1, config2) { + config2 = config2 || {}; + var config = {}; + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(void 0, config1[prop]); + } + } + function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(void 0, config2[prop]); + } + } + function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + return getMergedValue(void 0, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + return getMergedValue(void 0, config1[prop]); + } + } + function mergeDirectKeys(prop) { + if (prop in config2) { + return getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + return getMergedValue(void 0, config1[prop]); + } + } + var mergeMap = { + "url": valueFromConfig2, + "method": valueFromConfig2, + "data": valueFromConfig2, + "baseURL": defaultToConfig2, + "transformRequest": defaultToConfig2, + "transformResponse": defaultToConfig2, + "paramsSerializer": defaultToConfig2, + "timeout": defaultToConfig2, + "timeoutMessage": defaultToConfig2, + "withCredentials": defaultToConfig2, + "adapter": defaultToConfig2, + "responseType": defaultToConfig2, + "xsrfCookieName": defaultToConfig2, + "xsrfHeaderName": defaultToConfig2, + "onUploadProgress": defaultToConfig2, + "onDownloadProgress": defaultToConfig2, + "decompress": defaultToConfig2, + "maxContentLength": defaultToConfig2, + "maxBodyLength": defaultToConfig2, + "transport": defaultToConfig2, + "httpAgent": defaultToConfig2, + "httpsAgent": defaultToConfig2, + "cancelToken": defaultToConfig2, + "socketPath": defaultToConfig2, + "responseEncoding": defaultToConfig2, + "validateStatus": mergeDirectKeys + }; + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + var merge = mergeMap[prop] || mergeDeepProperties; + var configValue = merge(prop); + utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue); + }); + return config; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/validator.js +var require_validator = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/validator.js"(exports, module2) { + "use strict"; + var VERSION = require_data().version; + var validators = {}; + ["object", "boolean", "number", "function", "string", "symbol"].forEach(function(type, i) { + validators[type] = function validator(thing) { + return typeof thing === type || "a" + (i < 1 ? "n " : " ") + type; + }; + }); + var deprecatedWarnings = {}; + validators.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return "[Axios v" + VERSION + "] Transitional option '" + opt + "'" + desc + (message ? ". " + message : ""); + } + return function(value, opt, opts) { + if (validator === false) { + throw new Error(formatMessage(opt, " has been removed" + (version ? " in " + version : ""))); + } + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + console.warn(formatMessage(opt, " has been deprecated since v" + version + " and will be removed in the near future")); + } + return validator ? validator(value, opt, opts) : true; + }; + }; + function assertOptions(options, schema, allowUnknown) { + if (typeof options !== "object") { + throw new TypeError("options must be an object"); + } + var keys = Object.keys(options); + var i = keys.length; + while (i-- > 0) { + var opt = keys[i]; + var validator = schema[opt]; + if (validator) { + var value = options[opt]; + var result = value === void 0 || validator(value, opt, options); + if (result !== true) { + throw new TypeError("option " + opt + " must be " + result); + } + continue; + } + if (allowUnknown !== true) { + throw Error("Unknown option " + opt); + } + } + } + module2.exports = { + assertOptions, + validators + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/Axios.js +var require_Axios = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/core/Axios.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var buildURL = require_buildURL(); + var InterceptorManager = require_InterceptorManager(); + var dispatchRequest = require_dispatchRequest(); + var mergeConfig = require_mergeConfig(); + var validator = require_validator(); + var validators = validator.validators; + function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; + } + Axios.prototype.request = function request(config) { + if (typeof config === "string") { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + config = mergeConfig(this.defaults, config); + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = "get"; + } + var transitional = config.transitional; + if (transitional !== void 0) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } + var requestInterceptorChain = []; + var synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === "function" && interceptor.runWhen(config) === false) { + return; + } + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + var responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + var promise; + if (!synchronousRequestInterceptors) { + var chain = [dispatchRequest, void 0]; + Array.prototype.unshift.apply(chain, requestInterceptorChain); + chain = chain.concat(responseInterceptorChain); + promise = Promise.resolve(config); + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + return promise; + } + var newConfig = config; + while (requestInterceptorChain.length) { + var onFulfilled = requestInterceptorChain.shift(); + var onRejected = requestInterceptorChain.shift(); + try { + newConfig = onFulfilled(newConfig); + } catch (error2) { + onRejected(error2); + break; + } + } + try { + promise = dispatchRequest(newConfig); + } catch (error2) { + return Promise.reject(error2); + } + while (responseInterceptorChain.length) { + promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); + } + return promise; + }; + Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ""); + }; + utils.forEach(["delete", "get", "head", "options"], function forEachMethodNoData(method) { + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data: (config || {}).data + })); + }; + }); + utils.forEach(["post", "put", "patch"], function forEachMethodWithData(method) { + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data + })); + }; + }); + module2.exports = Axios; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/cancel/CancelToken.js +var require_CancelToken = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/cancel/CancelToken.js"(exports, module2) { + "use strict"; + var Cancel = require_Cancel(); + function CancelToken(executor) { + if (typeof executor !== "function") { + throw new TypeError("executor must be a function."); + } + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + var token = this; + this.promise.then(function(cancel) { + if (!token._listeners) + return; + var i; + var l = token._listeners.length; + for (i = 0; i < l; i++) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + this.promise.then = function(onfulfilled) { + var _resolve; + var promise = new Promise(function(resolve) { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + return promise; + }; + executor(function cancel(message) { + if (token.reason) { + return; + } + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); + } + CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } + }; + CancelToken.prototype.subscribe = function subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + }; + CancelToken.prototype.unsubscribe = function unsubscribe(listener) { + if (!this._listeners) { + return; + } + var index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + }; + CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel + }; + }; + module2.exports = CancelToken; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/spread.js +var require_spread = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/spread.js"(exports, module2) { + "use strict"; + module2.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/isAxiosError.js +var require_isAxiosError = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/helpers/isAxiosError.js"(exports, module2) { + "use strict"; + module2.exports = function isAxiosError(payload) { + return typeof payload === "object" && payload.isAxiosError === true; + }; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/axios.js +var require_axios = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/lib/axios.js"(exports, module2) { + "use strict"; + var utils = require_utils(); + var bind = require_bind(); + var Axios = require_Axios(); + var mergeConfig = require_mergeConfig(); + var defaults = require_defaults(); + function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + utils.extend(instance, Axios.prototype, context); + utils.extend(instance, context); + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + return instance; + } + var axios2 = createInstance(defaults); + axios2.Axios = Axios; + axios2.Cancel = require_Cancel(); + axios2.CancelToken = require_CancelToken(); + axios2.isCancel = require_isCancel(); + axios2.VERSION = require_data().version; + axios2.all = function all(promises) { + return Promise.all(promises); + }; + axios2.spread = require_spread(); + axios2.isAxiosError = require_isAxiosError(); + module2.exports = axios2; + module2.exports.default = axios2; + } +}); + +// node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/index.js +var require_axios2 = __commonJS({ + "node_modules/.pnpm/axios@0.24.0_debug@4.3.3/node_modules/axios/index.js"(exports, module2) { + module2.exports = require_axios(); + } +}); + +// node_modules/.pnpm/bellajs@10.0.2/node_modules/bellajs/dist/bella.js +var require_bella = __commonJS({ + "node_modules/.pnpm/bellajs@10.0.2/node_modules/bellajs/dist/bella.js"(exports, module2) { + (function(global, factory) { + typeof exports === "object" && typeof module2 !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.bella = {})); + })(exports, function(exports2) { + const ob2Str = (val) => { + return {}.toString.call(val); + }; + const isInteger = (val) => { + return Number.isInteger(val); + }; + const isArray2 = (val) => { + return Array.isArray(val); + }; + const isString2 = (val) => { + return String(val) === val; + }; + const isNumber = (val) => { + return Number(val) === val; + }; + const isBoolean = (val) => { + return Boolean(val) === val; + }; + const isNull = (val) => { + return ob2Str(val) === "[object Null]"; + }; + const isUndefined = (val) => { + return ob2Str(val) === "[object Undefined]"; + }; + const isNil = (val) => { + return isUndefined(val) || isNull(val); + }; + const isFunction = (val) => { + return ob2Str(val) === "[object Function]"; + }; + const isObject2 = (val) => { + return ob2Str(val) === "[object Object]" && !isArray2(val); + }; + const isDate = (val) => { + return val instanceof Date && !isNaN(val.valueOf()); + }; + const isElement = (v) => { + return ob2Str(v).match(/^\[object HTML\w*Element]$/) !== null; + }; + const isLetter = (val) => { + const re = /^[a-z]+$/i; + return isString2(val) && re.test(val); + }; + const isEmail = (val) => { + const re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i; + return isString2(val) && re.test(val); + }; + const isEmpty = (val) => { + return !val || isNil(val) || isString2(val) && val === "" || isArray2(val) && val.length === 0 || isObject2(val) && Object.keys(val).length === 0; + }; + const hasProperty3 = (ob, k) => { + if (!ob || !k) { + return false; + } + return Object.prototype.hasOwnProperty.call(ob, k); + }; + const equals = (a, b) => { + if (isEmpty(a) && isEmpty(b)) { + return true; + } + if (isDate(a) && isDate(b)) { + return a.getTime() === b.getTime(); + } + if (isArray2(a) && isArray2(b)) { + if (a.length !== b.length) { + return false; + } + let re = true; + for (let i = 0; i < a.length; i++) { + if (!equals(a[i], b[i])) { + re = false; + break; + } + } + return re; + } + if (isObject2(a) && isObject2(b)) { + if (Object.keys(a).length !== Object.keys(b).length) { + return false; + } + let re = true; + for (const k in a) { + if (!hasProperty3(b, k) || !equals(a[k], b[k])) { + re = false; + break; + } + } + return re; + } + return a === b; + }; + const MAX_NUMBER = Number.MAX_SAFE_INTEGER; + const randint = (min, max) => { + if (!min || min < 0) { + min = 0; + } + if (!max) { + max = MAX_NUMBER; + } + if (min === max) { + return max; + } + if (min > max) { + min = Math.min(min, max); + max = Math.max(min, max); + } + const offset = min; + const range = max - min + 1; + return Math.floor(Math.random() * range) + offset; + }; + const toString = (input) => { + const s = isNumber(input) ? String(input) : input; + if (!isString2(s)) { + throw new Error("InvalidInput: String required."); + } + return s; + }; + const truncate2 = (s, l) => { + const o = toString(s); + const t = l || 140; + if (o.length <= t) { + return o; + } + let x = o.substring(0, t); + const a = x.split(" "); + const b = a.length; + let r = ""; + if (b > 1) { + a.pop(); + r += a.join(" "); + if (r.length < o.length) { + r += "..."; + } + } else { + x = x.substring(0, t - 3); + r = x + "..."; + } + return r; + }; + const stripTags2 = (s) => { + return toString(s).replace(/<.*?>/gi, " ").replace(/\s\s+/g, " ").trim(); + }; + const escapeHTML = (s) => { + const x = toString(s); + return x.replace(/&/g, "&").replace(//g, ">").replace(/"/g, """); + }; + const unescapeHTML = (s) => { + const x = toString(s); + return x.replace(/"/g, '"').replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&"); + }; + const ucfirst = (s) => { + const x = toString(s).toLowerCase(); + return x.length > 1 ? x.charAt(0).toUpperCase() + x.slice(1) : x.toUpperCase(); + }; + const ucwords = (s) => { + return toString(s).split(" ").map((w) => { + return ucfirst(w); + }).join(" "); + }; + const replaceAll = (s, a, b) => { + let x = toString(s); + if (isNumber(a)) { + a = String(a); + } + if (isNumber(b)) { + b = String(b); + } + if (isString2(a) && isString2(b)) { + const aa = x.split(a); + x = aa.join(b); + } else if (isArray2(a) && isString2(b)) { + a.forEach((v) => { + x = replaceAll(x, v, b); + }); + } else if (isArray2(a) && isArray2(b) && a.length === b.length) { + const k = a.length; + if (k > 0) { + for (let i = 0; i < k; i++) { + const aaa = a[i]; + const bb = b[i]; + x = replaceAll(x, aaa, bb); + } + } + } + return x; + }; + const stripAccent = (s) => { + let x = toString(s); + const map = { + a: "á|à|ả|ã|ạ|ă|ắ|ặ|ằ|ẳ|ẵ|â|ấ|ầ|ẩ|ẫ|ậ|ä", + A: "Á|À|Ả|Ã|Ạ|Ă|Ắ|Ặ|Ằ|Ẳ|Ẵ|Â|Ấ|Ầ|Ẩ|Ẫ|Ậ|Ä", + c: "ç", + C: "Ç", + d: "đ", + D: "Đ", + e: "é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ|ë", + E: "É|È|Ẻ|Ẽ|Ẹ|Ê|Ế|Ề|Ể|Ễ|Ệ|Ë", + i: "í|ì|ỉ|ĩ|ị|ï|î", + I: "Í|Ì|Ỉ|Ĩ|Ị|Ï|Î", + o: "ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ|ö", + O: "Ó|Ò|Ỏ|Õ|Ọ|Ô|Ố|Ồ|Ổ|Ô|Ộ|Ơ|Ớ|Ờ|Ở|Ỡ|Ợ|Ö", + u: "ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự|û", + U: "Ú|Ù|Ủ|Ũ|Ụ|Ư|Ứ|Ừ|Ử|Ữ|Ự|Û", + y: "ý|ỳ|ỷ|ỹ|ỵ", + Y: "Ý|Ỳ|Ỷ|Ỹ|Ỵ" + }; + const updateS = (ai, key) => { + x = replaceAll(x, ai, key); + }; + for (const key in map) { + if (hasProperty3(map, key)) { + const a = map[key].split("|"); + a.forEach((item) => { + return updateS(item, key); + }); + } + } + return x; + }; + const genid = (leng, prefix = "") => { + const lc = "abcdefghijklmnopqrstuvwxyz"; + const uc = lc.toUpperCase(); + const nb = "0123456789"; + const cand = [ + lc, + uc, + nb + ].join("").split("").sort(() => { + return Math.random() > 0.5; + }).join(""); + const t = cand.length; + const ln = Math.max(leng || 32, prefix.length); + let s = prefix; + while (s.length < ln) { + const k = randint(0, t); + s += cand.charAt(k) || ""; + } + return s; + }; + const slugify = (s, delimiter = "-") => { + return stripAccent(s).trim().toLowerCase().replace(/\W+/g, " ").replace(/\s+/g, " ").replace(/\s/g, delimiter); + }; + const PATTERN = "D, M d, Y h:i:s A"; + const WEEKDAYS = [ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday" + ]; + const MONTHS = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + ]; + const now = () => { + return new Date(); + }; + const time = () => { + return Date.now(); + }; + const tzone = now().getTimezoneOffset(); + const tz = (() => { + const z = Math.abs(tzone / 60); + const sign = tzone < 0 ? "+" : "-"; + return ["GMT", sign, String(z).padStart(4, "0")].join(""); + })(); + const _num = (n) => { + return String(n < 10 ? "0" + n : n); + }; + const _ord = (day) => { + let s = day + " "; + const x = s.charAt(s.length - 2); + if (x === "1") { + s = "st"; + } else if (x === "2") { + s = "nd"; + } else if (x === "3") { + s = "rd"; + } else { + s = "th"; + } + return s; + }; + const toDateString = (input, output = PATTERN) => { + const d = isDate(input) ? input : new Date(input); + if (!isDate(d)) { + throw new Error("InvalidInput: Number or Date required."); + } + const vchar = /\.*\\?([a-z])/gi; + const meridiem = output.includes("a") || output.includes("A"); + const wn = WEEKDAYS; + const mn = MONTHS; + const f = { + Y() { + return d.getFullYear(); + }, + y() { + return (f.Y() + "").slice(-2); + }, + F() { + return mn[f.n() - 1]; + }, + M() { + return (f.F() + "").slice(0, 3); + }, + m() { + return _num(f.n()); + }, + n() { + return d.getMonth() + 1; + }, + S() { + return _ord(f.j()); + }, + j() { + return d.getDate(); + }, + d() { + return _num(f.j()); + }, + t() { + return new Date(f.Y(), f.n(), 0).getDate(); + }, + w() { + return d.getDay(); + }, + l() { + return wn[f.w()]; + }, + D() { + return (f.l() + "").slice(0, 3); + }, + G() { + return d.getHours(); + }, + g() { + return f.G() % 12 || 12; + }, + h() { + return _num(meridiem ? f.g() : f.G()); + }, + i() { + return _num(d.getMinutes()); + }, + s() { + return _num(d.getSeconds()); + }, + a() { + return f.G() > 11 ? "pm" : "am"; + }, + A() { + return f.a().toUpperCase(); + }, + O() { + return tz; + } + }; + const _term = (t, s) => { + return f[t] ? f[t]() : s; + }; + return output.replace(vchar, _term); + }; + const toRelativeTime = (input = time()) => { + const d = isDate(input) ? input : new Date(input); + if (!isDate(d)) { + throw new Error("InvalidInput: Number or Date required."); + } + let delta = now() - d; + let nowThreshold = parseInt(d, 10); + if (isNaN(nowThreshold)) { + nowThreshold = 0; + } + if (delta <= nowThreshold) { + return "Just now"; + } + let units = null; + const conversions = { + millisecond: 1, + second: 1e3, + minute: 60, + hour: 60, + day: 24, + month: 30, + year: 12 + }; + for (const key in conversions) { + if (delta < conversions[key]) { + break; + } else { + units = key; + delta /= conversions[key]; + } + } + delta = Math.floor(delta); + if (delta !== 1) { + units += "s"; + } + return [delta, units].join(" ") + " ago"; + }; + const toUTCDateString = (input = time()) => { + const d = isDate(input) ? input : new Date(input); + if (!isDate(d)) { + throw new Error("InvalidInput: Number or Date required."); + } + const dMinutes = d.getMinutes(); + const dClone = new Date(d); + dClone.setMinutes(dMinutes + tzone); + return `${toDateString(dClone, "D, j M Y h:i:s")} GMT+0000`; + }; + const toLocalDateString = (input = time()) => { + const d = isDate(input) ? input : new Date(input); + if (!isDate(d)) { + throw new Error("InvalidInput: Number or Date required."); + } + return toDateString(d, "D, j M Y h:i:s O"); + }; + let md5 = (str) => { + var k = [], y = 0; + for (; y < 64; ) { + k[y] = 0 | Math.abs(Math.sin(++y)) * 4294967296; + } + var b, c, d, j, x = [], str2 = decodeURIComponent(encodeURI(str)), a = str2.length, h = [b = 1732584193, c = -271733879, ~b, ~c], i = 0; + for (; i <= a; ) + x[i >> 2] |= (str2.charCodeAt(i) || 128) << 8 * (i++ % 4); + x[str = (a + 8 >> 6) * 16 + 14] = a * 8; + i = 0; + for (; i < str; i += 16) { + a = h; + j = 0; + for (; j < 64; ) { + a = [ + d = a[3], + (b = a[1] | 0) + ((d = a[0] + [ + b & (c = a[2]) | ~b & d, + d & b | ~d & c, + b ^ c ^ d, + c ^ (b | ~d) + ][a = j >> 4] + (k[j] + (x[[ + j, + 5 * j + 1, + 3 * j + 5, + 7 * j + ][a] % 16 + i] | 0))) << (a = [ + 7, + 12, + 17, + 22, + 5, + 9, + 14, + 20, + 4, + 11, + 16, + 23, + 6, + 10, + 15, + 21 + ][4 * a + j++ % 4]) | d >>> 32 - a), + b, + c + ]; + } + for (j = 4; j; ) + h[--j] = h[j] + a[j]; + } + str = ""; + for (; j < 32; ) + str += (h[j >> 3] >> (1 ^ j++ & 7) * 4 & 15).toString(16); + return str; + }; + const curry = (fn) => { + const totalArguments = fn.length; + const next = (argumentLength, rest) => { + if (argumentLength > 0) { + return (...args) => { + return next(argumentLength - args.length, [...rest, ...args]); + }; + } + return fn(...rest); + }; + return next(totalArguments, []); + }; + const compose = (...fns) => { + return fns.reduce((f, g) => (x) => f(g(x))); + }; + const pipe = (...fns) => { + return fns.reduce((f, g) => (x) => g(f(x))); + }; + const defineProp = (ob, key, val, config = {}) => { + const { + writable = false, + configurable = false, + enumerable = false + } = config; + Object.defineProperty(ob, key, { + value: val, + writable, + configurable, + enumerable + }); + }; + const maybe = (val) => { + const __val = val; + const isNil2 = () => { + return __val === null || __val === void 0; + }; + const value = () => { + return __val; + }; + const getElse = (fn) => { + return maybe(__val || fn()); + }; + const filter = (fn) => { + return maybe(fn(__val) === true ? __val : null); + }; + const map = (fn) => { + return maybe(isNil2() ? null : fn(__val)); + }; + const output = /* @__PURE__ */ Object.create({}); + defineProp(output, "__value__", __val, { enumerable: true }); + defineProp(output, "__type__", "Maybe", { enumerable: true }); + defineProp(output, "isNil", isNil2); + defineProp(output, "value", value); + defineProp(output, "map", map); + defineProp(output, "if", filter); + defineProp(output, "else", getElse); + return output; + }; + const clone2 = (val, history = null) => { + const stack = history || /* @__PURE__ */ new Set(); + if (stack.has(val)) { + return val; + } + stack.add(val); + if (isDate(val)) { + return new Date(val.valueOf()); + } + const copyObject = (o) => { + const oo = /* @__PURE__ */ Object.create({}); + for (const k in o) { + if (hasProperty3(o, k)) { + oo[k] = clone2(o[k], stack); + } + } + return oo; + }; + const copyArray = (a) => { + return [...a].map((e) => { + if (isArray2(e)) { + return copyArray(e); + } else if (isObject2(e)) { + return copyObject(e); + } + return clone2(e, stack); + }); + }; + if (isArray2(val)) { + return copyArray(val); + } + if (isObject2(val)) { + return copyObject(val); + } + return val; + }; + const copies2 = (source, dest, matched = false, excepts = []) => { + for (const k in source) { + if (excepts.length > 0 && excepts.includes(k)) { + continue; + } + if (!matched || matched && hasProperty3(dest, k)) { + const oa = source[k]; + const ob = dest[k]; + if (isObject2(ob) && isObject2(oa) || isArray2(ob) && isArray2(oa)) { + dest[k] = copies2(oa, dest[k], matched, excepts); + } else { + dest[k] = clone2(oa); + } + } + } + return dest; + }; + const unique = (arr = []) => { + return [...new Set(arr)]; + }; + const fnSort = (a, b) => { + return a > b ? 1 : a < b ? -1 : 0; + }; + const sort = (arr = [], sorting = null) => { + const tmp = [...arr]; + const fn = sorting || fnSort; + tmp.sort(fn); + return tmp; + }; + const sortBy = (arr = [], order = 1, key = "") => { + if (!isString2(key) || !hasProperty3(arr[0], key)) { + return arr; + } + return sort(arr, (m, n) => { + return m[key] > n[key] ? order : m[key] < n[key] ? -1 * order : 0; + }); + }; + const shuffle = (arr = []) => { + const input = [...arr]; + const output = []; + let inputLen = input.length; + while (inputLen > 0) { + const index = Math.floor(Math.random() * inputLen); + output.push(input.splice(index, 1)[0]); + inputLen--; + } + return output; + }; + const pick = (arr = [], count = 1) => { + const a = shuffle(arr); + const mc = Math.max(1, count); + const c = Math.min(mc, a.length - 1); + return a.splice(0, c); + }; + exports2.clone = clone2; + exports2.compose = compose; + exports2.copies = copies2; + exports2.curry = curry; + exports2.equals = equals; + exports2.escapeHTML = escapeHTML; + exports2.genid = genid; + exports2.hasProperty = hasProperty3; + exports2.isArray = isArray2; + exports2.isBoolean = isBoolean; + exports2.isDate = isDate; + exports2.isElement = isElement; + exports2.isEmail = isEmail; + exports2.isEmpty = isEmpty; + exports2.isFunction = isFunction; + exports2.isInteger = isInteger; + exports2.isLetter = isLetter; + exports2.isNil = isNil; + exports2.isNull = isNull; + exports2.isNumber = isNumber; + exports2.isObject = isObject2; + exports2.isString = isString2; + exports2.isUndefined = isUndefined; + exports2.maybe = maybe; + exports2.md5 = md5; + exports2.now = now; + exports2.pick = pick; + exports2.pipe = pipe; + exports2.randint = randint; + exports2.replaceAll = replaceAll; + exports2.shuffle = shuffle; + exports2.slugify = slugify; + exports2.sort = sort; + exports2.sortBy = sortBy; + exports2.stripAccent = stripAccent; + exports2.stripTags = stripTags2; + exports2.time = time; + exports2.toDateString = toDateString; + exports2.toLocalDateString = toLocalDateString; + exports2.toRelativeTime = toRelativeTime; + exports2.toUTCDateString = toUTCDateString; + exports2.truncate = truncate2; + exports2.ucfirst = ucfirst; + exports2.ucwords = ucwords; + exports2.unescapeHTML = unescapeHTML; + exports2.unique = unique; + Object.defineProperty(exports2, "__esModule", { value: true }); + }); + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/util.js +var require_util = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/util.js"(exports) { + "use strict"; + var nameStartChar = ":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; + var nameChar = nameStartChar + "\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040"; + var nameRegexp = "[" + nameStartChar + "][" + nameChar + "]*"; + var regexName = new RegExp("^" + nameRegexp + "$"); + var getAllMatches = function(string, regex) { + const matches = []; + let match = regex.exec(string); + while (match) { + const allmatches = []; + allmatches.startIndex = regex.lastIndex - match[0].length; + const len = match.length; + for (let index = 0; index < len; index++) { + allmatches.push(match[index]); + } + matches.push(allmatches); + match = regex.exec(string); + } + return matches; + }; + var isName = function(string) { + const match = regexName.exec(string); + return !(match === null || typeof match === "undefined"); + }; + exports.isExist = function(v) { + return typeof v !== "undefined"; + }; + exports.isEmptyObject = function(obj) { + return Object.keys(obj).length === 0; + }; + exports.merge = function(target, a, arrayMode) { + if (a) { + const keys = Object.keys(a); + const len = keys.length; + for (let i = 0; i < len; i++) { + if (arrayMode === "strict") { + target[keys[i]] = [a[keys[i]]]; + } else { + target[keys[i]] = a[keys[i]]; + } + } + } + }; + exports.getValue = function(v) { + if (exports.isExist(v)) { + return v; + } else { + return ""; + } + }; + exports.isName = isName; + exports.getAllMatches = getAllMatches; + exports.nameRegexp = nameRegexp; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/validator.js +var require_validator2 = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/validator.js"(exports) { + "use strict"; + var util = require_util(); + var defaultOptions = { + allowBooleanAttributes: false, + unpairedTags: [] + }; + exports.validate = function(xmlData, options) { + options = Object.assign({}, defaultOptions, options); + const tags = []; + let tagFound = false; + let reachedRoot = false; + if (xmlData[0] === "\uFEFF") { + xmlData = xmlData.substr(1); + } + for (let i = 0; i < xmlData.length; i++) { + if (xmlData[i] === "<" && xmlData[i + 1] === "?") { + i += 2; + i = readPI(xmlData, i); + if (i.err) + return i; + } else if (xmlData[i] === "<") { + let tagStartPos = i; + i++; + if (xmlData[i] === "!") { + i = readCommentAndCDATA(xmlData, i); + continue; + } else { + let closingTag = false; + if (xmlData[i] === "/") { + closingTag = true; + i++; + } + let tagName = ""; + for (; i < xmlData.length && xmlData[i] !== ">" && xmlData[i] !== " " && xmlData[i] !== " " && xmlData[i] !== "\n" && xmlData[i] !== "\r"; i++) { + tagName += xmlData[i]; + } + tagName = tagName.trim(); + if (tagName[tagName.length - 1] === "/") { + tagName = tagName.substring(0, tagName.length - 1); + i--; + } + if (!validateTagName(tagName)) { + let msg; + if (tagName.trim().length === 0) { + msg = "Invalid space after '<'."; + } else { + msg = "Tag '" + tagName + "' is an invalid name."; + } + return getErrorObject("InvalidTag", msg, getLineNumberForPosition(xmlData, i)); + } + const result = readAttributeStr(xmlData, i); + if (result === false) { + return getErrorObject("InvalidAttr", "Attributes for '" + tagName + "' have open quote.", getLineNumberForPosition(xmlData, i)); + } + let attrStr = result.value; + i = result.index; + if (attrStr[attrStr.length - 1] === "/") { + const attrStrStart = i - attrStr.length; + attrStr = attrStr.substring(0, attrStr.length - 1); + const isValid = validateAttributeString(attrStr, options); + if (isValid === true) { + tagFound = true; + } else { + return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line)); + } + } else if (closingTag) { + if (!result.tagClosed) { + return getErrorObject("InvalidTag", "Closing tag '" + tagName + "' doesn't have proper closing.", getLineNumberForPosition(xmlData, i)); + } else if (attrStr.trim().length > 0) { + return getErrorObject("InvalidTag", "Closing tag '" + tagName + "' can't have attributes or invalid starting.", getLineNumberForPosition(xmlData, tagStartPos)); + } else { + const otg = tags.pop(); + if (tagName !== otg.tagName) { + let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos); + return getErrorObject("InvalidTag", "Expected closing tag '" + otg.tagName + "' (opened in line " + openPos.line + ", col " + openPos.col + ") instead of closing tag '" + tagName + "'.", getLineNumberForPosition(xmlData, tagStartPos)); + } + if (tags.length == 0) { + reachedRoot = true; + } + } + } else { + const isValid = validateAttributeString(attrStr, options); + if (isValid !== true) { + return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line)); + } + if (reachedRoot === true) { + return getErrorObject("InvalidXml", "Multiple possible root nodes found.", getLineNumberForPosition(xmlData, i)); + } else if (options.unpairedTags.indexOf(tagName) !== -1) { + } else { + tags.push({ tagName, tagStartPos }); + } + tagFound = true; + } + for (i++; i < xmlData.length; i++) { + if (xmlData[i] === "<") { + if (xmlData[i + 1] === "!") { + i++; + i = readCommentAndCDATA(xmlData, i); + continue; + } else if (xmlData[i + 1] === "?") { + i = readPI(xmlData, ++i); + if (i.err) + return i; + } else { + break; + } + } else if (xmlData[i] === "&") { + const afterAmp = validateAmpersand(xmlData, i); + if (afterAmp == -1) + return getErrorObject("InvalidChar", "char '&' is not expected.", getLineNumberForPosition(xmlData, i)); + i = afterAmp; + } else { + if (reachedRoot === true && !isWhiteSpace(xmlData[i])) { + return getErrorObject("InvalidXml", "Extra text at the end", getLineNumberForPosition(xmlData, i)); + } + } + } + if (xmlData[i] === "<") { + i--; + } + } + } else { + if (isWhiteSpace(xmlData[i])) { + continue; + } + return getErrorObject("InvalidChar", "char '" + xmlData[i] + "' is not expected.", getLineNumberForPosition(xmlData, i)); + } + } + if (!tagFound) { + return getErrorObject("InvalidXml", "Start tag expected.", 1); + } else if (tags.length == 1) { + return getErrorObject("InvalidTag", "Unclosed tag '" + tags[0].tagName + "'.", getLineNumberForPosition(xmlData, tags[0].tagStartPos)); + } else if (tags.length > 0) { + return getErrorObject("InvalidXml", "Invalid '" + JSON.stringify(tags.map((t) => t.tagName), null, 4).replace(/\r?\n/g, "") + "' found.", { line: 1, col: 1 }); + } + return true; + }; + function isWhiteSpace(char) { + return char === " " || char === " " || char === "\n" || char === "\r"; + } + function readPI(xmlData, i) { + const start = i; + for (; i < xmlData.length; i++) { + if (xmlData[i] == "?" || xmlData[i] == " ") { + const tagname = xmlData.substr(start, i - start); + if (i > 5 && tagname === "xml") { + return getErrorObject("InvalidXml", "XML declaration allowed only at the start of the document.", getLineNumberForPosition(xmlData, i)); + } else if (xmlData[i] == "?" && xmlData[i + 1] == ">") { + i++; + break; + } else { + continue; + } + } + } + return i; + } + function readCommentAndCDATA(xmlData, i) { + if (xmlData.length > i + 5 && xmlData[i + 1] === "-" && xmlData[i + 2] === "-") { + for (i += 3; i < xmlData.length; i++) { + if (xmlData[i] === "-" && xmlData[i + 1] === "-" && xmlData[i + 2] === ">") { + i += 2; + break; + } + } + } else if (xmlData.length > i + 8 && xmlData[i + 1] === "D" && xmlData[i + 2] === "O" && xmlData[i + 3] === "C" && xmlData[i + 4] === "T" && xmlData[i + 5] === "Y" && xmlData[i + 6] === "P" && xmlData[i + 7] === "E") { + let angleBracketsCount = 1; + for (i += 8; i < xmlData.length; i++) { + if (xmlData[i] === "<") { + angleBracketsCount++; + } else if (xmlData[i] === ">") { + angleBracketsCount--; + if (angleBracketsCount === 0) { + break; + } + } + } + } else if (xmlData.length > i + 9 && xmlData[i + 1] === "[" && xmlData[i + 2] === "C" && xmlData[i + 3] === "D" && xmlData[i + 4] === "A" && xmlData[i + 5] === "T" && xmlData[i + 6] === "A" && xmlData[i + 7] === "[") { + for (i += 8; i < xmlData.length; i++) { + if (xmlData[i] === "]" && xmlData[i + 1] === "]" && xmlData[i + 2] === ">") { + i += 2; + break; + } + } + } + return i; + } + var doubleQuote = '"'; + var singleQuote = "'"; + function readAttributeStr(xmlData, i) { + let attrStr = ""; + let startChar = ""; + let tagClosed = false; + for (; i < xmlData.length; i++) { + if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) { + if (startChar === "") { + startChar = xmlData[i]; + } else if (startChar !== xmlData[i]) { + } else { + startChar = ""; + } + } else if (xmlData[i] === ">") { + if (startChar === "") { + tagClosed = true; + break; + } + } + attrStr += xmlData[i]; + } + if (startChar !== "") { + return false; + } + return { + value: attrStr, + index: i, + tagClosed + }; + } + var validAttrStrRegxp = new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`, "g"); + function validateAttributeString(attrStr, options) { + const matches = util.getAllMatches(attrStr, validAttrStrRegxp); + const attrNames = {}; + for (let i = 0; i < matches.length; i++) { + if (matches[i][1].length === 0) { + return getErrorObject("InvalidAttr", "Attribute '" + matches[i][2] + "' has no space in starting.", getPositionFromMatch(matches[i])); + } else if (matches[i][3] !== void 0 && matches[i][4] === void 0) { + return getErrorObject("InvalidAttr", "Attribute '" + matches[i][2] + "' is without value.", getPositionFromMatch(matches[i])); + } else if (matches[i][3] === void 0 && !options.allowBooleanAttributes) { + return getErrorObject("InvalidAttr", "boolean attribute '" + matches[i][2] + "' is not allowed.", getPositionFromMatch(matches[i])); + } + const attrName = matches[i][2]; + if (!validateAttrName(attrName)) { + return getErrorObject("InvalidAttr", "Attribute '" + attrName + "' is an invalid name.", getPositionFromMatch(matches[i])); + } + if (!attrNames.hasOwnProperty(attrName)) { + attrNames[attrName] = 1; + } else { + return getErrorObject("InvalidAttr", "Attribute '" + attrName + "' is repeated.", getPositionFromMatch(matches[i])); + } + } + return true; + } + function validateNumberAmpersand(xmlData, i) { + let re = /\d/; + if (xmlData[i] === "x") { + i++; + re = /[\da-fA-F]/; + } + for (; i < xmlData.length; i++) { + if (xmlData[i] === ";") + return i; + if (!xmlData[i].match(re)) + break; + } + return -1; + } + function validateAmpersand(xmlData, i) { + i++; + if (xmlData[i] === ";") + return -1; + if (xmlData[i] === "#") { + i++; + return validateNumberAmpersand(xmlData, i); + } + let count = 0; + for (; i < xmlData.length; i++, count++) { + if (xmlData[i].match(/\w/) && count < 20) + continue; + if (xmlData[i] === ";") + break; + return -1; + } + return i; + } + function getErrorObject(code, message, lineNumber) { + return { + err: { + code, + msg: message, + line: lineNumber.line || lineNumber, + col: lineNumber.col + } + }; + } + function validateAttrName(attrName) { + return util.isName(attrName); + } + function validateTagName(tagname) { + return util.isName(tagname); + } + function getLineNumberForPosition(xmlData, index) { + const lines = xmlData.substring(0, index).split(/\r?\n/); + return { + line: lines.length, + col: lines[lines.length - 1].length + 1 + }; + } + function getPositionFromMatch(match) { + return match.startIndex + match[1].length; + } + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +var require_OptionsBuilder = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js"(exports) { + var defaultOptions = { + preserveOrder: false, + attributeNamePrefix: "@_", + attributesGroupName: false, + textNodeName: "#text", + ignoreAttributes: true, + removeNSPrefix: false, + allowBooleanAttributes: false, + parseTagValue: true, + parseAttributeValue: false, + trimValues: true, + cdataPropName: false, + numberParseOptions: { + hex: true, + leadingZeros: true + }, + tagValueProcessor: function(tagName, val) { + return val; + }, + attributeValueProcessor: function(attrName, val) { + return val; + }, + stopNodes: [], + alwaysCreateTextNode: false, + isArray: () => false, + commentPropName: false, + unpairedTags: [], + processEntities: true, + htmlEntities: false + }; + var buildOptions = function(options) { + return Object.assign({}, defaultOptions, options); + }; + exports.buildOptions = buildOptions; + exports.defaultOptions = defaultOptions; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +var require_xmlNode = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js"(exports, module2) { + "use strict"; + var XmlNode = class { + constructor(tagname) { + this.tagname = tagname; + this.child = []; + this[":@"] = {}; + } + add(key, val) { + this.child.push({ [key]: val }); + } + addChild(node) { + if (node[":@"] && Object.keys(node[":@"]).length > 0) { + this.child.push({ [node.tagname]: node.child, [":@"]: node[":@"] }); + } else { + this.child.push({ [node.tagname]: node.child }); + } + } + }; + module2.exports = XmlNode; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +var require_DocTypeReader = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js"(exports, module2) { + function readDocType(xmlData, i) { + const entities = {}; + if (xmlData[i + 3] === "O" && xmlData[i + 4] === "C" && xmlData[i + 5] === "T" && xmlData[i + 6] === "Y" && xmlData[i + 7] === "P" && xmlData[i + 8] === "E") { + i = i + 9; + let angleBracketsCount = 1; + let hasBody = false, entity = false, comment = false; + let exp = ""; + for (; i < xmlData.length; i++) { + if (xmlData[i] === "<") { + if (hasBody && xmlData[i + 1] === "!" && xmlData[i + 2] === "E" && xmlData[i + 3] === "N" && xmlData[i + 4] === "T" && xmlData[i + 5] === "I" && xmlData[i + 6] === "T" && xmlData[i + 7] === "Y") { + i += 7; + entity = true; + } else if (hasBody && xmlData[i + 1] === "!" && xmlData[i + 2] === "E" && xmlData[i + 3] === "L" && xmlData[i + 4] === "E" && xmlData[i + 5] === "M" && xmlData[i + 6] === "E" && xmlData[i + 7] === "N" && xmlData[i + 8] === "T") { + i += 8; + } else if (xmlData[i + 1] === "!" && xmlData[i + 2] === "-" && xmlData[i + 3] === "-") { + comment = true; + } else { + throw new Error("Invalid DOCTYPE"); + } + angleBracketsCount++; + exp = ""; + } else if (xmlData[i] === ">") { + if (comment) { + if (xmlData[i - 1] === "-" && xmlData[i - 2] === "-") { + comment = false; + } else { + throw new Error(`Invalid XML comment in DOCTYPE`); + } + } else if (entity) { + parseEntityExp(exp, entities); + entity = false; + } + angleBracketsCount--; + if (angleBracketsCount === 0) { + break; + } + } else if (xmlData[i] === "[") { + hasBody = true; + } else { + exp += xmlData[i]; + } + } + if (angleBracketsCount !== 0) { + throw new Error(`Unclosed DOCTYPE`); + } + } else { + throw new Error(`Invalid Tag instead of DOCTYPE`); + } + return { entities, i }; + } + var entityRegex = RegExp(`^\\s([a-zA-z0-0]+)[ ](['"])([^&]+)\\2`); + function parseEntityExp(exp, entities) { + const match = entityRegex.exec(exp); + if (match) { + entities[match[1]] = { + regx: RegExp(`&${match[1]};`, "g"), + val: match[3] + }; + } + } + module2.exports = readDocType; + } +}); + +// node_modules/.pnpm/strnum@1.0.5/node_modules/strnum/strnum.js +var require_strnum = __commonJS({ + "node_modules/.pnpm/strnum@1.0.5/node_modules/strnum/strnum.js"(exports, module2) { + var hexRegex = /^[-+]?0x[a-fA-F0-9]+$/; + var numRegex = /^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/; + if (!Number.parseInt && window.parseInt) { + Number.parseInt = window.parseInt; + } + if (!Number.parseFloat && window.parseFloat) { + Number.parseFloat = window.parseFloat; + } + var consider = { + hex: true, + leadingZeros: true, + decimalPoint: ".", + eNotation: true + }; + function toNumber(str, options = {}) { + options = Object.assign({}, consider, options); + if (!str || typeof str !== "string") + return str; + let trimmedStr = str.trim(); + if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) + return str; + else if (options.hex && hexRegex.test(trimmedStr)) { + return Number.parseInt(trimmedStr, 16); + } else { + const match = numRegex.exec(trimmedStr); + if (match) { + const sign = match[1]; + const leadingZeros = match[2]; + let numTrimmedByZeros = trimZeros(match[3]); + const eNotation = match[4] || match[6]; + if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== ".") + return str; + else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== ".") + return str; + else { + const num = Number(trimmedStr); + const numStr = "" + num; + if (numStr.search(/[eE]/) !== -1) { + if (options.eNotation) + return num; + else + return str; + } else if (eNotation) { + if (options.eNotation) + return num; + else + return str; + } else if (trimmedStr.indexOf(".") !== -1) { + if (numStr === "0" && numTrimmedByZeros === "") + return num; + else if (numStr === numTrimmedByZeros) + return num; + else if (sign && numStr === "-" + numTrimmedByZeros) + return num; + else + return str; + } + if (leadingZeros) { + if (numTrimmedByZeros === numStr) + return num; + else if (sign + numTrimmedByZeros === numStr) + return num; + else + return str; + } + if (trimmedStr === numStr) + return num; + else if (trimmedStr === sign + numStr) + return num; + return str; + } + } else { + return str; + } + } + } + function trimZeros(numStr) { + if (numStr && numStr.indexOf(".") !== -1) { + numStr = numStr.replace(/0+$/, ""); + if (numStr === ".") + numStr = "0"; + else if (numStr[0] === ".") + numStr = "0" + numStr; + else if (numStr[numStr.length - 1] === ".") + numStr = numStr.substr(0, numStr.length - 1); + return numStr; + } + return numStr; + } + module2.exports = toNumber; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +var require_OrderedObjParser = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js"(exports, module2) { + "use strict"; + var util = require_util(); + var xmlNode = require_xmlNode(); + var readDocType = require_DocTypeReader(); + var toNumber = require_strnum(); + var regx = "<((!\\[CDATA\\[([\\s\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\/)(NAME)\\s*>))([^<]*)".replace(/NAME/g, util.nameRegexp); + var OrderedObjParser = class { + constructor(options) { + this.options = options; + this.currentNode = null; + this.tagsNodeStack = []; + this.docTypeEntities = {}; + this.lastEntities = { + "amp": { regex: /&(amp|#38|#x26);/g, val: "&" }, + "apos": { regex: /&(apos|#39|#x27);/g, val: "'" }, + "gt": { regex: /&(gt|#62|#x3E);/g, val: ">" }, + "lt": { regex: /&(lt|#60|#x3C);/g, val: "<" }, + "quot": { regex: /&(quot|#34|#x22);/g, val: '"' } + }; + this.htmlEntities = { + "space": { regex: /&(nbsp|#160);/g, val: " " }, + "cent": { regex: /&(cent|#162);/g, val: "¢" }, + "pound": { regex: /&(pound|#163);/g, val: "£" }, + "yen": { regex: /&(yen|#165);/g, val: "¥" }, + "euro": { regex: /&(euro|#8364);/g, val: "€" }, + "copyright": { regex: /&(copy|#169);/g, val: "©" }, + "reg": { regex: /&(reg|#174);/g, val: "®" }, + "inr": { regex: /&(inr|#8377);/g, val: "₹" } + }; + this.addExternalEntities = addExternalEntities; + this.parseXml = parseXml; + this.parseTextData = parseTextData; + this.resolveNameSpace = resolveNameSpace; + this.buildAttributesMap = buildAttributesMap; + this.isItStopNode = isItStopNode; + this.replaceEntitiesValue = replaceEntitiesValue; + this.readStopNodeData = readStopNodeData; + this.saveTextToParentTag = saveTextToParentTag; + } + }; + function addExternalEntities(externalEntities) { + const entKeys = Object.keys(externalEntities); + for (let i = 0; i < entKeys.length; i++) { + const ent = entKeys[i]; + this.lastEntities[ent] = { + regex: new RegExp("&" + ent + ";", "g"), + val: externalEntities[ent] + }; + } + } + function parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) { + if (val !== void 0) { + if (this.options.trimValues && !dontTrim) { + val = val.trim(); + } + if (val.length > 0) { + if (!escapeEntities) + val = this.replaceEntitiesValue(val); + const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode); + if (newval === null || newval === void 0) { + return val; + } else if (typeof newval !== typeof val || newval !== val) { + return newval; + } else if (this.options.trimValues) { + return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions); + } else { + const trimmedVal = val.trim(); + if (trimmedVal === val) { + return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions); + } else { + return val; + } + } + } + } + } + function resolveNameSpace(tagname) { + if (this.options.removeNSPrefix) { + const tags = tagname.split(":"); + const prefix = tagname.charAt(0) === "/" ? "/" : ""; + if (tags[0] === "xmlns") { + return ""; + } + if (tags.length === 2) { + tagname = prefix + tags[1]; + } + } + return tagname; + } + var attrsRegx = new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`, "gm"); + function buildAttributesMap(attrStr, jPath) { + if (!this.options.ignoreAttributes && typeof attrStr === "string") { + const matches = util.getAllMatches(attrStr, attrsRegx); + const len = matches.length; + const attrs = {}; + for (let i = 0; i < len; i++) { + const attrName = this.resolveNameSpace(matches[i][1]); + let oldVal = matches[i][4]; + const aName = this.options.attributeNamePrefix + attrName; + if (attrName.length) { + if (oldVal !== void 0) { + if (this.options.trimValues) { + oldVal = oldVal.trim(); + } + oldVal = this.replaceEntitiesValue(oldVal); + const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath); + if (newVal === null || newVal === void 0) { + attrs[aName] = oldVal; + } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) { + attrs[aName] = newVal; + } else { + attrs[aName] = parseValue(oldVal, this.options.parseAttributeValue, this.options.numberParseOptions); + } + } else if (this.options.allowBooleanAttributes) { + attrs[aName] = true; + } + } + } + if (!Object.keys(attrs).length) { + return; + } + if (this.options.attributesGroupName) { + const attrCollection = {}; + attrCollection[this.options.attributesGroupName] = attrs; + return attrCollection; + } + return attrs; + } + } + var parseXml = function(xmlData) { + xmlData = xmlData.replace(/\r\n?/g, "\n"); + const xmlObj = new xmlNode("!xml"); + let currentNode = xmlObj; + let textData = ""; + let jPath = ""; + for (let i = 0; i < xmlData.length; i++) { + const ch = xmlData[i]; + if (ch === "<") { + if (xmlData[i + 1] === "/") { + const closeIndex = findClosingIndex(xmlData, ">", i, "Closing Tag is not closed."); + let tagName = xmlData.substring(i + 2, closeIndex).trim(); + if (this.options.removeNSPrefix) { + const colonIndex = tagName.indexOf(":"); + if (colonIndex !== -1) { + tagName = tagName.substr(colonIndex + 1); + } + } + if (currentNode) { + textData = this.saveTextToParentTag(textData, currentNode, jPath); + } + jPath = jPath.substr(0, jPath.lastIndexOf(".")); + currentNode = this.tagsNodeStack.pop(); + textData = ""; + i = closeIndex; + } else if (xmlData[i + 1] === "?") { + let tagData = readTagExp(xmlData, i, false, "?>"); + if (!tagData) + throw new Error("Pi Tag is not closed."); + textData = this.saveTextToParentTag(textData, currentNode, jPath); + const childNode = new xmlNode(tagData.tagName); + childNode.add(this.options.textNodeName, ""); + if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) { + childNode[":@"] = this.buildAttributesMap(tagData.tagExp, jPath); + } + currentNode.addChild(childNode); + i = tagData.closeIndex + 1; + } else if (xmlData.substr(i + 1, 3) === "!--") { + const endIndex = findClosingIndex(xmlData, "-->", i, "Comment is not closed."); + if (this.options.commentPropName) { + const comment = xmlData.substring(i + 4, endIndex - 2); + textData = this.saveTextToParentTag(textData, currentNode, jPath); + currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]); + } + i = endIndex; + } else if (xmlData.substr(i + 1, 2) === "!D") { + const result = readDocType(xmlData, i); + this.docTypeEntities = result.entities; + i = result.i; + } else if (xmlData.substr(i + 1, 2) === "![") { + const closeIndex = findClosingIndex(xmlData, "]]>", i, "CDATA is not closed.") - 2; + const tagExp = xmlData.substring(i + 9, closeIndex); + textData = this.saveTextToParentTag(textData, currentNode, jPath); + if (this.options.cdataPropName) { + currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]); + } else { + let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true); + if (!val) + val = ""; + currentNode.add(this.options.textNodeName, val); + } + i = closeIndex + 2; + } else { + let result = readTagExp(xmlData, i, this.options.removeNSPrefix); + let tagName = result.tagName; + let tagExp = result.tagExp; + let attrExpPresent = result.attrExpPresent; + let closeIndex = result.closeIndex; + if (currentNode && textData) { + if (currentNode.tagname !== "!xml") { + textData = this.saveTextToParentTag(textData, currentNode, jPath, false); + } + } + if (tagName !== xmlObj.tagname) { + jPath += jPath ? "." + tagName : tagName; + } + const lastTag = currentNode; + if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) { + currentNode = this.tagsNodeStack.pop(); + } + if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) { + let tagContent = ""; + if (tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1) { + } else if (this.options.unpairedTags.indexOf(tagName) !== -1) { + } else { + const result2 = this.readStopNodeData(xmlData, tagName, closeIndex + 1); + if (!result2) + throw new Error(`Unexpected end of ${tagName}`); + i = result2.i; + tagContent = result2.tagContent; + } + const childNode = new xmlNode(tagName); + if (tagName !== tagExp && attrExpPresent) { + childNode[":@"] = this.buildAttributesMap(tagExp, jPath); + } + if (tagContent) { + tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true); + } + jPath = jPath.substr(0, jPath.lastIndexOf(".")); + childNode.add(this.options.textNodeName, tagContent); + currentNode.addChild(childNode); + } else { + if (tagExp.length > 0 && tagExp.lastIndexOf("/") === tagExp.length - 1) { + if (tagName[tagName.length - 1] === "/") { + tagName = tagName.substr(0, tagName.length - 1); + tagExp = tagName; + } else { + tagExp = tagExp.substr(0, tagExp.length - 1); + } + const childNode = new xmlNode(tagName); + if (tagName !== tagExp && attrExpPresent) { + childNode[":@"] = this.buildAttributesMap(tagExp, jPath); + } + jPath = jPath.substr(0, jPath.lastIndexOf(".")); + currentNode.addChild(childNode); + } else { + const childNode = new xmlNode(tagName); + this.tagsNodeStack.push(currentNode); + if (tagName !== tagExp && attrExpPresent) { + childNode[":@"] = this.buildAttributesMap(tagExp, jPath); + } + currentNode.addChild(childNode); + currentNode = childNode; + } + textData = ""; + i = closeIndex; + } + } + } else { + textData += xmlData[i]; + } + } + return xmlObj.child; + }; + var replaceEntitiesValue = function(val) { + if (this.options.processEntities) { + for (let entityName in this.docTypeEntities) { + const entity = this.docTypeEntities[entityName]; + val = val.replace(entity.regx, entity.val); + } + for (let entityName in this.lastEntities) { + const entity = this.lastEntities[entityName]; + val = val.replace(entity.regex, entity.val); + } + if (this.options.htmlEntities) { + for (let entityName in this.htmlEntities) { + const entity = this.htmlEntities[entityName]; + val = val.replace(entity.regex, entity.val); + } + } + } + return val; + }; + function saveTextToParentTag(textData, currentNode, jPath, isLeafNode) { + if (textData) { + if (isLeafNode === void 0) + isLeafNode = Object.keys(currentNode.child).length === 0; + textData = this.parseTextData(textData, currentNode.tagname, jPath, false, currentNode[":@"] ? Object.keys(currentNode[":@"]).length !== 0 : false, isLeafNode); + if (textData !== void 0 && textData !== "") + currentNode.add(this.options.textNodeName, textData); + textData = ""; + } + return textData; + } + function isItStopNode(stopNodes, jPath, currentTagName) { + const allNodesExp = "*." + currentTagName; + for (const stopNodePath in stopNodes) { + const stopNodeExp = stopNodes[stopNodePath]; + if (allNodesExp === stopNodeExp || jPath === stopNodeExp) + return true; + } + return false; + } + function tagExpWithClosingIndex(xmlData, i, closingChar = ">") { + let attrBoundary; + let tagExp = ""; + for (let index = i; index < xmlData.length; index++) { + let ch = xmlData[index]; + if (attrBoundary) { + if (ch === attrBoundary) + attrBoundary = ""; + } else if (ch === '"' || ch === "'") { + attrBoundary = ch; + } else if (ch === closingChar[0]) { + if (closingChar[1]) { + if (xmlData[index + 1] === closingChar[1]) { + return { + data: tagExp, + index + }; + } + } else { + return { + data: tagExp, + index + }; + } + } else if (ch === " ") { + ch = " "; + } + tagExp += ch; + } + } + function findClosingIndex(xmlData, str, i, errMsg) { + const closingIndex = xmlData.indexOf(str, i); + if (closingIndex === -1) { + throw new Error(errMsg); + } else { + return closingIndex + str.length - 1; + } + } + function readTagExp(xmlData, i, removeNSPrefix, closingChar = ">") { + const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar); + if (!result) + return; + let tagExp = result.data; + const closeIndex = result.index; + const separatorIndex = tagExp.search(/\s/); + let tagName = tagExp; + let attrExpPresent = true; + if (separatorIndex !== -1) { + tagName = tagExp.substr(0, separatorIndex).replace(/\s\s*$/, ""); + tagExp = tagExp.substr(separatorIndex + 1); + } + if (removeNSPrefix) { + const colonIndex = tagName.indexOf(":"); + if (colonIndex !== -1) { + tagName = tagName.substr(colonIndex + 1); + attrExpPresent = tagName !== result.data.substr(colonIndex + 1); + } + } + return { + tagName, + tagExp, + closeIndex, + attrExpPresent + }; + } + function readStopNodeData(xmlData, tagName, i) { + const startIndex = i; + for (; i < xmlData.length; i++) { + if (xmlData[i] === "<" && xmlData[i + 1] === "/") { + const closeIndex = findClosingIndex(xmlData, ">", i, `${tagName} is not closed`); + let closeTagName = xmlData.substring(i + 2, closeIndex).trim(); + if (closeTagName === tagName) { + return { + tagContent: xmlData.substring(startIndex, i), + i: closeIndex + }; + } + i = closeIndex; + } + } + } + function parseValue(val, shouldParse, options) { + if (shouldParse && typeof val === "string") { + const newval = val.trim(); + if (newval === "true") + return true; + else if (newval === "false") + return false; + else + return toNumber(val, options); + } else { + if (util.isExist(val)) { + return val; + } else { + return ""; + } + } + } + module2.exports = OrderedObjParser; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/node2json.js +var require_node2json = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/node2json.js"(exports) { + "use strict"; + function prettify(node, options) { + return compress(node, options); + } + function compress(arr, options, jPath) { + let text; + const compressedObj = {}; + for (let i = 0; i < arr.length; i++) { + const tagObj = arr[i]; + const property = propName(tagObj); + let newJpath = ""; + if (jPath === void 0) + newJpath = property; + else + newJpath = jPath + "." + property; + if (property === options.textNodeName) { + if (text === void 0) + text = tagObj[property]; + else + text += "" + tagObj[property]; + } else if (property === void 0) { + continue; + } else if (tagObj[property]) { + let val = compress(tagObj[property], options, newJpath); + const isLeaf = isLeafTag(val, options); + if (tagObj[":@"]) { + assignAttributes(val, tagObj[":@"], newJpath, options); + } else if (Object.keys(val).length === 1 && val[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) { + val = val[options.textNodeName]; + } else if (Object.keys(val).length === 0) { + if (options.alwaysCreateTextNode) + val[options.textNodeName] = ""; + else + val = ""; + } + if (compressedObj[property] !== void 0) { + if (!Array.isArray(compressedObj[property])) { + compressedObj[property] = [compressedObj[property]]; + } + compressedObj[property].push(val); + } else { + if (options.isArray(property, newJpath, isLeaf)) { + compressedObj[property] = [val]; + } else { + compressedObj[property] = val; + } + } + } + } + if (typeof text === "string") { + if (text.length > 0) + compressedObj[options.textNodeName] = text; + } else if (text !== void 0) + compressedObj[options.textNodeName] = text; + return compressedObj; + } + function propName(obj) { + const keys = Object.keys(obj); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key !== ":@") + return key; + } + } + function assignAttributes(obj, attrMap, jpath, options) { + if (attrMap) { + const keys = Object.keys(attrMap); + const len = keys.length; + for (let i = 0; i < len; i++) { + const atrrName = keys[i]; + if (options.isArray(atrrName, jpath + "." + atrrName, true, true)) { + obj[atrrName] = [attrMap[atrrName]]; + } else { + obj[atrrName] = attrMap[atrrName]; + } + } + } + } + function isLeafTag(obj, options) { + const propCount = Object.keys(obj).length; + if (propCount === 0 || propCount === 1 && obj[options.textNodeName]) + return true; + return false; + } + exports.prettify = prettify; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +var require_XMLParser = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js"(exports, module2) { + var { buildOptions } = require_OptionsBuilder(); + var OrderedObjParser = require_OrderedObjParser(); + var { prettify } = require_node2json(); + var validator = require_validator2(); + var XMLParser2 = class { + constructor(options) { + this.externalEntities = {}; + this.options = buildOptions(options); + } + parse(xmlData, validationOption) { + if (typeof xmlData === "string") { + } else if (xmlData.toString) { + xmlData = xmlData.toString(); + } else { + throw new Error("XML data is accepted in String or Bytes[] form."); + } + if (validationOption) { + if (validationOption === true) + validationOption = {}; + const result = validator.validate(xmlData, validationOption); + if (result !== true) { + throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`); + } + } + const orderedObjParser = new OrderedObjParser(this.options); + orderedObjParser.addExternalEntities(this.externalEntities); + const orderedResult = orderedObjParser.parseXml(xmlData); + if (this.options.preserveOrder || orderedResult === void 0) + return orderedResult; + else + return prettify(orderedResult, this.options); + } + addEntity(key, value) { + if (value.indexOf("&") !== -1) { + throw new Error("Entity value can't have '&'"); + } else if (key.indexOf("&") !== -1 || key.indexOf(";") !== -1) { + throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '"); + } else { + this.externalEntities[key] = value; + } + } + }; + module2.exports = XMLParser2; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js +var require_orderedJs2Xml = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js"(exports, module2) { + var { EOL } = require("os"); + function toXml(jArray, options) { + return arrToStr(jArray, options, "", 0); + } + function arrToStr(arr, options, jPath, level) { + let xmlStr = ""; + let indentation = ""; + if (options.format && options.indentBy.length > 0) { + indentation = EOL + "" + options.indentBy.repeat(level); + } + for (let i = 0; i < arr.length; i++) { + const tagObj = arr[i]; + const tagName = propName(tagObj); + let newJPath = ""; + if (jPath.length === 0) + newJPath = tagName; + else + newJPath = `${jPath}.${tagName}`; + if (tagName === options.textNodeName) { + let tagText = tagObj[tagName]; + if (!isStopNode(newJPath, options)) { + tagText = options.tagValueProcessor(tagName, tagText); + tagText = replaceEntitiesValue(tagText, options); + } + xmlStr += indentation + tagText; + continue; + } else if (tagName === options.cdataPropName) { + xmlStr += indentation + ``; + continue; + } else if (tagName === options.commentPropName) { + xmlStr += indentation + ``; + continue; + } else if (tagName[0] === "?") { + const attStr2 = attr_to_str(tagObj[":@"], options); + xmlStr += indentation + `<${tagName} ${tagObj[tagName][0][options.textNodeName]} ${attStr2}?>`; + continue; + } + const attStr = attr_to_str(tagObj[":@"], options); + let tagStart = indentation + `<${tagName}${attStr}`; + let tagValue = arrToStr(tagObj[tagName], options, newJPath, level + 1); + if (options.unpairedTags.indexOf(tagName) !== -1) { + xmlStr += tagStart + ">"; + } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) { + xmlStr += tagStart + "/>"; + } else { + xmlStr += tagStart + `>${tagValue}${indentation}`; + } + } + return xmlStr; + } + function propName(obj) { + const keys = Object.keys(obj); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key !== ":@") + return key; + } + } + function attr_to_str(attrMap, options) { + let attrStr = ""; + if (attrMap && !options.ignoreAttributes) { + for (attr in attrMap) { + let attrVal = options.attributeValueProcessor(attr, attrMap[attr]); + attrVal = replaceEntitiesValue(attrVal, options); + if (attrVal === true && options.suppressBooleanAttributes) { + attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`; + } else { + attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}="${attrVal}"`; + } + } + } + return attrStr; + } + function isStopNode(jPath, options) { + jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1); + let tagName = jPath.substr(jPath.lastIndexOf(".") + 1); + for (let index in options.stopNodes) { + if (options.stopNodes[index] === jPath || options.stopNodes[index] === "*." + tagName) + return true; + } + return false; + } + function replaceEntitiesValue(textValue, options) { + if (textValue && textValue.length > 0 && options.processEntities) { + for (const entityName in options.entities) { + const entity = options.entities[entityName]; + textValue = textValue.replace(entity.regex, entity.val); + } + } + return textValue; + } + module2.exports = toXml; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js +var require_json2xml = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js"(exports, module2) { + "use strict"; + var buildFromOrderedJs = require_orderedJs2Xml(); + var defaultOptions = { + attributeNamePrefix: "@_", + attributesGroupName: false, + textNodeName: "#text", + ignoreAttributes: true, + cdataPropName: false, + format: false, + indentBy: " ", + suppressEmptyNode: false, + suppressBooleanAttributes: true, + tagValueProcessor: function(key, a) { + return a; + }, + attributeValueProcessor: function(attrName, a) { + return a; + }, + preserveOrder: false, + commentPropName: false, + unpairedTags: [], + entities: { + ">": { regex: new RegExp(">", "g"), val: ">" }, + "<": { regex: new RegExp("<", "g"), val: "<" }, + "sQuot": { regex: new RegExp("'", "g"), val: "'" }, + "dQuot": { regex: new RegExp('"', "g"), val: """ } + }, + processEntities: true, + stopNodes: [] + }; + function Builder(options) { + this.options = Object.assign({}, defaultOptions, options); + if (this.options.ignoreAttributes || this.options.attributesGroupName) { + this.isAttribute = function() { + return false; + }; + } else { + this.attrPrefixLen = this.options.attributeNamePrefix.length; + this.isAttribute = isAttribute; + } + this.processTextOrObjNode = processTextOrObjNode; + if (this.options.format) { + this.indentate = indentate; + this.tagEndChar = ">\n"; + this.newLine = "\n"; + } else { + this.indentate = function() { + return ""; + }; + this.tagEndChar = ">"; + this.newLine = ""; + } + if (this.options.suppressEmptyNode) { + this.buildTextNode = buildEmptyTextNode; + this.buildObjNode = buildEmptyObjNode; + } else { + this.buildTextNode = buildTextValNode; + this.buildObjNode = buildObjectNode; + } + this.buildTextValNode = buildTextValNode; + this.buildObjectNode = buildObjectNode; + this.replaceEntitiesValue = replaceEntitiesValue; + } + Builder.prototype.build = function(jObj) { + if (this.options.preserveOrder) { + return buildFromOrderedJs(jObj, this.options); + } else { + if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) { + jObj = { + [this.options.arrayNodeName]: jObj + }; + } + return this.j2x(jObj, 0).val; + } + }; + Builder.prototype.j2x = function(jObj, level) { + let attrStr = ""; + let val = ""; + for (let key in jObj) { + if (typeof jObj[key] === "undefined") { + } else if (jObj[key] === null) { + val += this.indentate(level) + "<" + key + "/" + this.tagEndChar; + } else if (jObj[key] instanceof Date) { + val += this.buildTextNode(jObj[key], key, "", level); + } else if (typeof jObj[key] !== "object") { + const attr2 = this.isAttribute(key); + if (attr2) { + let val2 = this.options.attributeValueProcessor(attr2, "" + jObj[key]); + val2 = this.replaceEntitiesValue(val2); + attrStr += " " + attr2 + '="' + val2 + '"'; + } else { + if (key === this.options.textNodeName) { + let newval = this.options.tagValueProcessor(key, "" + jObj[key]); + val += this.replaceEntitiesValue(newval); + } else { + val += this.buildTextNode(jObj[key], key, "", level); + } + } + } else if (Array.isArray(jObj[key])) { + const arrLen = jObj[key].length; + for (let j = 0; j < arrLen; j++) { + const item = jObj[key][j]; + if (typeof item === "undefined") { + } else if (item === null) { + val += this.indentate(level) + "<" + key + "/" + this.tagEndChar; + } else if (typeof item === "object") { + val += this.processTextOrObjNode(item, key, level); + } else { + val += this.buildTextNode(item, key, "", level); + } + } + } else { + if (this.options.attributesGroupName && key === this.options.attributesGroupName) { + const Ks = Object.keys(jObj[key]); + const L = Ks.length; + for (let j = 0; j < L; j++) { + let val2 = this.options.attributeValueProcessor(Ks[j], "" + jObj[key][Ks[j]]); + val2 = this.replaceEntitiesValue(val2); + attrStr += " " + Ks[j] + '="' + val2 + '"'; + } + } else { + val += this.processTextOrObjNode(jObj[key], key, level); + } + } + } + return { attrStr, val }; + }; + function processTextOrObjNode(object, key, level) { + const result = this.j2x(object, level + 1); + if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) { + return this.buildTextNode(result.val, key, result.attrStr, level); + } else { + return this.buildObjNode(result.val, key, result.attrStr, level); + } + } + function buildObjectNode(val, key, attrStr, level) { + if (attrStr && val.indexOf("<") === -1) { + return this.indentate(level) + "<" + key + attrStr + ">" + val + "" + textValue + " 0 && this.options.processEntities) { + for (const entityName in this.options.entities) { + const entity = this.options.entities[entityName]; + textValue = textValue.replace(entity.regex, entity.val); + } + } + return textValue; + } + function buildEmptyTextNode(val, key, attrStr, level) { + if (val === "" && this.options.unpairedTags.indexOf(key) !== -1) { + return this.indentate(level) + "<" + key + attrStr + this.tagEndChar; + } else if (val !== "") { + return this.buildTextValNode(val, key, attrStr, level); + } else { + return this.indentate(level) + "<" + key + attrStr + "/" + this.tagEndChar; + } + } + function indentate(level) { + return this.options.indentBy.repeat(level); + } + function isAttribute(name2) { + if (name2.startsWith(this.options.attributeNamePrefix)) { + return name2.substr(this.attrPrefixLen); + } else { + return false; + } + } + module2.exports = Builder; + } +}); + +// node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/fxp.js +var require_fxp = __commonJS({ + "node_modules/.pnpm/fast-xml-parser@4.0.0-beta.8/node_modules/fast-xml-parser/src/fxp.js"(exports, module2) { + "use strict"; + var validator = require_validator2(); + var XMLParser2 = require_XMLParser(); + var XMLBuilder = require_json2xml(); + module2.exports = { + XMLParser: XMLParser2, + XMLValidator: validator, + XMLBuilder + }; + } +}); + +// node_modules/.pnpm/html-entities@2.3.2/node_modules/html-entities/lib/named-references.js +var require_named_references = __commonJS({ + "node_modules/.pnpm/html-entities@2.3.2/node_modules/html-entities/lib/named-references.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.bodyRegExps = { xml: /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g, html4: /&(?:nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|AElig|Ccedil|Egrave|Eacute|Ecirc|Euml|Igrave|Iacute|Icirc|Iuml|ETH|Ntilde|Ograve|Oacute|Ocirc|Otilde|Ouml|times|Oslash|Ugrave|Uacute|Ucirc|Uuml|Yacute|THORN|szlig|agrave|aacute|acirc|atilde|auml|aring|aelig|ccedil|egrave|eacute|ecirc|euml|igrave|iacute|icirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|quot|amp|lt|gt|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g, html5: /&(?:AElig|AMP|Aacute|Acirc|Agrave|Aring|Atilde|Auml|COPY|Ccedil|ETH|Eacute|Ecirc|Egrave|Euml|GT|Iacute|Icirc|Igrave|Iuml|LT|Ntilde|Oacute|Ocirc|Ograve|Oslash|Otilde|Ouml|QUOT|REG|THORN|Uacute|Ucirc|Ugrave|Uuml|Yacute|aacute|acirc|acute|aelig|agrave|amp|aring|atilde|auml|brvbar|ccedil|cedil|cent|copy|curren|deg|divide|eacute|ecirc|egrave|eth|euml|frac12|frac14|frac34|gt|iacute|icirc|iexcl|igrave|iquest|iuml|laquo|lt|macr|micro|middot|nbsp|not|ntilde|oacute|ocirc|ograve|ordf|ordm|oslash|otilde|ouml|para|plusmn|pound|quot|raquo|reg|sect|shy|sup1|sup2|sup3|szlig|thorn|times|uacute|ucirc|ugrave|uml|uuml|yacute|yen|yuml|#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);?/g }; + exports.namedReferences = { xml: { entities: { "<": "<", ">": ">", """: '"', "'": "'", "&": "&" }, characters: { "<": "<", ">": ">", '"': """, "'": "'", "&": "&" } }, html4: { entities: { "'": "'", " ": " ", " ": " ", "¡": "¡", "¡": "¡", "¢": "¢", "¢": "¢", "£": "£", "£": "£", "¤": "¤", "¤": "¤", "¥": "¥", "¥": "¥", "¦": "¦", "¦": "¦", "§": "§", "§": "§", "¨": "¨", "¨": "¨", "©": "©", "©": "©", "ª": "ª", "ª": "ª", "«": "«", "«": "«", "¬": "¬", "¬": "¬", "­": "­", "­": "­", "®": "®", "®": "®", "¯": "¯", "¯": "¯", "°": "°", "°": "°", "±": "±", "±": "±", "²": "²", "²": "²", "³": "³", "³": "³", "´": "´", "´": "´", "µ": "µ", "µ": "µ", "¶": "¶", "¶": "¶", "·": "·", "·": "·", "¸": "¸", "¸": "¸", "¹": "¹", "¹": "¹", "º": "º", "º": "º", "»": "»", "»": "»", "¼": "¼", "¼": "¼", "½": "½", "½": "½", "¾": "¾", "¾": "¾", "¿": "¿", "¿": "¿", "À": "À", "À": "À", "Á": "Á", "Á": "Á", "Â": "Â", "Â": "Â", "Ã": "Ã", "Ã": "Ã", "Ä": "Ä", "Ä": "Ä", "Å": "Å", "Å": "Å", "Æ": "Æ", "Æ": "Æ", "Ç": "Ç", "Ç": "Ç", "È": "È", "È": "È", "É": "É", "É": "É", "Ê": "Ê", "Ê": "Ê", "Ë": "Ë", "Ë": "Ë", "Ì": "Ì", "Ì": "Ì", "Í": "Í", "Í": "Í", "Î": "Î", "Î": "Î", "Ï": "Ï", "Ï": "Ï", "Ð": "Ð", "Ð": "Ð", "Ñ": "Ñ", "Ñ": "Ñ", "Ò": "Ò", "Ò": "Ò", "Ó": "Ó", "Ó": "Ó", "Ô": "Ô", "Ô": "Ô", "Õ": "Õ", "Õ": "Õ", "Ö": "Ö", "Ö": "Ö", "×": "×", "×": "×", "Ø": "Ø", "Ø": "Ø", "Ù": "Ù", "Ù": "Ù", "Ú": "Ú", "Ú": "Ú", "Û": "Û", "Û": "Û", "Ü": "Ü", "Ü": "Ü", "Ý": "Ý", "Ý": "Ý", "Þ": "Þ", "Þ": "Þ", "ß": "ß", "ß": "ß", "à": "à", "à": "à", "á": "á", "á": "á", "â": "â", "â": "â", "ã": "ã", "ã": "ã", "ä": "ä", "ä": "ä", "å": "å", "å": "å", "æ": "æ", "æ": "æ", "ç": "ç", "ç": "ç", "è": "è", "è": "è", "é": "é", "é": "é", "ê": "ê", "ê": "ê", "ë": "ë", "ë": "ë", "ì": "ì", "ì": "ì", "í": "í", "í": "í", "î": "î", "î": "î", "ï": "ï", "ï": "ï", "ð": "ð", "ð": "ð", "ñ": "ñ", "ñ": "ñ", "ò": "ò", "ò": "ò", "ó": "ó", "ó": "ó", "ô": "ô", "ô": "ô", "õ": "õ", "õ": "õ", "ö": "ö", "ö": "ö", "÷": "÷", "÷": "÷", "ø": "ø", "ø": "ø", "ù": "ù", "ù": "ù", "ú": "ú", "ú": "ú", "û": "û", "û": "û", "ü": "ü", "ü": "ü", "ý": "ý", "ý": "ý", "þ": "þ", "þ": "þ", "ÿ": "ÿ", "ÿ": "ÿ", """: '"', """: '"', "&": "&", "&": "&", "<": "<", "<": "<", ">": ">", ">": ">", "Œ": "Œ", "œ": "œ", "Š": "Š", "š": "š", "Ÿ": "Ÿ", "ˆ": "ˆ", "˜": "˜", " ": " ", " ": " ", " ": " ", "‌": "‌", "‍": "‍", "‎": "‎", "‏": "‏", "–": "–", "—": "—", "‘": "‘", "’": "’", "‚": "‚", "“": "“", "”": "”", "„": "„", "†": "†", "‡": "‡", "‰": "‰", "‹": "‹", "›": "›", "€": "€", "ƒ": "ƒ", "Α": "Α", "Β": "Β", "Γ": "Γ", "Δ": "Δ", "Ε": "Ε", "Ζ": "Ζ", "Η": "Η", "Θ": "Θ", "Ι": "Ι", "Κ": "Κ", "Λ": "Λ", "Μ": "Μ", "Ν": "Ν", "Ξ": "Ξ", "Ο": "Ο", "Π": "Π", "Ρ": "Ρ", "Σ": "Σ", "Τ": "Τ", "Υ": "Υ", "Φ": "Φ", "Χ": "Χ", "Ψ": "Ψ", "Ω": "Ω", "α": "α", "β": "β", "γ": "γ", "δ": "δ", "ε": "ε", "ζ": "ζ", "η": "η", "θ": "θ", "ι": "ι", "κ": "κ", "λ": "λ", "μ": "μ", "ν": "ν", "ξ": "ξ", "ο": "ο", "π": "π", "ρ": "ρ", "ς": "ς", "σ": "σ", "τ": "τ", "υ": "υ", "φ": "φ", "χ": "χ", "ψ": "ψ", "ω": "ω", "ϑ": "ϑ", "ϒ": "ϒ", "ϖ": "ϖ", "•": "•", "…": "…", "′": "′", "″": "″", "‾": "‾", "⁄": "⁄", "℘": "℘", "ℑ": "ℑ", "ℜ": "ℜ", "™": "™", "ℵ": "ℵ", "←": "←", "↑": "↑", "→": "→", "↓": "↓", "↔": "↔", "↵": "↵", "⇐": "⇐", "⇑": "⇑", "⇒": "⇒", "⇓": "⇓", "⇔": "⇔", "∀": "∀", "∂": "∂", "∃": "∃", "∅": "∅", "∇": "∇", "∈": "∈", "∉": "∉", "∋": "∋", "∏": "∏", "∑": "∑", "−": "−", "∗": "∗", "√": "√", "∝": "∝", "∞": "∞", "∠": "∠", "∧": "∧", "∨": "∨", "∩": "∩", "∪": "∪", "∫": "∫", "∴": "∴", "∼": "∼", "≅": "≅", "≈": "≈", "≠": "≠", "≡": "≡", "≤": "≤", "≥": "≥", "⊂": "⊂", "⊃": "⊃", "⊄": "⊄", "⊆": "⊆", "⊇": "⊇", "⊕": "⊕", "⊗": "⊗", "⊥": "⊥", "⋅": "⋅", "⌈": "⌈", "⌉": "⌉", "⌊": "⌊", "⌋": "⌋", "⟨": "〈", "⟩": "〉", "◊": "◊", "♠": "♠", "♣": "♣", "♥": "♥", "♦": "♦" }, characters: { "'": "'", " ": " ", "¡": "¡", "¢": "¢", "£": "£", "¤": "¤", "¥": "¥", "¦": "¦", "§": "§", "¨": "¨", "©": "©", "ª": "ª", "«": "«", "¬": "¬", "­": "­", "®": "®", "¯": "¯", "°": "°", "±": "±", "²": "²", "³": "³", "´": "´", "µ": "µ", "¶": "¶", "·": "·", "¸": "¸", "¹": "¹", "º": "º", "»": "»", "¼": "¼", "½": "½", "¾": "¾", "¿": "¿", "À": "À", "Á": "Á", "Â": "Â", "Ã": "Ã", "Ä": "Ä", "Å": "Å", "Æ": "Æ", "Ç": "Ç", "È": "È", "É": "É", "Ê": "Ê", "Ë": "Ë", "Ì": "Ì", "Í": "Í", "Î": "Î", "Ï": "Ï", "Ð": "Ð", "Ñ": "Ñ", "Ò": "Ò", "Ó": "Ó", "Ô": "Ô", "Õ": "Õ", "Ö": "Ö", "×": "×", "Ø": "Ø", "Ù": "Ù", "Ú": "Ú", "Û": "Û", "Ü": "Ü", "Ý": "Ý", "Þ": "Þ", "ß": "ß", "à": "à", "á": "á", "â": "â", "ã": "ã", "ä": "ä", "å": "å", "æ": "æ", "ç": "ç", "è": "è", "é": "é", "ê": "ê", "ë": "ë", "ì": "ì", "í": "í", "î": "î", "ï": "ï", "ð": "ð", "ñ": "ñ", "ò": "ò", "ó": "ó", "ô": "ô", "õ": "õ", "ö": "ö", "÷": "÷", "ø": "ø", "ù": "ù", "ú": "ú", "û": "û", "ü": "ü", "ý": "ý", "þ": "þ", "ÿ": "ÿ", '"': """, "&": "&", "<": "<", ">": ">", "Œ": "Œ", "œ": "œ", "Š": "Š", "š": "š", "Ÿ": "Ÿ", "ˆ": "ˆ", "˜": "˜", " ": " ", " ": " ", " ": " ", "‌": "‌", "‍": "‍", "‎": "‎", "‏": "‏", "–": "–", "—": "—", "‘": "‘", "’": "’", "‚": "‚", "“": "“", "”": "”", "„": "„", "†": "†", "‡": "‡", "‰": "‰", "‹": "‹", "›": "›", "€": "€", "ƒ": "ƒ", "Α": "Α", "Β": "Β", "Γ": "Γ", "Δ": "Δ", "Ε": "Ε", "Ζ": "Ζ", "Η": "Η", "Θ": "Θ", "Ι": "Ι", "Κ": "Κ", "Λ": "Λ", "Μ": "Μ", "Ν": "Ν", "Ξ": "Ξ", "Ο": "Ο", "Π": "Π", "Ρ": "Ρ", "Σ": "Σ", "Τ": "Τ", "Υ": "Υ", "Φ": "Φ", "Χ": "Χ", "Ψ": "Ψ", "Ω": "Ω", "α": "α", "β": "β", "γ": "γ", "δ": "δ", "ε": "ε", "ζ": "ζ", "η": "η", "θ": "θ", "ι": "ι", "κ": "κ", "λ": "λ", "μ": "μ", "ν": "ν", "ξ": "ξ", "ο": "ο", "π": "π", "ρ": "ρ", "ς": "ς", "σ": "σ", "τ": "τ", "υ": "υ", "φ": "φ", "χ": "χ", "ψ": "ψ", "ω": "ω", "ϑ": "ϑ", "ϒ": "ϒ", "ϖ": "ϖ", "•": "•", "…": "…", "′": "′", "″": "″", "‾": "‾", "⁄": "⁄", "℘": "℘", "ℑ": "ℑ", "ℜ": "ℜ", "™": "™", "ℵ": "ℵ", "←": "←", "↑": "↑", "→": "→", "↓": "↓", "↔": "↔", "↵": "↵", "⇐": "⇐", "⇑": "⇑", "⇒": "⇒", "⇓": "⇓", "⇔": "⇔", "∀": "∀", "∂": "∂", "∃": "∃", "∅": "∅", "∇": "∇", "∈": "∈", "∉": "∉", "∋": "∋", "∏": "∏", "∑": "∑", "−": "−", "∗": "∗", "√": "√", "∝": "∝", "∞": "∞", "∠": "∠", "∧": "∧", "∨": "∨", "∩": "∩", "∪": "∪", "∫": "∫", "∴": "∴", "∼": "∼", "≅": "≅", "≈": "≈", "≠": "≠", "≡": "≡", "≤": "≤", "≥": "≥", "⊂": "⊂", "⊃": "⊃", "⊄": "⊄", "⊆": "⊆", "⊇": "⊇", "⊕": "⊕", "⊗": "⊗", "⊥": "⊥", "⋅": "⋅", "⌈": "⌈", "⌉": "⌉", "⌊": "⌊", "⌋": "⌋", "〈": "⟨", "〉": "⟩", "◊": "◊", "♠": "♠", "♣": "♣", "♥": "♥", "♦": "♦" } }, html5: { entities: { "Æ": "Æ", "Æ": "Æ", "&": "&", "&": "&", "Á": "Á", "Á": "Á", "Ă": "Ă", "Â": "Â", "Â": "Â", "А": "А", "𝔄": "𝔄", "À": "À", "À": "À", "Α": "Α", "Ā": "Ā", "⩓": "⩓", "Ą": "Ą", "𝔸": "𝔸", "⁡": "⁡", "Å": "Å", "Å": "Å", "𝒜": "𝒜", "≔": "≔", "Ã": "Ã", "Ã": "Ã", "Ä": "Ä", "Ä": "Ä", "∖": "∖", "⫧": "⫧", "⌆": "⌆", "Б": "Б", "∵": "∵", "ℬ": "ℬ", "Β": "Β", "𝔅": "𝔅", "𝔹": "𝔹", "˘": "˘", "ℬ": "ℬ", "≎": "≎", "Ч": "Ч", "©": "©", "©": "©", "Ć": "Ć", "⋒": "⋒", "ⅅ": "ⅅ", "ℭ": "ℭ", "Č": "Č", "Ç": "Ç", "Ç": "Ç", "Ĉ": "Ĉ", "∰": "∰", "Ċ": "Ċ", "¸": "¸", "·": "·", "ℭ": "ℭ", "Χ": "Χ", "⊙": "⊙", "⊖": "⊖", "⊕": "⊕", "⊗": "⊗", "∲": "∲", "”": "”", "’": "’", "∷": "∷", "⩴": "⩴", "≡": "≡", "∯": "∯", "∮": "∮", "ℂ": "ℂ", "∐": "∐", "∳": "∳", "⨯": "⨯", "𝒞": "𝒞", "⋓": "⋓", "≍": "≍", "ⅅ": "ⅅ", "⤑": "⤑", "Ђ": "Ђ", "Ѕ": "Ѕ", "Џ": "Џ", "‡": "‡", "↡": "↡", "⫤": "⫤", "Ď": "Ď", "Д": "Д", "∇": "∇", "Δ": "Δ", "𝔇": "𝔇", "´": "´", "˙": "˙", "˝": "˝", "`": "`", "˜": "˜", "⋄": "⋄", "ⅆ": "ⅆ", "𝔻": "𝔻", "¨": "¨", "⃜": "⃜", "≐": "≐", "∯": "∯", "¨": "¨", "⇓": "⇓", "⇐": "⇐", "⇔": "⇔", "⫤": "⫤", "⟸": "⟸", "⟺": "⟺", "⟹": "⟹", "⇒": "⇒", "⊨": "⊨", "⇑": "⇑", "⇕": "⇕", "∥": "∥", "↓": "↓", "⤓": "⤓", "⇵": "⇵", "̑": "̑", "⥐": "⥐", "⥞": "⥞", "↽": "↽", "⥖": "⥖", "⥟": "⥟", "⇁": "⇁", "⥗": "⥗", "⊤": "⊤", "↧": "↧", "⇓": "⇓", "𝒟": "𝒟", "Đ": "Đ", "Ŋ": "Ŋ", "Ð": "Ð", "Ð": "Ð", "É": "É", "É": "É", "Ě": "Ě", "Ê": "Ê", "Ê": "Ê", "Э": "Э", "Ė": "Ė", "𝔈": "𝔈", "È": "È", "È": "È", "∈": "∈", "Ē": "Ē", "◻": "◻", "▫": "▫", "Ę": "Ę", "𝔼": "𝔼", "Ε": "Ε", "⩵": "⩵", "≂": "≂", "⇌": "⇌", "ℰ": "ℰ", "⩳": "⩳", "Η": "Η", "Ë": "Ë", "Ë": "Ë", "∃": "∃", "ⅇ": "ⅇ", "Ф": "Ф", "𝔉": "𝔉", "◼": "◼", "▪": "▪", "𝔽": "𝔽", "∀": "∀", "ℱ": "ℱ", "ℱ": "ℱ", "Ѓ": "Ѓ", ">": ">", ">": ">", "Γ": "Γ", "Ϝ": "Ϝ", "Ğ": "Ğ", "Ģ": "Ģ", "Ĝ": "Ĝ", "Г": "Г", "Ġ": "Ġ", "𝔊": "𝔊", "⋙": "⋙", "𝔾": "𝔾", "≥": "≥", "⋛": "⋛", "≧": "≧", "⪢": "⪢", "≷": "≷", "⩾": "⩾", "≳": "≳", "𝒢": "𝒢", "≫": "≫", "Ъ": "Ъ", "ˇ": "ˇ", "^": "^", "Ĥ": "Ĥ", "ℌ": "ℌ", "ℋ": "ℋ", "ℍ": "ℍ", "─": "─", "ℋ": "ℋ", "Ħ": "Ħ", "≎": "≎", "≏": "≏", "Е": "Е", "IJ": "IJ", "Ё": "Ё", "Í": "Í", "Í": "Í", "Î": "Î", "Î": "Î", "И": "И", "İ": "İ", "ℑ": "ℑ", "Ì": "Ì", "Ì": "Ì", "ℑ": "ℑ", "Ī": "Ī", "ⅈ": "ⅈ", "⇒": "⇒", "∬": "∬", "∫": "∫", "⋂": "⋂", "⁣": "⁣", "⁢": "⁢", "Į": "Į", "𝕀": "𝕀", "Ι": "Ι", "ℐ": "ℐ", "Ĩ": "Ĩ", "І": "І", "Ï": "Ï", "Ï": "Ï", "Ĵ": "Ĵ", "Й": "Й", "𝔍": "𝔍", "𝕁": "𝕁", "𝒥": "𝒥", "Ј": "Ј", "Є": "Є", "Х": "Х", "Ќ": "Ќ", "Κ": "Κ", "Ķ": "Ķ", "К": "К", "𝔎": "𝔎", "𝕂": "𝕂", "𝒦": "𝒦", "Љ": "Љ", "<": "<", "<": "<", "Ĺ": "Ĺ", "Λ": "Λ", "⟪": "⟪", "ℒ": "ℒ", "↞": "↞", "Ľ": "Ľ", "Ļ": "Ļ", "Л": "Л", "⟨": "⟨", "←": "←", "⇤": "⇤", "⇆": "⇆", "⌈": "⌈", "⟦": "⟦", "⥡": "⥡", "⇃": "⇃", "⥙": "⥙", "⌊": "⌊", "↔": "↔", "⥎": "⥎", "⊣": "⊣", "↤": "↤", "⥚": "⥚", "⊲": "⊲", "⧏": "⧏", "⊴": "⊴", "⥑": "⥑", "⥠": "⥠", "↿": "↿", "⥘": "⥘", "↼": "↼", "⥒": "⥒", "⇐": "⇐", "⇔": "⇔", "⋚": "⋚", "≦": "≦", "≶": "≶", "⪡": "⪡", "⩽": "⩽", "≲": "≲", "𝔏": "𝔏", "⋘": "⋘", "⇚": "⇚", "Ŀ": "Ŀ", "⟵": "⟵", "⟷": "⟷", "⟶": "⟶", "⟸": "⟸", "⟺": "⟺", "⟹": "⟹", "𝕃": "𝕃", "↙": "↙", "↘": "↘", "ℒ": "ℒ", "↰": "↰", "Ł": "Ł", "≪": "≪", "⤅": "⤅", "М": "М", " ": " ", "ℳ": "ℳ", "𝔐": "𝔐", "∓": "∓", "𝕄": "𝕄", "ℳ": "ℳ", "Μ": "Μ", "Њ": "Њ", "Ń": "Ń", "Ň": "Ň", "Ņ": "Ņ", "Н": "Н", "​": "​", "​": "​", "​": "​", "​": "​", "≫": "≫", "≪": "≪", " ": "\n", "𝔑": "𝔑", "⁠": "⁠", " ": " ", "ℕ": "ℕ", "⫬": "⫬", "≢": "≢", "≭": "≭", "∦": "∦", "∉": "∉", "≠": "≠", "≂̸": "≂̸", "∄": "∄", "≯": "≯", "≱": "≱", "≧̸": "≧̸", "≫̸": "≫̸", "≹": "≹", "⩾̸": "⩾̸", "≵": "≵", "≎̸": "≎̸", "≏̸": "≏̸", "⋪": "⋪", "⧏̸": "⧏̸", "⋬": "⋬", "≮": "≮", "≰": "≰", "≸": "≸", "≪̸": "≪̸", "⩽̸": "⩽̸", "≴": "≴", "⪢̸": "⪢̸", "⪡̸": "⪡̸", "⊀": "⊀", "⪯̸": "⪯̸", "⋠": "⋠", "∌": "∌", "⋫": "⋫", "⧐̸": "⧐̸", "⋭": "⋭", "⊏̸": "⊏̸", "⋢": "⋢", "⊐̸": "⊐̸", "⋣": "⋣", "⊂⃒": "⊂⃒", "⊈": "⊈", "⊁": "⊁", "⪰̸": "⪰̸", "⋡": "⋡", "≿̸": "≿̸", "⊃⃒": "⊃⃒", "⊉": "⊉", "≁": "≁", "≄": "≄", "≇": "≇", "≉": "≉", "∤": "∤", "𝒩": "𝒩", "Ñ": "Ñ", "Ñ": "Ñ", "Ν": "Ν", "Œ": "Œ", "Ó": "Ó", "Ó": "Ó", "Ô": "Ô", "Ô": "Ô", "О": "О", "Ő": "Ő", "𝔒": "𝔒", "Ò": "Ò", "Ò": "Ò", "Ō": "Ō", "Ω": "Ω", "Ο": "Ο", "𝕆": "𝕆", "“": "“", "‘": "‘", "⩔": "⩔", "𝒪": "𝒪", "Ø": "Ø", "Ø": "Ø", "Õ": "Õ", "Õ": "Õ", "⨷": "⨷", "Ö": "Ö", "Ö": "Ö", "‾": "‾", "⏞": "⏞", "⎴": "⎴", "⏜": "⏜", "∂": "∂", "П": "П", "𝔓": "𝔓", "Φ": "Φ", "Π": "Π", "±": "±", "ℌ": "ℌ", "ℙ": "ℙ", "⪻": "⪻", "≺": "≺", "⪯": "⪯", "≼": "≼", "≾": "≾", "″": "″", "∏": "∏", "∷": "∷", "∝": "∝", "𝒫": "𝒫", "Ψ": "Ψ", """: '"', """: '"', "𝔔": "𝔔", "ℚ": "ℚ", "𝒬": "𝒬", "⤐": "⤐", "®": "®", "®": "®", "Ŕ": "Ŕ", "⟫": "⟫", "↠": "↠", "⤖": "⤖", "Ř": "Ř", "Ŗ": "Ŗ", "Р": "Р", "ℜ": "ℜ", "∋": "∋", "⇋": "⇋", "⥯": "⥯", "ℜ": "ℜ", "Ρ": "Ρ", "⟩": "⟩", "→": "→", "⇥": "⇥", "⇄": "⇄", "⌉": "⌉", "⟧": "⟧", "⥝": "⥝", "⇂": "⇂", "⥕": "⥕", "⌋": "⌋", "⊢": "⊢", "↦": "↦", "⥛": "⥛", "⊳": "⊳", "⧐": "⧐", "⊵": "⊵", "⥏": "⥏", "⥜": "⥜", "↾": "↾", "⥔": "⥔", "⇀": "⇀", "⥓": "⥓", "⇒": "⇒", "ℝ": "ℝ", "⥰": "⥰", "⇛": "⇛", "ℛ": "ℛ", "↱": "↱", "⧴": "⧴", "Щ": "Щ", "Ш": "Ш", "Ь": "Ь", "Ś": "Ś", "⪼": "⪼", "Š": "Š", "Ş": "Ş", "Ŝ": "Ŝ", "С": "С", "𝔖": "𝔖", "↓": "↓", "←": "←", "→": "→", "↑": "↑", "Σ": "Σ", "∘": "∘", "𝕊": "𝕊", "√": "√", "□": "□", "⊓": "⊓", "⊏": "⊏", "⊑": "⊑", "⊐": "⊐", "⊒": "⊒", "⊔": "⊔", "𝒮": "𝒮", "⋆": "⋆", "⋐": "⋐", "⋐": "⋐", "⊆": "⊆", "≻": "≻", "⪰": "⪰", "≽": "≽", "≿": "≿", "∋": "∋", "∑": "∑", "⋑": "⋑", "⊃": "⊃", "⊇": "⊇", "⋑": "⋑", "Þ": "Þ", "Þ": "Þ", "™": "™", "Ћ": "Ћ", "Ц": "Ц", " ": " ", "Τ": "Τ", "Ť": "Ť", "Ţ": "Ţ", "Т": "Т", "𝔗": "𝔗", "∴": "∴", "Θ": "Θ", "  ": "  ", " ": " ", "∼": "∼", "≃": "≃", "≅": "≅", "≈": "≈", "𝕋": "𝕋", "⃛": "⃛", "𝒯": "𝒯", "Ŧ": "Ŧ", "Ú": "Ú", "Ú": "Ú", "↟": "↟", "⥉": "⥉", "Ў": "Ў", "Ŭ": "Ŭ", "Û": "Û", "Û": "Û", "У": "У", "Ű": "Ű", "𝔘": "𝔘", "Ù": "Ù", "Ù": "Ù", "Ū": "Ū", "_": "_", "⏟": "⏟", "⎵": "⎵", "⏝": "⏝", "⋃": "⋃", "⊎": "⊎", "Ų": "Ų", "𝕌": "𝕌", "↑": "↑", "⤒": "⤒", "⇅": "⇅", "↕": "↕", "⥮": "⥮", "⊥": "⊥", "↥": "↥", "⇑": "⇑", "⇕": "⇕", "↖": "↖", "↗": "↗", "ϒ": "ϒ", "Υ": "Υ", "Ů": "Ů", "𝒰": "𝒰", "Ũ": "Ũ", "Ü": "Ü", "Ü": "Ü", "⊫": "⊫", "⫫": "⫫", "В": "В", "⊩": "⊩", "⫦": "⫦", "⋁": "⋁", "‖": "‖", "‖": "‖", "∣": "∣", "|": "|", "❘": "❘", "≀": "≀", " ": " ", "𝔙": "𝔙", "𝕍": "𝕍", "𝒱": "𝒱", "⊪": "⊪", "Ŵ": "Ŵ", "⋀": "⋀", "𝔚": "𝔚", "𝕎": "𝕎", "𝒲": "𝒲", "𝔛": "𝔛", "Ξ": "Ξ", "𝕏": "𝕏", "𝒳": "𝒳", "Я": "Я", "Ї": "Ї", "Ю": "Ю", "Ý": "Ý", "Ý": "Ý", "Ŷ": "Ŷ", "Ы": "Ы", "𝔜": "𝔜", "𝕐": "𝕐", "𝒴": "𝒴", "Ÿ": "Ÿ", "Ж": "Ж", "Ź": "Ź", "Ž": "Ž", "З": "З", "Ż": "Ż", "​": "​", "Ζ": "Ζ", "ℨ": "ℨ", "ℤ": "ℤ", "𝒵": "𝒵", "á": "á", "á": "á", "ă": "ă", "∾": "∾", "∾̳": "∾̳", "∿": "∿", "â": "â", "â": "â", "´": "´", "´": "´", "а": "а", "æ": "æ", "æ": "æ", "⁡": "⁡", "𝔞": "𝔞", "à": "à", "à": "à", "ℵ": "ℵ", "ℵ": "ℵ", "α": "α", "ā": "ā", "⨿": "⨿", "&": "&", "&": "&", "∧": "∧", "⩕": "⩕", "⩜": "⩜", "⩘": "⩘", "⩚": "⩚", "∠": "∠", "⦤": "⦤", "∠": "∠", "∡": "∡", "⦨": "⦨", "⦩": "⦩", "⦪": "⦪", "⦫": "⦫", "⦬": "⦬", "⦭": "⦭", "⦮": "⦮", "⦯": "⦯", "∟": "∟", "⊾": "⊾", "⦝": "⦝", "∢": "∢", "Å": "Å", "⍼": "⍼", "ą": "ą", "𝕒": "𝕒", "≈": "≈", "⩰": "⩰", "⩯": "⩯", "≊": "≊", "≋": "≋", "'": "'", "≈": "≈", "≊": "≊", "å": "å", "å": "å", "𝒶": "𝒶", "*": "*", "≈": "≈", "≍": "≍", "ã": "ã", "ã": "ã", "ä": "ä", "ä": "ä", "∳": "∳", "⨑": "⨑", "⫭": "⫭", "≌": "≌", "϶": "϶", "‵": "‵", "∽": "∽", "⋍": "⋍", "⊽": "⊽", "⌅": "⌅", "⌅": "⌅", "⎵": "⎵", "⎶": "⎶", "≌": "≌", "б": "б", "„": "„", "∵": "∵", "∵": "∵", "⦰": "⦰", "϶": "϶", "ℬ": "ℬ", "β": "β", "ℶ": "ℶ", "≬": "≬", "𝔟": "𝔟", "⋂": "⋂", "◯": "◯", "⋃": "⋃", "⨀": "⨀", "⨁": "⨁", "⨂": "⨂", "⨆": "⨆", "★": "★", "▽": "▽", "△": "△", "⨄": "⨄", "⋁": "⋁", "⋀": "⋀", "⤍": "⤍", "⧫": "⧫", "▪": "▪", "▴": "▴", "▾": "▾", "◂": "◂", "▸": "▸", "␣": "␣", "▒": "▒", "░": "░", "▓": "▓", "█": "█", "=⃥": "=⃥", "≡⃥": "≡⃥", "⌐": "⌐", "𝕓": "𝕓", "⊥": "⊥", "⊥": "⊥", "⋈": "⋈", "╗": "╗", "╔": "╔", "╖": "╖", "╓": "╓", "═": "═", "╦": "╦", "╩": "╩", "╤": "╤", "╧": "╧", "╝": "╝", "╚": "╚", "╜": "╜", "╙": "╙", "║": "║", "╬": "╬", "╣": "╣", "╠": "╠", "╫": "╫", "╢": "╢", "╟": "╟", "⧉": "⧉", "╕": "╕", "╒": "╒", "┐": "┐", "┌": "┌", "─": "─", "╥": "╥", "╨": "╨", "┬": "┬", "┴": "┴", "⊟": "⊟", "⊞": "⊞", "⊠": "⊠", "╛": "╛", "╘": "╘", "┘": "┘", "└": "└", "│": "│", "╪": "╪", "╡": "╡", "╞": "╞", "┼": "┼", "┤": "┤", "├": "├", "‵": "‵", "˘": "˘", "¦": "¦", "¦": "¦", "𝒷": "𝒷", "⁏": "⁏", "∽": "∽", "⋍": "⋍", "\": "\\", "⧅": "⧅", "⟈": "⟈", "•": "•", "•": "•", "≎": "≎", "⪮": "⪮", "≏": "≏", "≏": "≏", "ć": "ć", "∩": "∩", "⩄": "⩄", "⩉": "⩉", "⩋": "⩋", "⩇": "⩇", "⩀": "⩀", "∩︀": "∩︀", "⁁": "⁁", "ˇ": "ˇ", "⩍": "⩍", "č": "č", "ç": "ç", "ç": "ç", "ĉ": "ĉ", "⩌": "⩌", "⩐": "⩐", "ċ": "ċ", "¸": "¸", "¸": "¸", "⦲": "⦲", "¢": "¢", "¢": "¢", "·": "·", "𝔠": "𝔠", "ч": "ч", "✓": "✓", "✓": "✓", "χ": "χ", "○": "○", "⧃": "⧃", "ˆ": "ˆ", "≗": "≗", "↺": "↺", "↻": "↻", "®": "®", "Ⓢ": "Ⓢ", "⊛": "⊛", "⊚": "⊚", "⊝": "⊝", "≗": "≗", "⨐": "⨐", "⫯": "⫯", "⧂": "⧂", "♣": "♣", "♣": "♣", ":": ":", "≔": "≔", "≔": "≔", ",": ",", "@": "@", "∁": "∁", "∘": "∘", "∁": "∁", "ℂ": "ℂ", "≅": "≅", "⩭": "⩭", "∮": "∮", "𝕔": "𝕔", "∐": "∐", "©": "©", "©": "©", "℗": "℗", "↵": "↵", "✗": "✗", "𝒸": "𝒸", "⫏": "⫏", "⫑": "⫑", "⫐": "⫐", "⫒": "⫒", "⋯": "⋯", "⤸": "⤸", "⤵": "⤵", "⋞": "⋞", "⋟": "⋟", "↶": "↶", "⤽": "⤽", "∪": "∪", "⩈": "⩈", "⩆": "⩆", "⩊": "⩊", "⊍": "⊍", "⩅": "⩅", "∪︀": "∪︀", "↷": "↷", "⤼": "⤼", "⋞": "⋞", "⋟": "⋟", "⋎": "⋎", "⋏": "⋏", "¤": "¤", "¤": "¤", "↶": "↶", "↷": "↷", "⋎": "⋎", "⋏": "⋏", "∲": "∲", "∱": "∱", "⌭": "⌭", "⇓": "⇓", "⥥": "⥥", "†": "†", "ℸ": "ℸ", "↓": "↓", "‐": "‐", "⊣": "⊣", "⤏": "⤏", "˝": "˝", "ď": "ď", "д": "д", "ⅆ": "ⅆ", "‡": "‡", "⇊": "⇊", "⩷": "⩷", "°": "°", "°": "°", "δ": "δ", "⦱": "⦱", "⥿": "⥿", "𝔡": "𝔡", "⇃": "⇃", "⇂": "⇂", "⋄": "⋄", "⋄": "⋄", "♦": "♦", "♦": "♦", "¨": "¨", "ϝ": "ϝ", "⋲": "⋲", "÷": "÷", "÷": "÷", "÷": "÷", "⋇": "⋇", "⋇": "⋇", "ђ": "ђ", "⌞": "⌞", "⌍": "⌍", "$": "$", "𝕕": "𝕕", "˙": "˙", "≐": "≐", "≑": "≑", "∸": "∸", "∔": "∔", "⊡": "⊡", "⌆": "⌆", "↓": "↓", "⇊": "⇊", "⇃": "⇃", "⇂": "⇂", "⤐": "⤐", "⌟": "⌟", "⌌": "⌌", "𝒹": "𝒹", "ѕ": "ѕ", "⧶": "⧶", "đ": "đ", "⋱": "⋱", "▿": "▿", "▾": "▾", "⇵": "⇵", "⥯": "⥯", "⦦": "⦦", "џ": "џ", "⟿": "⟿", "⩷": "⩷", "≑": "≑", "é": "é", "é": "é", "⩮": "⩮", "ě": "ě", "≖": "≖", "ê": "ê", "ê": "ê", "≕": "≕", "э": "э", "ė": "ė", "ⅇ": "ⅇ", "≒": "≒", "𝔢": "𝔢", "⪚": "⪚", "è": "è", "è": "è", "⪖": "⪖", "⪘": "⪘", "⪙": "⪙", "⏧": "⏧", "ℓ": "ℓ", "⪕": "⪕", "⪗": "⪗", "ē": "ē", "∅": "∅", "∅": "∅", "∅": "∅", " ": " ", " ": " ", " ": " ", "ŋ": "ŋ", " ": " ", "ę": "ę", "𝕖": "𝕖", "⋕": "⋕", "⧣": "⧣", "⩱": "⩱", "ε": "ε", "ε": "ε", "ϵ": "ϵ", "≖": "≖", "≕": "≕", "≂": "≂", "⪖": "⪖", "⪕": "⪕", "=": "=", "≟": "≟", "≡": "≡", "⩸": "⩸", "⧥": "⧥", "≓": "≓", "⥱": "⥱", "ℯ": "ℯ", "≐": "≐", "≂": "≂", "η": "η", "ð": "ð", "ð": "ð", "ë": "ë", "ë": "ë", "€": "€", "!": "!", "∃": "∃", "ℰ": "ℰ", "ⅇ": "ⅇ", "≒": "≒", "ф": "ф", "♀": "♀", "ffi": "ffi", "ff": "ff", "ffl": "ffl", "𝔣": "𝔣", "fi": "fi", "fj": "fj", "♭": "♭", "fl": "fl", "▱": "▱", "ƒ": "ƒ", "𝕗": "𝕗", "∀": "∀", "⋔": "⋔", "⫙": "⫙", "⨍": "⨍", "½": "½", "½": "½", "⅓": "⅓", "¼": "¼", "¼": "¼", "⅕": "⅕", "⅙": "⅙", "⅛": "⅛", "⅔": "⅔", "⅖": "⅖", "¾": "¾", "¾": "¾", "⅗": "⅗", "⅜": "⅜", "⅘": "⅘", "⅚": "⅚", "⅝": "⅝", "⅞": "⅞", "⁄": "⁄", "⌢": "⌢", "𝒻": "𝒻", "≧": "≧", "⪌": "⪌", "ǵ": "ǵ", "γ": "γ", "ϝ": "ϝ", "⪆": "⪆", "ğ": "ğ", "ĝ": "ĝ", "г": "г", "ġ": "ġ", "≥": "≥", "⋛": "⋛", "≥": "≥", "≧": "≧", "⩾": "⩾", "⩾": "⩾", "⪩": "⪩", "⪀": "⪀", "⪂": "⪂", "⪄": "⪄", "⋛︀": "⋛︀", "⪔": "⪔", "𝔤": "𝔤", "≫": "≫", "⋙": "⋙", "ℷ": "ℷ", "ѓ": "ѓ", "≷": "≷", "⪒": "⪒", "⪥": "⪥", "⪤": "⪤", "≩": "≩", "⪊": "⪊", "⪊": "⪊", "⪈": "⪈", "⪈": "⪈", "≩": "≩", "⋧": "⋧", "𝕘": "𝕘", "`": "`", "ℊ": "ℊ", "≳": "≳", "⪎": "⪎", "⪐": "⪐", ">": ">", ">": ">", "⪧": "⪧", "⩺": "⩺", "⋗": "⋗", "⦕": "⦕", "⩼": "⩼", "⪆": "⪆", "⥸": "⥸", "⋗": "⋗", "⋛": "⋛", "⪌": "⪌", "≷": "≷", "≳": "≳", "≩︀": "≩︀", "≩︀": "≩︀", "⇔": "⇔", " ": " ", "½": "½", "ℋ": "ℋ", "ъ": "ъ", "↔": "↔", "⥈": "⥈", "↭": "↭", "ℏ": "ℏ", "ĥ": "ĥ", "♥": "♥", "♥": "♥", "…": "…", "⊹": "⊹", "𝔥": "𝔥", "⤥": "⤥", "⤦": "⤦", "⇿": "⇿", "∻": "∻", "↩": "↩", "↪": "↪", "𝕙": "𝕙", "―": "―", "𝒽": "𝒽", "ℏ": "ℏ", "ħ": "ħ", "⁃": "⁃", "‐": "‐", "í": "í", "í": "í", "⁣": "⁣", "î": "î", "î": "î", "и": "и", "е": "е", "¡": "¡", "¡": "¡", "⇔": "⇔", "𝔦": "𝔦", "ì": "ì", "ì": "ì", "ⅈ": "ⅈ", "⨌": "⨌", "∭": "∭", "⧜": "⧜", "℩": "℩", "ij": "ij", "ī": "ī", "ℑ": "ℑ", "ℐ": "ℐ", "ℑ": "ℑ", "ı": "ı", "⊷": "⊷", "Ƶ": "Ƶ", "∈": "∈", "℅": "℅", "∞": "∞", "⧝": "⧝", "ı": "ı", "∫": "∫", "⊺": "⊺", "ℤ": "ℤ", "⊺": "⊺", "⨗": "⨗", "⨼": "⨼", "ё": "ё", "į": "į", "𝕚": "𝕚", "ι": "ι", "⨼": "⨼", "¿": "¿", "¿": "¿", "𝒾": "𝒾", "∈": "∈", "⋹": "⋹", "⋵": "⋵", "⋴": "⋴", "⋳": "⋳", "∈": "∈", "⁢": "⁢", "ĩ": "ĩ", "і": "і", "ï": "ï", "ï": "ï", "ĵ": "ĵ", "й": "й", "𝔧": "𝔧", "ȷ": "ȷ", "𝕛": "𝕛", "𝒿": "𝒿", "ј": "ј", "є": "є", "κ": "κ", "ϰ": "ϰ", "ķ": "ķ", "к": "к", "𝔨": "𝔨", "ĸ": "ĸ", "х": "х", "ќ": "ќ", "𝕜": "𝕜", "𝓀": "𝓀", "⇚": "⇚", "⇐": "⇐", "⤛": "⤛", "⤎": "⤎", "≦": "≦", "⪋": "⪋", "⥢": "⥢", "ĺ": "ĺ", "⦴": "⦴", "ℒ": "ℒ", "λ": "λ", "⟨": "⟨", "⦑": "⦑", "⟨": "⟨", "⪅": "⪅", "«": "«", "«": "«", "←": "←", "⇤": "⇤", "⤟": "⤟", "⤝": "⤝", "↩": "↩", "↫": "↫", "⤹": "⤹", "⥳": "⥳", "↢": "↢", "⪫": "⪫", "⤙": "⤙", "⪭": "⪭", "⪭︀": "⪭︀", "⤌": "⤌", "❲": "❲", "{": "{", "[": "[", "⦋": "⦋", "⦏": "⦏", "⦍": "⦍", "ľ": "ľ", "ļ": "ļ", "⌈": "⌈", "{": "{", "л": "л", "⤶": "⤶", "“": "“", "„": "„", "⥧": "⥧", "⥋": "⥋", "↲": "↲", "≤": "≤", "←": "←", "↢": "↢", "↽": "↽", "↼": "↼", "⇇": "⇇", "↔": "↔", "⇆": "⇆", "⇋": "⇋", "↭": "↭", "⋋": "⋋", "⋚": "⋚", "≤": "≤", "≦": "≦", "⩽": "⩽", "⩽": "⩽", "⪨": "⪨", "⩿": "⩿", "⪁": "⪁", "⪃": "⪃", "⋚︀": "⋚︀", "⪓": "⪓", "⪅": "⪅", "⋖": "⋖", "⋚": "⋚", "⪋": "⪋", "≶": "≶", "≲": "≲", "⥼": "⥼", "⌊": "⌊", "𝔩": "𝔩", "≶": "≶", "⪑": "⪑", "↽": "↽", "↼": "↼", "⥪": "⥪", "▄": "▄", "љ": "љ", "≪": "≪", "⇇": "⇇", "⌞": "⌞", "⥫": "⥫", "◺": "◺", "ŀ": "ŀ", "⎰": "⎰", "⎰": "⎰", "≨": "≨", "⪉": "⪉", "⪉": "⪉", "⪇": "⪇", "⪇": "⪇", "≨": "≨", "⋦": "⋦", "⟬": "⟬", "⇽": "⇽", "⟦": "⟦", "⟵": "⟵", "⟷": "⟷", "⟼": "⟼", "⟶": "⟶", "↫": "↫", "↬": "↬", "⦅": "⦅", "𝕝": "𝕝", "⨭": "⨭", "⨴": "⨴", "∗": "∗", "_": "_", "◊": "◊", "◊": "◊", "⧫": "⧫", "(": "(", "⦓": "⦓", "⇆": "⇆", "⌟": "⌟", "⇋": "⇋", "⥭": "⥭", "‎": "‎", "⊿": "⊿", "‹": "‹", "𝓁": "𝓁", "↰": "↰", "≲": "≲", "⪍": "⪍", "⪏": "⪏", "[": "[", "‘": "‘", "‚": "‚", "ł": "ł", "<": "<", "<": "<", "⪦": "⪦", "⩹": "⩹", "⋖": "⋖", "⋋": "⋋", "⋉": "⋉", "⥶": "⥶", "⩻": "⩻", "⦖": "⦖", "◃": "◃", "⊴": "⊴", "◂": "◂", "⥊": "⥊", "⥦": "⥦", "≨︀": "≨︀", "≨︀": "≨︀", "∺": "∺", "¯": "¯", "¯": "¯", "♂": "♂", "✠": "✠", "✠": "✠", "↦": "↦", "↦": "↦", "↧": "↧", "↤": "↤", "↥": "↥", "▮": "▮", "⨩": "⨩", "м": "м", "—": "—", "∡": "∡", "𝔪": "𝔪", "℧": "℧", "µ": "µ", "µ": "µ", "∣": "∣", "*": "*", "⫰": "⫰", "·": "·", "·": "·", "−": "−", "⊟": "⊟", "∸": "∸", "⨪": "⨪", "⫛": "⫛", "…": "…", "∓": "∓", "⊧": "⊧", "𝕞": "𝕞", "∓": "∓", "𝓂": "𝓂", "∾": "∾", "μ": "μ", "⊸": "⊸", "⊸": "⊸", "⋙̸": "⋙̸", "≫⃒": "≫⃒", "≫̸": "≫̸", "⇍": "⇍", "⇎": "⇎", "⋘̸": "⋘̸", "≪⃒": "≪⃒", "≪̸": "≪̸", "⇏": "⇏", "⊯": "⊯", "⊮": "⊮", "∇": "∇", "ń": "ń", "∠⃒": "∠⃒", "≉": "≉", "⩰̸": "⩰̸", "≋̸": "≋̸", "ʼn": "ʼn", "≉": "≉", "♮": "♮", "♮": "♮", "ℕ": "ℕ", " ": " ", " ": " ", "≎̸": "≎̸", "≏̸": "≏̸", "⩃": "⩃", "ň": "ň", "ņ": "ņ", "≇": "≇", "⩭̸": "⩭̸", "⩂": "⩂", "н": "н", "–": "–", "≠": "≠", "⇗": "⇗", "⤤": "⤤", "↗": "↗", "↗": "↗", "≐̸": "≐̸", "≢": "≢", "⤨": "⤨", "≂̸": "≂̸", "∄": "∄", "∄": "∄", "𝔫": "𝔫", "≧̸": "≧̸", "≱": "≱", "≱": "≱", "≧̸": "≧̸", "⩾̸": "⩾̸", "⩾̸": "⩾̸", "≵": "≵", "≯": "≯", "≯": "≯", "⇎": "⇎", "↮": "↮", "⫲": "⫲", "∋": "∋", "⋼": "⋼", "⋺": "⋺", "∋": "∋", "њ": "њ", "⇍": "⇍", "≦̸": "≦̸", "↚": "↚", "‥": "‥", "≰": "≰", "↚": "↚", "↮": "↮", "≰": "≰", "≦̸": "≦̸", "⩽̸": "⩽̸", "⩽̸": "⩽̸", "≮": "≮", "≴": "≴", "≮": "≮", "⋪": "⋪", "⋬": "⋬", "∤": "∤", "𝕟": "𝕟", "¬": "¬", "¬": "¬", "∉": "∉", "⋹̸": "⋹̸", "⋵̸": "⋵̸", "∉": "∉", "⋷": "⋷", "⋶": "⋶", "∌": "∌", "∌": "∌", "⋾": "⋾", "⋽": "⋽", "∦": "∦", "∦": "∦", "⫽⃥": "⫽⃥", "∂̸": "∂̸", "⨔": "⨔", "⊀": "⊀", "⋠": "⋠", "⪯̸": "⪯̸", "⊀": "⊀", "⪯̸": "⪯̸", "⇏": "⇏", "↛": "↛", "⤳̸": "⤳̸", "↝̸": "↝̸", "↛": "↛", "⋫": "⋫", "⋭": "⋭", "⊁": "⊁", "⋡": "⋡", "⪰̸": "⪰̸", "𝓃": "𝓃", "∤": "∤", "∦": "∦", "≁": "≁", "≄": "≄", "≄": "≄", "∤": "∤", "∦": "∦", "⋢": "⋢", "⋣": "⋣", "⊄": "⊄", "⫅̸": "⫅̸", "⊈": "⊈", "⊂⃒": "⊂⃒", "⊈": "⊈", "⫅̸": "⫅̸", "⊁": "⊁", "⪰̸": "⪰̸", "⊅": "⊅", "⫆̸": "⫆̸", "⊉": "⊉", "⊃⃒": "⊃⃒", "⊉": "⊉", "⫆̸": "⫆̸", "≹": "≹", "ñ": "ñ", "ñ": "ñ", "≸": "≸", "⋪": "⋪", "⋬": "⋬", "⋫": "⋫", "⋭": "⋭", "ν": "ν", "#": "#", "№": "№", " ": " ", "⊭": "⊭", "⤄": "⤄", "≍⃒": "≍⃒", "⊬": "⊬", "≥⃒": "≥⃒", ">⃒": ">⃒", "⧞": "⧞", "⤂": "⤂", "≤⃒": "≤⃒", "<⃒": "<⃒", "⊴⃒": "⊴⃒", "⤃": "⤃", "⊵⃒": "⊵⃒", "∼⃒": "∼⃒", "⇖": "⇖", "⤣": "⤣", "↖": "↖", "↖": "↖", "⤧": "⤧", "Ⓢ": "Ⓢ", "ó": "ó", "ó": "ó", "⊛": "⊛", "⊚": "⊚", "ô": "ô", "ô": "ô", "о": "о", "⊝": "⊝", "ő": "ő", "⨸": "⨸", "⊙": "⊙", "⦼": "⦼", "œ": "œ", "⦿": "⦿", "𝔬": "𝔬", "˛": "˛", "ò": "ò", "ò": "ò", "⧁": "⧁", "⦵": "⦵", "Ω": "Ω", "∮": "∮", "↺": "↺", "⦾": "⦾", "⦻": "⦻", "‾": "‾", "⧀": "⧀", "ō": "ō", "ω": "ω", "ο": "ο", "⦶": "⦶", "⊖": "⊖", "𝕠": "𝕠", "⦷": "⦷", "⦹": "⦹", "⊕": "⊕", "∨": "∨", "↻": "↻", "⩝": "⩝", "ℴ": "ℴ", "ℴ": "ℴ", "ª": "ª", "ª": "ª", "º": "º", "º": "º", "⊶": "⊶", "⩖": "⩖", "⩗": "⩗", "⩛": "⩛", "ℴ": "ℴ", "ø": "ø", "ø": "ø", "⊘": "⊘", "õ": "õ", "õ": "õ", "⊗": "⊗", "⨶": "⨶", "ö": "ö", "ö": "ö", "⌽": "⌽", "∥": "∥", "¶": "¶", "¶": "¶", "∥": "∥", "⫳": "⫳", "⫽": "⫽", "∂": "∂", "п": "п", "%": "%", ".": ".", "‰": "‰", "⊥": "⊥", "‱": "‱", "𝔭": "𝔭", "φ": "φ", "ϕ": "ϕ", "ℳ": "ℳ", "☎": "☎", "π": "π", "⋔": "⋔", "ϖ": "ϖ", "ℏ": "ℏ", "ℎ": "ℎ", "ℏ": "ℏ", "+": "+", "⨣": "⨣", "⊞": "⊞", "⨢": "⨢", "∔": "∔", "⨥": "⨥", "⩲": "⩲", "±": "±", "±": "±", "⨦": "⨦", "⨧": "⨧", "±": "±", "⨕": "⨕", "𝕡": "𝕡", "£": "£", "£": "£", "≺": "≺", "⪳": "⪳", "⪷": "⪷", "≼": "≼", "⪯": "⪯", "≺": "≺", "⪷": "⪷", "≼": "≼", "⪯": "⪯", "⪹": "⪹", "⪵": "⪵", "⋨": "⋨", "≾": "≾", "′": "′", "ℙ": "ℙ", "⪵": "⪵", "⪹": "⪹", "⋨": "⋨", "∏": "∏", "⌮": "⌮", "⌒": "⌒", "⌓": "⌓", "∝": "∝", "∝": "∝", "≾": "≾", "⊰": "⊰", "𝓅": "𝓅", "ψ": "ψ", " ": " ", "𝔮": "𝔮", "⨌": "⨌", "𝕢": "𝕢", "⁗": "⁗", "𝓆": "𝓆", "ℍ": "ℍ", "⨖": "⨖", "?": "?", "≟": "≟", """: '"', """: '"', "⇛": "⇛", "⇒": "⇒", "⤜": "⤜", "⤏": "⤏", "⥤": "⥤", "∽̱": "∽̱", "ŕ": "ŕ", "√": "√", "⦳": "⦳", "⟩": "⟩", "⦒": "⦒", "⦥": "⦥", "⟩": "⟩", "»": "»", "»": "»", "→": "→", "⥵": "⥵", "⇥": "⇥", "⤠": "⤠", "⤳": "⤳", "⤞": "⤞", "↪": "↪", "↬": "↬", "⥅": "⥅", "⥴": "⥴", "↣": "↣", "↝": "↝", "⤚": "⤚", "∶": "∶", "ℚ": "ℚ", "⤍": "⤍", "❳": "❳", "}": "}", "]": "]", "⦌": "⦌", "⦎": "⦎", "⦐": "⦐", "ř": "ř", "ŗ": "ŗ", "⌉": "⌉", "}": "}", "р": "р", "⤷": "⤷", "⥩": "⥩", "”": "”", "”": "”", "↳": "↳", "ℜ": "ℜ", "ℛ": "ℛ", "ℜ": "ℜ", "ℝ": "ℝ", "▭": "▭", "®": "®", "®": "®", "⥽": "⥽", "⌋": "⌋", "𝔯": "𝔯", "⇁": "⇁", "⇀": "⇀", "⥬": "⥬", "ρ": "ρ", "ϱ": "ϱ", "→": "→", "↣": "↣", "⇁": "⇁", "⇀": "⇀", "⇄": "⇄", "⇌": "⇌", "⇉": "⇉", "↝": "↝", "⋌": "⋌", "˚": "˚", "≓": "≓", "⇄": "⇄", "⇌": "⇌", "‏": "‏", "⎱": "⎱", "⎱": "⎱", "⫮": "⫮", "⟭": "⟭", "⇾": "⇾", "⟧": "⟧", "⦆": "⦆", "𝕣": "𝕣", "⨮": "⨮", "⨵": "⨵", ")": ")", "⦔": "⦔", "⨒": "⨒", "⇉": "⇉", "›": "›", "𝓇": "𝓇", "↱": "↱", "]": "]", "’": "’", "’": "’", "⋌": "⋌", "⋊": "⋊", "▹": "▹", "⊵": "⊵", "▸": "▸", "⧎": "⧎", "⥨": "⥨", "℞": "℞", "ś": "ś", "‚": "‚", "≻": "≻", "⪴": "⪴", "⪸": "⪸", "š": "š", "≽": "≽", "⪰": "⪰", "ş": "ş", "ŝ": "ŝ", "⪶": "⪶", "⪺": "⪺", "⋩": "⋩", "⨓": "⨓", "≿": "≿", "с": "с", "⋅": "⋅", "⊡": "⊡", "⩦": "⩦", "⇘": "⇘", "⤥": "⤥", "↘": "↘", "↘": "↘", "§": "§", "§": "§", ";": ";", "⤩": "⤩", "∖": "∖", "∖": "∖", "✶": "✶", "𝔰": "𝔰", "⌢": "⌢", "♯": "♯", "щ": "щ", "ш": "ш", "∣": "∣", "∥": "∥", "­": "­", "­": "­", "σ": "σ", "ς": "ς", "ς": "ς", "∼": "∼", "⩪": "⩪", "≃": "≃", "≃": "≃", "⪞": "⪞", "⪠": "⪠", "⪝": "⪝", "⪟": "⪟", "≆": "≆", "⨤": "⨤", "⥲": "⥲", "←": "←", "∖": "∖", "⨳": "⨳", "⧤": "⧤", "∣": "∣", "⌣": "⌣", "⪪": "⪪", "⪬": "⪬", "⪬︀": "⪬︀", "ь": "ь", "/": "/", "⧄": "⧄", "⌿": "⌿", "𝕤": "𝕤", "♠": "♠", "♠": "♠", "∥": "∥", "⊓": "⊓", "⊓︀": "⊓︀", "⊔": "⊔", "⊔︀": "⊔︀", "⊏": "⊏", "⊑": "⊑", "⊏": "⊏", "⊑": "⊑", "⊐": "⊐", "⊒": "⊒", "⊐": "⊐", "⊒": "⊒", "□": "□", "□": "□", "▪": "▪", "▪": "▪", "→": "→", "𝓈": "𝓈", "∖": "∖", "⌣": "⌣", "⋆": "⋆", "☆": "☆", "★": "★", "ϵ": "ϵ", "ϕ": "ϕ", "¯": "¯", "⊂": "⊂", "⫅": "⫅", "⪽": "⪽", "⊆": "⊆", "⫃": "⫃", "⫁": "⫁", "⫋": "⫋", "⊊": "⊊", "⪿": "⪿", "⥹": "⥹", "⊂": "⊂", "⊆": "⊆", "⫅": "⫅", "⊊": "⊊", "⫋": "⫋", "⫇": "⫇", "⫕": "⫕", "⫓": "⫓", "≻": "≻", "⪸": "⪸", "≽": "≽", "⪰": "⪰", "⪺": "⪺", "⪶": "⪶", "⋩": "⋩", "≿": "≿", "∑": "∑", "♪": "♪", "¹": "¹", "¹": "¹", "²": "²", "²": "²", "³": "³", "³": "³", "⊃": "⊃", "⫆": "⫆", "⪾": "⪾", "⫘": "⫘", "⊇": "⊇", "⫄": "⫄", "⟉": "⟉", "⫗": "⫗", "⥻": "⥻", "⫂": "⫂", "⫌": "⫌", "⊋": "⊋", "⫀": "⫀", "⊃": "⊃", "⊇": "⊇", "⫆": "⫆", "⊋": "⊋", "⫌": "⫌", "⫈": "⫈", "⫔": "⫔", "⫖": "⫖", "⇙": "⇙", "⤦": "⤦", "↙": "↙", "↙": "↙", "⤪": "⤪", "ß": "ß", "ß": "ß", "⌖": "⌖", "τ": "τ", "⎴": "⎴", "ť": "ť", "ţ": "ţ", "т": "т", "⃛": "⃛", "⌕": "⌕", "𝔱": "𝔱", "∴": "∴", "∴": "∴", "θ": "θ", "ϑ": "ϑ", "ϑ": "ϑ", "≈": "≈", "∼": "∼", " ": " ", "≈": "≈", "∼": "∼", "þ": "þ", "þ": "þ", "˜": "˜", "×": "×", "×": "×", "⊠": "⊠", "⨱": "⨱", "⨰": "⨰", "∭": "∭", "⤨": "⤨", "⊤": "⊤", "⌶": "⌶", "⫱": "⫱", "𝕥": "𝕥", "⫚": "⫚", "⤩": "⤩", "‴": "‴", "™": "™", "▵": "▵", "▿": "▿", "◃": "◃", "⊴": "⊴", "≜": "≜", "▹": "▹", "⊵": "⊵", "◬": "◬", "≜": "≜", "⨺": "⨺", "⨹": "⨹", "⧍": "⧍", "⨻": "⨻", "⏢": "⏢", "𝓉": "𝓉", "ц": "ц", "ћ": "ћ", "ŧ": "ŧ", "≬": "≬", "↞": "↞", "↠": "↠", "⇑": "⇑", "⥣": "⥣", "ú": "ú", "ú": "ú", "↑": "↑", "ў": "ў", "ŭ": "ŭ", "û": "û", "û": "û", "у": "у", "⇅": "⇅", "ű": "ű", "⥮": "⥮", "⥾": "⥾", "𝔲": "𝔲", "ù": "ù", "ù": "ù", "↿": "↿", "↾": "↾", "▀": "▀", "⌜": "⌜", "⌜": "⌜", "⌏": "⌏", "◸": "◸", "ū": "ū", "¨": "¨", "¨": "¨", "ų": "ų", "𝕦": "𝕦", "↑": "↑", "↕": "↕", "↿": "↿", "↾": "↾", "⊎": "⊎", "υ": "υ", "ϒ": "ϒ", "υ": "υ", "⇈": "⇈", "⌝": "⌝", "⌝": "⌝", "⌎": "⌎", "ů": "ů", "◹": "◹", "𝓊": "𝓊", "⋰": "⋰", "ũ": "ũ", "▵": "▵", "▴": "▴", "⇈": "⇈", "ü": "ü", "ü": "ü", "⦧": "⦧", "⇕": "⇕", "⫨": "⫨", "⫩": "⫩", "⊨": "⊨", "⦜": "⦜", "ϵ": "ϵ", "ϰ": "ϰ", "∅": "∅", "ϕ": "ϕ", "ϖ": "ϖ", "∝": "∝", "↕": "↕", "ϱ": "ϱ", "ς": "ς", "⊊︀": "⊊︀", "⫋︀": "⫋︀", "⊋︀": "⊋︀", "⫌︀": "⫌︀", "ϑ": "ϑ", "⊲": "⊲", "⊳": "⊳", "в": "в", "⊢": "⊢", "∨": "∨", "⊻": "⊻", "≚": "≚", "⋮": "⋮", "|": "|", "|": "|", "𝔳": "𝔳", "⊲": "⊲", "⊂⃒": "⊂⃒", "⊃⃒": "⊃⃒", "𝕧": "𝕧", "∝": "∝", "⊳": "⊳", "𝓋": "𝓋", "⫋︀": "⫋︀", "⊊︀": "⊊︀", "⫌︀": "⫌︀", "⊋︀": "⊋︀", "⦚": "⦚", "ŵ": "ŵ", "⩟": "⩟", "∧": "∧", "≙": "≙", "℘": "℘", "𝔴": "𝔴", "𝕨": "𝕨", "℘": "℘", "≀": "≀", "≀": "≀", "𝓌": "𝓌", "⋂": "⋂", "◯": "◯", "⋃": "⋃", "▽": "▽", "𝔵": "𝔵", "⟺": "⟺", "⟷": "⟷", "ξ": "ξ", "⟸": "⟸", "⟵": "⟵", "⟼": "⟼", "⋻": "⋻", "⨀": "⨀", "𝕩": "𝕩", "⨁": "⨁", "⨂": "⨂", "⟹": "⟹", "⟶": "⟶", "𝓍": "𝓍", "⨆": "⨆", "⨄": "⨄", "△": "△", "⋁": "⋁", "⋀": "⋀", "ý": "ý", "ý": "ý", "я": "я", "ŷ": "ŷ", "ы": "ы", "¥": "¥", "¥": "¥", "𝔶": "𝔶", "ї": "ї", "𝕪": "𝕪", "𝓎": "𝓎", "ю": "ю", "ÿ": "ÿ", "ÿ": "ÿ", "ź": "ź", "ž": "ž", "з": "з", "ż": "ż", "ℨ": "ℨ", "ζ": "ζ", "𝔷": "𝔷", "ж": "ж", "⇝": "⇝", "𝕫": "𝕫", "𝓏": "𝓏", "‍": "‍", "‌": "‌" }, characters: { "Æ": "Æ", "&": "&", "Á": "Á", "Ă": "Ă", "Â": "Â", "А": "А", "𝔄": "𝔄", "À": "À", "Α": "Α", "Ā": "Ā", "⩓": "⩓", "Ą": "Ą", "𝔸": "𝔸", "⁡": "⁡", "Å": "Å", "𝒜": "𝒜", "≔": "≔", "Ã": "Ã", "Ä": "Ä", "∖": "∖", "⫧": "⫧", "⌆": "⌆", "Б": "Б", "∵": "∵", "ℬ": "ℬ", "Β": "Β", "𝔅": "𝔅", "𝔹": "𝔹", "˘": "˘", "≎": "≎", "Ч": "Ч", "©": "©", "Ć": "Ć", "⋒": "⋒", "ⅅ": "ⅅ", "ℭ": "ℭ", "Č": "Č", "Ç": "Ç", "Ĉ": "Ĉ", "∰": "∰", "Ċ": "Ċ", "¸": "¸", "·": "·", "Χ": "Χ", "⊙": "⊙", "⊖": "⊖", "⊕": "⊕", "⊗": "⊗", "∲": "∲", "”": "”", "’": "’", "∷": "∷", "⩴": "⩴", "≡": "≡", "∯": "∯", "∮": "∮", "ℂ": "ℂ", "∐": "∐", "∳": "∳", "⨯": "⨯", "𝒞": "𝒞", "⋓": "⋓", "≍": "≍", "⤑": "⤑", "Ђ": "Ђ", "Ѕ": "Ѕ", "Џ": "Џ", "‡": "‡", "↡": "↡", "⫤": "⫤", "Ď": "Ď", "Д": "Д", "∇": "∇", "Δ": "Δ", "𝔇": "𝔇", "´": "´", "˙": "˙", "˝": "˝", "`": "`", "˜": "˜", "⋄": "⋄", "ⅆ": "ⅆ", "𝔻": "𝔻", "¨": "¨", "⃜": "⃜", "≐": "≐", "⇓": "⇓", "⇐": "⇐", "⇔": "⇔", "⟸": "⟸", "⟺": "⟺", "⟹": "⟹", "⇒": "⇒", "⊨": "⊨", "⇑": "⇑", "⇕": "⇕", "∥": "∥", "↓": "↓", "⤓": "⤓", "⇵": "⇵", "̑": "̑", "⥐": "⥐", "⥞": "⥞", "↽": "↽", "⥖": "⥖", "⥟": "⥟", "⇁": "⇁", "⥗": "⥗", "⊤": "⊤", "↧": "↧", "𝒟": "𝒟", "Đ": "Đ", "Ŋ": "Ŋ", "Ð": "Ð", "É": "É", "Ě": "Ě", "Ê": "Ê", "Э": "Э", "Ė": "Ė", "𝔈": "𝔈", "È": "È", "∈": "∈", "Ē": "Ē", "◻": "◻", "▫": "▫", "Ę": "Ę", "𝔼": "𝔼", "Ε": "Ε", "⩵": "⩵", "≂": "≂", "⇌": "⇌", "ℰ": "ℰ", "⩳": "⩳", "Η": "Η", "Ë": "Ë", "∃": "∃", "ⅇ": "ⅇ", "Ф": "Ф", "𝔉": "𝔉", "◼": "◼", "▪": "▪", "𝔽": "𝔽", "∀": "∀", "ℱ": "ℱ", "Ѓ": "Ѓ", ">": ">", "Γ": "Γ", "Ϝ": "Ϝ", "Ğ": "Ğ", "Ģ": "Ģ", "Ĝ": "Ĝ", "Г": "Г", "Ġ": "Ġ", "𝔊": "𝔊", "⋙": "⋙", "𝔾": "𝔾", "≥": "≥", "⋛": "⋛", "≧": "≧", "⪢": "⪢", "≷": "≷", "⩾": "⩾", "≳": "≳", "𝒢": "𝒢", "≫": "≫", "Ъ": "Ъ", "ˇ": "ˇ", "^": "^", "Ĥ": "Ĥ", "ℌ": "ℌ", "ℋ": "ℋ", "ℍ": "ℍ", "─": "─", "Ħ": "Ħ", "≏": "≏", "Е": "Е", "IJ": "IJ", "Ё": "Ё", "Í": "Í", "Î": "Î", "И": "И", "İ": "İ", "ℑ": "ℑ", "Ì": "Ì", "Ī": "Ī", "ⅈ": "ⅈ", "∬": "∬", "∫": "∫", "⋂": "⋂", "⁣": "⁣", "⁢": "⁢", "Į": "Į", "𝕀": "𝕀", "Ι": "Ι", "ℐ": "ℐ", "Ĩ": "Ĩ", "І": "І", "Ï": "Ï", "Ĵ": "Ĵ", "Й": "Й", "𝔍": "𝔍", "𝕁": "𝕁", "𝒥": "𝒥", "Ј": "Ј", "Є": "Є", "Х": "Х", "Ќ": "Ќ", "Κ": "Κ", "Ķ": "Ķ", "К": "К", "𝔎": "𝔎", "𝕂": "𝕂", "𝒦": "𝒦", "Љ": "Љ", "<": "<", "Ĺ": "Ĺ", "Λ": "Λ", "⟪": "⟪", "ℒ": "ℒ", "↞": "↞", "Ľ": "Ľ", "Ļ": "Ļ", "Л": "Л", "⟨": "⟨", "←": "←", "⇤": "⇤", "⇆": "⇆", "⌈": "⌈", "⟦": "⟦", "⥡": "⥡", "⇃": "⇃", "⥙": "⥙", "⌊": "⌊", "↔": "↔", "⥎": "⥎", "⊣": "⊣", "↤": "↤", "⥚": "⥚", "⊲": "⊲", "⧏": "⧏", "⊴": "⊴", "⥑": "⥑", "⥠": "⥠", "↿": "↿", "⥘": "⥘", "↼": "↼", "⥒": "⥒", "⋚": "⋚", "≦": "≦", "≶": "≶", "⪡": "⪡", "⩽": "⩽", "≲": "≲", "𝔏": "𝔏", "⋘": "⋘", "⇚": "⇚", "Ŀ": "Ŀ", "⟵": "⟵", "⟷": "⟷", "⟶": "⟶", "𝕃": "𝕃", "↙": "↙", "↘": "↘", "↰": "↰", "Ł": "Ł", "≪": "≪", "⤅": "⤅", "М": "М", " ": " ", "ℳ": "ℳ", "𝔐": "𝔐", "∓": "∓", "𝕄": "𝕄", "Μ": "Μ", "Њ": "Њ", "Ń": "Ń", "Ň": "Ň", "Ņ": "Ņ", "Н": "Н", "​": "​", "\n": " ", "𝔑": "𝔑", "⁠": "⁠", " ": " ", "ℕ": "ℕ", "⫬": "⫬", "≢": "≢", "≭": "≭", "∦": "∦", "∉": "∉", "≠": "≠", "≂̸": "≂̸", "∄": "∄", "≯": "≯", "≱": "≱", "≧̸": "≧̸", "≫̸": "≫̸", "≹": "≹", "⩾̸": "⩾̸", "≵": "≵", "≎̸": "≎̸", "≏̸": "≏̸", "⋪": "⋪", "⧏̸": "⧏̸", "⋬": "⋬", "≮": "≮", "≰": "≰", "≸": "≸", "≪̸": "≪̸", "⩽̸": "⩽̸", "≴": "≴", "⪢̸": "⪢̸", "⪡̸": "⪡̸", "⊀": "⊀", "⪯̸": "⪯̸", "⋠": "⋠", "∌": "∌", "⋫": "⋫", "⧐̸": "⧐̸", "⋭": "⋭", "⊏̸": "⊏̸", "⋢": "⋢", "⊐̸": "⊐̸", "⋣": "⋣", "⊂⃒": "⊂⃒", "⊈": "⊈", "⊁": "⊁", "⪰̸": "⪰̸", "⋡": "⋡", "≿̸": "≿̸", "⊃⃒": "⊃⃒", "⊉": "⊉", "≁": "≁", "≄": "≄", "≇": "≇", "≉": "≉", "∤": "∤", "𝒩": "𝒩", "Ñ": "Ñ", "Ν": "Ν", "Œ": "Œ", "Ó": "Ó", "Ô": "Ô", "О": "О", "Ő": "Ő", "𝔒": "𝔒", "Ò": "Ò", "Ō": "Ō", "Ω": "Ω", "Ο": "Ο", "𝕆": "𝕆", "“": "“", "‘": "‘", "⩔": "⩔", "𝒪": "𝒪", "Ø": "Ø", "Õ": "Õ", "⨷": "⨷", "Ö": "Ö", "‾": "‾", "⏞": "⏞", "⎴": "⎴", "⏜": "⏜", "∂": "∂", "П": "П", "𝔓": "𝔓", "Φ": "Φ", "Π": "Π", "±": "±", "ℙ": "ℙ", "⪻": "⪻", "≺": "≺", "⪯": "⪯", "≼": "≼", "≾": "≾", "″": "″", "∏": "∏", "∝": "∝", "𝒫": "𝒫", "Ψ": "Ψ", '"': """, "𝔔": "𝔔", "ℚ": "ℚ", "𝒬": "𝒬", "⤐": "⤐", "®": "®", "Ŕ": "Ŕ", "⟫": "⟫", "↠": "↠", "⤖": "⤖", "Ř": "Ř", "Ŗ": "Ŗ", "Р": "Р", "ℜ": "ℜ", "∋": "∋", "⇋": "⇋", "⥯": "⥯", "Ρ": "Ρ", "⟩": "⟩", "→": "→", "⇥": "⇥", "⇄": "⇄", "⌉": "⌉", "⟧": "⟧", "⥝": "⥝", "⇂": "⇂", "⥕": "⥕", "⌋": "⌋", "⊢": "⊢", "↦": "↦", "⥛": "⥛", "⊳": "⊳", "⧐": "⧐", "⊵": "⊵", "⥏": "⥏", "⥜": "⥜", "↾": "↾", "⥔": "⥔", "⇀": "⇀", "⥓": "⥓", "ℝ": "ℝ", "⥰": "⥰", "⇛": "⇛", "ℛ": "ℛ", "↱": "↱", "⧴": "⧴", "Щ": "Щ", "Ш": "Ш", "Ь": "Ь", "Ś": "Ś", "⪼": "⪼", "Š": "Š", "Ş": "Ş", "Ŝ": "Ŝ", "С": "С", "𝔖": "𝔖", "↑": "↑", "Σ": "Σ", "∘": "∘", "𝕊": "𝕊", "√": "√", "□": "□", "⊓": "⊓", "⊏": "⊏", "⊑": "⊑", "⊐": "⊐", "⊒": "⊒", "⊔": "⊔", "𝒮": "𝒮", "⋆": "⋆", "⋐": "⋐", "⊆": "⊆", "≻": "≻", "⪰": "⪰", "≽": "≽", "≿": "≿", "∑": "∑", "⋑": "⋑", "⊃": "⊃", "⊇": "⊇", "Þ": "Þ", "™": "™", "Ћ": "Ћ", "Ц": "Ц", " ": " ", "Τ": "Τ", "Ť": "Ť", "Ţ": "Ţ", "Т": "Т", "𝔗": "𝔗", "∴": "∴", "Θ": "Θ", "  ": "  ", " ": " ", "∼": "∼", "≃": "≃", "≅": "≅", "≈": "≈", "𝕋": "𝕋", "⃛": "⃛", "𝒯": "𝒯", "Ŧ": "Ŧ", "Ú": "Ú", "↟": "↟", "⥉": "⥉", "Ў": "Ў", "Ŭ": "Ŭ", "Û": "Û", "У": "У", "Ű": "Ű", "𝔘": "𝔘", "Ù": "Ù", "Ū": "Ū", _: "_", "⏟": "⏟", "⎵": "⎵", "⏝": "⏝", "⋃": "⋃", "⊎": "⊎", "Ų": "Ų", "𝕌": "𝕌", "⤒": "⤒", "⇅": "⇅", "↕": "↕", "⥮": "⥮", "⊥": "⊥", "↥": "↥", "↖": "↖", "↗": "↗", "ϒ": "ϒ", "Υ": "Υ", "Ů": "Ů", "𝒰": "𝒰", "Ũ": "Ũ", "Ü": "Ü", "⊫": "⊫", "⫫": "⫫", "В": "В", "⊩": "⊩", "⫦": "⫦", "⋁": "⋁", "‖": "‖", "∣": "∣", "|": "|", "❘": "❘", "≀": "≀", " ": " ", "𝔙": "𝔙", "𝕍": "𝕍", "𝒱": "𝒱", "⊪": "⊪", "Ŵ": "Ŵ", "⋀": "⋀", "𝔚": "𝔚", "𝕎": "𝕎", "𝒲": "𝒲", "𝔛": "𝔛", "Ξ": "Ξ", "𝕏": "𝕏", "𝒳": "𝒳", "Я": "Я", "Ї": "Ї", "Ю": "Ю", "Ý": "Ý", "Ŷ": "Ŷ", "Ы": "Ы", "𝔜": "𝔜", "𝕐": "𝕐", "𝒴": "𝒴", "Ÿ": "Ÿ", "Ж": "Ж", "Ź": "Ź", "Ž": "Ž", "З": "З", "Ż": "Ż", "Ζ": "Ζ", "ℨ": "ℨ", "ℤ": "ℤ", "𝒵": "𝒵", "á": "á", "ă": "ă", "∾": "∾", "∾̳": "∾̳", "∿": "∿", "â": "â", "а": "а", "æ": "æ", "𝔞": "𝔞", "à": "à", "ℵ": "ℵ", "α": "α", "ā": "ā", "⨿": "⨿", "∧": "∧", "⩕": "⩕", "⩜": "⩜", "⩘": "⩘", "⩚": "⩚", "∠": "∠", "⦤": "⦤", "∡": "∡", "⦨": "⦨", "⦩": "⦩", "⦪": "⦪", "⦫": "⦫", "⦬": "⦬", "⦭": "⦭", "⦮": "⦮", "⦯": "⦯", "∟": "∟", "⊾": "⊾", "⦝": "⦝", "∢": "∢", "⍼": "⍼", "ą": "ą", "𝕒": "𝕒", "⩰": "⩰", "⩯": "⩯", "≊": "≊", "≋": "≋", "'": "'", "å": "å", "𝒶": "𝒶", "*": "*", "ã": "ã", "ä": "ä", "⨑": "⨑", "⫭": "⫭", "≌": "≌", "϶": "϶", "‵": "‵", "∽": "∽", "⋍": "⋍", "⊽": "⊽", "⌅": "⌅", "⎶": "⎶", "б": "б", "„": "„", "⦰": "⦰", "β": "β", "ℶ": "ℶ", "≬": "≬", "𝔟": "𝔟", "◯": "◯", "⨀": "⨀", "⨁": "⨁", "⨂": "⨂", "⨆": "⨆", "★": "★", "▽": "▽", "△": "△", "⨄": "⨄", "⤍": "⤍", "⧫": "⧫", "▴": "▴", "▾": "▾", "◂": "◂", "▸": "▸", "␣": "␣", "▒": "▒", "░": "░", "▓": "▓", "█": "█", "=⃥": "=⃥", "≡⃥": "≡⃥", "⌐": "⌐", "𝕓": "𝕓", "⋈": "⋈", "╗": "╗", "╔": "╔", "╖": "╖", "╓": "╓", "═": "═", "╦": "╦", "╩": "╩", "╤": "╤", "╧": "╧", "╝": "╝", "╚": "╚", "╜": "╜", "╙": "╙", "║": "║", "╬": "╬", "╣": "╣", "╠": "╠", "╫": "╫", "╢": "╢", "╟": "╟", "⧉": "⧉", "╕": "╕", "╒": "╒", "┐": "┐", "┌": "┌", "╥": "╥", "╨": "╨", "┬": "┬", "┴": "┴", "⊟": "⊟", "⊞": "⊞", "⊠": "⊠", "╛": "╛", "╘": "╘", "┘": "┘", "└": "└", "│": "│", "╪": "╪", "╡": "╡", "╞": "╞", "┼": "┼", "┤": "┤", "├": "├", "¦": "¦", "𝒷": "𝒷", "⁏": "⁏", "\\": "\", "⧅": "⧅", "⟈": "⟈", "•": "•", "⪮": "⪮", "ć": "ć", "∩": "∩", "⩄": "⩄", "⩉": "⩉", "⩋": "⩋", "⩇": "⩇", "⩀": "⩀", "∩︀": "∩︀", "⁁": "⁁", "⩍": "⩍", "č": "č", "ç": "ç", "ĉ": "ĉ", "⩌": "⩌", "⩐": "⩐", "ċ": "ċ", "⦲": "⦲", "¢": "¢", "𝔠": "𝔠", "ч": "ч", "✓": "✓", "χ": "χ", "○": "○", "⧃": "⧃", "ˆ": "ˆ", "≗": "≗", "↺": "↺", "↻": "↻", "Ⓢ": "Ⓢ", "⊛": "⊛", "⊚": "⊚", "⊝": "⊝", "⨐": "⨐", "⫯": "⫯", "⧂": "⧂", "♣": "♣", ":": ":", ",": ",", "@": "@", "∁": "∁", "⩭": "⩭", "𝕔": "𝕔", "℗": "℗", "↵": "↵", "✗": "✗", "𝒸": "𝒸", "⫏": "⫏", "⫑": "⫑", "⫐": "⫐", "⫒": "⫒", "⋯": "⋯", "⤸": "⤸", "⤵": "⤵", "⋞": "⋞", "⋟": "⋟", "↶": "↶", "⤽": "⤽", "∪": "∪", "⩈": "⩈", "⩆": "⩆", "⩊": "⩊", "⊍": "⊍", "⩅": "⩅", "∪︀": "∪︀", "↷": "↷", "⤼": "⤼", "⋎": "⋎", "⋏": "⋏", "¤": "¤", "∱": "∱", "⌭": "⌭", "⥥": "⥥", "†": "†", "ℸ": "ℸ", "‐": "‐", "⤏": "⤏", "ď": "ď", "д": "д", "⇊": "⇊", "⩷": "⩷", "°": "°", "δ": "δ", "⦱": "⦱", "⥿": "⥿", "𝔡": "𝔡", "♦": "♦", "ϝ": "ϝ", "⋲": "⋲", "÷": "÷", "⋇": "⋇", "ђ": "ђ", "⌞": "⌞", "⌍": "⌍", $: "$", "𝕕": "𝕕", "≑": "≑", "∸": "∸", "∔": "∔", "⊡": "⊡", "⌟": "⌟", "⌌": "⌌", "𝒹": "𝒹", "ѕ": "ѕ", "⧶": "⧶", "đ": "đ", "⋱": "⋱", "▿": "▿", "⦦": "⦦", "џ": "џ", "⟿": "⟿", "é": "é", "⩮": "⩮", "ě": "ě", "≖": "≖", "ê": "ê", "≕": "≕", "э": "э", "ė": "ė", "≒": "≒", "𝔢": "𝔢", "⪚": "⪚", "è": "è", "⪖": "⪖", "⪘": "⪘", "⪙": "⪙", "⏧": "⏧", "ℓ": "ℓ", "⪕": "⪕", "⪗": "⪗", "ē": "ē", "∅": "∅", " ": " ", " ": " ", " ": " ", "ŋ": "ŋ", " ": " ", "ę": "ę", "𝕖": "𝕖", "⋕": "⋕", "⧣": "⧣", "⩱": "⩱", "ε": "ε", "ϵ": "ϵ", "=": "=", "≟": "≟", "⩸": "⩸", "⧥": "⧥", "≓": "≓", "⥱": "⥱", "ℯ": "ℯ", "η": "η", "ð": "ð", "ë": "ë", "€": "€", "!": "!", "ф": "ф", "♀": "♀", "ffi": "ffi", "ff": "ff", "ffl": "ffl", "𝔣": "𝔣", "fi": "fi", fj: "fj", "♭": "♭", "fl": "fl", "▱": "▱", "ƒ": "ƒ", "𝕗": "𝕗", "⋔": "⋔", "⫙": "⫙", "⨍": "⨍", "½": "½", "⅓": "⅓", "¼": "¼", "⅕": "⅕", "⅙": "⅙", "⅛": "⅛", "⅔": "⅔", "⅖": "⅖", "¾": "¾", "⅗": "⅗", "⅜": "⅜", "⅘": "⅘", "⅚": "⅚", "⅝": "⅝", "⅞": "⅞", "⁄": "⁄", "⌢": "⌢", "𝒻": "𝒻", "⪌": "⪌", "ǵ": "ǵ", "γ": "γ", "⪆": "⪆", "ğ": "ğ", "ĝ": "ĝ", "г": "г", "ġ": "ġ", "⪩": "⪩", "⪀": "⪀", "⪂": "⪂", "⪄": "⪄", "⋛︀": "⋛︀", "⪔": "⪔", "𝔤": "𝔤", "ℷ": "ℷ", "ѓ": "ѓ", "⪒": "⪒", "⪥": "⪥", "⪤": "⪤", "≩": "≩", "⪊": "⪊", "⪈": "⪈", "⋧": "⋧", "𝕘": "𝕘", "ℊ": "ℊ", "⪎": "⪎", "⪐": "⪐", "⪧": "⪧", "⩺": "⩺", "⋗": "⋗", "⦕": "⦕", "⩼": "⩼", "⥸": "⥸", "≩︀": "≩︀", "ъ": "ъ", "⥈": "⥈", "↭": "↭", "ℏ": "ℏ", "ĥ": "ĥ", "♥": "♥", "…": "…", "⊹": "⊹", "𝔥": "𝔥", "⤥": "⤥", "⤦": "⤦", "⇿": "⇿", "∻": "∻", "↩": "↩", "↪": "↪", "𝕙": "𝕙", "―": "―", "𝒽": "𝒽", "ħ": "ħ", "⁃": "⁃", "í": "í", "î": "î", "и": "и", "е": "е", "¡": "¡", "𝔦": "𝔦", "ì": "ì", "⨌": "⨌", "∭": "∭", "⧜": "⧜", "℩": "℩", "ij": "ij", "ī": "ī", "ı": "ı", "⊷": "⊷", "Ƶ": "Ƶ", "℅": "℅", "∞": "∞", "⧝": "⧝", "⊺": "⊺", "⨗": "⨗", "⨼": "⨼", "ё": "ё", "į": "į", "𝕚": "𝕚", "ι": "ι", "¿": "¿", "𝒾": "𝒾", "⋹": "⋹", "⋵": "⋵", "⋴": "⋴", "⋳": "⋳", "ĩ": "ĩ", "і": "і", "ï": "ï", "ĵ": "ĵ", "й": "й", "𝔧": "𝔧", "ȷ": "ȷ", "𝕛": "𝕛", "𝒿": "𝒿", "ј": "ј", "є": "є", "κ": "κ", "ϰ": "ϰ", "ķ": "ķ", "к": "к", "𝔨": "𝔨", "ĸ": "ĸ", "х": "х", "ќ": "ќ", "𝕜": "𝕜", "𝓀": "𝓀", "⤛": "⤛", "⤎": "⤎", "⪋": "⪋", "⥢": "⥢", "ĺ": "ĺ", "⦴": "⦴", "λ": "λ", "⦑": "⦑", "⪅": "⪅", "«": "«", "⤟": "⤟", "⤝": "⤝", "↫": "↫", "⤹": "⤹", "⥳": "⥳", "↢": "↢", "⪫": "⪫", "⤙": "⤙", "⪭": "⪭", "⪭︀": "⪭︀", "⤌": "⤌", "❲": "❲", "{": "{", "[": "[", "⦋": "⦋", "⦏": "⦏", "⦍": "⦍", "ľ": "ľ", "ļ": "ļ", "л": "л", "⤶": "⤶", "⥧": "⥧", "⥋": "⥋", "↲": "↲", "≤": "≤", "⇇": "⇇", "⋋": "⋋", "⪨": "⪨", "⩿": "⩿", "⪁": "⪁", "⪃": "⪃", "⋚︀": "⋚︀", "⪓": "⪓", "⋖": "⋖", "⥼": "⥼", "𝔩": "𝔩", "⪑": "⪑", "⥪": "⥪", "▄": "▄", "љ": "љ", "⥫": "⥫", "◺": "◺", "ŀ": "ŀ", "⎰": "⎰", "≨": "≨", "⪉": "⪉", "⪇": "⪇", "⋦": "⋦", "⟬": "⟬", "⇽": "⇽", "⟼": "⟼", "↬": "↬", "⦅": "⦅", "𝕝": "𝕝", "⨭": "⨭", "⨴": "⨴", "∗": "∗", "◊": "◊", "(": "(", "⦓": "⦓", "⥭": "⥭", "‎": "‎", "⊿": "⊿", "‹": "‹", "𝓁": "𝓁", "⪍": "⪍", "⪏": "⪏", "‚": "‚", "ł": "ł", "⪦": "⪦", "⩹": "⩹", "⋉": "⋉", "⥶": "⥶", "⩻": "⩻", "⦖": "⦖", "◃": "◃", "⥊": "⥊", "⥦": "⥦", "≨︀": "≨︀", "∺": "∺", "¯": "¯", "♂": "♂", "✠": "✠", "▮": "▮", "⨩": "⨩", "м": "м", "—": "—", "𝔪": "𝔪", "℧": "℧", "µ": "µ", "⫰": "⫰", "−": "−", "⨪": "⨪", "⫛": "⫛", "⊧": "⊧", "𝕞": "𝕞", "𝓂": "𝓂", "μ": "μ", "⊸": "⊸", "⋙̸": "⋙̸", "≫⃒": "≫⃒", "⇍": "⇍", "⇎": "⇎", "⋘̸": "⋘̸", "≪⃒": "≪⃒", "⇏": "⇏", "⊯": "⊯", "⊮": "⊮", "ń": "ń", "∠⃒": "∠⃒", "⩰̸": "⩰̸", "≋̸": "≋̸", "ʼn": "ʼn", "♮": "♮", "⩃": "⩃", "ň": "ň", "ņ": "ņ", "⩭̸": "⩭̸", "⩂": "⩂", "н": "н", "–": "–", "⇗": "⇗", "⤤": "⤤", "≐̸": "≐̸", "⤨": "⤨", "𝔫": "𝔫", "↮": "↮", "⫲": "⫲", "⋼": "⋼", "⋺": "⋺", "њ": "њ", "≦̸": "≦̸", "↚": "↚", "‥": "‥", "𝕟": "𝕟", "¬": "¬", "⋹̸": "⋹̸", "⋵̸": "⋵̸", "⋷": "⋷", "⋶": "⋶", "⋾": "⋾", "⋽": "⋽", "⫽⃥": "⫽⃥", "∂̸": "∂̸", "⨔": "⨔", "↛": "↛", "⤳̸": "⤳̸", "↝̸": "↝̸", "𝓃": "𝓃", "⊄": "⊄", "⫅̸": "⫅̸", "⊅": "⊅", "⫆̸": "⫆̸", "ñ": "ñ", "ν": "ν", "#": "#", "№": "№", " ": " ", "⊭": "⊭", "⤄": "⤄", "≍⃒": "≍⃒", "⊬": "⊬", "≥⃒": "≥⃒", ">⃒": ">⃒", "⧞": "⧞", "⤂": "⤂", "≤⃒": "≤⃒", "<⃒": "<⃒", "⊴⃒": "⊴⃒", "⤃": "⤃", "⊵⃒": "⊵⃒", "∼⃒": "∼⃒", "⇖": "⇖", "⤣": "⤣", "⤧": "⤧", "ó": "ó", "ô": "ô", "о": "о", "ő": "ő", "⨸": "⨸", "⦼": "⦼", "œ": "œ", "⦿": "⦿", "𝔬": "𝔬", "˛": "˛", "ò": "ò", "⧁": "⧁", "⦵": "⦵", "⦾": "⦾", "⦻": "⦻", "⧀": "⧀", "ō": "ō", "ω": "ω", "ο": "ο", "⦶": "⦶", "𝕠": "𝕠", "⦷": "⦷", "⦹": "⦹", "∨": "∨", "⩝": "⩝", "ℴ": "ℴ", "ª": "ª", "º": "º", "⊶": "⊶", "⩖": "⩖", "⩗": "⩗", "⩛": "⩛", "ø": "ø", "⊘": "⊘", "õ": "õ", "⨶": "⨶", "ö": "ö", "⌽": "⌽", "¶": "¶", "⫳": "⫳", "⫽": "⫽", "п": "п", "%": "%", ".": ".", "‰": "‰", "‱": "‱", "𝔭": "𝔭", "φ": "φ", "ϕ": "ϕ", "☎": "☎", "π": "π", "ϖ": "ϖ", "ℎ": "ℎ", "+": "+", "⨣": "⨣", "⨢": "⨢", "⨥": "⨥", "⩲": "⩲", "⨦": "⨦", "⨧": "⨧", "⨕": "⨕", "𝕡": "𝕡", "£": "£", "⪳": "⪳", "⪷": "⪷", "⪹": "⪹", "⪵": "⪵", "⋨": "⋨", "′": "′", "⌮": "⌮", "⌒": "⌒", "⌓": "⌓", "⊰": "⊰", "𝓅": "𝓅", "ψ": "ψ", " ": " ", "𝔮": "𝔮", "𝕢": "𝕢", "⁗": "⁗", "𝓆": "𝓆", "⨖": "⨖", "?": "?", "⤜": "⤜", "⥤": "⥤", "∽̱": "∽̱", "ŕ": "ŕ", "⦳": "⦳", "⦒": "⦒", "⦥": "⦥", "»": "»", "⥵": "⥵", "⤠": "⤠", "⤳": "⤳", "⤞": "⤞", "⥅": "⥅", "⥴": "⥴", "↣": "↣", "↝": "↝", "⤚": "⤚", "∶": "∶", "❳": "❳", "}": "}", "]": "]", "⦌": "⦌", "⦎": "⦎", "⦐": "⦐", "ř": "ř", "ŗ": "ŗ", "р": "р", "⤷": "⤷", "⥩": "⥩", "↳": "↳", "▭": "▭", "⥽": "⥽", "𝔯": "𝔯", "⥬": "⥬", "ρ": "ρ", "ϱ": "ϱ", "⇉": "⇉", "⋌": "⋌", "˚": "˚", "‏": "‏", "⎱": "⎱", "⫮": "⫮", "⟭": "⟭", "⇾": "⇾", "⦆": "⦆", "𝕣": "𝕣", "⨮": "⨮", "⨵": "⨵", ")": ")", "⦔": "⦔", "⨒": "⨒", "›": "›", "𝓇": "𝓇", "⋊": "⋊", "▹": "▹", "⧎": "⧎", "⥨": "⥨", "℞": "℞", "ś": "ś", "⪴": "⪴", "⪸": "⪸", "š": "š", "ş": "ş", "ŝ": "ŝ", "⪶": "⪶", "⪺": "⪺", "⋩": "⋩", "⨓": "⨓", "с": "с", "⋅": "⋅", "⩦": "⩦", "⇘": "⇘", "§": "§", ";": ";", "⤩": "⤩", "✶": "✶", "𝔰": "𝔰", "♯": "♯", "щ": "щ", "ш": "ш", "­": "­", "σ": "σ", "ς": "ς", "⩪": "⩪", "⪞": "⪞", "⪠": "⪠", "⪝": "⪝", "⪟": "⪟", "≆": "≆", "⨤": "⨤", "⥲": "⥲", "⨳": "⨳", "⧤": "⧤", "⌣": "⌣", "⪪": "⪪", "⪬": "⪬", "⪬︀": "⪬︀", "ь": "ь", "/": "/", "⧄": "⧄", "⌿": "⌿", "𝕤": "𝕤", "♠": "♠", "⊓︀": "⊓︀", "⊔︀": "⊔︀", "𝓈": "𝓈", "☆": "☆", "⊂": "⊂", "⫅": "⫅", "⪽": "⪽", "⫃": "⫃", "⫁": "⫁", "⫋": "⫋", "⊊": "⊊", "⪿": "⪿", "⥹": "⥹", "⫇": "⫇", "⫕": "⫕", "⫓": "⫓", "♪": "♪", "¹": "¹", "²": "²", "³": "³", "⫆": "⫆", "⪾": "⪾", "⫘": "⫘", "⫄": "⫄", "⟉": "⟉", "⫗": "⫗", "⥻": "⥻", "⫂": "⫂", "⫌": "⫌", "⊋": "⊋", "⫀": "⫀", "⫈": "⫈", "⫔": "⫔", "⫖": "⫖", "⇙": "⇙", "⤪": "⤪", "ß": "ß", "⌖": "⌖", "τ": "τ", "ť": "ť", "ţ": "ţ", "т": "т", "⌕": "⌕", "𝔱": "𝔱", "θ": "θ", "ϑ": "ϑ", "þ": "þ", "×": "×", "⨱": "⨱", "⨰": "⨰", "⌶": "⌶", "⫱": "⫱", "𝕥": "𝕥", "⫚": "⫚", "‴": "‴", "▵": "▵", "≜": "≜", "◬": "◬", "⨺": "⨺", "⨹": "⨹", "⧍": "⧍", "⨻": "⨻", "⏢": "⏢", "𝓉": "𝓉", "ц": "ц", "ћ": "ћ", "ŧ": "ŧ", "⥣": "⥣", "ú": "ú", "ў": "ў", "ŭ": "ŭ", "û": "û", "у": "у", "ű": "ű", "⥾": "⥾", "𝔲": "𝔲", "ù": "ù", "▀": "▀", "⌜": "⌜", "⌏": "⌏", "◸": "◸", "ū": "ū", "ų": "ų", "𝕦": "𝕦", "υ": "υ", "⇈": "⇈", "⌝": "⌝", "⌎": "⌎", "ů": "ů", "◹": "◹", "𝓊": "𝓊", "⋰": "⋰", "ũ": "ũ", "ü": "ü", "⦧": "⦧", "⫨": "⫨", "⫩": "⫩", "⦜": "⦜", "⊊︀": "⊊︀", "⫋︀": "⫋︀", "⊋︀": "⊋︀", "⫌︀": "⫌︀", "в": "в", "⊻": "⊻", "≚": "≚", "⋮": "⋮", "𝔳": "𝔳", "𝕧": "𝕧", "𝓋": "𝓋", "⦚": "⦚", "ŵ": "ŵ", "⩟": "⩟", "≙": "≙", "℘": "℘", "𝔴": "𝔴", "𝕨": "𝕨", "𝓌": "𝓌", "𝔵": "𝔵", "ξ": "ξ", "⋻": "⋻", "𝕩": "𝕩", "𝓍": "𝓍", "ý": "ý", "я": "я", "ŷ": "ŷ", "ы": "ы", "¥": "¥", "𝔶": "𝔶", "ї": "ї", "𝕪": "𝕪", "𝓎": "𝓎", "ю": "ю", "ÿ": "ÿ", "ź": "ź", "ž": "ž", "з": "з", "ż": "ż", "ζ": "ζ", "𝔷": "𝔷", "ж": "ж", "⇝": "⇝", "𝕫": "𝕫", "𝓏": "𝓏", "‍": "‍", "‌": "‌" } } }; + } +}); + +// node_modules/.pnpm/html-entities@2.3.2/node_modules/html-entities/lib/numeric-unicode-map.js +var require_numeric_unicode_map = __commonJS({ + "node_modules/.pnpm/html-entities@2.3.2/node_modules/html-entities/lib/numeric-unicode-map.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.numericUnicodeMap = { 0: 65533, 128: 8364, 130: 8218, 131: 402, 132: 8222, 133: 8230, 134: 8224, 135: 8225, 136: 710, 137: 8240, 138: 352, 139: 8249, 140: 338, 142: 381, 145: 8216, 146: 8217, 147: 8220, 148: 8221, 149: 8226, 150: 8211, 151: 8212, 152: 732, 153: 8482, 154: 353, 155: 8250, 156: 339, 158: 382, 159: 376 }; + } +}); + +// node_modules/.pnpm/html-entities@2.3.2/node_modules/html-entities/lib/surrogate-pairs.js +var require_surrogate_pairs = __commonJS({ + "node_modules/.pnpm/html-entities@2.3.2/node_modules/html-entities/lib/surrogate-pairs.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.fromCodePoint = String.fromCodePoint || function(astralCodePoint) { + return String.fromCharCode(Math.floor((astralCodePoint - 65536) / 1024) + 55296, (astralCodePoint - 65536) % 1024 + 56320); + }; + exports.getCodePoint = String.prototype.codePointAt ? function(input, position) { + return input.codePointAt(position); + } : function(input, position) { + return (input.charCodeAt(position) - 55296) * 1024 + input.charCodeAt(position + 1) - 56320 + 65536; + }; + exports.highSurrogateFrom = 55296; + exports.highSurrogateTo = 56319; + } +}); + +// node_modules/.pnpm/html-entities@2.3.2/node_modules/html-entities/lib/index.js +var require_lib = __commonJS({ + "node_modules/.pnpm/html-entities@2.3.2/node_modules/html-entities/lib/index.js"(exports) { + "use strict"; + var __assign = exports && exports.__assign || function() { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + var named_references_1 = require_named_references(); + var numeric_unicode_map_1 = require_numeric_unicode_map(); + var surrogate_pairs_1 = require_surrogate_pairs(); + var allNamedReferences = __assign(__assign({}, named_references_1.namedReferences), { all: named_references_1.namedReferences.html5 }); + var encodeRegExps = { + specialChars: /[<>'"&]/g, + nonAscii: /(?:[<>'"&\u0080-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g, + nonAsciiPrintable: /(?:[<>'"&\x01-\x08\x11-\x15\x17-\x1F\x7f-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g, + extensive: /(?:[\x01-\x0c\x0e-\x1f\x21-\x2c\x2e-\x2f\x3a-\x40\x5b-\x60\x7b-\x7d\x7f-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g + }; + var defaultEncodeOptions = { + mode: "specialChars", + level: "all", + numeric: "decimal" + }; + function encode(text, _a) { + var _b = _a === void 0 ? defaultEncodeOptions : _a, _c = _b.mode, mode = _c === void 0 ? "specialChars" : _c, _d = _b.numeric, numeric = _d === void 0 ? "decimal" : _d, _e = _b.level, level = _e === void 0 ? "all" : _e; + if (!text) { + return ""; + } + var encodeRegExp = encodeRegExps[mode]; + var references = allNamedReferences[level].characters; + var isHex = numeric === "hexadecimal"; + encodeRegExp.lastIndex = 0; + var _b = encodeRegExp.exec(text); + var _c; + if (_b) { + _c = ""; + var _d = 0; + do { + if (_d !== _b.index) { + _c += text.substring(_d, _b.index); + } + var _e = _b[0]; + var result_1 = references[_e]; + if (!result_1) { + var code_1 = _e.length > 1 ? surrogate_pairs_1.getCodePoint(_e, 0) : _e.charCodeAt(0); + result_1 = (isHex ? "&#x" + code_1.toString(16) : "&#" + code_1) + ";"; + } + _c += result_1; + _d = _b.index + _e.length; + } while (_b = encodeRegExp.exec(text)); + if (_d !== text.length) { + _c += text.substring(_d); + } + } else { + _c = text; + } + return _c; + } + exports.encode = encode; + var defaultDecodeOptions = { + scope: "body", + level: "all" + }; + var strict = /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+);/g; + var attribute = /&(?:#\d+|#[xX][\da-fA-F]+|[0-9a-zA-Z]+)[;=]?/g; + var baseDecodeRegExps = { + xml: { + strict, + attribute, + body: named_references_1.bodyRegExps.xml + }, + html4: { + strict, + attribute, + body: named_references_1.bodyRegExps.html4 + }, + html5: { + strict, + attribute, + body: named_references_1.bodyRegExps.html5 + } + }; + var decodeRegExps = __assign(__assign({}, baseDecodeRegExps), { all: baseDecodeRegExps.html5 }); + var fromCharCode = String.fromCharCode; + var outOfBoundsChar = fromCharCode(65533); + var defaultDecodeEntityOptions = { + level: "all" + }; + function decodeEntity(entity, _a) { + var _b = (_a === void 0 ? defaultDecodeEntityOptions : _a).level, level = _b === void 0 ? "all" : _b; + if (!entity) { + return ""; + } + var _b = entity; + var decodeEntityLastChar_1 = entity[entity.length - 1]; + if (false) { + _b = entity; + } else if (false) { + _b = entity; + } else { + var decodeResultByReference_1 = allNamedReferences[level].entities[entity]; + if (decodeResultByReference_1) { + _b = decodeResultByReference_1; + } else if (entity[0] === "&" && entity[1] === "#") { + var decodeSecondChar_1 = entity[2]; + var decodeCode_1 = decodeSecondChar_1 == "x" || decodeSecondChar_1 == "X" ? parseInt(entity.substr(3), 16) : parseInt(entity.substr(2)); + _b = decodeCode_1 >= 1114111 ? outOfBoundsChar : decodeCode_1 > 65535 ? surrogate_pairs_1.fromCodePoint(decodeCode_1) : fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode_1] || decodeCode_1); + } + } + return _b; + } + exports.decodeEntity = decodeEntity; + function decode2(text, _a) { + var decodeSecondChar_1 = _a === void 0 ? defaultDecodeOptions : _a, decodeCode_1 = decodeSecondChar_1.level, level = decodeCode_1 === void 0 ? "all" : decodeCode_1, _b = decodeSecondChar_1.scope, scope = _b === void 0 ? level === "xml" ? "strict" : "body" : _b; + if (!text) { + return ""; + } + var decodeRegExp = decodeRegExps[level][scope]; + var references = allNamedReferences[level].entities; + var isAttribute = scope === "attribute"; + var isStrict = scope === "strict"; + decodeRegExp.lastIndex = 0; + var replaceMatch_1 = decodeRegExp.exec(text); + var replaceResult_1; + if (replaceMatch_1) { + replaceResult_1 = ""; + var replaceLastIndex_1 = 0; + do { + if (replaceLastIndex_1 !== replaceMatch_1.index) { + replaceResult_1 += text.substring(replaceLastIndex_1, replaceMatch_1.index); + } + var replaceInput_1 = replaceMatch_1[0]; + var decodeResult_1 = replaceInput_1; + var decodeEntityLastChar_2 = replaceInput_1[replaceInput_1.length - 1]; + if (isAttribute && decodeEntityLastChar_2 === "=") { + decodeResult_1 = replaceInput_1; + } else if (isStrict && decodeEntityLastChar_2 !== ";") { + decodeResult_1 = replaceInput_1; + } else { + var decodeResultByReference_2 = references[replaceInput_1]; + if (decodeResultByReference_2) { + decodeResult_1 = decodeResultByReference_2; + } else if (replaceInput_1[0] === "&" && replaceInput_1[1] === "#") { + var decodeSecondChar_2 = replaceInput_1[2]; + var decodeCode_2 = decodeSecondChar_2 == "x" || decodeSecondChar_2 == "X" ? parseInt(replaceInput_1.substr(3), 16) : parseInt(replaceInput_1.substr(2)); + decodeResult_1 = decodeCode_2 >= 1114111 ? outOfBoundsChar : decodeCode_2 > 65535 ? surrogate_pairs_1.fromCodePoint(decodeCode_2) : fromCharCode(numeric_unicode_map_1.numericUnicodeMap[decodeCode_2] || decodeCode_2); + } + } + replaceResult_1 += decodeResult_1; + replaceLastIndex_1 = replaceMatch_1.index + replaceInput_1.length; + } while (replaceMatch_1 = decodeRegExp.exec(text)); + if (replaceLastIndex_1 !== text.length) { + replaceResult_1 += text.substring(replaceLastIndex_1); + } + } else { + replaceResult_1 = text; + } + return replaceResult_1; + } + exports.decode = decode2; + } +}); + +// src/main.js +var main_exports = {}; +__export(main_exports, { + getRequestOptions: () => getRequestOptions, + read: () => read, + setRequestOptions: () => setRequestOptions +}); + +// src/utils/logger.js +var import_src = __toESM(require_src(), 1); +var name = "feed-reader"; +var info = (0, import_src.default)(`${name}:info`); +var error = (0, import_src.default)(`${name}:error`); +var warning = (0, import_src.default)(`${name}:warning`); +var logger_default = { + info: (0, import_src.default)(`${name}:info`), + error: (0, import_src.default)(`${name}:error`), + warning: (0, import_src.default)(`${name}:warning`) +}; + +// src/utils/retrieve.js +var import_axios = __toESM(require_axios2(), 1); + +// src/config.js +var import_bellajs = __toESM(require_bella(), 1); +var requestOptions = { + headers: { + "user-agent": "Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0" + }, + responseType: "text", + responseEncoding: "utf8", + timeout: 6e4, + maxRedirects: 3 +}; +var getRequestOptions = () => { + return (0, import_bellajs.clone)(requestOptions); +}; +var setRequestOptions = (opts) => { + (0, import_bellajs.copies)(opts, requestOptions); +}; + +// src/utils/retrieve.js +var retrieve_default = async (url) => { + try { + const res = await import_axios.default.get(url, getRequestOptions()); + const contentType = res.headers["content-type"] || ""; + if (!contentType || !contentType.includes("xml")) { + logger_default.error(`Got invalid content-type (${contentType}) from "${url}"`); + return null; + } + const result = { + url, + xml: res.data + }; + return result; + } catch (err) { + logger_default.error(err.message || err); + return null; + } +}; + +// src/utils/xml2obj.js +var import_fxp = __toESM(require_fxp(), 1); +var xml2obj_default = (xml = "") => { + const options = { + ignoreAttributes: false + }; + info("Parsing XML data..."); + const parser = new import_fxp.XMLParser(options); + const jsonObj = parser.parse(xml); + return jsonObj; +}; + +// src/utils/parser.js +var import_html_entities = __toESM(require_lib(), 1); +var import_bellajs2 = __toESM(require_bella(), 1); + +// src/utils/purifyUrl.js +var blacklistKeys = [ + "CNDID", + "__twitter_impression", + "_hsenc", + "_openstat", + "action_object_map", + "action_ref_map", + "action_type_map", + "amp", + "fb_action_ids", + "fb_action_types", + "fb_ref", + "fb_source", + "fbclid", + "ga_campaign", + "ga_content", + "ga_medium", + "ga_place", + "ga_source", + "ga_term", + "gs_l", + "hmb_campaign", + "hmb_medium", + "hmb_source", + "mbid", + "mc_cid", + "mc_eid", + "mkt_tok", + "referrer", + "spJobID", + "spMailingID", + "spReportId", + "spUserID", + "utm_brand", + "utm_campaign", + "utm_cid", + "utm_content", + "utm_int", + "utm_mailing", + "utm_medium", + "utm_name", + "utm_place", + "utm_pubreferrer", + "utm_reader", + "utm_social", + "utm_source", + "utm_swu", + "utm_term", + "utm_userid", + "utm_viz_id", + "wt_mc_o", + "yclid", + "WT.mc_id", + "WT.mc_ev", + "WT.srch", + "pk_source", + "pk_medium", + "pk_campaign" +]; +var purifyUrl_default = (url) => { + try { + const pureUrl = new URL(url); + blacklistKeys.forEach((key) => { + pureUrl.searchParams.delete(key); + }); + return pureUrl.toString().replace(pureUrl.hash, ""); + } catch (err) { + return null; + } +}; + +// src/utils/parser.js +var toISODateString = (dstr) => { + try { + return new Date(dstr).toISOString(); + } catch (err) { + return ""; + } +}; +var toDate = (val) => { + return val ? toISODateString(val) : ""; +}; +var toText = (val) => { + const txt = (0, import_bellajs2.isObject)(val) ? val._text || val["#text"] || val._cdata || val.$t : val; + return txt ? (0, import_html_entities.decode)(String(txt).trim()) : ""; +}; +var toDesc = (val) => { + const txt = toText(val); + const stripped = (0, import_bellajs2.stripTags)(txt); + return (0, import_bellajs2.truncate)(stripped, 240); +}; +var toLink = (val) => { + const getEntryLink = (links) => { + const link = links.find((item) => { + return item.rel === "alternate"; + }); + return link ? toText(link.href) : ""; + }; + return (0, import_bellajs2.isString)(val) ? toText(val) : (0, import_bellajs2.isObject)(val) && (0, import_bellajs2.hasProperty)(val, "href") ? toText(val.href) : (0, import_bellajs2.isObject)(val) && (0, import_bellajs2.hasProperty)(val, "@_href") ? toText(val["@_href"]) : (0, import_bellajs2.isObject)(val) && (0, import_bellajs2.hasProperty)(val, "_attributes") ? toText(val._attributes.href) : (0, import_bellajs2.isArray)(val) ? toLink(val[0]) : getEntryLink(val); +}; +var nomalizeRssItem = (entry) => { + return { + title: toText(entry.title), + link: purifyUrl_default(toLink(entry.link)), + description: toDesc(entry.description), + published: toDate(toText(entry.pubDate)) + }; +}; +var nomalizeAtomItem = (entry) => { + return { + title: toText(entry.title), + link: purifyUrl_default(toLink(entry.link)), + description: toDesc(entry.summary || entry.description || entry.content), + published: toDate(toText(entry.updated || entry.published)) + }; +}; +var parseRSS = (xmldata) => { + const { rss = {} } = xmldata; + const { channel = {} } = rss; + const { + title = "", + link = "", + description = "", + generator = "", + language = "", + lastBuildDate = "", + item = [] + } = channel; + const entries = item.map(nomalizeRssItem); + return { + title, + link: purifyUrl_default(link), + description, + generator, + language, + published: toDate(lastBuildDate), + entries + }; +}; +var parseAtom = (xmldata) => { + const { feed = {} } = xmldata; + const { + title = "", + link = "", + subtitle = "", + generator = "", + language = "", + updated = "", + entry = [] + } = feed; + const entries = (0, import_bellajs2.isArray)(entry) ? entry.map(nomalizeAtomItem) : [nomalizeAtomItem(entry)]; + return { + title: toText(title), + link: purifyUrl_default(toLink(link)), + description: subtitle, + generator, + language, + published: toDate(updated), + entries + }; +}; + +// src/utils/validator.js +var import_bellajs3 = __toESM(require_bella(), 1); +var import_fast_xml_parser = __toESM(require_fxp(), 1); +var isRSS = (data = {}) => { + return (0, import_bellajs3.hasProperty)(data, "rss") && (0, import_bellajs3.hasProperty)(data.rss, "channel"); +}; +var isAtom = (data = {}) => { + return (0, import_bellajs3.hasProperty)(data, "feed") && (0, import_bellajs3.hasProperty)(data.feed, "entry"); +}; +var validate = (xml = "") => { + const result = import_fast_xml_parser.XMLValidator.validate(xml); + return result === true; +}; + +// src/main.js +var read = async (url) => { + const xmldata = await retrieve_default(url); + if (!xmldata) { + throw new Error(`Could not fetch XML content from "${url}"`); + } + const { xml } = xmldata; + if (!validate(xml)) { + throw new Error(`Failed while validating XML format from "${url}"`); + } + info("Parsing XML data..."); + const jsonObj = xml2obj_default(xml); + return isRSS(jsonObj) ? parseRSS(jsonObj) : isAtom(jsonObj) ? parseAtom(jsonObj) : null; +}; +module.exports = __toCommonJS(main_exports); +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + getRequestOptions, + read, + setRequestOptions +}); diff --git a/dist/cjs/package.json b/dist/cjs/package.json new file mode 100644 index 0000000..d749d33 --- /dev/null +++ b/dist/cjs/package.json @@ -0,0 +1,5 @@ +{ + "name": "feed-reader-cjs", + "version": "5.0.0rc1", + "main": "./feed-reader.js" +} \ No newline at end of file diff --git a/eval.js b/eval.js index e88e448..0bcb965 100755 --- a/eval.js +++ b/eval.js @@ -1,7 +1,9 @@ -const { readFileSync, writeFileSync, existsSync } = require('fs') +// eval.js -const isValidUrl = require('./src/utils/isValidUrl') -const { read } = require('./index') +import { readFileSync, writeFileSync, existsSync } from 'fs' + +import isValidUrl from './src/utils/isValidUrl.js' +import { read } from './src/main.js' const extractFromUrl = async (url) => { try { diff --git a/index.js b/index.js deleted file mode 100755 index 11b492f..0000000 --- a/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Starting app - * @ndaidong -**/ - -const main = require('./src/main') -main.version = require('./package.json').version - -module.exports = main diff --git a/package.json b/package.json index 097d97c..a9d248a 100755 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "version": "4.0.1", + "version": "5.0.0rc1", "name": "feed-reader", "description": "Load and parse ATOM/RSS data from given feed url", "homepage": "https://www.npmjs.com/package/feed-reader", @@ -8,15 +8,19 @@ "url": "git@github.com:ndaidong/feed-reader.git" }, "author": "@ndaidong", - "main": "./index.js", + "main": "./dist/cjs/feed-reader.js", + "module": "./src/main.js", + "browser": "./dist/feed-reader.min.js", + "type": "module", "types": "./index.d.ts", "engines": { - "node": ">= 10.14.2" + "node": ">= 14" }, "scripts": { - "lint": "standard .", + "lint": "standard ./src", "pretest": "npm run lint", "test": "jest --verbose --coverage=true --unhandled-rejections=strict --detectOpenHandles", + "build": "node build src/main.js", "eval": "DEBUG=*:* node eval", "reset": "node reset" }, @@ -28,9 +32,25 @@ "html-entities": "^2.3.2" }, "devDependencies": { + "@babel/plugin-transform-modules-commonjs": "^7.16.7", + "esbuild": "^0.14.10", "jest": "^27.4.5", "nock": "^13.2.1" }, + "babel": { + "env": { + "test": { + "plugins": [ + "@babel/plugin-transform-modules-commonjs" + ] + } + } + }, + "standard": { + "ignore": [ + "/dist" + ] + }, "keywords": [ "extractor", "parser", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 81be864..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,2656 +0,0 @@ -lockfileVersion: 5.3 - -specifiers: - axios: ^0.24.0 - bellajs: ^10.0.2 - debug: ^4.3.3 - fast-xml-parser: ^4.0.0-beta.8 - html-entities: ^2.3.2 - jest: ^27.4.5 - nock: ^13.2.1 - -dependencies: - axios: 0.24.0_debug@4.3.3 - bellajs: 10.0.2 - debug: 4.3.3 - fast-xml-parser: 4.0.0-beta.8 - html-entities: 2.3.2 - -devDependencies: - jest: 27.4.5 - nock: 13.2.1 - -packages: - - /@babel/code-frame/7.16.0: - resolution: {integrity: sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.16.0 - dev: true - - /@babel/compat-data/7.16.4: - resolution: {integrity: sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/core/7.16.5: - resolution: {integrity: sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.16.0 - '@babel/generator': 7.16.5 - '@babel/helper-compilation-targets': 7.16.3_@babel+core@7.16.5 - '@babel/helper-module-transforms': 7.16.5 - '@babel/helpers': 7.16.5 - '@babel/parser': 7.16.6 - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.5 - '@babel/types': 7.16.0 - convert-source-map: 1.8.0 - debug: 4.3.3 - gensync: 1.0.0-beta.2 - json5: 2.2.0 - semver: 6.3.0 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/generator/7.16.5: - resolution: {integrity: sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - jsesc: 2.5.2 - source-map: 0.5.7 - dev: true - - /@babel/helper-compilation-targets/7.16.3_@babel+core@7.16.5: - resolution: {integrity: sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.16.4 - '@babel/core': 7.16.5 - '@babel/helper-validator-option': 7.14.5 - browserslist: 4.19.1 - semver: 6.3.0 - dev: true - - /@babel/helper-environment-visitor/7.16.5: - resolution: {integrity: sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-function-name/7.16.0: - resolution: {integrity: sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-get-function-arity': 7.16.0 - '@babel/template': 7.16.0 - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-get-function-arity/7.16.0: - resolution: {integrity: sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-hoist-variables/7.16.0: - resolution: {integrity: sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-module-imports/7.16.0: - resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-module-transforms/7.16.5: - resolution: {integrity: sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.16.5 - '@babel/helper-module-imports': 7.16.0 - '@babel/helper-simple-access': 7.16.0 - '@babel/helper-split-export-declaration': 7.16.0 - '@babel/helper-validator-identifier': 7.15.7 - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.5 - '@babel/types': 7.16.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-plugin-utils/7.16.5: - resolution: {integrity: sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-simple-access/7.16.0: - resolution: {integrity: sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-split-export-declaration/7.16.0: - resolution: {integrity: sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@babel/helper-validator-identifier/7.15.7: - resolution: {integrity: sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-option/7.14.5: - resolution: {integrity: sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helpers/7.16.5: - resolution: {integrity: sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.16.0 - '@babel/traverse': 7.16.5 - '@babel/types': 7.16.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/highlight/7.16.0: - resolution: {integrity: sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.15.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - - /@babel/parser/7.16.6: - resolution: {integrity: sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dev: true - - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.16.5: - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.16.5: - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.16.5: - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.16.5: - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.16.5: - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.16.5: - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.16.5: - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.16.5: - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.16.5: - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.16.5: - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.16.5: - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.16.5: - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/plugin-syntax-typescript/7.16.5_@babel+core@7.16.5: - resolution: {integrity: sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.16.5 - '@babel/helper-plugin-utils': 7.16.5 - dev: true - - /@babel/template/7.16.0: - resolution: {integrity: sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.16.0 - '@babel/parser': 7.16.6 - '@babel/types': 7.16.0 - dev: true - - /@babel/traverse/7.16.5: - resolution: {integrity: sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.16.0 - '@babel/generator': 7.16.5 - '@babel/helper-environment-visitor': 7.16.5 - '@babel/helper-function-name': 7.16.0 - '@babel/helper-hoist-variables': 7.16.0 - '@babel/helper-split-export-declaration': 7.16.0 - '@babel/parser': 7.16.6 - '@babel/types': 7.16.0 - debug: 4.3.3 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types/7.16.0: - resolution: {integrity: sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.15.7 - to-fast-properties: 2.0.0 - dev: true - - /@bcoe/v8-coverage/0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - - /@istanbuljs/load-nyc-config/1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - dev: true - - /@istanbuljs/schema/0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true - - /@jest/console/27.4.2: - resolution: {integrity: sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - chalk: 4.1.2 - jest-message-util: 27.4.2 - jest-util: 27.4.2 - slash: 3.0.0 - dev: true - - /@jest/core/27.4.5: - resolution: {integrity: sha512-3tm/Pevmi8bDsgvo73nX8p/WPng6KWlCyScW10FPEoN1HU4pwI83tJ3TsFvi1FfzsjwUlMNEPowgb/rPau/LTQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 27.4.2 - '@jest/reporters': 27.4.5 - '@jest/test-result': 27.4.2 - '@jest/transform': 27.4.5 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.8.1 - exit: 0.1.2 - graceful-fs: 4.2.8 - jest-changed-files: 27.4.2 - jest-config: 27.4.5 - jest-haste-map: 27.4.5 - jest-message-util: 27.4.2 - jest-regex-util: 27.4.0 - jest-resolve: 27.4.5 - jest-resolve-dependencies: 27.4.5 - jest-runner: 27.4.5 - jest-runtime: 27.4.5 - jest-snapshot: 27.4.5 - jest-util: 27.4.2 - jest-validate: 27.4.2 - jest-watcher: 27.4.2 - micromatch: 4.0.4 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /@jest/environment/27.4.4: - resolution: {integrity: sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/fake-timers': 27.4.2 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - jest-mock: 27.4.2 - dev: true - - /@jest/fake-timers/27.4.2: - resolution: {integrity: sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - '@sinonjs/fake-timers': 8.1.0 - '@types/node': 17.0.4 - jest-message-util: 27.4.2 - jest-mock: 27.4.2 - jest-util: 27.4.2 - dev: true - - /@jest/globals/27.4.4: - resolution: {integrity: sha512-bqpqQhW30BOreXM8bA8t8JbOQzsq/WnPTnBl+It3UxAD9J8yxEAaBEylHx1dtBapAr/UBk8GidXbzmqnee8tYQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.4.4 - '@jest/types': 27.4.2 - expect: 27.4.2 - dev: true - - /@jest/reporters/27.4.5: - resolution: {integrity: sha512-3orsG4vi8zXuBqEoy2LbnC1kuvkg1KQUgqNxmxpQgIOQEPeV0onvZu+qDQnEoX8qTQErtqn/xzcnbpeTuOLSiA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 27.4.2 - '@jest/test-result': 27.4.2 - '@jest/transform': 27.4.5 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.0 - graceful-fs: 4.2.8 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 4.0.3 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.1 - jest-haste-map: 27.4.5 - jest-resolve: 27.4.5 - jest-util: 27.4.2 - jest-worker: 27.4.5 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 8.1.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/source-map/27.4.0: - resolution: {integrity: sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.8 - source-map: 0.6.1 - dev: true - - /@jest/test-result/27.4.2: - resolution: {integrity: sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.4.2 - '@jest/types': 27.4.2 - '@types/istanbul-lib-coverage': 2.0.3 - collect-v8-coverage: 1.0.1 - dev: true - - /@jest/test-sequencer/27.4.5: - resolution: {integrity: sha512-n5woIn/1v+FT+9hniymHPARA9upYUmfi5Pw9ewVwXCDlK4F5/Gkees9v8vdjGdAIJ2MPHLHodiajLpZZanWzEQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.4.2 - graceful-fs: 4.2.8 - jest-haste-map: 27.4.5 - jest-runtime: 27.4.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/transform/27.4.5: - resolution: {integrity: sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.16.5 - '@jest/types': 27.4.2 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.8.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.8 - jest-haste-map: 27.4.5 - jest-regex-util: 27.4.0 - jest-util: 27.4.2 - micromatch: 4.0.4 - pirates: 4.0.4 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/types/27.4.2: - resolution: {integrity: sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - '@types/istanbul-reports': 3.0.1 - '@types/node': 17.0.4 - '@types/yargs': 16.0.4 - chalk: 4.1.2 - dev: true - - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} - dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/fake-timers/8.1.0: - resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} - dependencies: - '@sinonjs/commons': 1.8.3 - dev: true - - /@tootallnate/once/1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - dev: true - - /@types/babel__core/7.1.17: - resolution: {integrity: sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==} - dependencies: - '@babel/parser': 7.16.6 - '@babel/types': 7.16.0 - '@types/babel__generator': 7.6.3 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.14.2 - dev: true - - /@types/babel__generator/7.6.3: - resolution: {integrity: sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@types/babel__template/7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} - dependencies: - '@babel/parser': 7.16.6 - '@babel/types': 7.16.0 - dev: true - - /@types/babel__traverse/7.14.2: - resolution: {integrity: sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==} - dependencies: - '@babel/types': 7.16.0 - dev: true - - /@types/graceful-fs/4.1.5: - resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} - dependencies: - '@types/node': 17.0.4 - dev: true - - /@types/istanbul-lib-coverage/2.0.3: - resolution: {integrity: sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==} - dev: true - - /@types/istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - dev: true - - /@types/istanbul-reports/3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} - dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: true - - /@types/node/17.0.4: - resolution: {integrity: sha512-6xwbrW4JJiJLgF+zNypN5wr2ykM9/jHcL7rQ8fZe2vuftggjzZeRSM4OwRc6Xk8qWjwJ99qVHo/JgOGmomWRog==} - dev: true - - /@types/prettier/2.4.2: - resolution: {integrity: sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==} - dev: true - - /@types/stack-utils/2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - dev: true - - /@types/yargs-parser/20.2.1: - resolution: {integrity: sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==} - dev: true - - /@types/yargs/16.0.4: - resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==} - dependencies: - '@types/yargs-parser': 20.2.1 - dev: true - - /abab/2.0.5: - resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} - dev: true - - /acorn-globals/6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - dev: true - - /acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /acorn/8.6.0: - resolution: {integrity: sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /agent-base/6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /ansi-escapes/4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-regex/5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles/5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - - /anymatch/3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.0 - dev: true - - /argparse/1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - - /asynckit/0.4.0: - resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} - dev: true - - /axios/0.24.0_debug@4.3.3: - resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==} - dependencies: - follow-redirects: 1.14.6_debug@4.3.3 - transitivePeerDependencies: - - debug - dev: false - - /babel-jest/27.4.5_@babel+core@7.16.5: - resolution: {integrity: sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.16.5 - '@jest/transform': 27.4.5 - '@jest/types': 27.4.2 - '@types/babel__core': 7.1.17 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.4.0_@babel+core@7.16.5 - chalk: 4.1.2 - graceful-fs: 4.2.8 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-istanbul/6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.16.5 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.1.0 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-jest-hoist/27.4.0: - resolution: {integrity: sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/template': 7.16.0 - '@babel/types': 7.16.0 - '@types/babel__core': 7.1.17 - '@types/babel__traverse': 7.14.2 - dev: true - - /babel-preset-current-node-syntax/1.0.1_@babel+core@7.16.5: - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.16.5 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.16.5 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.16.5 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.16.5 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.16.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.16.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.16.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.16.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.16.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.16.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.16.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.16.5 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.16.5 - dev: true - - /babel-preset-jest/27.4.0_@babel+core@7.16.5: - resolution: {integrity: sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.16.5 - babel-plugin-jest-hoist: 27.4.0 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.16.5 - dev: true - - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /bellajs/10.0.2: - resolution: {integrity: sha512-C3dnPgAAS1wPs7Zjt6ZekU4Zo/oyrdJL4NiWtr2+v5zyj2n8McKZeDYQ0OFOJRgbU6ZcQNXLJFPJCfjEE3pElA==} - engines: {node: '>= 10.14.2'} - dev: false - - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /braces/3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /browser-process-hrtime/1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - dev: true - - /browserslist/4.19.1: - resolution: {integrity: sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001292 - electron-to-chromium: 1.4.27 - escalade: 3.1.1 - node-releases: 2.0.1 - picocolors: 1.0.0 - dev: true - - /bser/2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - dev: true - - /buffer-from/1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true - - /callsites/3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camelcase/5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true - - /camelcase/6.2.1: - resolution: {integrity: sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==} - engines: {node: '>=10'} - dev: true - - /caniuse-lite/1.0.30001292: - resolution: {integrity: sha512-jnT4Tq0Q4ma+6nncYQVe7d73kmDmE9C3OGTx3MvW7lBM/eY1S1DZTMBON7dqV481RhNiS5OxD7k9JQvmDOTirw==} - dev: true - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /chalk/4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /char-regex/1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - - /ci-info/3.3.0: - resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} - dev: true - - /cjs-module-lexer/1.2.2: - resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} - dev: true - - /cliui/7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /co/4.6.0: - resolution: {integrity: sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /collect-v8-coverage/1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - dev: true - - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name/1.1.3: - resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - dev: true - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /combined-stream/1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: true - - /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - dev: true - - /convert-source-map/1.8.0: - resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} - dependencies: - safe-buffer: 5.1.2 - dev: true - - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /cssom/0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true - - /cssom/0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true - - /cssstyle/2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - dev: true - - /data-urls/2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true - - /debug/4.3.3: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decimal.js/10.3.1: - resolution: {integrity: sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==} - dev: true - - /dedent/0.7.0: - resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} - dev: true - - /deep-is/0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /deepmerge/4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} - dev: true - - /delayed-stream/1.0.0: - resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} - engines: {node: '>=0.4.0'} - dev: true - - /detect-newline/3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true - - /diff-sequences/27.4.0: - resolution: {integrity: sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /domexception/2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: true - - /electron-to-chromium/1.4.27: - resolution: {integrity: sha512-uZ95szi3zUbzRDx1zx/xnsCG+2xgZyy57pDOeaeO4r8zx5Dqe8Jv1ti8cunvBwJHVI5LzPuw8umKwZb3WKYxSQ==} - dev: true - - /emittery/0.8.1: - resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} - engines: {node: '>=10'} - dev: true - - /emoji-regex/8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} - engines: {node: '>=0.8.0'} - dev: true - - /escape-string-regexp/2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true - - /escodegen/2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - - /esprima/4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /estraverse/5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /esutils/2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.6 - strip-final-newline: 2.0.0 - dev: true - - /exit/0.1.2: - resolution: {integrity: sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=} - engines: {node: '>= 0.8.0'} - dev: true - - /expect/27.4.2: - resolution: {integrity: sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - ansi-styles: 5.2.0 - jest-get-type: 27.4.0 - jest-matcher-utils: 27.4.2 - jest-message-util: 27.4.2 - jest-regex-util: 27.4.0 - dev: true - - /fast-json-stable-stringify/2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} - dev: true - - /fast-xml-parser/4.0.0-beta.8: - resolution: {integrity: sha512-2QEZ/WRt6mfrguLsluhvpTWNxdKYgvdZx3dA+Tnx0pUmlEA4ZWt32qSmA1sR1jXscFozHIKqZrikUeiCYSe3ow==} - hasBin: true - dependencies: - strnum: 1.0.5 - dev: false - - /fb-watchman/2.0.1: - resolution: {integrity: sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==} - dependencies: - bser: 2.1.1 - dev: true - - /fill-range/7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true - - /follow-redirects/1.14.6_debug@4.3.3: - resolution: {integrity: sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dependencies: - debug: 4.3.3 - dev: false - - /form-data/3.0.1: - resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.34 - dev: true - - /fs.realpath/1.0.0: - resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} - dev: true - - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - - /gensync/1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: true - - /get-caller-file/2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true - - /get-package-type/0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true - - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /glob/7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.0.4 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - - /graceful-fs/4.2.8: - resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} - dev: true - - /has-flag/3.0.0: - resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} - engines: {node: '>=4'} - dev: true - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - - /html-encoding-sniffer/2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - dev: true - - /html-entities/2.3.2: - resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==} - dev: false - - /html-escaper/2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - - /http-proxy-agent/4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /https-proxy-agent/5.0.0: - resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} - engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.3 - transitivePeerDependencies: - - supports-color - dev: true - - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /iconv-lite/0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - - /import-local/3.0.3: - resolution: {integrity: sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - - /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} - engines: {node: '>=0.8.19'} - dev: true - - /inflight/1.0.6: - resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: true - - /is-core-module/2.8.0: - resolution: {integrity: sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==} - dependencies: - has: 1.0.3 - dev: true - - /is-fullwidth-code-point/3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-generator-fn/2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true - - /is-number/7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-potential-custom-element-name/1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true - - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - - /is-typedarray/1.0.0: - resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} - dev: true - - /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - dev: true - - /istanbul-lib-coverage/3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} - dev: true - - /istanbul-lib-instrument/4.0.3: - resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.16.5 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-instrument/5.1.0: - resolution: {integrity: sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.16.5 - '@babel/parser': 7.16.6 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-lib-report/3.0.0: - resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} - engines: {node: '>=8'} - dependencies: - istanbul-lib-coverage: 3.2.0 - make-dir: 3.1.0 - supports-color: 7.2.0 - dev: true - - /istanbul-lib-source-maps/4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.3 - istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /istanbul-reports/3.1.1: - resolution: {integrity: sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==} - engines: {node: '>=8'} - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.0 - dev: true - - /jest-changed-files/27.4.2: - resolution: {integrity: sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - execa: 5.1.1 - throat: 6.0.1 - dev: true - - /jest-circus/27.4.5: - resolution: {integrity: sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.4.4 - '@jest/test-result': 27.4.2 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - chalk: 4.1.2 - co: 4.6.0 - dedent: 0.7.0 - expect: 27.4.2 - is-generator-fn: 2.1.0 - jest-each: 27.4.2 - jest-matcher-utils: 27.4.2 - jest-message-util: 27.4.2 - jest-runtime: 27.4.5 - jest-snapshot: 27.4.5 - jest-util: 27.4.2 - pretty-format: 27.4.2 - slash: 3.0.0 - stack-utils: 2.0.5 - throat: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-cli/27.4.5: - resolution: {integrity: sha512-hrky3DSgE0u7sQxaCL7bdebEPHx5QzYmrGuUjaPLmPE8jx5adtvGuOlRspvMoVLTTDOHRnZDoRLYJuA+VCI7Hg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.4.5 - '@jest/test-result': 27.4.2 - '@jest/types': 27.4.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.8 - import-local: 3.0.3 - jest-config: 27.4.5 - jest-util: 27.4.2 - jest-validate: 27.4.2 - prompts: 2.4.2 - yargs: 16.2.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /jest-config/27.4.5: - resolution: {integrity: sha512-t+STVJtPt+fpqQ8GBw850NtSQbnDOw/UzdPfzDaHQ48/AylQlW7LHj3dH+ndxhC1UxJ0Q3qkq7IH+nM1skwTwA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.16.5 - '@jest/test-sequencer': 27.4.5 - '@jest/types': 27.4.2 - babel-jest: 27.4.5_@babel+core@7.16.5 - chalk: 4.1.2 - ci-info: 3.3.0 - deepmerge: 4.2.2 - glob: 7.2.0 - graceful-fs: 4.2.8 - jest-circus: 27.4.5 - jest-environment-jsdom: 27.4.4 - jest-environment-node: 27.4.4 - jest-get-type: 27.4.0 - jest-jasmine2: 27.4.5 - jest-regex-util: 27.4.0 - jest-resolve: 27.4.5 - jest-runner: 27.4.5 - jest-util: 27.4.2 - jest-validate: 27.4.2 - micromatch: 4.0.4 - pretty-format: 27.4.2 - slash: 3.0.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-diff/27.4.2: - resolution: {integrity: sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 27.4.0 - jest-get-type: 27.4.0 - pretty-format: 27.4.2 - dev: true - - /jest-docblock/27.4.0: - resolution: {integrity: sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each/27.4.2: - resolution: {integrity: sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - chalk: 4.1.2 - jest-get-type: 27.4.0 - jest-util: 27.4.2 - pretty-format: 27.4.2 - dev: true - - /jest-environment-jsdom/27.4.4: - resolution: {integrity: sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.4.4 - '@jest/fake-timers': 27.4.2 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - jest-mock: 27.4.2 - jest-util: 27.4.2 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node/27.4.4: - resolution: {integrity: sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.4.4 - '@jest/fake-timers': 27.4.2 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - jest-mock: 27.4.2 - jest-util: 27.4.2 - dev: true - - /jest-get-type/27.4.0: - resolution: {integrity: sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-haste-map/27.4.5: - resolution: {integrity: sha512-oJm1b5qhhPs78K24EDGifWS0dELYxnoBiDhatT/FThgB9yxqUm5F6li3Pv+Q+apMBmmPNzOBnZ7ZxWMB1Leq1Q==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - '@types/graceful-fs': 4.1.5 - '@types/node': 17.0.4 - anymatch: 3.1.2 - fb-watchman: 2.0.1 - graceful-fs: 4.2.8 - jest-regex-util: 27.4.0 - jest-serializer: 27.4.0 - jest-util: 27.4.2 - jest-worker: 27.4.5 - micromatch: 4.0.4 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /jest-jasmine2/27.4.5: - resolution: {integrity: sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/traverse': 7.16.5 - '@jest/environment': 27.4.4 - '@jest/source-map': 27.4.0 - '@jest/test-result': 27.4.2 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - chalk: 4.1.2 - co: 4.6.0 - expect: 27.4.2 - is-generator-fn: 2.1.0 - jest-each: 27.4.2 - jest-matcher-utils: 27.4.2 - jest-message-util: 27.4.2 - jest-runtime: 27.4.5 - jest-snapshot: 27.4.5 - jest-util: 27.4.2 - pretty-format: 27.4.2 - throat: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-leak-detector/27.4.2: - resolution: {integrity: sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - jest-get-type: 27.4.0 - pretty-format: 27.4.2 - dev: true - - /jest-matcher-utils/27.4.2: - resolution: {integrity: sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 27.4.2 - jest-get-type: 27.4.0 - pretty-format: 27.4.2 - dev: true - - /jest-message-util/27.4.2: - resolution: {integrity: sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': 7.16.0 - '@jest/types': 27.4.2 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.8 - micromatch: 4.0.4 - pretty-format: 27.4.2 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - - /jest-mock/27.4.2: - resolution: {integrity: sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - dev: true - - /jest-pnp-resolver/1.2.2_jest-resolve@27.4.5: - resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 27.4.5 - dev: true - - /jest-regex-util/27.4.0: - resolution: {integrity: sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dev: true - - /jest-resolve-dependencies/27.4.5: - resolution: {integrity: sha512-elEVvkvRK51y037NshtEkEnukMBWvlPzZHiL847OrIljJ8yIsujD2GXRPqDXC4rEVKbcdsy7W0FxoZb4WmEs7w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - jest-regex-util: 27.4.0 - jest-snapshot: 27.4.5 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve/27.4.5: - resolution: {integrity: sha512-xU3z1BuOz/hUhVUL+918KqUgK+skqOuUsAi7A+iwoUldK6/+PW+utK8l8cxIWT9AW7IAhGNXjSAh1UYmjULZZw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - chalk: 4.1.2 - graceful-fs: 4.2.8 - jest-haste-map: 27.4.5 - jest-pnp-resolver: 1.2.2_jest-resolve@27.4.5 - jest-util: 27.4.2 - jest-validate: 27.4.2 - resolve: 1.20.0 - resolve.exports: 1.1.0 - slash: 3.0.0 - dev: true - - /jest-runner/27.4.5: - resolution: {integrity: sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.4.2 - '@jest/environment': 27.4.4 - '@jest/test-result': 27.4.2 - '@jest/transform': 27.4.5 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - chalk: 4.1.2 - emittery: 0.8.1 - exit: 0.1.2 - graceful-fs: 4.2.8 - jest-docblock: 27.4.0 - jest-environment-jsdom: 27.4.4 - jest-environment-node: 27.4.4 - jest-haste-map: 27.4.5 - jest-leak-detector: 27.4.2 - jest-message-util: 27.4.2 - jest-resolve: 27.4.5 - jest-runtime: 27.4.5 - jest-util: 27.4.2 - jest-worker: 27.4.5 - source-map-support: 0.5.21 - throat: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-runtime/27.4.5: - resolution: {integrity: sha512-CIYqwuJQXHQtPd/idgrx4zgJ6iCb6uBjQq1RSAGQrw2S8XifDmoM1Ot8NRd80ooAm+ZNdHVwsktIMGlA1F1FAQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.4.2 - '@jest/environment': 27.4.4 - '@jest/globals': 27.4.4 - '@jest/source-map': 27.4.0 - '@jest/test-result': 27.4.2 - '@jest/transform': 27.4.5 - '@jest/types': 27.4.2 - '@types/yargs': 16.0.4 - chalk: 4.1.2 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - execa: 5.1.1 - exit: 0.1.2 - glob: 7.2.0 - graceful-fs: 4.2.8 - jest-haste-map: 27.4.5 - jest-message-util: 27.4.2 - jest-mock: 27.4.2 - jest-regex-util: 27.4.0 - jest-resolve: 27.4.5 - jest-snapshot: 27.4.5 - jest-util: 27.4.2 - jest-validate: 27.4.2 - slash: 3.0.0 - strip-bom: 4.0.0 - yargs: 16.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-serializer/27.4.0: - resolution: {integrity: sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/node': 17.0.4 - graceful-fs: 4.2.8 - dev: true - - /jest-snapshot/27.4.5: - resolution: {integrity: sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.16.5 - '@babel/generator': 7.16.5 - '@babel/parser': 7.16.6 - '@babel/plugin-syntax-typescript': 7.16.5_@babel+core@7.16.5 - '@babel/traverse': 7.16.5 - '@babel/types': 7.16.0 - '@jest/transform': 27.4.5 - '@jest/types': 27.4.2 - '@types/babel__traverse': 7.14.2 - '@types/prettier': 2.4.2 - babel-preset-current-node-syntax: 1.0.1_@babel+core@7.16.5 - chalk: 4.1.2 - expect: 27.4.2 - graceful-fs: 4.2.8 - jest-diff: 27.4.2 - jest-get-type: 27.4.0 - jest-haste-map: 27.4.5 - jest-matcher-utils: 27.4.2 - jest-message-util: 27.4.2 - jest-resolve: 27.4.5 - jest-util: 27.4.2 - natural-compare: 1.4.0 - pretty-format: 27.4.2 - semver: 7.3.5 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util/27.4.2: - resolution: {integrity: sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - chalk: 4.1.2 - ci-info: 3.3.0 - graceful-fs: 4.2.8 - picomatch: 2.3.0 - dev: true - - /jest-validate/27.4.2: - resolution: {integrity: sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - camelcase: 6.2.1 - chalk: 4.1.2 - jest-get-type: 27.4.0 - leven: 3.1.0 - pretty-format: 27.4.2 - dev: true - - /jest-watcher/27.4.2: - resolution: {integrity: sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.4.2 - '@jest/types': 27.4.2 - '@types/node': 17.0.4 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - jest-util: 27.4.2 - string-length: 4.0.2 - dev: true - - /jest-worker/27.4.5: - resolution: {integrity: sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==} - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 17.0.4 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - - /jest/27.4.5: - resolution: {integrity: sha512-uT5MiVN3Jppt314kidCk47MYIRilJjA/l2mxwiuzzxGUeJIvA8/pDaJOAX5KWvjAo7SCydcW0/4WEtgbLMiJkg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 27.4.5 - import-local: 3.0.3 - jest-cli: 27.4.5 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - - /js-tokens/4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - dev: true - - /js-yaml/3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - - /jsdom/16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.5 - acorn: 8.6.0 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.3.1 - domexception: 2.0.1 - escodegen: 2.0.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.0 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.0 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.0.0 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.5.6 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /json-stringify-safe/5.0.1: - resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} - dev: true - - /json5/2.2.0: - resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} - engines: {node: '>=6'} - hasBin: true - dependencies: - minimist: 1.2.5 - dev: true - - /kleur/3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - - /leven/3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - - /levn/0.3.0: - resolution: {integrity: sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - - /lodash.set/4.3.2: - resolution: {integrity: sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=} - dev: true - - /lodash/4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - - /lru-cache/6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /make-dir/3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} - dependencies: - semver: 6.3.0 - dev: true - - /makeerror/1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - dependencies: - tmpl: 1.0.5 - dev: true - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /micromatch/4.0.4: - resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.0 - dev: true - - /mime-db/1.51.0: - resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} - engines: {node: '>= 0.6'} - dev: true - - /mime-types/2.1.34: - resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.51.0 - dev: true - - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - - /minimatch/3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimist/1.2.5: - resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} - dev: true - - /ms/2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} - dev: true - - /nock/13.2.1: - resolution: {integrity: sha512-CoHAabbqq/xZEknubuyQMjq6Lfi5b7RtK6SoNK6m40lebGp3yiMagWtIoYaw2s9sISD7wPuCfwFpivVHX/35RA==} - engines: {node: '>= 10.13'} - dependencies: - debug: 4.3.3 - json-stringify-safe: 5.0.1 - lodash.set: 4.3.2 - propagate: 2.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /node-int64/0.4.0: - resolution: {integrity: sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=} - dev: true - - /node-releases/2.0.1: - resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==} - dev: true - - /normalize-path/3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /nwsapi/2.2.0: - resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==} - dev: true - - /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} - dependencies: - wrappy: 1.0.2 - dev: true - - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - - /optionator/0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - dev: true - - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - - /parse5/6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true - - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute/1.0.1: - resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} - engines: {node: '>=0.10.0'} - dev: true - - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-parse/1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /picocolors/1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - - /picomatch/2.3.0: - resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} - engines: {node: '>=8.6'} - dev: true - - /pirates/4.0.4: - resolution: {integrity: sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==} - engines: {node: '>= 6'} - dev: true - - /pkg-dir/4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - dev: true - - /prelude-ls/1.1.2: - resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=} - engines: {node: '>= 0.8.0'} - dev: true - - /pretty-format/27.4.2: - resolution: {integrity: sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.4.2 - ansi-regex: 5.0.1 - ansi-styles: 5.2.0 - react-is: 17.0.2 - dev: true - - /prompts/2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - - /propagate/2.0.1: - resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} - engines: {node: '>= 8'} - dev: true - - /psl/1.8.0: - resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==} - dev: true - - /punycode/2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} - engines: {node: '>=6'} - dev: true - - /react-is/17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - dev: true - - /require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} - engines: {node: '>=0.10.0'} - dev: true - - /resolve-cwd/3.0.0: - resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true - - /resolve.exports/1.1.0: - resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} - engines: {node: '>=10'} - dev: true - - /resolve/1.20.0: - resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} - dependencies: - is-core-module: 2.8.0 - path-parse: 1.0.7 - dev: true - - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.0 - dev: true - - /safe-buffer/5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: true - - /safer-buffer/2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - dev: true - - /saxes/5.0.1: - resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} - engines: {node: '>=10'} - dependencies: - xmlchars: 2.2.0 - dev: true - - /semver/6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: true - - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /signal-exit/3.0.6: - resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} - dev: true - - /sisteransi/1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - - /slash/3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /source-map-support/0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - - /source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} - engines: {node: '>=0.10.0'} - dev: true - - /source-map/0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map/0.7.3: - resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} - engines: {node: '>= 8'} - dev: true - - /sprintf-js/1.0.3: - resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} - dev: true - - /stack-utils/2.0.5: - resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 - dev: true - - /string-length/4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 - dev: true - - /string-width/4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /strip-ansi/6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-bom/4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /strnum/1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false - - /supports-color/5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-color/8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-hyperlinks/2.2.0: - resolution: {integrity: sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - dev: true - - /symbol-tree/3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true - - /terminal-link/2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.2.0 - dev: true - - /test-exclude/6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.0 - minimatch: 3.0.4 - dev: true - - /throat/6.0.1: - resolution: {integrity: sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==} - dev: true - - /tmpl/1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true - - /to-fast-properties/2.0.0: - resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} - engines: {node: '>=4'} - dev: true - - /to-regex-range/5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /tough-cookie/4.0.0: - resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} - engines: {node: '>=6'} - dependencies: - psl: 1.8.0 - punycode: 2.1.1 - universalify: 0.1.2 - dev: true - - /tr46/2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.1.1 - dev: true - - /type-check/0.3.2: - resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - dev: true - - /type-detect/4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest/0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - - /typedarray-to-buffer/3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - - /universalify/0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: true - - /v8-to-istanbul/8.1.0: - resolution: {integrity: sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==} - engines: {node: '>=10.12.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.3 - convert-source-map: 1.8.0 - source-map: 0.7.3 - dev: true - - /w3c-hr-time/1.0.2: - resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} - dependencies: - browser-process-hrtime: 1.0.0 - dev: true - - /w3c-xmlserializer/2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: true - - /walker/1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - dev: true - - /webidl-conversions/5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - dev: true - - /webidl-conversions/6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: true - - /whatwg-encoding/1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} - dependencies: - iconv-lite: 0.4.24 - dev: true - - /whatwg-mimetype/2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true - - /whatwg-url/8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /word-wrap/1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} - dev: true - - /wrap-ansi/7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} - dev: true - - /write-file-atomic/3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.6 - typedarray-to-buffer: 3.1.5 - dev: true - - /ws/7.5.6: - resolution: {integrity: sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true - - /xml-name-validator/3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true - - /xmlchars/2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true - - /y18n/5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yallist/4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yargs-parser/20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - - /yargs/16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true diff --git a/reset.js b/reset.js index d4be630..c1e5032 100755 --- a/reset.js +++ b/reset.js @@ -1,11 +1,14 @@ -#!/usr/bin/env node +/** + * reset.js + * @ndaidong +**/ -const { +import { existsSync, unlinkSync -} = require('fs') +} from 'fs' -const { execSync } = require('child_process') +import { execSync } from 'child_process' const dirs = [ 'dist', diff --git a/src/config.js b/src/config.js index ea8c2ec..0ece47f 100644 --- a/src/config.js +++ b/src/config.js @@ -1,6 +1,6 @@ // configs -const { clone, copies } = require('bellajs') +import { clone, copies } from 'bellajs' const requestOptions = { headers: { @@ -12,11 +12,10 @@ const requestOptions = { maxRedirects: 3 } -module.exports = { - getRequestOptions: () => { - return clone(requestOptions) - }, - setRequestOptions: (opts) => { - copies(opts, requestOptions) - } +export const getRequestOptions = () => { + return clone(requestOptions) +} + +export const setRequestOptions = (opts) => { + copies(opts, requestOptions) } diff --git a/src/config.test.js b/src/config.test.js index 7b9a77b..722d74f 100644 --- a/src/config.test.js +++ b/src/config.test.js @@ -1,10 +1,10 @@ // config.test /* eslint-env jest */ -const { +import { setRequestOptions, getRequestOptions -} = require('./config') +} from './config.js' test('Testing setRequestOptions/getRequestOptions methods', () => { setRequestOptions({ diff --git a/src/main.js b/src/main.js index 1399180..595a0e8 100755 --- a/src/main.js +++ b/src/main.js @@ -3,24 +3,24 @@ * @ndaidong **/ -const { info } = require('./utils/logger') +import { info } from './utils/logger.js' -const getXML = require('./utils/retrieve') -const xml2obj = require('./utils/xml2obj') -const { parseRSS, parseAtom } = require('./utils/parser') +import getXML from './utils/retrieve.js' +import xml2obj from './utils/xml2obj.js' +import { parseRSS, parseAtom } from './utils/parser.js' -const { +import { validate, isRSS, isAtom -} = require('./utils/validator') +} from './utils/validator.js' -const { +export { getRequestOptions, setRequestOptions -} = require('./config') +} from './config.js' -const read = async (url) => { +export const read = async (url) => { const xmldata = await getXML(url) if (!xmldata) { throw new Error(`Could not fetch XML content from "${url}"`) @@ -33,9 +33,3 @@ const read = async (url) => { const jsonObj = xml2obj(xml) return isRSS(jsonObj) ? parseRSS(jsonObj) : isAtom(jsonObj) ? parseAtom(jsonObj) : null } - -module.exports = { - read, - getRequestOptions, - setRequestOptions -} diff --git a/src/main.test.js b/src/main.test.js index 8a8f540..d6a8666 100755 --- a/src/main.test.js +++ b/src/main.test.js @@ -1,12 +1,12 @@ // main.test /* eslint-env jest */ -const { readFileSync } = require('fs') +import { readFileSync } from 'fs' -const { hasProperty } = require('bellajs') -const nock = require('nock') +import { hasProperty } from 'bellajs' +import nock from 'nock' -const { read } = require('./main') +import { read } from './main.js' const feedAttrs = 'title link description generator language published entries'.split(' ') const entryAttrs = 'title link description published'.split(' ') diff --git a/src/utils/isValidUrl.js b/src/utils/isValidUrl.js index febdaf1..92f8cc6 100755 --- a/src/utils/isValidUrl.js +++ b/src/utils/isValidUrl.js @@ -1,6 +1,6 @@ // utils -> isValidUrl -module.exports = (url = '') => { +export default (url = '') => { try { return new URL(url) !== null } catch (err) { diff --git a/src/utils/logger.js b/src/utils/logger.js index 7d45e7c..0565d7b 100755 --- a/src/utils/logger.js +++ b/src/utils/logger.js @@ -1,12 +1,14 @@ // utils / logger -const { - name -} = require('../../package.json') +import debug from 'debug/src/index.js' -const debug = require('debug') +const name = 'feed-reader' -module.exports = { +export const info = debug(`${name}:info`) +export const error = debug(`${name}:error`) +export const warning = debug(`${name}:warning`) + +export default { info: debug(`${name}:info`), error: debug(`${name}:error`), warning: debug(`${name}:warning`) diff --git a/src/utils/parser.js b/src/utils/parser.js index f3ade23..ba4d36b 100755 --- a/src/utils/parser.js +++ b/src/utils/parser.js @@ -1,17 +1,17 @@ // utils / parser -const { decode } = require('html-entities') +import { decode } from 'html-entities' -const { +import { isString, isArray, isObject, hasProperty, stripTags, truncate -} = require('bellajs') +} from 'bellajs' -const purifyUrl = require('./purifyUrl') +import purifyUrl from './purifyUrl.js' const toISODateString = (dstr) => { try { @@ -72,7 +72,7 @@ const nomalizeAtomItem = (entry) => { } } -const parseRSS = (xmldata) => { +export const parseRSS = (xmldata) => { const { rss = {} } = xmldata const { channel = {} } = rss const { @@ -98,7 +98,7 @@ const parseRSS = (xmldata) => { } } -const parseAtom = (xmldata) => { +export const parseAtom = (xmldata) => { const { feed = {} } = xmldata const { title = '', @@ -122,8 +122,3 @@ const parseAtom = (xmldata) => { entries } } - -module.exports = { - parseRSS, - parseAtom -} diff --git a/src/utils/purifyUrl.js b/src/utils/purifyUrl.js index a2e341c..625d9df 100755 --- a/src/utils/purifyUrl.js +++ b/src/utils/purifyUrl.js @@ -60,7 +60,7 @@ const blacklistKeys = [ 'pk_campaign' ] -module.exports = (url) => { +export default (url) => { try { const pureUrl = new URL(url) diff --git a/src/utils/purifyUrl.test.js b/src/utils/purifyUrl.test.js index efeeb18..141f65f 100755 --- a/src/utils/purifyUrl.test.js +++ b/src/utils/purifyUrl.test.js @@ -1,7 +1,7 @@ // purifyUrl.test /* eslint-env jest */ -const purifyUrl = require('./purifyUrl') +import purifyUrl from './purifyUrl.js' test('test purifyUrl() with invalid url', () => { const urls = [ diff --git a/src/utils/retrieve.js b/src/utils/retrieve.js index 2df3bc3..cf4bb0d 100755 --- a/src/utils/retrieve.js +++ b/src/utils/retrieve.js @@ -1,12 +1,12 @@ // utils -> retrieve -const axios = require('axios') +import axios from 'axios' -const logger = require('./logger') +import logger from './logger.js' -const { getRequestOptions } = require('../config') +import { getRequestOptions } from '../config.js' -module.exports = async (url) => { +export default async (url) => { try { const res = await axios.get(url, getRequestOptions()) diff --git a/src/utils/retrieve.test.js b/src/utils/retrieve.test.js index 989627f..97be8be 100755 --- a/src/utils/retrieve.test.js +++ b/src/utils/retrieve.test.js @@ -1,9 +1,9 @@ // retrieve.test /* eslint-env jest */ -const nock = require('nock') +import nock from 'nock' -const retrieve = require('./retrieve') +import retrieve from './retrieve.js' const parseUrl = (url) => { const re = new URL(url) diff --git a/src/utils/validator.js b/src/utils/validator.js index 0801d25..2161d70 100755 --- a/src/utils/validator.js +++ b/src/utils/validator.js @@ -1,23 +1,17 @@ // utils / validator -const { hasProperty } = require('bellajs') -const { XMLValidator } = require('fast-xml-parser') +import { hasProperty } from 'bellajs' +import { XMLValidator } from 'fast-xml-parser' -const isRSS = (data = {}) => { +export const isRSS = (data = {}) => { return hasProperty(data, 'rss') && hasProperty(data.rss, 'channel') } -const isAtom = (data = {}) => { +export const isAtom = (data = {}) => { return hasProperty(data, 'feed') && hasProperty(data.feed, 'entry') } -const validate = (xml = '') => { +export const validate = (xml = '') => { const result = XMLValidator.validate(xml) return result === true } - -module.exports = { - isRSS, - isAtom, - validate -} diff --git a/src/utils/validator.test.js b/src/utils/validator.test.js index 922d612..7d400da 100755 --- a/src/utils/validator.test.js +++ b/src/utils/validator.test.js @@ -1,11 +1,11 @@ // validator.test /* eslint-env jest */ -const { readFileSync } = require('fs') +import { readFileSync } from 'fs' -const xml2obj = require('./xml2obj') +import xml2obj from './xml2obj.js' -const { validate, isRSS, isAtom } = require('./validator') +import { validate, isRSS, isAtom } from './validator.js' test('test validate(well format xml)', async () => { const xmlData = 'value' diff --git a/src/utils/xml2obj.js b/src/utils/xml2obj.js index 53e0470..6ce8112 100755 --- a/src/utils/xml2obj.js +++ b/src/utils/xml2obj.js @@ -1,10 +1,10 @@ // utils / xml2obj -const { XMLParser } = require('fast-xml-parser') +import { XMLParser } from 'fast-xml-parser/src/fxp.js' -const { info } = require('./logger') +import { info } from './logger.js' -const parse = (xml = '') => { +export default (xml = '') => { const options = { ignoreAttributes: false } @@ -13,5 +13,3 @@ const parse = (xml = '') => { const jsonObj = parser.parse(xml) return jsonObj } - -module.exports = parse From dff3a3ff62e9a173fd63f6777a9d18187ea23749 Mon Sep 17 00:00:00 2001 From: Dong Nguyen Date: Tue, 4 Jan 2022 10:38:40 +0700 Subject: [PATCH 2/2] Remove ci test on node < 14 --- .github/workflows/ci-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-test.yml b/.github/workflows/ci-test.yml index f1d37bf..1544824 100755 --- a/.github/workflows/ci-test.yml +++ b/.github/workflows/ci-test.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - node_version: [10.14.2, 14.x, 15.x, 16.x, 17.x] + node_version: [14.x, 15.x, 16.x, 17.x] steps: - uses: actions/checkout@v2