Rework our version matching algorithm (#217)

f6a73a7 · Paulo F. Oliveira · 2023-07-21 19:56

10 files +1395 -3668
Message
{commit_body(@commit)}

Files changed

modified .eslintrc.yml
+5 −8
@@ -1,19 +1,16 @@
1 1 ---
2 2 env:
3 3 node: true
4 es2021: true
4 + es2022: true
5 5 extends:
6 - airbnb
6 + - eslint:recommended
7 7 parserOptions:
8 ecmaVersion: 12
8 + ecmaVersion: 2022
9 9 rules:
10 indent: ["warn", 2]
11 max-len: ["warn", 100]
12 no-undef: "error"
13 no-unused-vars: ["error", {"varsIgnorePattern": "^_"}]
10 + indent: [warn, 2]
11 + max-len: [warn, 100]
14 12 no-use-before-define: 0
15 13 operator-linebreak: 0
16 require-jsdoc: 0
17 14 semi: 0
18 15
19 16 settings:
modified .github/workflows/action.yml
+6 −13
@@ -6,7 +6,8 @@ on:
6 6 branches:
7 7 - main
8 8 pull_request:
9 types: [opened, synchronize]
9 + branches:
10 + - main
10 11
11 12 env:
12 13 GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
@@ -19,16 +20,8 @@ jobs:
19 20 - uses: actions/checkout@v3
20 21 - uses: actions/setup-node@v3
21 22 with:
22 node-version: '14'
23 - run: npm install -g npm
24 - run: npm install
25 - run: npm run build
26 - run: npm run format
27 - run: npm install -g markdownlint-cli
28 - run: npm run markdownlint
29 - run: npm run shellcheck
30 - run: npm run yamllint
31 - run: npm run jslint
23 + node-version: '16'
24 + - run: npm run build-dist
32 25 - name: Check if build left artifacts
33 26 run: git diff --exit-code --ignore-space-at-eol
34 27
@@ -39,7 +32,7 @@ jobs:
39 32 - uses: actions/checkout@v3
40 33 - uses: actions/setup-node@v3
41 34 with:
42 node-version: '14'
35 + node-version: '16'
43 36 - run: npm ci
44 37 - run: npm test
45 38 - name: .tool-versions test
@@ -56,6 +49,6 @@ jobs:
56 49 - uses: actions/checkout@v3
57 50 - uses: actions/setup-node@v3
58 51 with:
59 node-version: '14'
52 + node-version: '16'
60 53 - run: npm install --production
61 54 - run: npm test
modified .github/workflows/ubuntu.yml
+3 −4
@@ -6,7 +6,8 @@ on:
6 6 branches:
7 7 - main
8 8 pull_request:
9 types: [opened, synchronize]
9 + branches:
10 + - main
10 11
11 12 jobs:
12 13 integration_test:
@@ -111,12 +112,10 @@ jobs:
111 112 otp-version: '22.3.4.1'
112 113 os: 'ubuntu-20.04'
113 114 version-type: 'strict'
114 - elixir-version: '1.10.3'
115 otp-version: '22.3.4.1'
116 os: 'ubuntu-20.04'
117 115 - elixir-version: 'main'
118 116 otp-version: '23.1'
119 117 os: 'ubuntu-20.04'
118 + version-type: 'strict'
120 119 - elixir-version: 'main'
121 120 otp-version: '25'
122 121 os: 'ubuntu-20.04'
modified .github/workflows/update_3rd_party_licenses.yml
+0 −3
@@ -12,9 +12,6 @@ jobs:
12 12 runs-on: ubuntu-latest
13 13 steps:
14 14 - uses: actions/checkout@v3
15 - uses: actions/setup-node@v3
16 with:
17 node-version: '14'
18 15 - run:
19 16 ./.github/workflows/update_3rd_party_licenses.sh
20 17 env:
modified .github/workflows/windows.yml
+2 −1
@@ -6,7 +6,8 @@ on:
6 6 branches:
7 7 - main
8 8 pull_request:
9 types: [opened, synchronize]
9 + branches:
10 + - main
10 11
11 12 jobs:
12 13 integration_test:
modified dist/index.js
+179 −96
@@ -6221,15 +6221,18 @@ class Range {
6221 6221 const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
6222 6222 range = range.replace(hr, hyphenReplace(this.options.includePrerelease))
6223 6223 debug('hyphen replace', range)
6224 +
6224 6225 // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
6225 6226 range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
6226 6227 debug('comparator trim', range)
6227 6228
6228 6229 // `~ 1.2.3` => `~1.2.3`
6229 6230 range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
6231 + debug('tilde trim', range)
6230 6232
6231 6233 // `^ 1.2.3` => `^1.2.3`
6232 6234 range = range.replace(re[t.CARETTRIM], caretTrimReplace)
6235 + debug('caret trim', range)
6233 6236
6234 6237 // At this point, the range is completely trimmed and
6235 6238 // ready to be split into comparators.
@@ -7531,6 +7534,10 @@ const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
7531 7534 // Max safe segment length for coercion.
7532 7535 const MAX_SAFE_COMPONENT_LENGTH = 16
7533 7536
7537 +// Max safe length for a build identifier. The max length minus 6 characters for
7538 +// the shortest version with a build 0.0.0+BUILD.
7539 +const MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
7540 +
7534 7541 const RELEASE_TYPES = [
7535 7542 'major',
7536 7543 'premajor',
@@ -7544,6 +7551,7 @@ const RELEASE_TYPES = [
7544 7551 module.exports = {
7545 7552 MAX_LENGTH,
7546 7553 MAX_SAFE_COMPONENT_LENGTH,
7554 + MAX_SAFE_BUILD_LENGTH,
7547 7555 MAX_SAFE_INTEGER,
7548 7556 RELEASE_TYPES,
7549 7557 SEMVER_SPEC_VERSION,
@@ -7625,7 +7633,7 @@ module.exports = parseOptions
7625 7633 /***/ 9523:
7626 7634 /***/ ((module, exports, __nccwpck_require__) => {
7627 7635
7628 const { MAX_SAFE_COMPONENT_LENGTH } = __nccwpck_require__(2293)
7636 +const { MAX_SAFE_COMPONENT_LENGTH, MAX_SAFE_BUILD_LENGTH } = __nccwpck_require__(2293)
7629 7637 const debug = __nccwpck_require__(427)
7630 7638 exports = module.exports = {}
7631 7639
@@ -7636,16 +7644,31 @@ const src = exports.src = []
7636 7644 const t = exports.t = {}
7637 7645 let R = 0
7638 7646
7647 +const LETTERDASHNUMBER = '[a-zA-Z0-9-]'
7648 +
7649 +// Replace some greedy regex tokens to prevent regex dos issues. These regex are
7650 +// used internally via the safeRe object since all inputs in this library get
7651 +// normalized first to trim and collapse all extra whitespace. The original
7652 +// regexes are exported for userland consumption and lower level usage. A
7653 +// future breaking change could export the safer regex only with a note that
7654 +// all input should have extra whitespace removed.
7655 +const safeRegexReplacements = [
7656 + ['\\s', 1],
7657 + ['\\d', MAX_SAFE_COMPONENT_LENGTH],
7658 + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
7659 +]
7660 +
7661 +const makeSafeRegex = (value) => {
7662 + for (const [token, max] of safeRegexReplacements) {
7663 + value = value
7664 + .split(`${token}*`).join(`${token}{0,${max}}`)
7665 + .split(`${token}+`).join(`${token}{1,${max}}`)
7666 + }
7667 + return value
7668 +}
7669 +
7639 7670 const createToken = (name, value, isGlobal) => {
7640 // Replace all greedy whitespace to prevent regex dos issues. These regex are
7641 // used internally via the safeRe object since all inputs in this library get
7642 // normalized first to trim and collapse all extra whitespace. The original
7643 // regexes are exported for userland consumption and lower level usage. A
7644 // future breaking change could export the safer regex only with a note that
7645 // all input should have extra whitespace removed.
7646 const safe = value
7647 .split('\\s*').join('\\s{0,1}')
7648 .split('\\s+').join('\\s')
7671 + const safe = makeSafeRegex(value)
7649 7672 const index = R++
7650 7673 debug(name, index, value)
7651 7674 t[name] = index
@@ -7661,13 +7684,13 @@ const createToken = (name, value, isGlobal) => {
7661 7684 // A single `0`, or a non-zero digit followed by zero or more digits.
7662 7685
7663 7686 createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*')
7664 createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+')
7687 +createToken('NUMERICIDENTIFIERLOOSE', '\\d+')
7665 7688
7666 7689 // ## Non-numeric Identifier
7667 7690 // Zero or more digits, followed by a letter or hyphen, and then zero or
7668 7691 // more letters, digits, or hyphens.
7669 7692
7670 createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*')
7693 +createToken('NONNUMERICIDENTIFIER', `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)
7671 7694
7672 7695 // ## Main Version
7673 7696 // Three dot-separated numeric identifiers.
@@ -7702,7 +7725,7 @@ createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]
7702 7725 // ## Build Metadata Identifier
7703 7726 // Any combination of digits, letters, or hyphens.
7704 7727
7705 createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+')
7728 +createToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)
7706 7729
7707 7730 // ## Build Metadata
7708 7731 // Plus sign, followed by one or more period-separated build metadata
@@ -10052,15 +10075,16 @@ async function main() {
10052 10075
10053 10076 if (otpSpec !== 'false') {
10054 10077 await installOTP(otpSpec, osVersion, hexMirrors)
10078 +
10055 10079 const elixirInstalled = await maybeInstallElixir(
10056 10080 elixirSpec,
10057 10081 otpSpec,
10058 10082 hexMirrors,
10059 10083 )
10060
10061 10084 if (elixirInstalled === true) {
10062 10085 const shouldMixRebar = getInput('install-rebar', false)
10063 10086 await mix(shouldMixRebar, 'rebar', hexMirrors)
10087 +
10064 10088 const shouldMixHex = getInput('install-hex', false)
10065 10089 await mix(shouldMixHex, 'hex', hexMirrors)
10066 10090 }
@@ -10084,7 +10108,6 @@ async function installOTP(otpSpec, osVersion, hexMirrors) {
10084 10108
10085 10109 async function maybeInstallElixir(elixirSpec, otpSpec, hexMirrors) {
10086 10110 let installed = false
10087
10088 10111 if (elixirSpec) {
10089 10112 const elixirVersion = await getElixirVersion(
10090 10113 elixirSpec,
@@ -10094,6 +10117,7 @@ async function maybeInstallElixir(elixirSpec, otpSpec, hexMirrors) {
10094 10117 core.startGroup(`Installing Elixir ${elixirVersion}`)
10095 10118 await installer.installElixir(elixirVersion, hexMirrors)
10096 10119 core.setOutput('elixir-version', elixirVersion)
10120 +
10097 10121 const disableProblemMatchers = getInput('disable_problem_matchers', false)
10098 10122 if (disableProblemMatchers === 'false') {
10099 10123 const elixirMatchers = __nccwpck_require__.ab + "elixir-matchers.json"
@@ -10111,6 +10135,7 @@ async function mixWithMirrors(cmd, args, hexMirrors) {
10111 10135 if (hexMirrors.length === 0) {
10112 10136 throw new Error('mix failed with every mirror')
10113 10137 }
10138 +
10114 10139 const [hexMirror, ...hexMirrorsT] = hexMirrors
10115 10140 process.env.HEX_MIRROR = hexMirror
10116 10141 try {
@@ -10120,6 +10145,7 @@ async function mixWithMirrors(cmd, args, hexMirrors) {
10120 10145 `mix failed with mirror ${process.env.HEX_MIRROR} with message ${err.message})`,
10121 10146 )
10122 10147 }
10148 +
10123 10149 return mixWithMirrors(cmd, args, hexMirrorsT)
10124 10150 }
10125 10151
@@ -10135,7 +10161,6 @@ async function mix(shouldMix, what, hexMirrors) {
10135 10161
10136 10162 async function maybeInstallGleam(gleamSpec) {
10137 10163 let installed = false
10138
10139 10164 if (gleamSpec) {
10140 10165 const gleamVersion = await getGleamVersion(gleamSpec)
10141 10166 core.startGroup(`Installing Gleam ${gleamVersion}`)
@@ -10153,7 +10178,6 @@ async function maybeInstallGleam(gleamSpec) {
10153 10178 async function maybeInstallRebar3(rebar3Spec) {
10154 10179 let installed = false
10155 10180 let rebar3Version
10156
10157 10181 if (rebar3Spec) {
10158 10182 if (rebar3Spec === 'nightly') {
10159 10183 rebar3Version = 'nightly'
@@ -10174,14 +10198,9 @@ async function maybeInstallRebar3(rebar3Spec) {
10174 10198
10175 10199 async function getOTPVersion(otpSpec0, osVersion, hexMirrors) {
10176 10200 const otpVersions = await getOTPVersions(osVersion, hexMirrors)
10177 let otpSpec = otpSpec0 // might be a branch (?)
10178 const otpVersion = getVersionFromSpec(
10179 otpSpec,
10180 Array.from(otpVersions.keys()).sort(),
10181 )
10182 if (isVersion(otpSpec0)) {
10183 otpSpec = `OTP-${otpSpec0}` // ... it's a version!
10184 }
10201 + const spec = otpSpec0.replace(/^OTP-/, '')
10202 + const versions = otpVersions
10203 + const otpVersion = getVersionFromSpec(spec, versions)
10185 10204 if (otpVersion === null) {
10186 10205 throw new Error(
10187 10206 `Requested Erlang/OTP version (${otpSpec0}) not found in version list ` +
@@ -10189,20 +10208,18 @@ async function getOTPVersion(otpSpec0, osVersion, hexMirrors) {
10189 10208 )
10190 10209 }
10191 10210
10192 return otpVersions.get(otpVersion) // from the reference, for download
10211 + return otpVersion // from the reference, for download
10193 10212 }
10194 10213
10195 10214 async function getElixirVersion(exSpec0, otpVersion0, hexMirrors) {
10196 10215 const otpVersion = otpVersion0.match(/^([^-]+-)?(.+)$/)[2]
10197 10216 const otpVersionMajor = otpVersion.match(/^([^.]+).*$/)[1]
10198 const elixirVersions = await getElixirVersions(hexMirrors)
10199 const semverVersions = Array.from(elixirVersions.keys()).sort()
10200 const exSpec = exSpec0.replace(/-otp-.*$/, '')
10201 const elixirVersionFromSpec = getVersionFromSpec(exSpec, semverVersions, true)
10202 let elixirVersionForDownload = elixirVersionFromSpec
10203 if (isVersion(otpVersionMajor)) {
10204 elixirVersionForDownload = `${elixirVersionFromSpec}-otp-${otpVersionMajor}`
10205 }
10217 + const [otpVersionsForElixirMap, elixirVersions] = await getElixirVersions(
10218 + hexMirrors,
10219 + )
10220 + const spec = exSpec0.replace(/-otp-.*$/, '')
10221 + const versions = elixirVersions
10222 + const elixirVersionFromSpec = getVersionFromSpec(spec, versions)
10206 10223 if (elixirVersionFromSpec === null) {
10207 10224 throw new Error(
10208 10225 `Requested Elixir version (${exSpec0}) not found in version list ` +
@@ -10210,7 +10227,7 @@ async function getElixirVersion(exSpec0, otpVersion0, hexMirrors) {
10210 10227 )
10211 10228 }
10212 10229
10213 const elixirVersionComp = elixirVersions.get(elixirVersionFromSpec)
10230 + const elixirVersionComp = otpVersionsForElixirMap[elixirVersionFromSpec]
10214 10231 if (
10215 10232 (elixirVersionComp && elixirVersionComp.includes(otpVersionMajor)) ||
10216 10233 !isVersion(otpVersionMajor)
@@ -10227,13 +10244,20 @@ async function getElixirVersion(exSpec0, otpVersion0, hexMirrors) {
10227 10244 )
10228 10245 }
10229 10246
10247 + let elixirVersionForDownload = elixirVersionFromSpec
10248 +
10249 + if (isVersion(otpVersionMajor)) {
10250 + elixirVersionForDownload = `${elixirVersionFromSpec}-otp-${otpVersionMajor}`
10251 + }
10252 +
10230 10253 return maybePrependWithV(elixirVersionForDownload)
10231 10254 }
10232 10255
10233 10256 async function getGleamVersion(gleamSpec0) {
10234 const gleamSpec = gleamSpec0.match(/^v?(.+)$/)
10235 10257 const gleamVersions = await getGleamVersions()
10236 const gleamVersion = getVersionFromSpec(gleamSpec[1], gleamVersions, true)
10258 + const spec = gleamSpec0
10259 + const versions = gleamVersions
10260 + const gleamVersion = getVersionFromSpec(spec, versions)
10237 10261 if (gleamVersion === null) {
10238 10262 throw new Error(
10239 10263 `Requested Gleam version (${gleamSpec0}) not found in version list ` +
@@ -10241,12 +10265,14 @@ async function getGleamVersion(gleamSpec0) {
10241 10265 )
10242 10266 }
10243 10267
10244 return maybePrependWithV(gleamVersion, gleamVersion)
10268 + return maybePrependWithV(gleamVersion)
10245 10269 }
10246 10270
10247 10271 async function getRebar3Version(r3Spec) {
10248 10272 const rebar3Versions = await getRebar3Versions()
10249 const rebar3Version = getVersionFromSpec(r3Spec, rebar3Versions)
10273 + const spec = r3Spec
10274 + const versions = rebar3Versions
10275 + const rebar3Version = getVersionFromSpec(spec, versions)
10250 10276 if (rebar3Version === null) {
10251 10277 throw new Error(
10252 10278 `Requested rebar3 version (${r3Spec}) not found in version list ` +
@@ -10269,8 +10295,9 @@ async function getOTPVersions(osVersion, hexMirrors) {
10269 10295 otpVersionsListings = await get(originListing, [1, 2, 3])
10270 10296 }
10271 10297
10272 const otpVersions = new Map()
10298 + debugLog(`OTP versions listings from ${originListing}`, otpVersionsListings)
10273 10299
10300 + const otpVersions = {}
10274 10301 if (process.platform === 'linux') {
10275 10302 otpVersionsListings
10276 10303 .trim()
@@ -10280,8 +10307,9 @@ async function getOTPVersions(osVersion, hexMirrors) {
10280 10307 .match(/^([^ ]+)?( .+)/)[1]
10281 10308 .match(/^([^-]+-)?(.+)$/)
10282 10309 const otpVersion = otpMatch[2]
10310 + const otpVersionOrig = otpMatch[0]
10283 10311 debugLog('OTP line and parsing', [line, otpVersion, otpMatch])
10284 otpVersions.set(otpVersion, otpMatch[0]) // we keep the original for later reference
10312 + otpVersions[otpVersion] = otpVersionOrig // we keep the original for later reference
10285 10313 })
10286 10314 } else if (process.platform === 'win32') {
10287 10315 otpVersionsListings.forEach((otpVersionsListing) => {
@@ -10293,15 +10321,12 @@ async function getOTPVersions(osVersion, hexMirrors) {
10293 10321 const otpMatch = x.name.match(/^otp_win64_(.*).exe$/)
10294 10322 const otpVersion = otpMatch[1]
10295 10323 debugLog('OTP line and parsing', [otpMatch, otpVersion])
10296 otpVersions.set(otpVersion, otpVersion)
10324 + otpVersions[otpVersion] = otpVersion
10297 10325 })
10298 10326 })
10299 10327 }
10300 10328
10301 debugLog(
10302 `OTP versions from ${originListing}`,
10303 JSON.stringify([...otpVersions.entries()]),
10304 )
10329 + debugLog(`OTP versions from ${originListing}`, JSON.stringify(otpVersions))
10305 10330
10306 10331 return otpVersions
10307 10332 }
@@ -10311,7 +10336,8 @@ async function getElixirVersions(hexMirrors) {
10311 10336 '/builds/elixir/builds.txt',
10312 10337 hexMirrors,
10313 10338 )
10314 const otpVersionsForElixirMap = new Map()
10339 + const otpVersionsForElixirMap = {}
10340 + const elixirVersions = {}
10315 10341
10316 10342 elixirVersionsListings
10317 10343 .trim()
@@ -10319,17 +10345,18 @@ async function getElixirVersions(hexMirrors) {
10319 10345 .forEach((line) => {
10320 10346 const elixirMatch =
10321 10347 line.match(/^v?(.+)-otp-([^ ]+)/) || line.match(/^v?([^ ]+)/)
10322 const elixirVersion = maybePrependWithV(elixirMatch[1])
10348 + const elixirVersion = elixirMatch[1]
10323 10349 const otpVersion = elixirMatch[2]
10324 const otpVersions = otpVersionsForElixirMap.get(elixirVersion) || []
10350 + const otpVersions = otpVersionsForElixirMap[elixirVersion] || []
10325 10351 if (otpVersion) {
10326 10352 // -otp- present (special case)
10327 10353 otpVersions.push(otpVersion)
10328 10354 }
10329 otpVersionsForElixirMap.set(elixirVersion, otpVersions)
10355 + otpVersionsForElixirMap[elixirVersion] = otpVersions
10356 + elixirVersions[elixirVersion] = elixirVersion
10330 10357 })
10331 10358
10332 return otpVersionsForElixirMap
10359 + return [otpVersionsForElixirMap, elixirVersions]
10333 10360 }
10334 10361
10335 10362 async function getGleamVersions() {
@@ -10337,13 +10364,17 @@ async function getGleamVersions() {
10337 10364 'https://api.github.com/repos/gleam-lang/gleam/releases?per_page=100',
10338 10365 [1, 2, 3],
10339 10366 )
10340 const gleamVersionsListing = []
10367 + const gleamVersionsListing = {}
10341 10368 resultJSONs.forEach((resultJSON) => {
10342 10369 jsonParseAsList(resultJSON)
10343 10370 .map((x) => x.tag_name)
10344 .sort()
10345 .forEach((v) => gleamVersionsListing.push(v))
10371 + .forEach((ver) => {
10372 + const gleamMatch = ver.match(/^v?([^ ]+)/)
10373 + const gleamVersion = gleamMatch[1]
10374 + gleamVersionsListing[gleamVersion] = gleamVersion
10375 + })
10346 10376 })
10377 +
10347 10378 return gleamVersionsListing
10348 10379 }
10349 10380
@@ -10352,13 +10383,15 @@ async function getRebar3Versions() {
10352 10383 'https://api.github.com/repos/erlang/rebar3/releases?per_page=100',
10353 10384 [1, 2, 3],
10354 10385 )
10355 const rebar3VersionsListing = []
10386 + const rebar3VersionsListing = {}
10356 10387 resultJSONs.forEach((resultJSON) => {
10357 10388 jsonParseAsList(resultJSON)
10358 10389 .map((x) => x.tag_name)
10359 .sort()
10360 .forEach((v) => rebar3VersionsListing.push(v))
10390 + .forEach((ver) => {
10391 + rebar3VersionsListing[ver] = ver
10392 + })
10361 10393 })
10394 +
10362 10395 return rebar3VersionsListing
10363 10396 }
10364 10397
@@ -10366,48 +10399,68 @@ function isStrictVersion() {
10366 10399 return getInput('version-type', false) === 'strict'
10367 10400 }
10368 10401
10369 function getVersionFromSpec(spec, versions, maybePrependWithV0) {
10370 let version = null
10371
10372 if (spec.match(/rc/) || isStrictVersion()) {
10373 version = spec
10374 }
10402 +function getVersionFromSpec(spec0, versions0) {
10403 + const spec = maybeRemoveVPrefix(spec0)
10375 10404
10376 if (version === null) {
10377 // We keep a map of semver => "spec" in order to use semver ranges to find appropriate versions
10378 const versionsMap = versions.sort(sortVersions).reduce((acc, v) => {
10379 if (!v.match(/rc/)) {
10380 // release candidates are opt-in
10381 acc[maybeCoerced(v)] = v
10382 }
10383 return acc
10384 }, {})
10385 const rangeForMax = semver.validRange(spec)
10386 if (rangeForMax) {
10387 version =
10388 versionsMap[semver.maxSatisfying(Object.keys(versionsMap), rangeForMax)]
10405 + const altVersions = {}
10406 + Object.entries(versions0).forEach(([version, altVersion]) => {
10407 + let coerced
10408 + if (isStrictVersion() || isRC(version)) {
10409 + // If `version-type: strict` or version is RC, we just try to remove a potential initial v
10410 + coerced = maybeRemoveVPrefix(version)
10389 10411 } else {
10390 version = versionsMap[maybeCoerced(spec)]
10412 + // Otherwise, we place the version into a version bucket
10413 + coerced = maybeCoerced(version)
10391 10414 }
10392 }
10415 + const alt = (altVersions[coerced] || []).concat(altVersion)
10416 + alt.sort(sortVersions)
10417 + altVersions[coerced] = alt
10418 + })
10393 10419
10394 let v = version === null || version === undefined ? null : version
10395 if (maybePrependWithV0 && v != null) {
10396 v = maybePrependWithV(v)
10397 }
10420 + let versions = Object.keys(altVersions)
10421 +
10422 + const rangeForMax = semver.validRange(spec0) || maybeCoerced(spec)
10423 + const rangeMax = semver.maxSatisfying(versions, rangeForMax)
10424 + let version = null
10425 +
10426 + if (isStrictVersion() || isRC(spec0)) {
10427 + if (versions0[spec]) {
10428 + // If `version-type: strict` or version is RC, we obtain it directly
10429 + version = versions0[spec]
10430 + }
10431 + } else if (rangeMax !== null) {
10432 + // Otherwise, we compare alt. versions' semver ranges to this version, from highest to lowest
10433 + const thatVersion = spec
10434 + const thatVersionAbc = versionAbc(thatVersion)
10435 + const thatVersionAbcRange = semver.validRange(thatVersionAbc)
10398 10436
10399 if (!versions.includes(v)) {
10400 v = null
10437 + versions = altVersions[rangeMax]
10438 + for (let i = versions.length - 1; i >= 0; i -= 1) {
10439 + const thisVersion = versions[i]
10440 + const thisVersionAbc = versionAbc(thisVersion)
10441 + const thisVersionAbcRange = semver.validRange(thisVersionAbc)
10442 +
10443 + if (
10444 + thatVersionAbcRange &&
10445 + semver.intersects(thatVersionAbcRange, thisVersionAbcRange)
10446 + ) {
10447 + version = thisVersion
10448 + break
10449 + }
10450 + }
10401 10451 }
10402 10452
10403 return v
10453 + return version || null
10404 10454 }
10405 10455
10406 10456 function maybeCoerced(v) {
10407 let ret
10408
10457 + let ret = null
10409 10458 try {
10410 ret = semver.coerce(v).version
10459 + if (!isRC(v)) {
10460 + ret = semver.coerce(v).version
10461 + } else {
10462 + ret = maybeRemoveVPrefix(v)
10463 + }
10411 10464 } catch {
10412 10465 // some stuff can't be coerced, like 'main'
10413 10466 ret = v
@@ -10420,11 +10473,11 @@ function sortVersions(left, right) {
10420 10473 let ret = 0
10421 10474 const newL = verAsComparableStr(left)
10422 10475 const newR = verAsComparableStr(right)
10423
10424 10476 function verAsComparableStr(ver) {
10425 const matchGroups = 5
10426 const verSpec = /([^.]+)?\.?([^.]+)?\.?([^.]+)?\.?([^.]+)?\.?([^.]+)?/
10477 + const matchGroups = 6
10478 + const verSpec = xyzAbcVersion('', '')
10427 10479 const matches = ver.match(verSpec).splice(1, matchGroups)
10480 +
10428 10481 return matches.reduce((acc, v) => acc + (v || '0').padStart(3, '0'), '')
10429 10482 }
10430 10483
@@ -10437,6 +10490,10 @@ function sortVersions(left, right) {
10437 10490 return ret
10438 10491 }
10439 10492
10493 +function isRC(ver) {
10494 + return ver.match(xyzAbcVersion('^', '(?:-rc\\.?\\d+)'))
10495 +}
10496 +
10440 10497 function getRunnerOSVersion() {
10441 10498 const ImageOSToContainer = {
10442 10499 ubuntu18: 'ubuntu-18.04',
@@ -10446,7 +10503,6 @@ function getRunnerOSVersion() {
10446 10503 win22: 'windows-2022',
10447 10504 }
10448 10505 const containerFromEnvImageOS = ImageOSToContainer[process.env.ImageOS]
10449
10450 10506 if (!containerFromEnvImageOS) {
10451 10507 throw new Error(
10452 10508 "Tried to map a target OS from env. variable 'ImageOS' (got " +
@@ -10467,7 +10523,6 @@ async function get(url0, pageIdxs) {
10467 10523 const url = new URL(url0)
10468 10524 const headers = {}
10469 10525 const GithubToken = getInput('github-token', false)
10470
10471 10526 if (GithubToken && url.host === 'api.github.com') {
10472 10527 headers.authorization = `Bearer ${GithubToken}`
10473 10528 }
@@ -10480,9 +10535,7 @@ async function get(url0, pageIdxs) {
10480 10535 allowRetries: true,
10481 10536 maxRetries: 3,
10482 10537 })
10483
10484 10538 const response = await httpClient.get(url, headers)
10485
10486 10539 if (response.statusCode >= 400 && response.statusCode <= 599) {
10487 10540 throw new Error(
10488 10541 `Got ${response.statusCode} from ${url}. Exiting with error`,
@@ -10495,6 +10548,7 @@ async function get(url0, pageIdxs) {
10495 10548 if (pageIdxs[0] === null) {
10496 10549 return getPage(null)
10497 10550 }
10551 +
10498 10552 return Promise.all(pageIdxs.map(getPage))
10499 10553 }
10500 10554
@@ -10502,12 +10556,14 @@ async function getWithMirrors(resourcePath, hexMirrors) {
10502 10556 if (hexMirrors.length === 0) {
10503 10557 throw new Error(`Could not fetch ${resourcePath} from any hex.pm mirror`)
10504 10558 }
10559 +
10505 10560 const [hexMirror, ...hexMirrorsT] = hexMirrors
10506 10561 try {
10507 10562 return await get(`${hexMirror}${resourcePath}`, [null])
10508 10563 } catch (err) {
10509 10564 core.info(`get failed for URL ${hexMirror}${resourcePath}`)
10510 10565 }
10566 +
10511 10567 return getWithMirrors(resourcePath, hexMirrorsT)
10512 10568 }
10513 10569
@@ -10515,11 +10571,35 @@ function maybePrependWithV(v) {
10515 10571 if (isVersion(v)) {
10516 10572 return `v${v.replace('v', '')}`
10517 10573 }
10574 +
10518 10575 return v
10519 10576 }
10520 10577
10578 +function maybeRemoveVPrefix(ver) {
10579 + let ret = ver
10580 + if (isVersion(ver)) {
10581 + ret = ver.replace('v', '')
10582 + }
10583 +
10584 + return ret
10585 +}
10586 +
10587 +function xyzAbcVersion(pref, suf) {
10588 + // This accounts for stuff like 6.0.2.0.1.0, as proposed by Erlang's
10589 + // https://www.erlang.org/doc/system_principles/versions.html
10590 + const dd = '\\.?(\\d+)?'
10591 + return new RegExp(
10592 + `${pref}v?(\\d+)${dd}${dd}${dd}${dd}${dd}(?:-rc\\.?\\d+)?(?:-otp-\\d+)?${suf}`,
10593 + )
10594 +}
10595 +
10596 +function versionAbc(ver) {
10597 + // For a version like 6.0.2.0.1.0, return 0.1.0
10598 + return ver.match(/\d+(?:\.[^.]+)?(?:\.[^.]+)?(?:\.)?(.*)/)[1]
10599 +}
10600 +
10521 10601 function isVersion(v) {
10522 return /^v?\d+/.test(v)
10602 + return v.match(xyzAbcVersion('^', '$')) !== null
10523 10603 }
10524 10604
10525 10605 function getInput(inputName, required, alternativeName, alternatives) {
@@ -10537,6 +10617,7 @@ alongside ${alternativeName}=${alternativeValue} \
10537 10617 } else if (!input) {
10538 10618 input = alternativeValue
10539 10619 }
10620 +
10540 10621 return input
10541 10622 }
10542 10623
@@ -10550,6 +10631,7 @@ function parseVersionFile(versionFilePath0) {
10550 10631 `The specified version file, ${versionFilePath0}, does not exist`,
10551 10632 )
10552 10633 }
10634 +
10553 10635 core.startGroup(`Parsing version file at ${versionFilePath0}`)
10554 10636 const appVersions = new Map()
10555 10637 const versions = fs.readFileSync(versionFilePath, 'utf8')
@@ -10583,6 +10665,7 @@ function jsonParseAsList(maybeJson) {
10583 10665 if (!Array.isArray(obj)) {
10584 10666 throw new Error('expected a list!')
10585 10667 }
10668 +
10586 10669 return obj
10587 10670 } catch (exc) {
10588 10671 throw new Error(
modified package-lock.json
+998 −3441
@@ -1,6 +1,6 @@
1 1 {
2 2 "name": "setup-beam",
3 "lockfileVersion": 2,
3 + "lockfileVersion": 3,
4 4 "requires": true,
5 5 "packages": {
6 6 "": {
@@ -10,20 +10,15 @@
10 10 "@actions/core": "1.10.0",
11 11 "@actions/exec": "1.1.1",
12 12 "@actions/http-client": "2.1.0",
13 "@actions/tool-cache": "^2.0.1",
14 "semver": "7.5.2"
13 + "@actions/tool-cache": "2.0.1",
14 + "semver": "7.5.3"
15 15 },
16 16 "devDependencies": {
17 "@vercel/ncc": "0.34.0",
18 "eslint": "8.25.0",
19 "eslint-config-airbnb": "19.0.4",
20 "eslint-plugin-import": "2.26.0",
21 "eslint-plugin-jsx-a11y": "6.6.1",
22 "eslint-plugin-react": "7.31.10",
23 "husky": "8.0.1",
24 "markdownlint": "0.26.2",
25 "prettier": "2.7.1",
26 "shellcheck": "1.1.0",
17 + "@vercel/ncc": "0.36.1",
18 + "eslint": "8.43.0",
19 + "markdownlint-cli": "0.35.0",
20 + "prettier": "2.8.8",
21 + "shellcheck": "2.2.0",
27 22 "yaml-lint": "1.7.0",
28 23 "yarn": "1.22.19"
29 24 },
@@ -91,41 +86,40 @@
91 86 "uuid": "bin/uuid"
92 87 }
93 88 },
94 "node_modules/@babel/runtime": {
95 "version": "7.19.4",
96 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
97 "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
89 + "node_modules/@eslint-community/eslint-utils": {
90 + "version": "4.4.0",
91 + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
92 + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
98 93 "dev": true,
99 94 "dependencies": {
100 "regenerator-runtime": "^0.13.4"
95 + "eslint-visitor-keys": "^3.3.0"
101 96 },
102 97 "engines": {
103 "node": ">=6.9.0"
98 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
99 + },
100 + "peerDependencies": {
101 + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
104 102 }
105 103 },
106 "node_modules/@babel/runtime-corejs3": {
107 "version": "7.17.9",
108 "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz",
109 "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==",
104 + "node_modules/@eslint-community/regexpp": {
105 + "version": "4.5.1",
106 + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.1.tgz",
107 + "integrity": "sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==",
110 108 "dev": true,
111 "dependencies": {
112 "core-js-pure": "^3.20.2",
113 "regenerator-runtime": "^0.13.4"
114 },
115 109 "engines": {
116 "node": ">=6.9.0"
110 + "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
117 111 }
118 112 },
119 113 "node_modules/@eslint/eslintrc": {
120 "version": "1.3.3",
121 "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
122 "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
114 + "version": "2.0.3",
115 + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.3.tgz",
116 + "integrity": "sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==",
123 117 "dev": true,
124 118 "dependencies": {
125 119 "ajv": "^6.12.4",
126 120 "debug": "^4.3.2",
127 "espree": "^9.4.0",
128 "globals": "^13.15.0",
121 + "espree": "^9.5.2",
122 + "globals": "^13.19.0",
129 123 "ignore": "^5.2.0",
130 124 "import-fresh": "^3.2.1",
131 125 "js-yaml": "^4.1.0",
@@ -139,15 +133,24 @@
139 133 "url": "https://opencollective.com/eslint"
140 134 }
141 135 },
136 + "node_modules/@eslint/js": {
137 + "version": "8.43.0",
138 + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.43.0.tgz",
139 + "integrity": "sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==",
140 + "dev": true,
141 + "engines": {
142 + "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
143 + }
144 + },
142 145 "node_modules/@humanwhocodes/config-array": {
143 "version": "0.10.7",
144 "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
145 "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
146 + "version": "0.11.10",
147 + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz",
148 + "integrity": "sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==",
146 149 "dev": true,
147 150 "dependencies": {
148 151 "@humanwhocodes/object-schema": "^1.2.1",
149 152 "debug": "^4.1.1",
150 "minimatch": "^3.0.4"
153 + "minimatch": "^3.0.5"
151 154 },
152 155 "engines": {
153 156 "node": ">=10.10.0"
@@ -172,6 +175,96 @@
172 175 "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
173 176 "dev": true
174 177 },
178 + "node_modules/@isaacs/cliui": {
179 + "version": "8.0.2",
180 + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
181 + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
182 + "dev": true,
183 + "dependencies": {
184 + "string-width": "^5.1.2",
185 + "string-width-cjs": "npm:string-width@^4.2.0",
186 + "strip-ansi": "^7.0.1",
187 + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
188 + "wrap-ansi": "^8.1.0",
189 + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
190 + },
191 + "engines": {
192 + "node": ">=12"
193 + }
194 + },
195 + "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
196 + "version": "6.0.1",
197 + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
198 + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
199 + "dev": true,
200 + "engines": {
201 + "node": ">=12"
202 + },
203 + "funding": {
204 + "url": "https://github.com/chalk/ansi-regex?sponsor=1"
205 + }
206 + },
207 + "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
208 + "version": "6.2.1",
209 + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
210 + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
211 + "dev": true,
212 + "engines": {
213 + "node": ">=12"
214 + },
215 + "funding": {
216 + "url": "https://github.com/chalk/ansi-styles?sponsor=1"
217 + }
218 + },
219 + "node_modules/@isaacs/cliui/node_modules/string-width": {
220 + "version": "5.1.2",
221 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
222 + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
223 + "dev": true,
224 + "dependencies": {
225 + "eastasianwidth": "^0.2.0",
226 + "emoji-regex": "^9.2.2",
227 + "strip-ansi": "^7.0.1"
228 + },
229 + "engines": {
230 + "node": ">=12"
231 + },
232 + "funding": {
233 + "url": "https://github.com/sponsors/sindresorhus"
234 + }
235 + },
236 + "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
237 + "version": "7.1.0",
238 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
239 + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
240 + "dev": true,
241 + "dependencies": {
242 + "ansi-regex": "^6.0.1"
243 + },
244 + "engines": {
245 + "node": ">=12"
246 + },
247 + "funding": {
248 + "url": "https://github.com/chalk/strip-ansi?sponsor=1"
249 + }
250 + },
251 + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
252 + "version": "8.1.0",
253 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
254 + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
255 + "dev": true,
256 + "dependencies": {
257 + "ansi-styles": "^6.1.0",
258 + "string-width": "^5.0.1",
259 + "strip-ansi": "^7.0.1"
260 + },
261 + "engines": {
262 + "node": ">=12"
263 + },
264 + "funding": {
265 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
266 + }
267 + },
175 268 "node_modules/@nodelib/fs.scandir": {
176 269 "version": "2.1.5",
177 270 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -207,25 +300,29 @@
207 300 "node": ">= 8"
208 301 }
209 302 },
210 "node_modules/@types/json5": {
211 "version": "0.0.29",
212 "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
213 "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
214 "dev": true
303 + "node_modules/@pkgjs/parseargs": {
304 + "version": "0.11.0",
305 + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
306 + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
307 + "dev": true,
308 + "optional": true,
309 + "engines": {
310 + "node": ">=14"
311 + }
215 312 },
216 313 "node_modules/@vercel/ncc": {
217 "version": "0.34.0",
218 "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz",
219 "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==",
314 + "version": "0.36.1",
315 + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.1.tgz",
316 + "integrity": "sha512-S4cL7Taa9yb5qbv+6wLgiKVZ03Qfkc4jGRuiUQMQ8HGBD5pcNRnHeYM33zBvJE4/zJGjJJ8GScB+WmTsn9mORw==",
220 317 "dev": true,
221 318 "bin": {
222 319 "ncc": "dist/ncc/cli.js"
223 320 }
224 321 },
225 322 "node_modules/acorn": {
226 "version": "8.8.0",
227 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
228 "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
323 + "version": "8.9.0",
324 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
325 + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
229 326 "dev": true,
230 327 "bin": {
231 328 "acorn": "bin/acorn"
@@ -289,38 +386,6 @@
289 386 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
290 387 "dev": true
291 388 },
292 "node_modules/aria-query": {
293 "version": "4.2.2",
294 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
295 "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
296 "dev": true,
297 "dependencies": {
298 "@babel/runtime": "^7.10.2",
299 "@babel/runtime-corejs3": "^7.10.2"
300 },
301 "engines": {
302 "node": ">=6.0"
303 }
304 },
305 "node_modules/array-includes": {
306 "version": "3.1.5",
307 "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
308 "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
309 "dev": true,
310 "dependencies": {
311 "call-bind": "^1.0.2",
312 "define-properties": "^1.1.4",
313 "es-abstract": "^1.19.5",
314 "get-intrinsic": "^1.1.1",
315 "is-string": "^1.0.7"
316 },
317 "engines": {
318 "node": ">= 0.4"
319 },
320 "funding": {
321 "url": "https://github.com/sponsors/ljharb"
322 }
323 },
324 389 "node_modules/array-union": {
325 390 "version": "2.1.0",
326 391 "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
@@ -330,75 +395,48 @@
330 395 "node": ">=8"
331 396 }
332 397 },
333 "node_modules/array.prototype.flat": {
334 "version": "1.3.0",
335 "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
336 "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
337 "dev": true,
338 "dependencies": {
339 "call-bind": "^1.0.2",
340 "define-properties": "^1.1.3",
341 "es-abstract": "^1.19.2",
342 "es-shim-unscopables": "^1.0.0"
343 },
344 "engines": {
345 "node": ">= 0.4"
346 },
347 "funding": {
348 "url": "https://github.com/sponsors/ljharb"
349 }
350 },
351 "node_modules/array.prototype.flatmap": {
352 "version": "1.3.0",
353 "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz",
354 "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==",
355 "dev": true,
356 "dependencies": {
357 "call-bind": "^1.0.2",
358 "define-properties": "^1.1.3",
359 "es-abstract": "^1.19.2",
360 "es-shim-unscopables": "^1.0.0"
361 },
362 "engines": {
363 "node": ">= 0.4"
364 },
365 "funding": {
366 "url": "https://github.com/sponsors/ljharb"
367 }
368 },
369 "node_modules/ast-types-flow": {
370 "version": "0.0.7",
371 "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
372 "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
373 "dev": true
374 },
375 398 "node_modules/async": {
376 399 "version": "3.2.3",
377 400 "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
378 401 "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==",
379 402 "dev": true
380 403 },
381 "node_modules/axe-core": {
382 "version": "4.4.3",
383 "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz",
384 "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==",
385 "dev": true,
386 "engines": {
387 "node": ">=4"
388 }
389 },
390 "node_modules/axobject-query": {
391 "version": "2.2.0",
392 "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
393 "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
394 "dev": true
395 },
396 404 "node_modules/balanced-match": {
397 405 "version": "1.0.2",
398 406 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
399 407 "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
400 408 "dev": true
401 409 },
410 + "node_modules/base64-js": {
411 + "version": "1.5.1",
412 + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
413 + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
414 + "dev": true,
415 + "funding": [
416 + {
417 + "type": "github",
418 + "url": "https://github.com/sponsors/feross"
419 + },
420 + {
421 + "type": "patreon",
422 + "url": "https://www.patreon.com/feross"
423 + },
424 + {
425 + "type": "consulting",
426 + "url": "https://feross.org/support"
427 + }
428 + ]
429 + },
430 + "node_modules/bl": {
431 + "version": "1.2.3",
432 + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
433 + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
434 + "dev": true,
435 + "dependencies": {
436 + "readable-stream": "^2.3.5",
437 + "safe-buffer": "^5.1.1"
438 + }
439 + },
402 440 "node_modules/boolean": {
403 441 "version": "3.2.0",
404 442 "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
@@ -427,19 +465,61 @@
427 465 "node": ">=8"
428 466 }
429 467 },
430 "node_modules/call-bind": {
431 "version": "1.0.2",
432 "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
433 "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
468 + "node_modules/buffer": {
469 + "version": "5.7.1",
470 + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
471 + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
472 + "dev": true,
473 + "funding": [
474 + {
475 + "type": "github",
476 + "url": "https://github.com/sponsors/feross"
477 + },
478 + {
479 + "type": "patreon",
480 + "url": "https://www.patreon.com/feross"
481 + },
482 + {
483 + "type": "consulting",
484 + "url": "https://feross.org/support"
485 + }
486 + ],
487 + "dependencies": {
488 + "base64-js": "^1.3.1",
489 + "ieee754": "^1.1.13"
490 + }
491 + },
492 + "node_modules/buffer-alloc": {
493 + "version": "1.2.0",
494 + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
495 + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
434 496 "dev": true,
435 497 "dependencies": {
436 "function-bind": "^1.1.1",
437 "get-intrinsic": "^1.0.2"
438 },
439 "funding": {
440 "url": "https://github.com/sponsors/ljharb"
498 + "buffer-alloc-unsafe": "^1.1.0",
499 + "buffer-fill": "^1.0.0"
441 500 }
442 501 },
502 + "node_modules/buffer-alloc-unsafe": {
503 + "version": "1.1.0",
504 + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
505 + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==",
506 + "dev": true
507 + },
508 + "node_modules/buffer-crc32": {
509 + "version": "0.2.13",
510 + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
511 + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
512 + "dev": true,
513 + "engines": {
514 + "node": "*"
515 + }
516 + },
517 + "node_modules/buffer-fill": {
518 + "version": "1.0.0",
519 + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
520 + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==",
521 + "dev": true
522 + },
443 523 "node_modules/callsites": {
444 524 "version": "3.1.0",
445 525 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
@@ -494,34 +574,29 @@
494 574 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
495 575 "dev": true
496 576 },
577 + "node_modules/commander": {
578 + "version": "2.20.3",
579 + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
580 + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
581 + "dev": true
582 + },
497 583 "node_modules/concat-map": {
498 584 "version": "0.0.1",
499 585 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
500 586 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
501 587 "dev": true
502 588 },
503 "node_modules/confusing-browser-globals": {
504 "version": "1.0.11",
505 "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
506 "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
507 "dev": true
508 },
509 589 "node_modules/consola": {
510 590 "version": "2.15.3",
511 591 "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz",
512 592 "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==",
513 593 "dev": true
514 594 },
515 "node_modules/core-js-pure": {
516 "version": "3.22.2",
517 "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.2.tgz",
518 "integrity": "sha512-Lb+/XT4WC4PaCWWtZpNPaXmjiNDUe5CJuUtbkMrIM1kb1T/jJoAIp+bkVP/r5lHzMr+ZAAF8XHp7+my6Ol0ysQ==",
519 "dev": true,
520 "hasInstallScript": true,
521 "funding": {
522 "type": "opencollective",
523 "url": "https://opencollective.com/core-js"
524 }
595 + "node_modules/core-util-is": {
596 + "version": "1.0.3",
597 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
598 + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
599 + "dev": true
525 600 },
526 601 "node_modules/cross-spawn": {
527 602 "version": "7.0.3",
@@ -537,12 +612,6 @@
537 612 "node": ">= 8"
538 613 }
539 614 },
540 "node_modules/damerau-levenshtein": {
541 "version": "1.0.8",
542 "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
543 "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
544 "dev": true
545 },
546 615 "node_modules/debug": {
547 616 "version": "4.3.4",
548 617 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -560,6 +629,111 @@
560 629 }
561 630 }
562 631 },
632 + "node_modules/decompress": {
633 + "version": "4.2.1",
634 + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz",
635 + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==",
636 + "dev": true,
637 + "dependencies": {
638 + "decompress-tar": "^4.0.0",
639 + "decompress-tarbz2": "^4.0.0",
640 + "decompress-targz": "^4.0.0",
641 + "decompress-unzip": "^4.0.1",
642 + "graceful-fs": "^4.1.10",
643 + "make-dir": "^1.0.0",
644 + "pify": "^2.3.0",
645 + "strip-dirs": "^2.0.0"
646 + },
647 + "engines": {
648 + "node": ">=4"
649 + }
650 + },
651 + "node_modules/decompress-tar": {
652 + "version": "4.1.1",
653 + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz",
654 + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==",
655 + "dev": true,
656 + "dependencies": {
657 + "file-type": "^5.2.0",
658 + "is-stream": "^1.1.0",
659 + "tar-stream": "^1.5.2"
660 + },
661 + "engines": {
662 + "node": ">=4"
663 + }
664 + },
665 + "node_modules/decompress-tarbz2": {
666 + "version": "4.1.1",
667 + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz",
668 + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==",
669 + "dev": true,
670 + "dependencies": {
671 + "decompress-tar": "^4.1.0",
672 + "file-type": "^6.1.0",
673 + "is-stream": "^1.1.0",
674 + "seek-bzip": "^1.0.5",
675 + "unbzip2-stream": "^1.0.9"
676 + },
677 + "engines": {
678 + "node": ">=4"
679 + }
680 + },
681 + "node_modules/decompress-tarbz2/node_modules/file-type": {
682 + "version": "6.2.0",
683 + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz",
684 + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==",
685 + "dev": true,
686 + "engines": {
687 + "node": ">=4"
688 + }
689 + },
690 + "node_modules/decompress-targz": {
691 + "version": "4.1.1",
692 + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz",
693 + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==",
694 + "dev": true,
695 + "dependencies": {
696 + "decompress-tar": "^4.1.1",
697 + "file-type": "^5.2.0",
698 + "is-stream": "^1.1.0"
699 + },
700 + "engines": {
701 + "node": ">=4"
702 + }
703 + },
704 + "node_modules/decompress-unzip": {
705 + "version": "4.0.1",
706 + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz",
707 + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==",
708 + "dev": true,
709 + "dependencies": {
710 + "file-type": "^3.8.0",
711 + "get-stream": "^2.2.0",
712 + "pify": "^2.3.0",
713 + "yauzl": "^2.4.2"
714 + },
715 + "engines": {
716 + "node": ">=4"
717 + }
718 + },
719 + "node_modules/decompress-unzip/node_modules/file-type": {
720 + "version": "3.9.0",
721 + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
722 + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==",
723 + "dev": true,
724 + "engines": {
725 + "node": ">=0.10.0"
726 + }
727 + },
728 + "node_modules/deep-extend": {
729 + "version": "0.6.0",
730 + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
731 + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
732 + "dev": true,
733 + "engines": {
734 + "node": ">=4.0.0"
735 + }
736 + },
563 737 "node_modules/deep-is": {
564 738 "version": "0.1.4",
565 739 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
@@ -567,9 +741,9 @@
567 741 "dev": true
568 742 },
569 743 "node_modules/define-properties": {
570 "version": "1.1.4",
571 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
572 "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
744 + "version": "1.2.0",
745 + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
746 + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
573 747 "dev": true,
574 748 "dependencies": {
575 749 "has-property-descriptors": "^1.0.0",
@@ -612,12 +786,27 @@
612 786 "node": ">=6.0.0"
613 787 }
614 788 },
789 + "node_modules/eastasianwidth": {
790 + "version": "0.2.0",
791 + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
792 + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
793 + "dev": true
794 + },
615 795 "node_modules/emoji-regex": {
616 796 "version": "9.2.2",
617 797 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
618 798 "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
619 799 "dev": true
620 800 },
801 + "node_modules/end-of-stream": {
802 + "version": "1.4.4",
803 + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
804 + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
805 + "dev": true,
806 + "dependencies": {
807 + "once": "^1.4.0"
808 + }
809 + },
621 810 "node_modules/entities": {
622 811 "version": "3.0.1",
623 812 "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
@@ -630,76 +819,16 @@
630 819 "url": "https://github.com/fb55/entities?sponsor=1"
631 820 }
632 821 },
633 "node_modules/es-abstract": {
634 "version": "1.19.5",
635 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz",
636 "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==",
637 "dev": true,
638 "dependencies": {
639 "call-bind": "^1.0.2",
640 "es-to-primitive": "^1.2.1",
641 "function-bind": "^1.1.1",
642 "get-intrinsic": "^1.1.1",
643 "get-symbol-description": "^1.0.0",
644 "has": "^1.0.3",
645 "has-symbols": "^1.0.3",
646 "internal-slot": "^1.0.3",
647 "is-callable": "^1.2.4",
648 "is-negative-zero": "^2.0.2",
649 "is-regex": "^1.1.4",
650 "is-shared-array-buffer": "^1.0.2",
651 "is-string": "^1.0.7",
652 "is-weakref": "^1.0.2",
653 "object-inspect": "^1.12.0",
654 "object-keys": "^1.1.1",
655 "object.assign": "^4.1.2",
656 "string.prototype.trimend": "^1.0.4",
657 "string.prototype.trimstart": "^1.0.4",
658 "unbox-primitive": "^1.0.1"
659 },
660 "engines": {
661 "node": ">= 0.4"
662 },
663 "funding": {
664 "url": "https://github.com/sponsors/ljharb"
665 }
666 },
667 "node_modules/es-shim-unscopables": {
668 "version": "1.0.0",
669 "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
670 "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
671 "dev": true,
672 "dependencies": {
673 "has": "^1.0.3"
674 }
675 },
676 "node_modules/es-to-primitive": {
677 "version": "1.2.1",
678 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
679 "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
680 "dev": true,
681 "dependencies": {
682 "is-callable": "^1.1.4",
683 "is-date-object": "^1.0.1",
684 "is-symbol": "^1.0.2"
685 },
686 "engines": {
687 "node": ">= 0.4"
688 },
689 "funding": {
690 "url": "https://github.com/sponsors/ljharb"
691 }
692 },
693 "node_modules/es6-error": {
694 "version": "4.1.1",
695 "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
696 "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
697 "dev": true
698 },
699 "node_modules/escalade": {
700 "version": "3.1.1",
701 "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
702 "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
822 + "node_modules/es6-error": {
823 + "version": "4.1.1",
824 + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
825 + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
826 + "dev": true
827 + },
828 + "node_modules/escalade": {
829 + "version": "3.1.1",
830 + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
831 + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
703 832 "dev": true,
704 833 "engines": {
705 834 "node": ">=6"
@@ -718,38 +847,40 @@
718 847 }
719 848 },
720 849 "node_modules/eslint": {
721 "version": "8.25.0",
722 "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz",
723 "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==",
850 + "version": "8.43.0",
851 + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.43.0.tgz",
852 + "integrity": "sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==",
724 853 "dev": true,
725 854 "dependencies": {
726 "@eslint/eslintrc": "^1.3.3",
727 "@humanwhocodes/config-array": "^0.10.5",
855 + "@eslint-community/eslint-utils": "^4.2.0",
856 + "@eslint-community/regexpp": "^4.4.0",
857 + "@eslint/eslintrc": "^2.0.3",
858 + "@eslint/js": "8.43.0",
859 + "@humanwhocodes/config-array": "^0.11.10",
728 860 "@humanwhocodes/module-importer": "^1.0.1",
861 + "@nodelib/fs.walk": "^1.2.8",
729 862 "ajv": "^6.10.0",
730 863 "chalk": "^4.0.0",
731 864 "cross-spawn": "^7.0.2",
732 865 "debug": "^4.3.2",
733 866 "doctrine": "^3.0.0",
734 867 "escape-string-regexp": "^4.0.0",
735 "eslint-scope": "^7.1.1",
736 "eslint-utils": "^3.0.0",
737 "eslint-visitor-keys": "^3.3.0",
738 "espree": "^9.4.0",
739 "esquery": "^1.4.0",
868 + "eslint-scope": "^7.2.0",
869 + "eslint-visitor-keys": "^3.4.1",
870 + "espree": "^9.5.2",
871 + "esquery": "^1.4.2",
740 872 "esutils": "^2.0.2",
741 873 "fast-deep-equal": "^3.1.3",
742 874 "file-entry-cache": "^6.0.1",
743 875 "find-up": "^5.0.0",
744 "glob-parent": "^6.0.1",
745 "globals": "^13.15.0",
746 "globby": "^11.1.0",
747 "grapheme-splitter": "^1.0.4",
876 + "glob-parent": "^6.0.2",
877 + "globals": "^13.19.0",
878 + "graphemer": "^1.4.0",
748 879 "ignore": "^5.2.0",
749 880 "import-fresh": "^3.0.0",
750 881 "imurmurhash": "^0.1.4",
751 882 "is-glob": "^4.0.0",
752 "js-sdsl": "^4.1.4",
883 + "is-path-inside": "^3.0.3",
753 884 "js-yaml": "^4.1.0",
754 885 "json-stable-stringify-without-jsonify": "^1.0.1",
755 886 "levn": "^0.4.1",
@@ -757,7 +888,6 @@
757 888 "minimatch": "^3.1.2",
758 889 "natural-compare": "^1.4.0",
759 890 "optionator": "^0.9.1",
760 "regexpp": "^3.2.0",
761 891 "strip-ansi": "^6.0.1",
762 892 "strip-json-comments": "^3.1.0",
763 893 "text-table": "^0.2.0"
@@ -772,265 +902,10 @@
772 902 "url": "https://opencollective.com/eslint"
773 903 }
774 904 },
775 "node_modules/eslint-config-airbnb": {
776 "version": "19.0.4",
777 "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
778 "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
779 "dev": true,
780 "dependencies": {
781 "eslint-config-airbnb-base": "^15.0.0",
782 "object.assign": "^4.1.2",
783 "object.entries": "^1.1.5"
784 },
785 "engines": {
786 "node": "^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0"
787 },
788 "peerDependencies": {
789 "eslint": "^7.32.0 || ^8.2.0",
790 "eslint-plugin-import": "^2.25.3",
791 "eslint-plugin-jsx-a11y": "^6.5.1",
792 "eslint-plugin-react": "^7.28.0",
793 "eslint-plugin-react-hooks": "^4.3.0"
794 }
795 },
796 "node_modules/eslint-config-airbnb-base": {
797 "version": "15.0.0",
798 "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
799 "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
800 "dev": true,
801 "dependencies": {
802 "confusing-browser-globals": "^1.0.10",
803 "object.assign": "^4.1.2",
804 "object.entries": "^1.1.5",
805 "semver": "^6.3.0"
806 },
807 "engines": {
808 "node": "^10.12.0 || >=12.0.0"
809 },
810 "peerDependencies": {
811 "eslint": "^7.32.0 || ^8.2.0",
812 "eslint-plugin-import": "^2.25.2"
813 }
814 },
815 "node_modules/eslint-config-airbnb-base/node_modules/semver": {
816 "version": "6.3.0",
817 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
818 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
819 "dev": true,
820 "bin": {
821 "semver": "bin/semver.js"
822 }
823 },
824 "node_modules/eslint-import-resolver-node": {
825 "version": "0.3.6",
826 "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
827 "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
828 "dev": true,
829 "dependencies": {
830 "debug": "^3.2.7",
831 "resolve": "^1.20.0"
832 }
833 },
834 "node_modules/eslint-import-resolver-node/node_modules/debug": {
835 "version": "3.2.7",
836 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
837 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
838 "dev": true,
839 "dependencies": {
840 "ms": "^2.1.1"
841 }
842 },
843 "node_modules/eslint-module-utils": {
844 "version": "2.7.3",
845 "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
846 "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
847 "dev": true,
848 "dependencies": {
849 "debug": "^3.2.7",
850 "find-up": "^2.1.0"
851 },
852 "engines": {
853 "node": ">=4"
854 }
855 },
856 "node_modules/eslint-module-utils/node_modules/debug": {
857 "version": "3.2.7",
858 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
859 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
860 "dev": true,
861 "dependencies": {
862 "ms": "^2.1.1"
863 }
864 },
865 "node_modules/eslint-plugin-import": {
866 "version": "2.26.0",
867 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
868 "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
869 "dev": true,
870 "dependencies": {
871 "array-includes": "^3.1.4",
872 "array.prototype.flat": "^1.2.5",
873 "debug": "^2.6.9",
874 "doctrine": "^2.1.0",
875 "eslint-import-resolver-node": "^0.3.6",
876 "eslint-module-utils": "^2.7.3",
877 "has": "^1.0.3",
878 "is-core-module": "^2.8.1",
879 "is-glob": "^4.0.3",
880 "minimatch": "^3.1.2",
881 "object.values": "^1.1.5",
882 "resolve": "^1.22.0",
883 "tsconfig-paths": "^3.14.1"
884 },
885 "engines": {
886 "node": ">=4"
887 },
888 "peerDependencies": {
889 "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8"
890 }
891 },
892 "node_modules/eslint-plugin-import/node_modules/debug": {
893 "version": "2.6.9",
894 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
895 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
896 "dev": true,
897 "dependencies": {
898 "ms": "2.0.0"
899 }
900 },
901 "node_modules/eslint-plugin-import/node_modules/doctrine": {
902 "version": "2.1.0",
903 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
904 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
905 "dev": true,
906 "dependencies": {
907 "esutils": "^2.0.2"
908 },
909 "engines": {
910 "node": ">=0.10.0"
911 }
912 },
913 "node_modules/eslint-plugin-import/node_modules/ms": {
914 "version": "2.0.0",
915 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
916 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
917 "dev": true
918 },
919 "node_modules/eslint-plugin-jsx-a11y": {
920 "version": "6.6.1",
921 "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
922 "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
923 "dev": true,
924 "dependencies": {
925 "@babel/runtime": "^7.18.9",
926 "aria-query": "^4.2.2",
927 "array-includes": "^3.1.5",
928 "ast-types-flow": "^0.0.7",
929 "axe-core": "^4.4.3",
930 "axobject-query": "^2.2.0",
931 "damerau-levenshtein": "^1.0.8",
932 "emoji-regex": "^9.2.2",
933 "has": "^1.0.3",
934 "jsx-ast-utils": "^3.3.2",
935 "language-tags": "^1.0.5",
936 "minimatch": "^3.1.2",
937 "semver": "^6.3.0"
938 },
939 "engines": {
940 "node": ">=4.0"
941 },
942 "peerDependencies": {
943 "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
944 }
945 },
946 "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": {
947 "version": "6.3.0",
948 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
949 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
950 "dev": true,
951 "bin": {
952 "semver": "bin/semver.js"
953 }
954 },
955 "node_modules/eslint-plugin-react": {
956 "version": "7.31.10",
957 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz",
958 "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==",
959 "dev": true,
960 "dependencies": {
961 "array-includes": "^3.1.5",
962 "array.prototype.flatmap": "^1.3.0",
963 "doctrine": "^2.1.0",
964 "estraverse": "^5.3.0",
965 "jsx-ast-utils": "^2.4.1 || ^3.0.0",
966 "minimatch": "^3.1.2",
967 "object.entries": "^1.1.5",
968 "object.fromentries": "^2.0.5",
969 "object.hasown": "^1.1.1",
970 "object.values": "^1.1.5",
971 "prop-types": "^15.8.1",
972 "resolve": "^2.0.0-next.3",
973 "semver": "^6.3.0",
974 "string.prototype.matchall": "^4.0.7"
975 },
976 "engines": {
977 "node": ">=4"
978 },
979 "peerDependencies": {
980 "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8"
981 }
982 },
983 "node_modules/eslint-plugin-react-hooks": {
984 "version": "4.4.0",
985 "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz",
986 "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==",
987 "dev": true,
988 "peer": true,
989 "engines": {
990 "node": ">=10"
991 },
992 "peerDependencies": {
993 "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0"
994 }
995 },
996 "node_modules/eslint-plugin-react/node_modules/doctrine": {
997 "version": "2.1.0",
998 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
999 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
1000 "dev": true,
1001 "dependencies": {
1002 "esutils": "^2.0.2"
1003 },
1004 "engines": {
1005 "node": ">=0.10.0"
1006 }
1007 },
1008 "node_modules/eslint-plugin-react/node_modules/resolve": {
1009 "version": "2.0.0-next.3",
1010 "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
1011 "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
1012 "dev": true,
1013 "dependencies": {
1014 "is-core-module": "^2.2.0",
1015 "path-parse": "^1.0.6"
1016 },
1017 "funding": {
1018 "url": "https://github.com/sponsors/ljharb"
1019 }
1020 },
1021 "node_modules/eslint-plugin-react/node_modules/semver": {
1022 "version": "6.3.0",
1023 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1024 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1025 "dev": true,
1026 "bin": {
1027 "semver": "bin/semver.js"
1028 }
1029 },
1030 905 "node_modules/eslint-scope": {
1031 "version": "7.1.1",
1032 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
1033 "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
906 + "version": "7.2.0",
907 + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz",
908 + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==",
1034 909 "dev": true,
1035 910 "dependencies": {
1036 911 "esrecurse": "^4.3.0",
@@ -1038,42 +913,21 @@
1038 913 },
1039 914 "engines": {
1040 915 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
1041 }
1042 },
1043 "node_modules/eslint-utils": {
1044 "version": "3.0.0",
1045 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
1046 "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
1047 "dev": true,
1048 "dependencies": {
1049 "eslint-visitor-keys": "^2.0.0"
1050 },
1051 "engines": {
1052 "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
1053 916 },
1054 917 "funding": {
1055 "url": "https://github.com/sponsors/mysticatea"
1056 },
1057 "peerDependencies": {
1058 "eslint": ">=5"
1059 }
1060 },
1061 "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
1062 "version": "2.1.0",
1063 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
1064 "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
1065 "dev": true,
1066 "engines": {
1067 "node": ">=10"
918 + "url": "https://opencollective.com/eslint"
1068 919 }
1069 920 },
1070 921 "node_modules/eslint-visitor-keys": {
1071 "version": "3.3.0",
1072 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
1073 "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
922 + "version": "3.4.1",
923 + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz",
924 + "integrity": "sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==",
1074 925 "dev": true,
1075 926 "engines": {
1076 927 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
928 + },
929 + "funding": {
930 + "url": "https://opencollective.com/eslint"
1077 931 }
1078 932 },
1079 933 "node_modules/eslint/node_modules/find-up": {
@@ -1147,14 +1001,14 @@
1147 1001 }
1148 1002 },
1149 1003 "node_modules/espree": {
1150 "version": "9.4.0",
1151 "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
1152 "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
1004 + "version": "9.5.2",
1005 + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.2.tgz",
1006 + "integrity": "sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==",
1153 1007 "dev": true,
1154 1008 "dependencies": {
1155 1009 "acorn": "^8.8.0",
1156 1010 "acorn-jsx": "^5.3.2",
1157 "eslint-visitor-keys": "^3.3.0"
1011 + "eslint-visitor-keys": "^3.4.1"
1158 1012 },
1159 1013 "engines": {
1160 1014 "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -1164,9 +1018,9 @@
1164 1018 }
1165 1019 },
1166 1020 "node_modules/esquery": {
1167 "version": "1.4.0",
1168 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
1169 "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
1021 + "version": "1.5.0",
1022 + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
1023 + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
1170 1024 "dev": true,
1171 1025 "dependencies": {
1172 1026 "estraverse": "^5.1.0"
@@ -1260,6 +1114,15 @@
1260 1114 "reusify": "^1.0.4"
1261 1115 }
1262 1116 },
1117 + "node_modules/fd-slicer": {
1118 + "version": "1.1.0",
1119 + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
1120 + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
1121 + "dev": true,
1122 + "dependencies": {
1123 + "pend": "~1.2.0"
1124 + }
1125 + },
1263 1126 "node_modules/file-entry-cache": {
1264 1127 "version": "6.0.1",
1265 1128 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
@@ -1272,6 +1135,15 @@
1272 1135 "node": "^10.12.0 || >=12.0.0"
1273 1136 }
1274 1137 },
1138 + "node_modules/file-type": {
1139 + "version": "5.2.0",
1140 + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz",
1141 + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==",
1142 + "dev": true,
1143 + "engines": {
1144 + "node": ">=4"
1145 + }
1146 + },
1275 1147 "node_modules/fill-range": {
1276 1148 "version": "7.0.1",
1277 1149 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -1284,18 +1156,6 @@
1284 1156 "node": ">=8"
1285 1157 }
1286 1158 },
1287 "node_modules/find-up": {
1288 "version": "2.1.0",
1289 "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
1290 "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
1291 "dev": true,
1292 "dependencies": {
1293 "locate-path": "^2.0.0"
1294 },
1295 "engines": {
1296 "node": ">=4"
1297 }
1298 },
1299 1159 "node_modules/flat-cache": {
1300 1160 "version": "3.0.4",
1301 1161 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
@@ -1315,6 +1175,28 @@
1315 1175 "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
1316 1176 "dev": true
1317 1177 },
1178 + "node_modules/foreground-child": {
1179 + "version": "3.1.1",
1180 + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
1181 + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
1182 + "dev": true,
1183 + "dependencies": {
1184 + "cross-spawn": "^7.0.0",
1185 + "signal-exit": "^4.0.1"
1186 + },
1187 + "engines": {
1188 + "node": ">=14"
1189 + },
1190 + "funding": {
1191 + "url": "https://github.com/sponsors/isaacs"
1192 + }
1193 + },
1194 + "node_modules/fs-constants": {
1195 + "version": "1.0.0",
1196 + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
1197 + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
1198 + "dev": true
1199 + },
1318 1200 "node_modules/fs.realpath": {
1319 1201 "version": "1.0.0",
1320 1202 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -1327,15 +1209,6 @@
1327 1209 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1328 1210 "dev": true
1329 1211 },
1330 "node_modules/functions-have-names": {
1331 "version": "1.2.3",
1332 "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
1333 "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
1334 "dev": true,
1335 "funding": {
1336 "url": "https://github.com/sponsors/ljharb"
1337 }
1338 },
1339 1212 "node_modules/get-caller-file": {
1340 1213 "version": "2.0.5",
1341 1214 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -1346,33 +1219,43 @@
1346 1219 }
1347 1220 },
1348 1221 "node_modules/get-intrinsic": {
1349 "version": "1.1.1",
1350 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1351 "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1222 + "version": "1.2.1",
1223 + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
1224 + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
1352 1225 "dev": true,
1353 1226 "dependencies": {
1354 1227 "function-bind": "^1.1.1",
1355 1228 "has": "^1.0.3",
1356 "has-symbols": "^1.0.1"
1229 + "has-proto": "^1.0.1",
1230 + "has-symbols": "^1.0.3"
1357 1231 },
1358 1232 "funding": {
1359 1233 "url": "https://github.com/sponsors/ljharb"
1360 1234 }
1361 1235 },
1362 "node_modules/get-symbol-description": {
1363 "version": "1.0.0",
1364 "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
1365 "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
1236 + "node_modules/get-stdin": {
1237 + "version": "9.0.0",
1238 + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
1239 + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==",
1366 1240 "dev": true,
1367 "dependencies": {
1368 "call-bind": "^1.0.2",
1369 "get-intrinsic": "^1.1.1"
1370 },
1371 1241 "engines": {
1372 "node": ">= 0.4"
1242 + "node": ">=12"
1373 1243 },
1374 1244 "funding": {
1375 "url": "https://github.com/sponsors/ljharb"
1245 + "url": "https://github.com/sponsors/sindresorhus"
1246 + }
1247 + },
1248 + "node_modules/get-stream": {
1249 + "version": "2.3.1",
1250 + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz",
1251 + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==",
1252 + "dev": true,
1253 + "dependencies": {
1254 + "object-assign": "^4.0.1",
1255 + "pinkie-promise": "^2.0.0"
1256 + },
1257 + "engines": {
1258 + "node": ">=0.10.0"
1376 1259 }
1377 1260 },
1378 1261 "node_modules/glob": {
@@ -1425,9 +1308,9 @@
1425 1308 }
1426 1309 },
1427 1310 "node_modules/globals": {
1428 "version": "13.17.0",
1429 "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
1430 "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
1311 + "version": "13.20.0",
1312 + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
1313 + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
1431 1314 "dev": true,
1432 1315 "dependencies": {
1433 1316 "type-fest": "^0.20.2"
@@ -1440,9 +1323,9 @@
1440 1323 }
1441 1324 },
1442 1325 "node_modules/globalthis": {
1443 "version": "1.0.2",
1444 "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz",
1445 "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==",
1326 + "version": "1.0.3",
1327 + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
1328 + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
1446 1329 "dev": true,
1447 1330 "dependencies": {
1448 1331 "define-properties": "^1.1.3"
@@ -1474,14 +1357,20 @@
1474 1357 "url": "https://github.com/sponsors/sindresorhus"
1475 1358 }
1476 1359 },
1477 "node_modules/grapheme-splitter": {
1478 "version": "1.0.4",
1479 "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
1480 "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
1360 + "node_modules/graceful-fs": {
1361 + "version": "4.2.11",
1362 + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1363 + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1481 1364 "dev": true
1482 1365 },
1483 "node_modules/has": {
1484 "version": "1.0.3",
1366 + "node_modules/graphemer": {
1367 + "version": "1.4.0",
1368 + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
1369 + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
1370 + "dev": true
1371 + },
1372 + "node_modules/has": {
1373 + "version": "1.0.3",
1485 1374 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1486 1375 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1487 1376 "dev": true,
@@ -1492,15 +1381,6 @@
1492 1381 "node": ">= 0.4.0"
1493 1382 }
1494 1383 },
1495 "node_modules/has-bigints": {
1496 "version": "1.0.2",
1497 "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
1498 "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
1499 "dev": true,
1500 "funding": {
1501 "url": "https://github.com/sponsors/ljharb"
1502 }
1503 },
1504 1384 "node_modules/has-flag": {
1505 1385 "version": "4.0.0",
1506 1386 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
@@ -1522,10 +1402,10 @@
1522 1402 "url": "https://github.com/sponsors/ljharb"
1523 1403 }
1524 1404 },
1525 "node_modules/has-symbols": {
1526 "version": "1.0.3",
1527 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1528 "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
1405 + "node_modules/has-proto": {
1406 + "version": "1.0.1",
1407 + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
1408 + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
1529 1409 "dev": true,
1530 1410 "engines": {
1531 1411 "node": ">= 0.4"
@@ -1534,14 +1414,11 @@
1534 1414 "url": "https://github.com/sponsors/ljharb"
1535 1415 }
1536 1416 },
1537 "node_modules/has-tostringtag": {
1538 "version": "1.0.0",
1539 "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
1540 "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
1417 + "node_modules/has-symbols": {
1418 + "version": "1.0.3",
1419 + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
1420 + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
1541 1421 "dev": true,
1542 "dependencies": {
1543 "has-symbols": "^1.0.2"
1544 },
1545 1422 "engines": {
1546 1423 "node": ">= 0.4"
1547 1424 },
@@ -1549,25 +1426,30 @@
1549 1426 "url": "https://github.com/sponsors/ljharb"
1550 1427 }
1551 1428 },
1552 "node_modules/husky": {
1553 "version": "8.0.1",
1554 "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz",
1555 "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==",
1429 + "node_modules/ieee754": {
1430 + "version": "1.2.1",
1431 + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
1432 + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
1556 1433 "dev": true,
1557 "bin": {
1558 "husky": "lib/bin.js"
1559 },
1560 "engines": {
1561 "node": ">=14"
1562 },
1563 "funding": {
1564 "url": "https://github.com/sponsors/typicode"
1565 }
1434 + "funding": [
1435 + {
1436 + "type": "github",
1437 + "url": "https://github.com/sponsors/feross"
1438 + },
1439 + {
1440 + "type": "patreon",
1441 + "url": "https://www.patreon.com/feross"
1442 + },
1443 + {
1444 + "type": "consulting",
1445 + "url": "https://feross.org/support"
1446 + }
1447 + ]
1566 1448 },
1567 1449 "node_modules/ignore": {
1568 "version": "5.2.0",
1569 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
1570 "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
1450 + "version": "5.2.4",
1451 + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
1452 + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
1571 1453 "dev": true,
1572 1454 "engines": {
1573 1455 "node": ">= 4"
@@ -1623,87 +1505,6 @@
1623 1505 "node": ">=10"
1624 1506 }
1625 1507 },
1626 "node_modules/internal-slot": {
1627 "version": "1.0.3",
1628 "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
1629 "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
1630 "dev": true,
1631 "dependencies": {
1632 "get-intrinsic": "^1.1.0",
1633 "has": "^1.0.3",
1634 "side-channel": "^1.0.4"
1635 },
1636 "engines": {
1637 "node": ">= 0.4"
1638 }
1639 },
1640 "node_modules/is-bigint": {
1641 "version": "1.0.4",
1642 "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
1643 "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
1644 "dev": true,
1645 "dependencies": {
1646 "has-bigints": "^1.0.1"
1647 },
1648 "funding": {
1649 "url": "https://github.com/sponsors/ljharb"
1650 }
1651 },
1652 "node_modules/is-boolean-object": {
1653 "version": "1.1.2",
1654 "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
1655 "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
1656 "dev": true,
1657 "dependencies": {
1658 "call-bind": "^1.0.2",
1659 "has-tostringtag": "^1.0.0"
1660 },
1661 "engines": {
1662 "node": ">= 0.4"
1663 },
1664 "funding": {
1665 "url": "https://github.com/sponsors/ljharb"
1666 }
1667 },
1668 "node_modules/is-callable": {
1669 "version": "1.2.4",
1670 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
1671 "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
1672 "dev": true,
1673 "engines": {
1674 "node": ">= 0.4"
1675 },
1676 "funding": {
1677 "url": "https://github.com/sponsors/ljharb"
1678 }
1679 },
1680 "node_modules/is-core-module": {
1681 "version": "2.9.0",
1682 "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
1683 "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
1684 "dev": true,
1685 "dependencies": {
1686 "has": "^1.0.3"
1687 },
1688 "funding": {
1689 "url": "https://github.com/sponsors/ljharb"
1690 }
1691 },
1692 "node_modules/is-date-object": {
1693 "version": "1.0.5",
1694 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
1695 "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
1696 "dev": true,
1697 "dependencies": {
1698 "has-tostringtag": "^1.0.0"
1699 },
1700 "engines": {
1701 "node": ">= 0.4"
1702 },
1703 "funding": {
1704 "url": "https://github.com/sponsors/ljharb"
1705 }
1706 },
1707 1508 "node_modules/is-extglob": {
1708 1509 "version": "2.1.1",
1709 1510 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -1734,17 +1535,11 @@
1734 1535 "node": ">=0.10.0"
1735 1536 }
1736 1537 },
1737 "node_modules/is-negative-zero": {
1738 "version": "2.0.2",
1739 "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
1740 "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
1741 "dev": true,
1742 "engines": {
1743 "node": ">= 0.4"
1744 },
1745 "funding": {
1746 "url": "https://github.com/sponsors/ljharb"
1747 }
1538 + "node_modules/is-natural-number": {
1539 + "version": "4.0.1",
1540 + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
1541 + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==",
1542 + "dev": true
1748 1543 },
1749 1544 "node_modules/is-number": {
1750 1545 "version": "7.0.0",
@@ -1755,109 +1550,54 @@
1755 1550 "node": ">=0.12.0"
1756 1551 }
1757 1552 },
1758 "node_modules/is-number-object": {
1759 "version": "1.0.7",
1760 "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
1761 "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
1553 + "node_modules/is-path-inside": {
1554 + "version": "3.0.3",
1555 + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
1556 + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
1762 1557 "dev": true,
1763 "dependencies": {
1764 "has-tostringtag": "^1.0.0"
1765 },
1766 1558 "engines": {
1767 "node": ">= 0.4"
1768 },
1769 "funding": {
1770 "url": "https://github.com/sponsors/ljharb"
1559 + "node": ">=8"
1771 1560 }
1772 1561 },
1773 "node_modules/is-regex": {
1774 "version": "1.1.4",
1775 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
1776 "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
1562 + "node_modules/is-stream": {
1563 + "version": "1.1.0",
1564 + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
1565 + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
1777 1566 "dev": true,
1778 "dependencies": {
1779 "call-bind": "^1.0.2",
1780 "has-tostringtag": "^1.0.0"
1781 },
1782 1567 "engines": {
1783 "node": ">= 0.4"
1784 },
1785 "funding": {
1786 "url": "https://github.com/sponsors/ljharb"
1568 + "node": ">=0.10.0"
1787 1569 }
1788 1570 },
1789 "node_modules/is-shared-array-buffer": {
1790 "version": "1.0.2",
1791 "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
1792 "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
1793 "dev": true,
1794 "dependencies": {
1795 "call-bind": "^1.0.2"
1796 },
1797 "funding": {
1798 "url": "https://github.com/sponsors/ljharb"
1799 }
1571 + "node_modules/isarray": {
1572 + "version": "1.0.0",
1573 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1574 + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
1575 + "dev": true
1800 1576 },
1801 "node_modules/is-string": {
1802 "version": "1.0.7",
1803 "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
1804 "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
1805 "dev": true,
1806 "dependencies": {
1807 "has-tostringtag": "^1.0.0"
1808 },
1809 "engines": {
1810 "node": ">= 0.4"
1811 },
1812 "funding": {
1813 "url": "https://github.com/sponsors/ljharb"
1814 }
1577 + "node_modules/isexe": {
1578 + "version": "2.0.0",
1579 + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1580 + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1581 + "dev": true
1815 1582 },
1816 "node_modules/is-symbol": {
1817 "version": "1.0.4",
1818 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
1819 "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
1583 + "node_modules/jackspeak": {
1584 + "version": "2.2.1",
1585 + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz",
1586 + "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==",
1820 1587 "dev": true,
1821 1588 "dependencies": {
1822 "has-symbols": "^1.0.2"
1589 + "@isaacs/cliui": "^8.0.2"
1823 1590 },
1824 1591 "engines": {
1825 "node": ">= 0.4"
1592 + "node": ">=14"
1826 1593 },
1827 1594 "funding": {
1828 "url": "https://github.com/sponsors/ljharb"
1829 }
1830 },
1831 "node_modules/is-weakref": {
1832 "version": "1.0.2",
1833 "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
1834 "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
1835 "dev": true,
1836 "dependencies": {
1837 "call-bind": "^1.0.2"
1595 + "url": "https://github.com/sponsors/isaacs"
1838 1596 },
1839 "funding": {
1840 "url": "https://github.com/sponsors/ljharb"
1597 + "optionalDependencies": {
1598 + "@pkgjs/parseargs": "^0.11.0"
1841 1599 }
1842 1600 },
1843 "node_modules/isexe": {
1844 "version": "2.0.0",
1845 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1846 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1847 "dev": true
1848 },
1849 "node_modules/js-sdsl": {
1850 "version": "4.1.5",
1851 "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
1852 "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
1853 "dev": true
1854 },
1855 "node_modules/js-tokens": {
1856 "version": "4.0.0",
1857 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1858 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
1859 "dev": true
1860 },
1861 1601 "node_modules/js-yaml": {
1862 1602 "version": "4.1.0",
1863 1603 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -1888,46 +1628,12 @@
1888 1628 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
1889 1629 "dev": true
1890 1630 },
1891 "node_modules/json5": {
1892 "version": "1.0.2",
1893 "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
1894 "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
1895 "dev": true,
1896 "dependencies": {
1897 "minimist": "^1.2.0"
1898 },
1899 "bin": {
1900 "json5": "lib/cli.js"
1901 }
1902 },
1903 "node_modules/jsx-ast-utils": {
1904 "version": "3.3.3",
1905 "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
1906 "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
1907 "dev": true,
1908 "dependencies": {
1909 "array-includes": "^3.1.5",
1910 "object.assign": "^4.1.3"
1911 },
1912 "engines": {
1913 "node": ">=4.0"
1914 }
1915 },
1916 "node_modules/language-subtag-registry": {
1917 "version": "0.3.21",
1918 "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
1919 "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==",
1631 + "node_modules/jsonc-parser": {
1632 + "version": "3.2.0",
1633 + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
1634 + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
1920 1635 "dev": true
1921 1636 },
1922 "node_modules/language-tags": {
1923 "version": "1.0.5",
1924 "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
1925 "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
1926 "dev": true,
1927 "dependencies": {
1928 "language-subtag-registry": "~0.3.2"
1929 }
1930 },
1931 1637 "node_modules/levn": {
1932 1638 "version": "0.4.1",
1933 1639 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
@@ -1950,37 +1656,12 @@
1950 1656 "uc.micro": "^1.0.1"
1951 1657 }
1952 1658 },
1953 "node_modules/locate-path": {
1954 "version": "2.0.0",
1955 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
1956 "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
1957 "dev": true,
1958 "dependencies": {
1959 "p-locate": "^2.0.0",
1960 "path-exists": "^3.0.0"
1961 },
1962 "engines": {
1963 "node": ">=4"
1964 }
1965 },
1966 1659 "node_modules/lodash.merge": {
1967 1660 "version": "4.6.2",
1968 1661 "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
1969 1662 "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
1970 1663 "dev": true
1971 1664 },
1972 "node_modules/loose-envify": {
1973 "version": "1.4.0",
1974 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1975 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1976 "dev": true,
1977 "dependencies": {
1978 "js-tokens": "^3.0.0 || ^4.0.0"
1979 },
1980 "bin": {
1981 "loose-envify": "cli.js"
1982 }
1983 },
1984 1665 "node_modules/lru-cache": {
1985 1666 "version": "6.0.0",
1986 1667 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -1992,6 +1673,27 @@
1992 1673 "node": ">=10"
1993 1674 }
1994 1675 },
1676 + "node_modules/make-dir": {
1677 + "version": "1.3.0",
1678 + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
1679 + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
1680 + "dev": true,
1681 + "dependencies": {
1682 + "pify": "^3.0.0"
1683 + },
1684 + "engines": {
1685 + "node": ">=4"
1686 + }
1687 + },
1688 + "node_modules/make-dir/node_modules/pify": {
1689 + "version": "3.0.0",
1690 + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
1691 + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
1692 + "dev": true,
1693 + "engines": {
1694 + "node": ">=4"
1695 + }
1696 + },
1995 1697 "node_modules/markdown-it": {
1996 1698 "version": "13.0.1",
1997 1699 "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
@@ -2009,56 +1711,144 @@
2009 1711 }
2010 1712 },
2011 1713 "node_modules/markdownlint": {
2012 "version": "0.26.2",
2013 "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz",
2014 "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==",
1714 + "version": "0.29.0",
1715 + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.29.0.tgz",
1716 + "integrity": "sha512-ASAzqpODstu/Qsk0xW5BPgWnK/qjpBQ4e7IpsSvvFXcfYIjanLTdwFRJK1SIEEh0fGSMKXcJf/qhaZYHyME0wA==",
2015 1717 "dev": true,
2016 1718 "dependencies": {
2017 "markdown-it": "13.0.1"
1719 + "markdown-it": "13.0.1",
1720 + "markdownlint-micromark": "0.1.5"
2018 1721 },
2019 1722 "engines": {
2020 "node": ">=14"
1723 + "node": ">=16"
2021 1724 }
2022 1725 },
2023 "node_modules/matcher": {
2024 "version": "3.0.0",
2025 "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
2026 "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
1726 + "node_modules/markdownlint-cli": {
1727 + "version": "0.35.0",
1728 + "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.35.0.tgz",
1729 + "integrity": "sha512-lVIIIV1MrUtjoocgDqXLxUCxlRbn7Ve8rsWppfwciUNwLlNS28AhNiyQ3PU7jjj4Qvj+rWTTvwkqg7AcdG988g==",
2027 1730 "dev": true,
2028 1731 "dependencies": {
2029 "escape-string-regexp": "^4.0.0"
1732 + "commander": "~11.0.0",
1733 + "get-stdin": "~9.0.0",
1734 + "glob": "~10.2.7",
1735 + "ignore": "~5.2.4",
1736 + "js-yaml": "^4.1.0",
1737 + "jsonc-parser": "~3.2.0",
1738 + "markdownlint": "~0.29.0",
1739 + "minimatch": "~9.0.1",
1740 + "run-con": "~1.2.11"
1741 + },
1742 + "bin": {
1743 + "markdownlint": "markdownlint.js"
2030 1744 },
2031 1745 "engines": {
2032 "node": ">=10"
1746 + "node": ">=16"
2033 1747 }
2034 1748 },
2035 "node_modules/mdurl": {
2036 "version": "1.0.1",
2037 "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
2038 "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
2039 "dev": true
1749 + "node_modules/markdownlint-cli/node_modules/brace-expansion": {
1750 + "version": "2.0.1",
1751 + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1752 + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1753 + "dev": true,
1754 + "dependencies": {
1755 + "balanced-match": "^1.0.0"
1756 + }
2040 1757 },
2041 "node_modules/merge2": {
2042 "version": "1.4.1",
2043 "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
2044 "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1758 + "node_modules/markdownlint-cli/node_modules/commander": {
1759 + "version": "11.0.0",
1760 + "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
1761 + "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
2045 1762 "dev": true,
2046 1763 "engines": {
2047 "node": ">= 8"
1764 + "node": ">=16"
2048 1765 }
2049 1766 },
2050 "node_modules/micromatch": {
2051 "version": "4.0.5",
2052 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
2053 "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1767 + "node_modules/markdownlint-cli/node_modules/glob": {
1768 + "version": "10.2.7",
1769 + "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.7.tgz",
1770 + "integrity": "sha512-jTKehsravOJo8IJxUGfZILnkvVJM/MOfHRs8QcXolVef2zNI9Tqyy5+SeuOAZd3upViEZQLyFpQhYiHLrMUNmA==",
2054 1771 "dev": true,
2055 1772 "dependencies": {
2056 "braces": "^3.0.2",
2057 "picomatch": "^2.3.1"
1773 + "foreground-child": "^3.1.0",
1774 + "jackspeak": "^2.0.3",
1775 + "minimatch": "^9.0.1",
1776 + "minipass": "^5.0.0 || ^6.0.2",
1777 + "path-scurry": "^1.7.0"
1778 + },
1779 + "bin": {
1780 + "glob": "dist/cjs/src/bin.js"
2058 1781 },
2059 1782 "engines": {
2060 "node": ">=8.6"
2061 }
1783 + "node": ">=16 || 14 >=14.17"
1784 + },
1785 + "funding": {
1786 + "url": "https://github.com/sponsors/isaacs"
1787 + }
1788 + },
1789 + "node_modules/markdownlint-cli/node_modules/minimatch": {
1790 + "version": "9.0.3",
1791 + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
1792 + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
1793 + "dev": true,
1794 + "dependencies": {
1795 + "brace-expansion": "^2.0.1"
1796 + },
1797 + "engines": {
1798 + "node": ">=16 || 14 >=14.17"
1799 + },
1800 + "funding": {
1801 + "url": "https://github.com/sponsors/isaacs"
1802 + }
1803 + },
1804 + "node_modules/markdownlint-micromark": {
1805 + "version": "0.1.5",
1806 + "resolved": "https://registry.npmjs.org/markdownlint-micromark/-/markdownlint-micromark-0.1.5.tgz",
1807 + "integrity": "sha512-HvofNU4QCvfUCWnocQP1IAWaqop5wpWrB0mKB6SSh0fcpV0PdmQNS6tdUuFew1utpYlUvYYzz84oDkrD76GB9A==",
1808 + "dev": true,
1809 + "engines": {
1810 + "node": ">=16"
1811 + }
1812 + },
1813 + "node_modules/matcher": {
1814 + "version": "3.0.0",
1815 + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
1816 + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
1817 + "dev": true,
1818 + "dependencies": {
1819 + "escape-string-regexp": "^4.0.0"
1820 + },
1821 + "engines": {
1822 + "node": ">=10"
1823 + }
1824 + },
1825 + "node_modules/mdurl": {
1826 + "version": "1.0.1",
1827 + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
1828 + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
1829 + "dev": true
1830 + },
1831 + "node_modules/merge2": {
1832 + "version": "1.4.1",
1833 + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1834 + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1835 + "dev": true,
1836 + "engines": {
1837 + "node": ">= 8"
1838 + }
1839 + },
1840 + "node_modules/micromatch": {
1841 + "version": "4.0.5",
1842 + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1843 + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1844 + "dev": true,
1845 + "dependencies": {
1846 + "braces": "^3.0.2",
1847 + "picomatch": "^2.3.1"
1848 + },
1849 + "engines": {
1850 + "node": ">=8.6"
1851 + }
2062 1852 },
2063 1853 "node_modules/minimatch": {
2064 1854 "version": "3.1.2",
@@ -2073,10 +1863,22 @@
2073 1863 }
2074 1864 },
2075 1865 "node_modules/minimist": {
2076 "version": "1.2.6",
2077 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
2078 "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
2079 "dev": true
1866 + "version": "1.2.8",
1867 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1868 + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1869 + "dev": true,
1870 + "funding": {
1871 + "url": "https://github.com/sponsors/ljharb"
1872 + }
1873 + },
1874 + "node_modules/minipass": {
1875 + "version": "6.0.2",
1876 + "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz",
1877 + "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==",
1878 + "dev": true,
1879 + "engines": {
1880 + "node": ">=16 || 14 >=14.17"
1881 + }
2080 1882 },
2081 1883 "node_modules/ms": {
2082 1884 "version": "2.1.2",
@@ -2114,15 +1916,6 @@
2114 1916 "node": ">=0.10.0"
2115 1917 }
2116 1918 },
2117 "node_modules/object-inspect": {
2118 "version": "1.12.0",
2119 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
2120 "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
2121 "dev": true,
2122 "funding": {
2123 "url": "https://github.com/sponsors/ljharb"
2124 }
2125 },
2126 1919 "node_modules/object-keys": {
2127 1920 "version": "1.1.1",
2128 1921 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
@@ -2132,85 +1925,6 @@
2132 1925 "node": ">= 0.4"
2133 1926 }
2134 1927 },
2135 "node_modules/object.assign": {
2136 "version": "4.1.4",
2137 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
2138 "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
2139 "dev": true,
2140 "dependencies": {
2141 "call-bind": "^1.0.2",
2142 "define-properties": "^1.1.4",
2143 "has-symbols": "^1.0.3",
2144 "object-keys": "^1.1.1"
2145 },
2146 "engines": {
2147 "node": ">= 0.4"
2148 },
2149 "funding": {
2150 "url": "https://github.com/sponsors/ljharb"
2151 }
2152 },
2153 "node_modules/object.entries": {
2154 "version": "1.1.5",
2155 "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
2156 "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
2157 "dev": true,
2158 "dependencies": {
2159 "call-bind": "^1.0.2",
2160 "define-properties": "^1.1.3",
2161 "es-abstract": "^1.19.1"
2162 },
2163 "engines": {
2164 "node": ">= 0.4"
2165 }
2166 },
2167 "node_modules/object.fromentries": {
2168 "version": "2.0.5",
2169 "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
2170 "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
2171 "dev": true,
2172 "dependencies": {
2173 "call-bind": "^1.0.2",
2174 "define-properties": "^1.1.3",
2175 "es-abstract": "^1.19.1"
2176 },
2177 "engines": {
2178 "node": ">= 0.4"
2179 },
2180 "funding": {
2181 "url": "https://github.com/sponsors/ljharb"
2182 }
2183 },
2184 "node_modules/object.hasown": {
2185 "version": "1.1.1",
2186 "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
2187 "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
2188 "dev": true,
2189 "dependencies": {
2190 "define-properties": "^1.1.4",
2191 "es-abstract": "^1.19.5"
2192 },
2193 "funding": {
2194 "url": "https://github.com/sponsors/ljharb"
2195 }
2196 },
2197 "node_modules/object.values": {
2198 "version": "1.1.5",
2199 "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
2200 "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
2201 "dev": true,
2202 "dependencies": {
2203 "call-bind": "^1.0.2",
2204 "define-properties": "^1.1.3",
2205 "es-abstract": "^1.19.1"
2206 },
2207 "engines": {
2208 "node": ">= 0.4"
2209 },
2210 "funding": {
2211 "url": "https://github.com/sponsors/ljharb"
2212 }
2213 },
2214 1928 "node_modules/once": {
2215 1929 "version": "1.4.0",
2216 1930 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -2237,39 +1951,6 @@
2237 1951 "node": ">= 0.8.0"
2238 1952 }
2239 1953 },
2240 "node_modules/p-limit": {
2241 "version": "1.3.0",
2242 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
2243 "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
2244 "dev": true,
2245 "dependencies": {
2246 "p-try": "^1.0.0"
2247 },
2248 "engines": {
2249 "node": ">=4"
2250 }
2251 },
2252 "node_modules/p-locate": {
2253 "version": "2.0.0",
2254 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
2255 "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
2256 "dev": true,
2257 "dependencies": {
2258 "p-limit": "^1.1.0"
2259 },
2260 "engines": {
2261 "node": ">=4"
2262 }
2263 },
2264 "node_modules/p-try": {
2265 "version": "1.0.0",
2266 "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
2267 "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
2268 "dev": true,
2269 "engines": {
2270 "node": ">=4"
2271 }
2272 },
2273 1954 "node_modules/parent-module": {
2274 1955 "version": "1.0.1",
2275 1956 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -2282,15 +1963,6 @@
2282 1963 "node": ">=6"
2283 1964 }
2284 1965 },
2285 "node_modules/path-exists": {
2286 "version": "3.0.0",
2287 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
2288 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
2289 "dev": true,
2290 "engines": {
2291 "node": ">=4"
2292 }
2293 },
2294 1966 "node_modules/path-is-absolute": {
2295 1967 "version": "1.0.1",
2296 1968 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@@ -2309,11 +1981,30 @@
2309 1981 "node": ">=8"
2310 1982 }
2311 1983 },
2312 "node_modules/path-parse": {
2313 "version": "1.0.7",
2314 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
2315 "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
2316 "dev": true
1984 + "node_modules/path-scurry": {
1985 + "version": "1.10.1",
1986 + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
1987 + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
1988 + "dev": true,
1989 + "dependencies": {
1990 + "lru-cache": "^9.1.1 || ^10.0.0",
1991 + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
1992 + },
1993 + "engines": {
1994 + "node": ">=16 || 14 >=14.17"
1995 + },
1996 + "funding": {
1997 + "url": "https://github.com/sponsors/isaacs"
1998 + }
1999 + },
2000 + "node_modules/path-scurry/node_modules/lru-cache": {
2001 + "version": "10.0.0",
2002 + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz",
2003 + "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==",
2004 + "dev": true,
2005 + "engines": {
2006 + "node": "14 || >=16.14"
2007 + }
2317 2008 },
2318 2009 "node_modules/path-type": {
2319 2010 "version": "4.0.0",
@@ -2324,6 +2015,12 @@
2324 2015 "node": ">=8"
2325 2016 }
2326 2017 },
2018 + "node_modules/pend": {
2019 + "version": "1.2.0",
2020 + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
2021 + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
2022 + "dev": true
2023 + },
2327 2024 "node_modules/picomatch": {
2328 2025 "version": "2.3.1",
2329 2026 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
@@ -2336,6 +2033,36 @@
2336 2033 "url": "https://github.com/sponsors/jonschlinkert"
2337 2034 }
2338 2035 },
2036 + "node_modules/pify": {
2037 + "version": "2.3.0",
2038 + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
2039 + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
2040 + "dev": true,
2041 + "engines": {
2042 + "node": ">=0.10.0"
2043 + }
2044 + },
2045 + "node_modules/pinkie": {
2046 + "version": "2.0.4",
2047 + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
2048 + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
2049 + "dev": true,
2050 + "engines": {
2051 + "node": ">=0.10.0"
2052 + }
2053 + },
2054 + "node_modules/pinkie-promise": {
2055 + "version": "2.0.1",
2056 + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
2057 + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
2058 + "dev": true,
2059 + "dependencies": {
2060 + "pinkie": "^2.0.0"
2061 + },
2062 + "engines": {
2063 + "node": ">=0.10.0"
2064 + }
2065 + },
2339 2066 "node_modules/prelude-ls": {
2340 2067 "version": "1.2.1",
2341 2068 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -2346,9 +2073,9 @@
2346 2073 }
2347 2074 },
2348 2075 "node_modules/prettier": {
2349 "version": "2.7.1",
2350 "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
2351 "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
2076 + "version": "2.8.8",
2077 + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
2078 + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
2352 2079 "dev": true,
2353 2080 "bin": {
2354 2081 "prettier": "bin-prettier.js"
@@ -2360,21 +2087,16 @@
2360 2087 "url": "https://github.com/prettier/prettier?sponsor=1"
2361 2088 }
2362 2089 },
2363 "node_modules/prop-types": {
2364 "version": "15.8.1",
2365 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
2366 "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
2367 "dev": true,
2368 "dependencies": {
2369 "loose-envify": "^1.4.0",
2370 "object-assign": "^4.1.1",
2371 "react-is": "^16.13.1"
2372 }
2090 + "node_modules/process-nextick-args": {
2091 + "version": "2.0.1",
2092 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
2093 + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
2094 + "dev": true
2373 2095 },
2374 2096 "node_modules/punycode": {
2375 "version": "2.1.1",
2376 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
2377 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
2097 + "version": "2.3.0",
2098 + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
2099 + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
2378 2100 "dev": true,
2379 2101 "engines": {
2380 2102 "node": ">=6"
@@ -2400,46 +2122,26 @@
2400 2122 }
2401 2123 ]
2402 2124 },
2403 "node_modules/react-is": {
2404 "version": "16.13.1",
2405 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
2406 "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
2407 "dev": true
2408 },
2409 "node_modules/regenerator-runtime": {
2410 "version": "0.13.9",
2411 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
2412 "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
2413 "dev": true
2414 },
2415 "node_modules/regexp.prototype.flags": {
2416 "version": "1.4.3",
2417 "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
2418 "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
2125 + "node_modules/readable-stream": {
2126 + "version": "2.3.8",
2127 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
2128 + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
2419 2129 "dev": true,
2420 2130 "dependencies": {
2421 "call-bind": "^1.0.2",
2422 "define-properties": "^1.1.3",
2423 "functions-have-names": "^1.2.2"
2424 },
2425 "engines": {
2426 "node": ">= 0.4"
2427 },
2428 "funding": {
2429 "url": "https://github.com/sponsors/ljharb"
2131 + "core-util-is": "~1.0.0",
2132 + "inherits": "~2.0.3",
2133 + "isarray": "~1.0.0",
2134 + "process-nextick-args": "~2.0.0",
2135 + "safe-buffer": "~5.1.1",
2136 + "string_decoder": "~1.1.1",
2137 + "util-deprecate": "~1.0.1"
2430 2138 }
2431 2139 },
2432 "node_modules/regexpp": {
2433 "version": "3.2.0",
2434 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
2435 "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
2436 "dev": true,
2437 "engines": {
2438 "node": ">=8"
2439 },
2440 "funding": {
2441 "url": "https://github.com/sponsors/mysticatea"
2442 }
2140 + "node_modules/readable-stream/node_modules/safe-buffer": {
2141 + "version": "5.1.2",
2142 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2143 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2144 + "dev": true
2443 2145 },
2444 2146 "node_modules/require-directory": {
2445 2147 "version": "2.1.1",
@@ -2450,23 +2152,6 @@
2450 2152 "node": ">=0.10.0"
2451 2153 }
2452 2154 },
2453 "node_modules/resolve": {
2454 "version": "1.22.0",
2455 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
2456 "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
2457 "dev": true,
2458 "dependencies": {
2459 "is-core-module": "^2.8.1",
2460 "path-parse": "^1.0.7",
2461 "supports-preserve-symlinks-flag": "^1.0.0"
2462 },
2463 "bin": {
2464 "resolve": "bin/resolve"
2465 },
2466 "funding": {
2467 "url": "https://github.com/sponsors/ljharb"
2468 }
2469 },
2470 2155 "node_modules/resolve-from": {
2471 2156 "version": "4.0.0",
2472 2157 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -2518,6 +2203,30 @@
2518 2203 "node": ">=8.0"
2519 2204 }
2520 2205 },
2206 + "node_modules/run-con": {
2207 + "version": "1.2.12",
2208 + "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz",
2209 + "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==",
2210 + "dev": true,
2211 + "dependencies": {
2212 + "deep-extend": "^0.6.0",
2213 + "ini": "~3.0.0",
2214 + "minimist": "^1.2.8",
2215 + "strip-json-comments": "~3.1.1"
2216 + },
2217 + "bin": {
2218 + "run-con": "cli.js"
2219 + }
2220 + },
2221 + "node_modules/run-con/node_modules/ini": {
2222 + "version": "3.0.1",
2223 + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz",
2224 + "integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==",
2225 + "dev": true,
2226 + "engines": {
2227 + "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
2228 + }
2229 + },
2521 2230 "node_modules/run-parallel": {
2522 2231 "version": "1.2.0",
2523 2232 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -2541,16 +2250,49 @@
2541 2250 "queue-microtask": "^1.2.2"
2542 2251 }
2543 2252 },
2253 + "node_modules/safe-buffer": {
2254 + "version": "5.2.1",
2255 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
2256 + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
2257 + "dev": true,
2258 + "funding": [
2259 + {
2260 + "type": "github",
2261 + "url": "https://github.com/sponsors/feross"
2262 + },
2263 + {
2264 + "type": "patreon",
2265 + "url": "https://www.patreon.com/feross"
2266 + },
2267 + {
2268 + "type": "consulting",
2269 + "url": "https://feross.org/support"
2270 + }
2271 + ]
2272 + },
2544 2273 "node_modules/secure-keys": {
2545 2274 "version": "1.0.0",
2546 2275 "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz",
2547 2276 "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=",
2548 2277 "dev": true
2549 2278 },
2279 + "node_modules/seek-bzip": {
2280 + "version": "1.0.6",
2281 + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz",
2282 + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==",
2283 + "dev": true,
2284 + "dependencies": {
2285 + "commander": "^2.8.1"
2286 + },
2287 + "bin": {
2288 + "seek-bunzip": "bin/seek-bunzip",
2289 + "seek-table": "bin/seek-bzip-table"
2290 + }
2291 + },
2550 2292 "node_modules/semver": {
2551 "version": "7.5.2",
2552 "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
2553 "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
2293 + "version": "7.5.3",
2294 + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
2295 + "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
2554 2296 "dependencies": {
2555 2297 "lru-cache": "^6.0.0"
2556 2298 },
@@ -2616,30 +2358,31 @@
2616 2358 }
2617 2359 },
2618 2360 "node_modules/shellcheck": {
2619 "version": "1.1.0",
2620 "resolved": "https://registry.npmjs.org/shellcheck/-/shellcheck-1.1.0.tgz",
2621 "integrity": "sha512-WtLqgjHg7667gGU+0dPV1EtoQgYL/Zxc4fhRt6Z3kfpASG3J08TBJ990HVIUnN/YWUBKMr3FVbBYlEvPVJ24bA==",
2361 + "version": "2.2.0",
2362 + "resolved": "https://registry.npmjs.org/shellcheck/-/shellcheck-2.2.0.tgz",
2363 + "integrity": "sha512-rMt0WhmeqRrKMUqyTlkL6pd0zY27FRQMQWjQhpHMQETwG2ykc8gz+QGGtxHym4R2np646QgQAcq04sAEo3SWhA==",
2622 2364 "dev": true,
2623 "hasInstallScript": true,
2624 2365 "dependencies": {
2366 + "decompress": "^4.2.1",
2625 2367 "global-agent": "^3.0.0"
2626 2368 },
2627 2369 "bin": {
2628 "shellcheck": "shellcheck-stable/shellcheck"
2370 + "shellcheck": "bin/shellcheck.js"
2371 + },
2372 + "engines": {
2373 + "node": ">=18.4.0 || >=16.17.0"
2629 2374 }
2630 2375 },
2631 "node_modules/side-channel": {
2632 "version": "1.0.4",
2633 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
2634 "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
2376 + "node_modules/signal-exit": {
2377 + "version": "4.0.2",
2378 + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
2379 + "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==",
2635 2380 "dev": true,
2636 "dependencies": {
2637 "call-bind": "^1.0.0",
2638 "get-intrinsic": "^1.0.2",
2639 "object-inspect": "^1.9.0"
2381 + "engines": {
2382 + "node": ">=14"
2640 2383 },
2641 2384 "funding": {
2642 "url": "https://github.com/sponsors/ljharb"
2385 + "url": "https://github.com/sponsors/isaacs"
2643 2386 }
2644 2387 },
2645 2388 "node_modules/slash": {
@@ -2657,6 +2400,21 @@
2657 2400 "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
2658 2401 "dev": true
2659 2402 },
2403 + "node_modules/string_decoder": {
2404 + "version": "1.1.1",
2405 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
2406 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
2407 + "dev": true,
2408 + "dependencies": {
2409 + "safe-buffer": "~5.1.0"
2410 + }
2411 + },
2412 + "node_modules/string_decoder/node_modules/safe-buffer": {
2413 + "version": "5.1.2",
2414 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
2415 + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
2416 + "dev": true
2417 + },
2660 2418 "node_modules/string-width": {
2661 2419 "version": "4.2.3",
2662 2420 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -2671,58 +2429,47 @@
2671 2429 "node": ">=8"
2672 2430 }
2673 2431 },
2674 "node_modules/string-width/node_modules/emoji-regex": {
2675 "version": "8.0.0",
2676 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2677 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2678 "dev": true
2679 },
2680 "node_modules/string.prototype.matchall": {
2681 "version": "4.0.7",
2682 "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz",
2683 "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==",
2432 + "node_modules/string-width-cjs": {
2433 + "name": "string-width",
2434 + "version": "4.2.3",
2435 + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2436 + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2684 2437 "dev": true,
2685 2438 "dependencies": {
2686 "call-bind": "^1.0.2",
2687 "define-properties": "^1.1.3",
2688 "es-abstract": "^1.19.1",
2689 "get-intrinsic": "^1.1.1",
2690 "has-symbols": "^1.0.3",
2691 "internal-slot": "^1.0.3",
2692 "regexp.prototype.flags": "^1.4.1",
2693 "side-channel": "^1.0.4"
2439 + "emoji-regex": "^8.0.0",
2440 + "is-fullwidth-code-point": "^3.0.0",
2441 + "strip-ansi": "^6.0.1"
2694 2442 },
2695 "funding": {
2696 "url": "https://github.com/sponsors/ljharb"
2443 + "engines": {
2444 + "node": ">=8"
2697 2445 }
2698 2446 },
2699 "node_modules/string.prototype.trimend": {
2700 "version": "1.0.4",
2701 "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
2702 "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
2703 "dev": true,
2704 "dependencies": {
2705 "call-bind": "^1.0.2",
2706 "define-properties": "^1.1.3"
2707 },
2708 "funding": {
2709 "url": "https://github.com/sponsors/ljharb"
2710 }
2447 + "node_modules/string-width-cjs/node_modules/emoji-regex": {
2448 + "version": "8.0.0",
2449 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2450 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2451 + "dev": true
2711 2452 },
2712 "node_modules/string.prototype.trimstart": {
2713 "version": "1.0.4",
2714 "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
2715 "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
2453 + "node_modules/string-width/node_modules/emoji-regex": {
2454 + "version": "8.0.0",
2455 + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
2456 + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
2457 + "dev": true
2458 + },
2459 + "node_modules/strip-ansi": {
2460 + "version": "6.0.1",
2461 + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2462 + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2716 2463 "dev": true,
2717 2464 "dependencies": {
2718 "call-bind": "^1.0.2",
2719 "define-properties": "^1.1.3"
2465 + "ansi-regex": "^5.0.1"
2720 2466 },
2721 "funding": {
2722 "url": "https://github.com/sponsors/ljharb"
2467 + "engines": {
2468 + "node": ">=8"
2723 2469 }
2724 2470 },
2725 "node_modules/strip-ansi": {
2471 + "node_modules/strip-ansi-cjs": {
2472 + "name": "strip-ansi",
2726 2473 "version": "6.0.1",
2727 2474 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2728 2475 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
@@ -2734,13 +2481,13 @@
2734 2481 "node": ">=8"
2735 2482 }
2736 2483 },
2737 "node_modules/strip-bom": {
2738 "version": "3.0.0",
2739 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
2740 "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
2484 + "node_modules/strip-dirs": {
2485 + "version": "2.1.0",
2486 + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz",
2487 + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==",
2741 2488 "dev": true,
2742 "engines": {
2743 "node": ">=4"
2489 + "dependencies": {
2490 + "is-natural-number": "^4.0.1"
2744 2491 }
2745 2492 },
2746 2493 "node_modules/strip-json-comments": {
@@ -2767,16 +2514,22 @@
2767 2514 "node": ">=8"
2768 2515 }
2769 2516 },
2770 "node_modules/supports-preserve-symlinks-flag": {
2771 "version": "1.0.0",
2772 "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
2773 "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
2517 + "node_modules/tar-stream": {
2518 + "version": "1.6.2",
2519 + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
2520 + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
2774 2521 "dev": true,
2775 "engines": {
2776 "node": ">= 0.4"
2522 + "dependencies": {
2523 + "bl": "^1.0.0",
2524 + "buffer-alloc": "^1.2.0",
2525 + "end-of-stream": "^1.0.0",
2526 + "fs-constants": "^1.0.0",
2527 + "readable-stream": "^2.3.0",
2528 + "to-buffer": "^1.1.1",
2529 + "xtend": "^4.0.0"
2777 2530 },
2778 "funding": {
2779 "url": "https://github.com/sponsors/ljharb"
2531 + "engines": {
2532 + "node": ">= 0.8.0"
2780 2533 }
2781 2534 },
2782 2535 "node_modules/text-table": {
@@ -2785,6 +2538,18 @@
2785 2538 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
2786 2539 "dev": true
2787 2540 },
2541 + "node_modules/through": {
2542 + "version": "2.3.8",
2543 + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
2544 + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
2545 + "dev": true
2546 + },
2547 + "node_modules/to-buffer": {
2548 + "version": "1.1.1",
2549 + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz",
2550 + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==",
2551 + "dev": true
2552 + },
2788 2553 "node_modules/to-regex-range": {
2789 2554 "version": "5.0.1",
2790 2555 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -2797,18 +2562,6 @@
2797 2562 "node": ">=8.0"
2798 2563 }
2799 2564 },
2800 "node_modules/tsconfig-paths": {
2801 "version": "3.14.1",
2802 "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
2803 "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
2804 "dev": true,
2805 "dependencies": {
2806 "@types/json5": "^0.0.29",
2807 "json5": "^1.0.1",
2808 "minimist": "^1.2.6",
2809 "strip-bom": "^3.0.0"
2810 }
2811 },
2812 2565 "node_modules/tunnel": {
2813 2566 "version": "0.0.6",
2814 2567 "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
@@ -2847,19 +2600,14 @@
2847 2600 "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
2848 2601 "dev": true
2849 2602 },
2850 "node_modules/unbox-primitive": {
2851 "version": "1.0.1",
2852 "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
2853 "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
2603 + "node_modules/unbzip2-stream": {
2604 + "version": "1.4.3",
2605 + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
2606 + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
2854 2607 "dev": true,
2855 2608 "dependencies": {
2856 "function-bind": "^1.1.1",
2857 "has-bigints": "^1.0.1",
2858 "has-symbols": "^1.0.2",
2859 "which-boxed-primitive": "^1.0.2"
2860 },
2861 "funding": {
2862 "url": "https://github.com/sponsors/ljharb"
2609 + "buffer": "^5.2.1",
2610 + "through": "^2.3.8"
2863 2611 }
2864 2612 },
2865 2613 "node_modules/uri-js": {
@@ -2871,6 +2619,12 @@
2871 2619 "punycode": "^2.1.0"
2872 2620 }
2873 2621 },
2622 + "node_modules/util-deprecate": {
2623 + "version": "1.0.2",
2624 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2625 + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2626 + "dev": true
2627 + },
2874 2628 "node_modules/uuid": {
2875 2629 "version": "8.3.2",
2876 2630 "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
@@ -2894,26 +2648,10 @@
2894 2648 "node": ">= 8"
2895 2649 }
2896 2650 },
2897 "node_modules/which-boxed-primitive": {
2898 "version": "1.0.2",
2899 "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
2900 "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
2901 "dev": true,
2902 "dependencies": {
2903 "is-bigint": "^1.0.1",
2904 "is-boolean-object": "^1.1.0",
2905 "is-number-object": "^1.0.4",
2906 "is-string": "^1.0.5",
2907 "is-symbol": "^1.0.3"
2908 },
2909 "funding": {
2910 "url": "https://github.com/sponsors/ljharb"
2911 }
2912 },
2913 2651 "node_modules/word-wrap": {
2914 "version": "1.2.4",
2915 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
2916 "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
2652 + "version": "1.2.3",
2653 + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
2654 + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
2917 2655 "dev": true,
2918 2656 "engines": {
2919 2657 "node": ">=0.10.0"
@@ -2936,12 +2674,39 @@
2936 2674 "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2937 2675 }
2938 2676 },
2677 + "node_modules/wrap-ansi-cjs": {
2678 + "name": "wrap-ansi",
2679 + "version": "7.0.0",
2680 + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2681 + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2682 + "dev": true,
2683 + "dependencies": {
2684 + "ansi-styles": "^4.0.0",
2685 + "string-width": "^4.1.0",
2686 + "strip-ansi": "^6.0.0"
2687 + },
2688 + "engines": {
2689 + "node": ">=10"
2690 + },
2691 + "funding": {
2692 + "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2693 + }
2694 + },
2939 2695 "node_modules/wrappy": {
2940 2696 "version": "1.0.2",
2941 2697 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2942 2698 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2943 2699 "dev": true
2944 2700 },
2701 + "node_modules/xtend": {
2702 + "version": "4.0.2",
2703 + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
2704 + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
2705 + "dev": true,
2706 + "engines": {
2707 + "node": ">=0.4"
2708 + }
2709 + },
2945 2710 "node_modules/y18n": {
2946 2711 "version": "5.0.8",
2947 2712 "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -3012,6 +2777,16 @@
3012 2777 "node": ">=4.0.0"
3013 2778 }
3014 2779 },
2780 + "node_modules/yauzl": {
2781 + "version": "2.10.0",
2782 + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
2783 + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
2784 + "dev": true,
2785 + "dependencies": {
2786 + "buffer-crc32": "~0.2.3",
2787 + "fd-slicer": "~1.1.0"
2788 + }
2789 + },
3015 2790 "node_modules/yocto-queue": {
3016 2791 "version": "0.1.0",
3017 2792 "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
@@ -3024,2223 +2799,5 @@
3024 2799 "url": "https://github.com/sponsors/sindresorhus"
3025 2800 }
3026 2801 }
3027 },
3028 "dependencies": {
3029 "@actions/core": {
3030 "version": "1.10.0",
3031 "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.0.tgz",
3032 "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==",
3033 "requires": {
3034 "@actions/http-client": "^2.0.1",
3035 "uuid": "^8.3.2"
3036 }
3037 },
3038 "@actions/exec": {
3039 "version": "1.1.1",
3040 "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
3041 "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
3042 "requires": {
3043 "@actions/io": "^1.0.1"
3044 }
3045 },
3046 "@actions/http-client": {
3047 "version": "2.1.0",
3048 "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz",
3049 "integrity": "sha512-BonhODnXr3amchh4qkmjPMUO8mFi/zLaaCeCAJZqch8iQqyDnVIkySjB38VHAC8IJ+bnlgfOqlhpyCUZHlQsqw==",
3050 "requires": {
3051 "tunnel": "^0.0.6"
3052 }
3053 },
3054 "@actions/io": {
3055 "version": "1.1.2",
3056 "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz",
3057 "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw=="
3058 },
3059 "@actions/tool-cache": {
3060 "version": "2.0.1",
3061 "resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
3062 "integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
3063 "requires": {
3064 "@actions/core": "^1.2.6",
3065 "@actions/exec": "^1.0.0",
3066 "@actions/http-client": "^2.0.1",
3067 "@actions/io": "^1.1.1",
3068 "semver": "^6.1.0",
3069 "uuid": "^3.3.2"
3070 },
3071 "dependencies": {
3072 "semver": {
3073 "version": "6.3.0",
3074 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3075 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
3076 },
3077 "uuid": {
3078 "version": "3.4.0",
3079 "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
3080 "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
3081 }
3082 }
3083 },
3084 "@babel/runtime": {
3085 "version": "7.19.4",
3086 "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
3087 "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
3088 "dev": true,
3089 "requires": {
3090 "regenerator-runtime": "^0.13.4"
3091 }
3092 },
3093 "@babel/runtime-corejs3": {
3094 "version": "7.17.9",
3095 "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.17.9.tgz",
3096 "integrity": "sha512-WxYHHUWF2uZ7Hp1K+D1xQgbgkGUfA+5UPOegEXGt2Y5SMog/rYCVaifLZDbw8UkNXozEqqrZTy6bglL7xTaCOw==",
3097 "dev": true,
3098 "requires": {
3099 "core-js-pure": "^3.20.2",
3100 "regenerator-runtime": "^0.13.4"
3101 }
3102 },
3103 "@eslint/eslintrc": {
3104 "version": "1.3.3",
3105 "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
3106 "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
3107 "dev": true,
3108 "requires": {
3109 "ajv": "^6.12.4",
3110 "debug": "^4.3.2",
3111 "espree": "^9.4.0",
3112 "globals": "^13.15.0",
3113 "ignore": "^5.2.0",
3114 "import-fresh": "^3.2.1",
3115 "js-yaml": "^4.1.0",
3116 "minimatch": "^3.1.2",
3117 "strip-json-comments": "^3.1.1"
3118 }
3119 },
3120 "@humanwhocodes/config-array": {
3121 "version": "0.10.7",
3122 "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz",
3123 "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==",
3124 "dev": true,
3125 "requires": {
3126 "@humanwhocodes/object-schema": "^1.2.1",
3127 "debug": "^4.1.1",
3128 "minimatch": "^3.0.4"
3129 }
3130 },
3131 "@humanwhocodes/module-importer": {
3132 "version": "1.0.1",
3133 "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
3134 "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
3135 "dev": true
3136 },
3137 "@humanwhocodes/object-schema": {
3138 "version": "1.2.1",
3139 "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
3140 "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
3141 "dev": true
3142 },
3143 "@nodelib/fs.scandir": {
3144 "version": "2.1.5",
3145 "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
3146 "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
3147 "dev": true,
3148 "requires": {
3149 "@nodelib/fs.stat": "2.0.5",
3150 "run-parallel": "^1.1.9"
3151 }
3152 },
3153 "@nodelib/fs.stat": {
3154 "version": "2.0.5",
3155 "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
3156 "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
3157 "dev": true
3158 },
3159 "@nodelib/fs.walk": {
3160 "version": "1.2.8",
3161 "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
3162 "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
3163 "dev": true,
3164 "requires": {
3165 "@nodelib/fs.scandir": "2.1.5",
3166 "fastq": "^1.6.0"
3167 }
3168 },
3169 "@types/json5": {
3170 "version": "0.0.29",
3171 "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
3172 "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
3173 "dev": true
3174 },
3175 "@vercel/ncc": {
3176 "version": "0.34.0",
3177 "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz",
3178 "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==",
3179 "dev": true
3180 },
3181 "acorn": {
3182 "version": "8.8.0",
3183 "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
3184 "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
3185 "dev": true
3186 },
3187 "acorn-jsx": {
3188 "version": "5.3.2",
3189 "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
3190 "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
3191 "dev": true,
3192 "requires": {}
3193 },
3194 "ajv": {
3195 "version": "6.12.6",
3196 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
3197 "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
3198 "dev": true,
3199 "requires": {
3200 "fast-deep-equal": "^3.1.1",
3201 "fast-json-stable-stringify": "^2.0.0",
3202 "json-schema-traverse": "^0.4.1",
3203 "uri-js": "^4.2.2"
3204 }
3205 },
3206 "ansi-regex": {
3207 "version": "5.0.1",
3208 "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
3209 "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
3210 "dev": true
3211 },
3212 "ansi-styles": {
3213 "version": "4.3.0",
3214 "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
3215 "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
3216 "dev": true,
3217 "requires": {
3218 "color-convert": "^2.0.1"
3219 }
3220 },
3221 "argparse": {
3222 "version": "2.0.1",
3223 "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
3224 "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
3225 "dev": true
3226 },
3227 "aria-query": {
3228 "version": "4.2.2",
3229 "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
3230 "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
3231 "dev": true,
3232 "requires": {
3233 "@babel/runtime": "^7.10.2",
3234 "@babel/runtime-corejs3": "^7.10.2"
3235 }
3236 },
3237 "array-includes": {
3238 "version": "3.1.5",
3239 "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
3240 "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
3241 "dev": true,
3242 "requires": {
3243 "call-bind": "^1.0.2",
3244 "define-properties": "^1.1.4",
3245 "es-abstract": "^1.19.5",
3246 "get-intrinsic": "^1.1.1",
3247 "is-string": "^1.0.7"
3248 }
3249 },
3250 "array-union": {
3251 "version": "2.1.0",
3252 "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
3253 "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
3254 "dev": true
3255 },
3256 "array.prototype.flat": {
3257 "version": "1.3.0",
3258 "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
3259 "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
3260 "dev": true,
3261 "requires": {
3262 "call-bind": "^1.0.2",
3263 "define-properties": "^1.1.3",
3264 "es-abstract": "^1.19.2",
3265 "es-shim-unscopables": "^1.0.0"
3266 }
3267 },
3268 "array.prototype.flatmap": {
3269 "version": "1.3.0",
3270 "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz",
3271 "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==",
3272 "dev": true,
3273 "requires": {
3274 "call-bind": "^1.0.2",
3275 "define-properties": "^1.1.3",
3276 "es-abstract": "^1.19.2",
3277 "es-shim-unscopables": "^1.0.0"
3278 }
3279 },
3280 "ast-types-flow": {
3281 "version": "0.0.7",
3282 "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
3283 "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
3284 "dev": true
3285 },
3286 "async": {
3287 "version": "3.2.3",
3288 "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
3289 "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==",
3290 "dev": true
3291 },
3292 "axe-core": {
3293 "version": "4.4.3",
3294 "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz",
3295 "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==",
3296 "dev": true
3297 },
3298 "axobject-query": {
3299 "version": "2.2.0",
3300 "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
3301 "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
3302 "dev": true
3303 },
3304 "balanced-match": {
3305 "version": "1.0.2",
3306 "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
3307 "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
3308 "dev": true
3309 },
3310 "boolean": {
3311 "version": "3.2.0",
3312 "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz",
3313 "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==",
3314 "dev": true
3315 },
3316 "brace-expansion": {
3317 "version": "1.1.11",
3318 "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
3319 "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
3320 "dev": true,
3321 "requires": {
3322 "balanced-match": "^1.0.0",
3323 "concat-map": "0.0.1"
3324 }
3325 },
3326 "braces": {
3327 "version": "3.0.2",
3328 "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
3329 "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
3330 "dev": true,
3331 "requires": {
3332 "fill-range": "^7.0.1"
3333 }
3334 },
3335 "call-bind": {
3336 "version": "1.0.2",
3337 "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
3338 "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
3339 "dev": true,
3340 "requires": {
3341 "function-bind": "^1.1.1",
3342 "get-intrinsic": "^1.0.2"
3343 }
3344 },
3345 "callsites": {
3346 "version": "3.1.0",
3347 "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
3348 "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
3349 "dev": true
3350 },
3351 "chalk": {
3352 "version": "4.1.2",
3353 "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
3354 "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
3355 "dev": true,
3356 "requires": {
3357 "ansi-styles": "^4.1.0",
3358 "supports-color": "^7.1.0"
3359 }
3360 },
3361 "cliui": {
3362 "version": "7.0.4",
3363 "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
3364 "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
3365 "dev": true,
3366 "requires": {
3367 "string-width": "^4.2.0",
3368 "strip-ansi": "^6.0.0",
3369 "wrap-ansi": "^7.0.0"
3370 }
3371 },
3372 "color-convert": {
3373 "version": "2.0.1",
3374 "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
3375 "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
3376 "dev": true,
3377 "requires": {
3378 "color-name": "~1.1.4"
3379 }
3380 },
3381 "color-name": {
3382 "version": "1.1.4",
3383 "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
3384 "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
3385 "dev": true
3386 },
3387 "concat-map": {
3388 "version": "0.0.1",
3389 "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
3390 "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
3391 "dev": true
3392 },
3393 "confusing-browser-globals": {
3394 "version": "1.0.11",
3395 "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz",
3396 "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==",
3397 "dev": true
3398 },
3399 "consola": {
3400 "version": "2.15.3",
3401 "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz",
3402 "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==",
3403 "dev": true
3404 },
3405 "core-js-pure": {
3406 "version": "3.22.2",
3407 "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.2.tgz",
3408 "integrity": "sha512-Lb+/XT4WC4PaCWWtZpNPaXmjiNDUe5CJuUtbkMrIM1kb1T/jJoAIp+bkVP/r5lHzMr+ZAAF8XHp7+my6Ol0ysQ==",
3409 "dev": true
3410 },
3411 "cross-spawn": {
3412 "version": "7.0.3",
3413 "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
3414 "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
3415 "dev": true,
3416 "requires": {
3417 "path-key": "^3.1.0",
3418 "shebang-command": "^2.0.0",
3419 "which": "^2.0.1"
3420 }
3421 },
3422 "damerau-levenshtein": {
3423 "version": "1.0.8",
3424 "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
3425 "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==",
3426 "dev": true
3427 },
3428 "debug": {
3429 "version": "4.3.4",
3430 "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
3431 "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
3432 "dev": true,
3433 "requires": {
3434 "ms": "2.1.2"
3435 }
3436 },
3437 "deep-is": {
3438 "version": "0.1.4",
3439 "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
3440 "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
3441 "dev": true
3442 },
3443 "define-properties": {
3444 "version": "1.1.4",
3445 "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
3446 "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
3447 "dev": true,
3448 "requires": {
3449 "has-property-descriptors": "^1.0.0",
3450 "object-keys": "^1.1.1"
3451 }
3452 },
3453 "detect-node": {
3454 "version": "2.1.0",
3455 "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
3456 "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
3457 "dev": true
3458 },
3459 "dir-glob": {
3460 "version": "3.0.1",
3461 "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
3462 "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
3463 "dev": true,
3464 "requires": {
3465 "path-type": "^4.0.0"
3466 }
3467 },
3468 "doctrine": {
3469 "version": "3.0.0",
3470 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
3471 "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
3472 "dev": true,
3473 "requires": {
3474 "esutils": "^2.0.2"
3475 }
3476 },
3477 "emoji-regex": {
3478 "version": "9.2.2",
3479 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
3480 "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
3481 "dev": true
3482 },
3483 "entities": {
3484 "version": "3.0.1",
3485 "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
3486 "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
3487 "dev": true
3488 },
3489 "es-abstract": {
3490 "version": "1.19.5",
3491 "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.5.tgz",
3492 "integrity": "sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA==",
3493 "dev": true,
3494 "requires": {
3495 "call-bind": "^1.0.2",
3496 "es-to-primitive": "^1.2.1",
3497 "function-bind": "^1.1.1",
3498 "get-intrinsic": "^1.1.1",
3499 "get-symbol-description": "^1.0.0",
3500 "has": "^1.0.3",
3501 "has-symbols": "^1.0.3",
3502 "internal-slot": "^1.0.3",
3503 "is-callable": "^1.2.4",
3504 "is-negative-zero": "^2.0.2",
3505 "is-regex": "^1.1.4",
3506 "is-shared-array-buffer": "^1.0.2",
3507 "is-string": "^1.0.7",
3508 "is-weakref": "^1.0.2",
3509 "object-inspect": "^1.12.0",
3510 "object-keys": "^1.1.1",
3511 "object.assign": "^4.1.2",
3512 "string.prototype.trimend": "^1.0.4",
3513 "string.prototype.trimstart": "^1.0.4",
3514 "unbox-primitive": "^1.0.1"
3515 }
3516 },
3517 "es-shim-unscopables": {
3518 "version": "1.0.0",
3519 "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
3520 "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
3521 "dev": true,
3522 "requires": {
3523 "has": "^1.0.3"
3524 }
3525 },
3526 "es-to-primitive": {
3527 "version": "1.2.1",
3528 "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
3529 "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
3530 "dev": true,
3531 "requires": {
3532 "is-callable": "^1.1.4",
3533 "is-date-object": "^1.0.1",
3534 "is-symbol": "^1.0.2"
3535 }
3536 },
3537 "es6-error": {
3538 "version": "4.1.1",
3539 "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
3540 "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
3541 "dev": true
3542 },
3543 "escalade": {
3544 "version": "3.1.1",
3545 "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
3546 "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
3547 "dev": true
3548 },
3549 "escape-string-regexp": {
3550 "version": "4.0.0",
3551 "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
3552 "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
3553 "dev": true
3554 },
3555 "eslint": {
3556 "version": "8.25.0",
3557 "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz",
3558 "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==",
3559 "dev": true,
3560 "requires": {
3561 "@eslint/eslintrc": "^1.3.3",
3562 "@humanwhocodes/config-array": "^0.10.5",
3563 "@humanwhocodes/module-importer": "^1.0.1",
3564 "ajv": "^6.10.0",
3565 "chalk": "^4.0.0",
3566 "cross-spawn": "^7.0.2",
3567 "debug": "^4.3.2",
3568 "doctrine": "^3.0.0",
3569 "escape-string-regexp": "^4.0.0",
3570 "eslint-scope": "^7.1.1",
3571 "eslint-utils": "^3.0.0",
3572 "eslint-visitor-keys": "^3.3.0",
3573 "espree": "^9.4.0",
3574 "esquery": "^1.4.0",
3575 "esutils": "^2.0.2",
3576 "fast-deep-equal": "^3.1.3",
3577 "file-entry-cache": "^6.0.1",
3578 "find-up": "^5.0.0",
3579 "glob-parent": "^6.0.1",
3580 "globals": "^13.15.0",
3581 "globby": "^11.1.0",
3582 "grapheme-splitter": "^1.0.4",
3583 "ignore": "^5.2.0",
3584 "import-fresh": "^3.0.0",
3585 "imurmurhash": "^0.1.4",
3586 "is-glob": "^4.0.0",
3587 "js-sdsl": "^4.1.4",
3588 "js-yaml": "^4.1.0",
3589 "json-stable-stringify-without-jsonify": "^1.0.1",
3590 "levn": "^0.4.1",
3591 "lodash.merge": "^4.6.2",
3592 "minimatch": "^3.1.2",
3593 "natural-compare": "^1.4.0",
3594 "optionator": "^0.9.1",
3595 "regexpp": "^3.2.0",
3596 "strip-ansi": "^6.0.1",
3597 "strip-json-comments": "^3.1.0",
3598 "text-table": "^0.2.0"
3599 },
3600 "dependencies": {
3601 "find-up": {
3602 "version": "5.0.0",
3603 "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
3604 "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
3605 "dev": true,
3606 "requires": {
3607 "locate-path": "^6.0.0",
3608 "path-exists": "^4.0.0"
3609 }
3610 },
3611 "locate-path": {
3612 "version": "6.0.0",
3613 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
3614 "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
3615 "dev": true,
3616 "requires": {
3617 "p-locate": "^5.0.0"
3618 }
3619 },
3620 "p-limit": {
3621 "version": "3.1.0",
3622 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
3623 "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
3624 "dev": true,
3625 "requires": {
3626 "yocto-queue": "^0.1.0"
3627 }
3628 },
3629 "p-locate": {
3630 "version": "5.0.0",
3631 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
3632 "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
3633 "dev": true,
3634 "requires": {
3635 "p-limit": "^3.0.2"
3636 }
3637 },
3638 "path-exists": {
3639 "version": "4.0.0",
3640 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
3641 "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
3642 "dev": true
3643 }
3644 }
3645 },
3646 "eslint-config-airbnb": {
3647 "version": "19.0.4",
3648 "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz",
3649 "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==",
3650 "dev": true,
3651 "requires": {
3652 "eslint-config-airbnb-base": "^15.0.0",
3653 "object.assign": "^4.1.2",
3654 "object.entries": "^1.1.5"
3655 }
3656 },
3657 "eslint-config-airbnb-base": {
3658 "version": "15.0.0",
3659 "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz",
3660 "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==",
3661 "dev": true,
3662 "requires": {
3663 "confusing-browser-globals": "^1.0.10",
3664 "object.assign": "^4.1.2",
3665 "object.entries": "^1.1.5",
3666 "semver": "^6.3.0"
3667 },
3668 "dependencies": {
3669 "semver": {
3670 "version": "6.3.0",
3671 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3672 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3673 "dev": true
3674 }
3675 }
3676 },
3677 "eslint-import-resolver-node": {
3678 "version": "0.3.6",
3679 "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
3680 "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
3681 "dev": true,
3682 "requires": {
3683 "debug": "^3.2.7",
3684 "resolve": "^1.20.0"
3685 },
3686 "dependencies": {
3687 "debug": {
3688 "version": "3.2.7",
3689 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
3690 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
3691 "dev": true,
3692 "requires": {
3693 "ms": "^2.1.1"
3694 }
3695 }
3696 }
3697 },
3698 "eslint-module-utils": {
3699 "version": "2.7.3",
3700 "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
3701 "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
3702 "dev": true,
3703 "requires": {
3704 "debug": "^3.2.7",
3705 "find-up": "^2.1.0"
3706 },
3707 "dependencies": {
3708 "debug": {
3709 "version": "3.2.7",
3710 "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
3711 "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
3712 "dev": true,
3713 "requires": {
3714 "ms": "^2.1.1"
3715 }
3716 }
3717 }
3718 },
3719 "eslint-plugin-import": {
3720 "version": "2.26.0",
3721 "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
3722 "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
3723 "dev": true,
3724 "requires": {
3725 "array-includes": "^3.1.4",
3726 "array.prototype.flat": "^1.2.5",
3727 "debug": "^2.6.9",
3728 "doctrine": "^2.1.0",
3729 "eslint-import-resolver-node": "^0.3.6",
3730 "eslint-module-utils": "^2.7.3",
3731 "has": "^1.0.3",
3732 "is-core-module": "^2.8.1",
3733 "is-glob": "^4.0.3",
3734 "minimatch": "^3.1.2",
3735 "object.values": "^1.1.5",
3736 "resolve": "^1.22.0",
3737 "tsconfig-paths": "^3.14.1"
3738 },
3739 "dependencies": {
3740 "debug": {
3741 "version": "2.6.9",
3742 "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
3743 "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
3744 "dev": true,
3745 "requires": {
3746 "ms": "2.0.0"
3747 }
3748 },
3749 "doctrine": {
3750 "version": "2.1.0",
3751 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
3752 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
3753 "dev": true,
3754 "requires": {
3755 "esutils": "^2.0.2"
3756 }
3757 },
3758 "ms": {
3759 "version": "2.0.0",
3760 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3761 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
3762 "dev": true
3763 }
3764 }
3765 },
3766 "eslint-plugin-jsx-a11y": {
3767 "version": "6.6.1",
3768 "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
3769 "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
3770 "dev": true,
3771 "requires": {
3772 "@babel/runtime": "^7.18.9",
3773 "aria-query": "^4.2.2",
3774 "array-includes": "^3.1.5",
3775 "ast-types-flow": "^0.0.7",
3776 "axe-core": "^4.4.3",
3777 "axobject-query": "^2.2.0",
3778 "damerau-levenshtein": "^1.0.8",
3779 "emoji-regex": "^9.2.2",
3780 "has": "^1.0.3",
3781 "jsx-ast-utils": "^3.3.2",
3782 "language-tags": "^1.0.5",
3783 "minimatch": "^3.1.2",
3784 "semver": "^6.3.0"
3785 },
3786 "dependencies": {
3787 "semver": {
3788 "version": "6.3.0",
3789 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3790 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3791 "dev": true
3792 }
3793 }
3794 },
3795 "eslint-plugin-react": {
3796 "version": "7.31.10",
3797 "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz",
3798 "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==",
3799 "dev": true,
3800 "requires": {
3801 "array-includes": "^3.1.5",
3802 "array.prototype.flatmap": "^1.3.0",
3803 "doctrine": "^2.1.0",
3804 "estraverse": "^5.3.0",
3805 "jsx-ast-utils": "^2.4.1 || ^3.0.0",
3806 "minimatch": "^3.1.2",
3807 "object.entries": "^1.1.5",
3808 "object.fromentries": "^2.0.5",
3809 "object.hasown": "^1.1.1",
3810 "object.values": "^1.1.5",
3811 "prop-types": "^15.8.1",
3812 "resolve": "^2.0.0-next.3",
3813 "semver": "^6.3.0",
3814 "string.prototype.matchall": "^4.0.7"
3815 },
3816 "dependencies": {
3817 "doctrine": {
3818 "version": "2.1.0",
3819 "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
3820 "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
3821 "dev": true,
3822 "requires": {
3823 "esutils": "^2.0.2"
3824 }
3825 },
3826 "resolve": {
3827 "version": "2.0.0-next.3",
3828 "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
3829 "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
3830 "dev": true,
3831 "requires": {
3832 "is-core-module": "^2.2.0",
3833 "path-parse": "^1.0.6"
3834 }
3835 },
3836 "semver": {
3837 "version": "6.3.0",
3838 "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3839 "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3840 "dev": true
3841 }
3842 }
3843 },
3844 "eslint-plugin-react-hooks": {
3845 "version": "4.4.0",
3846 "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.4.0.tgz",
3847 "integrity": "sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==",
3848 "dev": true,
3849 "peer": true,
3850 "requires": {}
3851 },
3852 "eslint-scope": {
3853 "version": "7.1.1",
3854 "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
3855 "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
3856 "dev": true,
3857 "requires": {
3858 "esrecurse": "^4.3.0",
3859 "estraverse": "^5.2.0"
3860 }
3861 },
3862 "eslint-utils": {
3863 "version": "3.0.0",
3864 "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
3865 "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
3866 "dev": true,
3867 "requires": {
3868 "eslint-visitor-keys": "^2.0.0"
3869 },
3870 "dependencies": {
3871 "eslint-visitor-keys": {
3872 "version": "2.1.0",
3873 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
3874 "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
3875 "dev": true
3876 }
3877 }
3878 },
3879 "eslint-visitor-keys": {
3880 "version": "3.3.0",
3881 "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
3882 "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
3883 "dev": true
3884 },
3885 "espree": {
3886 "version": "9.4.0",
3887 "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
3888 "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
3889 "dev": true,
3890 "requires": {
3891 "acorn": "^8.8.0",
3892 "acorn-jsx": "^5.3.2",
3893 "eslint-visitor-keys": "^3.3.0"
3894 }
3895 },
3896 "esquery": {
3897 "version": "1.4.0",
3898 "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
3899 "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
3900 "dev": true,
3901 "requires": {
3902 "estraverse": "^5.1.0"
3903 }
3904 },
3905 "esrecurse": {
3906 "version": "4.3.0",
3907 "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
3908 "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
3909 "dev": true,
3910 "requires": {
3911 "estraverse": "^5.2.0"
3912 }
3913 },
3914 "estraverse": {
3915 "version": "5.3.0",
3916 "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
3917 "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
3918 "dev": true
3919 },
3920 "esutils": {
3921 "version": "2.0.3",
3922 "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
3923 "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
3924 "dev": true
3925 },
3926 "fast-deep-equal": {
3927 "version": "3.1.3",
3928 "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
3929 "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
3930 "dev": true
3931 },
3932 "fast-glob": {
3933 "version": "3.2.11",
3934 "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
3935 "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
3936 "dev": true,
3937 "requires": {
3938 "@nodelib/fs.stat": "^2.0.2",
3939 "@nodelib/fs.walk": "^1.2.3",
3940 "glob-parent": "^5.1.2",
3941 "merge2": "^1.3.0",
3942 "micromatch": "^4.0.4"
3943 },
3944 "dependencies": {
3945 "glob-parent": {
3946 "version": "5.1.2",
3947 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
3948 "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
3949 "dev": true,
3950 "requires": {
3951 "is-glob": "^4.0.1"
3952 }
3953 }
3954 }
3955 },
3956 "fast-json-stable-stringify": {
3957 "version": "2.1.0",
3958 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
3959 "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
3960 "dev": true
3961 },
3962 "fast-levenshtein": {
3963 "version": "2.0.6",
3964 "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
3965 "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
3966 "dev": true
3967 },
3968 "fastq": {
3969 "version": "1.13.0",
3970 "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
3971 "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
3972 "dev": true,
3973 "requires": {
3974 "reusify": "^1.0.4"
3975 }
3976 },
3977 "file-entry-cache": {
3978 "version": "6.0.1",
3979 "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
3980 "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
3981 "dev": true,
3982 "requires": {
3983 "flat-cache": "^3.0.4"
3984 }
3985 },
3986 "fill-range": {
3987 "version": "7.0.1",
3988 "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
3989 "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
3990 "dev": true,
3991 "requires": {
3992 "to-regex-range": "^5.0.1"
3993 }
3994 },
3995 "find-up": {
3996 "version": "2.1.0",
3997 "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
3998 "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
3999 "dev": true,
4000 "requires": {
4001 "locate-path": "^2.0.0"
4002 }
4003 },
4004 "flat-cache": {
4005 "version": "3.0.4",
4006 "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
4007 "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
4008 "dev": true,
4009 "requires": {
4010 "flatted": "^3.1.0",
4011 "rimraf": "^3.0.2"
4012 }
4013 },
4014 "flatted": {
4015 "version": "3.2.5",
4016 "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
4017 "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
4018 "dev": true
4019 },
4020 "fs.realpath": {
4021 "version": "1.0.0",
4022 "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
4023 "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
4024 "dev": true
4025 },
4026 "function-bind": {
4027 "version": "1.1.1",
4028 "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
4029 "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
4030 "dev": true
4031 },
4032 "functions-have-names": {
4033 "version": "1.2.3",
4034 "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
4035 "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
4036 "dev": true
4037 },
4038 "get-caller-file": {
4039 "version": "2.0.5",
4040 "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
4041 "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
4042 "dev": true
4043 },
4044 "get-intrinsic": {
4045 "version": "1.1.1",
4046 "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
4047 "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
4048 "dev": true,
4049 "requires": {
4050 "function-bind": "^1.1.1",
4051 "has": "^1.0.3",
4052 "has-symbols": "^1.0.1"
4053 }
4054 },
4055 "get-symbol-description": {
4056 "version": "1.0.0",
4057 "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
4058 "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
4059 "dev": true,
4060 "requires": {
4061 "call-bind": "^1.0.2",
4062 "get-intrinsic": "^1.1.1"
4063 }
4064 },
4065 "glob": {
4066 "version": "7.2.0",
4067 "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
4068 "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
4069 "dev": true,
4070 "requires": {
4071 "fs.realpath": "^1.0.0",
4072 "inflight": "^1.0.4",
4073 "inherits": "2",
4074 "minimatch": "^3.0.4",
4075 "once": "^1.3.0",
4076 "path-is-absolute": "^1.0.0"
4077 }
4078 },
4079 "glob-parent": {
4080 "version": "6.0.2",
4081 "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
4082 "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
4083 "dev": true,
4084 "requires": {
4085 "is-glob": "^4.0.3"
4086 }
4087 },
4088 "global-agent": {
4089 "version": "3.0.0",
4090 "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz",
4091 "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==",
4092 "dev": true,
4093 "requires": {
4094 "boolean": "^3.0.1",
4095 "es6-error": "^4.1.1",
4096 "matcher": "^3.0.0",
4097 "roarr": "^2.15.3",
4098 "semver": "^7.3.2",
4099 "serialize-error": "^7.0.1"
4100 }
4101 },
4102 "globals": {
4103 "version": "13.17.0",
4104 "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
4105 "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
4106 "dev": true,
4107 "requires": {
4108 "type-fest": "^0.20.2"
4109 }
4110 },
4111 "globalthis": {
4112 "version": "1.0.2",
4113 "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz",
4114 "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==",
4115 "dev": true,
4116 "requires": {
4117 "define-properties": "^1.1.3"
4118 }
4119 },
4120 "globby": {
4121 "version": "11.1.0",
4122 "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
4123 "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
4124 "dev": true,
4125 "requires": {
4126 "array-union": "^2.1.0",
4127 "dir-glob": "^3.0.1",
4128 "fast-glob": "^3.2.9",
4129 "ignore": "^5.2.0",
4130 "merge2": "^1.4.1",
4131 "slash": "^3.0.0"
4132 }
4133 },
4134 "grapheme-splitter": {
4135 "version": "1.0.4",
4136 "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
4137 "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
4138 "dev": true
4139 },
4140 "has": {
4141 "version": "1.0.3",
4142 "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
4143 "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
4144 "dev": true,
4145 "requires": {
4146 "function-bind": "^1.1.1"
4147 }
4148 },
4149 "has-bigints": {
4150 "version": "1.0.2",
4151 "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
4152 "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
4153 "dev": true
4154 },
4155 "has-flag": {
4156 "version": "4.0.0",
4157 "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
4158 "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
4159 "dev": true
4160 },
4161 "has-property-descriptors": {
4162 "version": "1.0.0",
4163 "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
4164 "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
4165 "dev": true,
4166 "requires": {
4167 "get-intrinsic": "^1.1.1"
4168 }
4169 },
4170 "has-symbols": {
4171 "version": "1.0.3",
4172 "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
4173 "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
4174 "dev": true
4175 },
4176 "has-tostringtag": {
4177 "version": "1.0.0",
4178 "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
4179 "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
4180 "dev": true,
4181 "requires": {
4182 "has-symbols": "^1.0.2"
4183 }
4184 },
4185 "husky": {
4186 "version": "8.0.1",
4187 "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz",
4188 "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==",
4189 "dev": true
4190 },
4191 "ignore": {
4192 "version": "5.2.0",
4193 "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
4194 "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
4195 "dev": true
4196 },
4197 "import-fresh": {
4198 "version": "3.3.0",
4199 "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
4200 "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
4201 "dev": true,
4202 "requires": {
4203 "parent-module": "^1.0.0",
4204 "resolve-from": "^4.0.0"
4205 }
4206 },
4207 "imurmurhash": {
4208 "version": "0.1.4",
4209 "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
4210 "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
4211 "dev": true
4212 },
4213 "inflight": {
4214 "version": "1.0.6",
4215 "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
4216 "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
4217 "dev": true,
4218 "requires": {
4219 "once": "^1.3.0",
4220 "wrappy": "1"
4221 }
4222 },
4223 "inherits": {
4224 "version": "2.0.4",
4225 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
4226 "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
4227 "dev": true
4228 },
4229 "ini": {
4230 "version": "2.0.0",
4231 "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
4232 "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
4233 "dev": true
4234 },
4235 "internal-slot": {
4236 "version": "1.0.3",
4237 "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
4238 "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
4239 "dev": true,
4240 "requires": {
4241 "get-intrinsic": "^1.1.0",
4242 "has": "^1.0.3",
4243 "side-channel": "^1.0.4"
4244 }
4245 },
4246 "is-bigint": {
4247 "version": "1.0.4",
4248 "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
4249 "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
4250 "dev": true,
4251 "requires": {
4252 "has-bigints": "^1.0.1"
4253 }
4254 },
4255 "is-boolean-object": {
4256 "version": "1.1.2",
4257 "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
4258 "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
4259 "dev": true,
4260 "requires": {
4261 "call-bind": "^1.0.2",
4262 "has-tostringtag": "^1.0.0"
4263 }
4264 },
4265 "is-callable": {
4266 "version": "1.2.4",
4267 "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
4268 "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
4269 "dev": true
4270 },
4271 "is-core-module": {
4272 "version": "2.9.0",
4273 "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
4274 "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
4275 "dev": true,
4276 "requires": {
4277 "has": "^1.0.3"
4278 }
4279 },
4280 "is-date-object": {
4281 "version": "1.0.5",
4282 "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
4283 "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
4284 "dev": true,
4285 "requires": {
4286 "has-tostringtag": "^1.0.0"
4287 }
4288 },
4289 "is-extglob": {
4290 "version": "2.1.1",
4291 "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
4292 "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
4293 "dev": true
4294 },
4295 "is-fullwidth-code-point": {
4296 "version": "3.0.0",
4297 "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
4298 "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
4299 "dev": true
4300 },
4301 "is-glob": {
4302 "version": "4.0.3",
4303 "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
4304 "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
4305 "dev": true,
4306 "requires": {
4307 "is-extglob": "^2.1.1"
4308 }
4309 },
4310 "is-negative-zero": {
4311 "version": "2.0.2",
4312 "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
4313 "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
4314 "dev": true
4315 },
4316 "is-number": {
4317 "version": "7.0.0",
4318 "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
4319 "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
4320 "dev": true
4321 },
4322 "is-number-object": {
4323 "version": "1.0.7",
4324 "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
4325 "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
4326 "dev": true,
4327 "requires": {
4328 "has-tostringtag": "^1.0.0"
4329 }
4330 },
4331 "is-regex": {
4332 "version": "1.1.4",
4333 "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
4334 "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
4335 "dev": true,
4336 "requires": {
4337 "call-bind": "^1.0.2",
4338 "has-tostringtag": "^1.0.0"
4339 }
4340 },
4341 "is-shared-array-buffer": {
4342 "version": "1.0.2",
4343 "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
4344 "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
4345 "dev": true,
4346 "requires": {
4347 "call-bind": "^1.0.2"
4348 }
4349 },
4350 "is-string": {
4351 "version": "1.0.7",
4352 "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
4353 "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
4354 "dev": true,
4355 "requires": {
4356 "has-tostringtag": "^1.0.0"
4357 }
4358 },
4359 "is-symbol": {
4360 "version": "1.0.4",
4361 "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
4362 "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
4363 "dev": true,
4364 "requires": {
4365 "has-symbols": "^1.0.2"
4366 }
4367 },
4368 "is-weakref": {
4369 "version": "1.0.2",
4370 "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
4371 "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
4372 "dev": true,
4373 "requires": {
4374 "call-bind": "^1.0.2"
4375 }
4376 },
4377 "isexe": {
4378 "version": "2.0.0",
4379 "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
4380 "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
4381 "dev": true
4382 },
4383 "js-sdsl": {
4384 "version": "4.1.5",
4385 "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
4386 "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
4387 "dev": true
4388 },
4389 "js-tokens": {
4390 "version": "4.0.0",
4391 "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
4392 "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
4393 "dev": true
4394 },
4395 "js-yaml": {
4396 "version": "4.1.0",
4397 "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
4398 "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
4399 "dev": true,
4400 "requires": {
4401 "argparse": "^2.0.1"
4402 }
4403 },
4404 "json-schema-traverse": {
4405 "version": "0.4.1",
4406 "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
4407 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
4408 "dev": true
4409 },
4410 "json-stable-stringify-without-jsonify": {
4411 "version": "1.0.1",
4412 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
4413 "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
4414 "dev": true
4415 },
4416 "json-stringify-safe": {
4417 "version": "5.0.1",
4418 "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
4419 "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
4420 "dev": true
4421 },
4422 "json5": {
4423 "version": "1.0.2",
4424 "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
4425 "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
4426 "dev": true,
4427 "requires": {
4428 "minimist": "^1.2.0"
4429 }
4430 },
4431 "jsx-ast-utils": {
4432 "version": "3.3.3",
4433 "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz",
4434 "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==",
4435 "dev": true,
4436 "requires": {
4437 "array-includes": "^3.1.5",
4438 "object.assign": "^4.1.3"
4439 }
4440 },
4441 "language-subtag-registry": {
4442 "version": "0.3.21",
4443 "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz",
4444 "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==",
4445 "dev": true
4446 },
4447 "language-tags": {
4448 "version": "1.0.5",
4449 "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
4450 "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
4451 "dev": true,
4452 "requires": {
4453 "language-subtag-registry": "~0.3.2"
4454 }
4455 },
4456 "levn": {
4457 "version": "0.4.1",
4458 "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
4459 "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
4460 "dev": true,
4461 "requires": {
4462 "prelude-ls": "^1.2.1",
4463 "type-check": "~0.4.0"
4464 }
4465 },
4466 "linkify-it": {
4467 "version": "4.0.1",
4468 "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz",
4469 "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==",
4470 "dev": true,
4471 "requires": {
4472 "uc.micro": "^1.0.1"
4473 }
4474 },
4475 "locate-path": {
4476 "version": "2.0.0",
4477 "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
4478 "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
4479 "dev": true,
4480 "requires": {
4481 "p-locate": "^2.0.0",
4482 "path-exists": "^3.0.0"
4483 }
4484 },
4485 "lodash.merge": {
4486 "version": "4.6.2",
4487 "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
4488 "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
4489 "dev": true
4490 },
4491 "loose-envify": {
4492 "version": "1.4.0",
4493 "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
4494 "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
4495 "dev": true,
4496 "requires": {
4497 "js-tokens": "^3.0.0 || ^4.0.0"
4498 }
4499 },
4500 "lru-cache": {
4501 "version": "6.0.0",
4502 "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
4503 "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
4504 "requires": {
4505 "yallist": "^4.0.0"
4506 }
4507 },
4508 "markdown-it": {
4509 "version": "13.0.1",
4510 "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz",
4511 "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==",
4512 "dev": true,
4513 "requires": {
4514 "argparse": "^2.0.1",
4515 "entities": "~3.0.1",
4516 "linkify-it": "^4.0.1",
4517 "mdurl": "^1.0.1",
4518 "uc.micro": "^1.0.5"
4519 }
4520 },
4521 "markdownlint": {
4522 "version": "0.26.2",
4523 "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.26.2.tgz",
4524 "integrity": "sha512-2Am42YX2Ex5SQhRq35HxYWDfz1NLEOZWWN25nqd2h3AHRKsGRE+Qg1gt1++exW792eXTrR4jCNHfShfWk9Nz8w==",
4525 "dev": true,
4526 "requires": {
4527 "markdown-it": "13.0.1"
4528 }
4529 },
4530 "matcher": {
4531 "version": "3.0.0",
4532 "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz",
4533 "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==",
4534 "dev": true,
4535 "requires": {
4536 "escape-string-regexp": "^4.0.0"
4537 }
4538 },
4539 "mdurl": {
4540 "version": "1.0.1",
4541 "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
4542 "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
4543 "dev": true
4544 },
4545 "merge2": {
4546 "version": "1.4.1",
4547 "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
4548 "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
4549 "dev": true
4550 },
4551 "micromatch": {
4552 "version": "4.0.5",
4553 "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
4554 "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
4555 "dev": true,
4556 "requires": {
4557 "braces": "^3.0.2",
4558 "picomatch": "^2.3.1"
4559 }
4560 },
4561 "minimatch": {
4562 "version": "3.1.2",
4563 "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
4564 "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
4565 "dev": true,
4566 "requires": {
4567 "brace-expansion": "^1.1.7"
4568 }
4569 },
4570 "minimist": {
4571 "version": "1.2.6",
4572 "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
4573 "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
4574 "dev": true
4575 },
4576 "ms": {
4577 "version": "2.1.2",
4578 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
4579 "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
4580 "dev": true
4581 },
4582 "natural-compare": {
4583 "version": "1.4.0",
4584 "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
4585 "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
4586 "dev": true
4587 },
4588 "nconf": {
4589 "version": "0.12.0",
4590 "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.12.0.tgz",
4591 "integrity": "sha512-T3fZPw3c7Dfrz8JBQEbEcZJ2s8f7cUMpKuyBtsGQe0b71pcXx6gNh4oti2xh5dxB+gO9ufNfISBlGvvWtfyMcA==",
4592 "dev": true,
4593 "requires": {
4594 "async": "^3.0.0",
4595 "ini": "^2.0.0",
4596 "secure-keys": "^1.0.0",
4597 "yargs": "^16.1.1"
4598 }
4599 },
4600 "object-assign": {
4601 "version": "4.1.1",
4602 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
4603 "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
4604 "dev": true
4605 },
4606 "object-inspect": {
4607 "version": "1.12.0",
4608 "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz",
4609 "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==",
4610 "dev": true
4611 },
4612 "object-keys": {
4613 "version": "1.1.1",
4614 "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
4615 "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
4616 "dev": true
4617 },
4618 "object.assign": {
4619 "version": "4.1.4",
4620 "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
4621 "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
4622 "dev": true,
4623 "requires": {
4624 "call-bind": "^1.0.2",
4625 "define-properties": "^1.1.4",
4626 "has-symbols": "^1.0.3",
4627 "object-keys": "^1.1.1"
4628 }
4629 },
4630 "object.entries": {
4631 "version": "1.1.5",
4632 "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
4633 "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
4634 "dev": true,
4635 "requires": {
4636 "call-bind": "^1.0.2",
4637 "define-properties": "^1.1.3",
4638 "es-abstract": "^1.19.1"
4639 }
4640 },
4641 "object.fromentries": {
4642 "version": "2.0.5",
4643 "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
4644 "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
4645 "dev": true,
4646 "requires": {
4647 "call-bind": "^1.0.2",
4648 "define-properties": "^1.1.3",
4649 "es-abstract": "^1.19.1"
4650 }
4651 },
4652 "object.hasown": {
4653 "version": "1.1.1",
4654 "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
4655 "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
4656 "dev": true,
4657 "requires": {
4658 "define-properties": "^1.1.4",
4659 "es-abstract": "^1.19.5"
4660 }
4661 },
4662 "object.values": {
4663 "version": "1.1.5",
4664 "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
4665 "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
4666 "dev": true,
4667 "requires": {
4668 "call-bind": "^1.0.2",
4669 "define-properties": "^1.1.3",
4670 "es-abstract": "^1.19.1"
4671 }
4672 },
4673 "once": {
4674 "version": "1.4.0",
4675 "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
4676 "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
4677 "dev": true,
4678 "requires": {
4679 "wrappy": "1"
4680 }
4681 },
4682 "optionator": {
4683 "version": "0.9.1",
4684 "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
4685 "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
4686 "dev": true,
4687 "requires": {
4688 "deep-is": "^0.1.3",
4689 "fast-levenshtein": "^2.0.6",
4690 "levn": "^0.4.1",
4691 "prelude-ls": "^1.2.1",
4692 "type-check": "^0.4.0",
4693 "word-wrap": "^1.2.3"
4694 }
4695 },
4696 "p-limit": {
4697 "version": "1.3.0",
4698 "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
4699 "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
4700 "dev": true,
4701 "requires": {
4702 "p-try": "^1.0.0"
4703 }
4704 },
4705 "p-locate": {
4706 "version": "2.0.0",
4707 "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
4708 "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
4709 "dev": true,
4710 "requires": {
4711 "p-limit": "^1.1.0"
4712 }
4713 },
4714 "p-try": {
4715 "version": "1.0.0",
4716 "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
4717 "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
4718 "dev": true
4719 },
4720 "parent-module": {
4721 "version": "1.0.1",
4722 "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
4723 "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
4724 "dev": true,
4725 "requires": {
4726 "callsites": "^3.0.0"
4727 }
4728 },
4729 "path-exists": {
4730 "version": "3.0.0",
4731 "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
4732 "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
4733 "dev": true
4734 },
4735 "path-is-absolute": {
4736 "version": "1.0.1",
4737 "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
4738 "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
4739 "dev": true
4740 },
4741 "path-key": {
4742 "version": "3.1.1",
4743 "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
4744 "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
4745 "dev": true
4746 },
4747 "path-parse": {
4748 "version": "1.0.7",
4749 "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
4750 "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
4751 "dev": true
4752 },
4753 "path-type": {
4754 "version": "4.0.0",
4755 "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
4756 "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
4757 "dev": true
4758 },
4759 "picomatch": {
4760 "version": "2.3.1",
4761 "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
4762 "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
4763 "dev": true
4764 },
4765 "prelude-ls": {
4766 "version": "1.2.1",
4767 "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
4768 "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
4769 "dev": true
4770 },
4771 "prettier": {
4772 "version": "2.7.1",
4773 "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
4774 "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
4775 "dev": true
4776 },
4777 "prop-types": {
4778 "version": "15.8.1",
4779 "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
4780 "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
4781 "dev": true,
4782 "requires": {
4783 "loose-envify": "^1.4.0",
4784 "object-assign": "^4.1.1",
4785 "react-is": "^16.13.1"
4786 }
4787 },
4788 "punycode": {
4789 "version": "2.1.1",
4790 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
4791 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
4792 "dev": true
4793 },
4794 "queue-microtask": {
4795 "version": "1.2.3",
4796 "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
4797 "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
4798 "dev": true
4799 },
4800 "react-is": {
4801 "version": "16.13.1",
4802 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
4803 "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
4804 "dev": true
4805 },
4806 "regenerator-runtime": {
4807 "version": "0.13.9",
4808 "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
4809 "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
4810 "dev": true
4811 },
4812 "regexp.prototype.flags": {
4813 "version": "1.4.3",
4814 "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
4815 "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
4816 "dev": true,
4817 "requires": {
4818 "call-bind": "^1.0.2",
4819 "define-properties": "^1.1.3",
4820 "functions-have-names": "^1.2.2"
4821 }
4822 },
4823 "regexpp": {
4824 "version": "3.2.0",
4825 "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
4826 "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
4827 "dev": true
4828 },
4829 "require-directory": {
4830 "version": "2.1.1",
4831 "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
4832 "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
4833 "dev": true
4834 },
4835 "resolve": {
4836 "version": "1.22.0",
4837 "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
4838 "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
4839 "dev": true,
4840 "requires": {
4841 "is-core-module": "^2.8.1",
4842 "path-parse": "^1.0.7",
4843 "supports-preserve-symlinks-flag": "^1.0.0"
4844 }
4845 },
4846 "resolve-from": {
4847 "version": "4.0.0",
4848 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
4849 "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
4850 "dev": true
4851 },
4852 "reusify": {
4853 "version": "1.0.4",
4854 "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
4855 "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
4856 "dev": true
4857 },
4858 "rimraf": {
4859 "version": "3.0.2",
4860 "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
4861 "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
4862 "dev": true,
4863 "requires": {
4864 "glob": "^7.1.3"
4865 }
4866 },
4867 "roarr": {
4868 "version": "2.15.4",
4869 "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz",
4870 "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==",
4871 "dev": true,
4872 "requires": {
4873 "boolean": "^3.0.1",
4874 "detect-node": "^2.0.4",
4875 "globalthis": "^1.0.1",
4876 "json-stringify-safe": "^5.0.1",
4877 "semver-compare": "^1.0.0",
4878 "sprintf-js": "^1.1.2"
4879 }
4880 },
4881 "run-parallel": {
4882 "version": "1.2.0",
4883 "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
4884 "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
4885 "dev": true,
4886 "requires": {
4887 "queue-microtask": "^1.2.2"
4888 }
4889 },
4890 "secure-keys": {
4891 "version": "1.0.0",
4892 "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz",
4893 "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=",
4894 "dev": true
4895 },
4896 "semver": {
4897 "version": "7.5.2",
4898 "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
4899 "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==",
4900 "requires": {
4901 "lru-cache": "^6.0.0"
4902 }
4903 },
4904 "semver-compare": {
4905 "version": "1.0.0",
4906 "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
4907 "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=",
4908 "dev": true
4909 },
4910 "serialize-error": {
4911 "version": "7.0.1",
4912 "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
4913 "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==",
4914 "dev": true,
4915 "requires": {
4916 "type-fest": "^0.13.1"
4917 },
4918 "dependencies": {
4919 "type-fest": {
4920 "version": "0.13.1",
4921 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
4922 "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
4923 "dev": true
4924 }
4925 }
4926 },
4927 "shebang-command": {
4928 "version": "2.0.0",
4929 "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
4930 "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
4931 "dev": true,
4932 "requires": {
4933 "shebang-regex": "^3.0.0"
4934 }
4935 },
4936 "shebang-regex": {
4937 "version": "3.0.0",
4938 "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
4939 "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
4940 "dev": true
4941 },
4942 "shellcheck": {
4943 "version": "1.1.0",
4944 "resolved": "https://registry.npmjs.org/shellcheck/-/shellcheck-1.1.0.tgz",
4945 "integrity": "sha512-WtLqgjHg7667gGU+0dPV1EtoQgYL/Zxc4fhRt6Z3kfpASG3J08TBJ990HVIUnN/YWUBKMr3FVbBYlEvPVJ24bA==",
4946 "dev": true,
4947 "requires": {
4948 "global-agent": "^3.0.0"
4949 }
4950 },
4951 "side-channel": {
4952 "version": "1.0.4",
4953 "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
4954 "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
4955 "dev": true,
4956 "requires": {
4957 "call-bind": "^1.0.0",
4958 "get-intrinsic": "^1.0.2",
4959 "object-inspect": "^1.9.0"
4960 }
4961 },
4962 "slash": {
4963 "version": "3.0.0",
4964 "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
4965 "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
4966 "dev": true
4967 },
4968 "sprintf-js": {
4969 "version": "1.1.2",
4970 "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
4971 "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==",
4972 "dev": true
4973 },
4974 "string-width": {
4975 "version": "4.2.3",
4976 "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
4977 "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
4978 "dev": true,
4979 "requires": {
4980 "emoji-regex": "^8.0.0",
4981 "is-fullwidth-code-point": "^3.0.0",
4982 "strip-ansi": "^6.0.1"
4983 },
4984 "dependencies": {
4985 "emoji-regex": {
4986 "version": "8.0.0",
4987 "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
4988 "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
4989 "dev": true
4990 }
4991 }
4992 },
4993 "string.prototype.matchall": {
4994 "version": "4.0.7",
4995 "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz",
4996 "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==",
4997 "dev": true,
4998 "requires": {
4999 "call-bind": "^1.0.2",
5000 "define-properties": "^1.1.3",
5001 "es-abstract": "^1.19.1",
5002 "get-intrinsic": "^1.1.1",
5003 "has-symbols": "^1.0.3",
5004 "internal-slot": "^1.0.3",
5005 "regexp.prototype.flags": "^1.4.1",
5006 "side-channel": "^1.0.4"
5007 }
5008 },
5009 "string.prototype.trimend": {
5010 "version": "1.0.4",
5011 "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
5012 "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
5013 "dev": true,
5014 "requires": {
5015 "call-bind": "^1.0.2",
5016 "define-properties": "^1.1.3"
5017 }
5018 },
5019 "string.prototype.trimstart": {
5020 "version": "1.0.4",
5021 "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
5022 "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
5023 "dev": true,
5024 "requires": {
5025 "call-bind": "^1.0.2",
5026 "define-properties": "^1.1.3"
5027 }
5028 },
5029 "strip-ansi": {
5030 "version": "6.0.1",
5031 "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
5032 "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
5033 "dev": true,
5034 "requires": {
5035 "ansi-regex": "^5.0.1"
5036 }
5037 },
5038 "strip-bom": {
5039 "version": "3.0.0",
5040 "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
5041 "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
5042 "dev": true
5043 },
5044 "strip-json-comments": {
5045 "version": "3.1.1",
5046 "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
5047 "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
5048 "dev": true
5049 },
5050 "supports-color": {
5051 "version": "7.2.0",
5052 "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
5053 "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
5054 "dev": true,
5055 "requires": {
5056 "has-flag": "^4.0.0"
5057 }
5058 },
5059 "supports-preserve-symlinks-flag": {
5060 "version": "1.0.0",
5061 "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
5062 "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
5063 "dev": true
5064 },
5065 "text-table": {
5066 "version": "0.2.0",
5067 "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
5068 "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
5069 "dev": true
5070 },
5071 "to-regex-range": {
5072 "version": "5.0.1",
5073 "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
5074 "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
5075 "dev": true,
5076 "requires": {
5077 "is-number": "^7.0.0"
5078 }
5079 },
5080 "tsconfig-paths": {
5081 "version": "3.14.1",
5082 "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
5083 "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
5084 "dev": true,
5085 "requires": {
5086 "@types/json5": "^0.0.29",
5087 "json5": "^1.0.1",
5088 "minimist": "^1.2.6",
5089 "strip-bom": "^3.0.0"
5090 }
5091 },
5092 "tunnel": {
5093 "version": "0.0.6",
5094 "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
5095 "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg=="
5096 },
5097 "type-check": {
5098 "version": "0.4.0",
5099 "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
5100 "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
5101 "dev": true,
5102 "requires": {
5103 "prelude-ls": "^1.2.1"
5104 }
5105 },
5106 "type-fest": {
5107 "version": "0.20.2",
5108 "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
5109 "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
5110 "dev": true
5111 },
5112 "uc.micro": {
5113 "version": "1.0.6",
5114 "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
5115 "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==",
5116 "dev": true
5117 },
5118 "unbox-primitive": {
5119 "version": "1.0.1",
5120 "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
5121 "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
5122 "dev": true,
5123 "requires": {
5124 "function-bind": "^1.1.1",
5125 "has-bigints": "^1.0.1",
5126 "has-symbols": "^1.0.2",
5127 "which-boxed-primitive": "^1.0.2"
5128 }
5129 },
5130 "uri-js": {
5131 "version": "4.4.1",
5132 "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
5133 "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
5134 "dev": true,
5135 "requires": {
5136 "punycode": "^2.1.0"
5137 }
5138 },
5139 "uuid": {
5140 "version": "8.3.2",
5141 "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
5142 "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
5143 },
5144 "which": {
5145 "version": "2.0.2",
5146 "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
5147 "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
5148 "dev": true,
5149 "requires": {
5150 "isexe": "^2.0.0"
5151 }
5152 },
5153 "which-boxed-primitive": {
5154 "version": "1.0.2",
5155 "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
5156 "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
5157 "dev": true,
5158 "requires": {
5159 "is-bigint": "^1.0.1",
5160 "is-boolean-object": "^1.1.0",
5161 "is-number-object": "^1.0.4",
5162 "is-string": "^1.0.5",
5163 "is-symbol": "^1.0.3"
5164 }
5165 },
5166 "word-wrap": {
5167 "version": "1.2.4",
5168 "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz",
5169 "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==",
5170 "dev": true
5171 },
5172 "wrap-ansi": {
5173 "version": "7.0.0",
5174 "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
5175 "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
5176 "dev": true,
5177 "requires": {
5178 "ansi-styles": "^4.0.0",
5179 "string-width": "^4.1.0",
5180 "strip-ansi": "^6.0.0"
5181 }
5182 },
5183 "wrappy": {
5184 "version": "1.0.2",
5185 "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
5186 "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
5187 "dev": true
5188 },
5189 "y18n": {
5190 "version": "5.0.8",
5191 "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
5192 "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
5193 "dev": true
5194 },
5195 "yallist": {
5196 "version": "4.0.0",
5197 "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
5198 "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
5199 },
5200 "yaml-lint": {
5201 "version": "1.7.0",
5202 "resolved": "https://registry.npmjs.org/yaml-lint/-/yaml-lint-1.7.0.tgz",
5203 "integrity": "sha512-zeBC/kskKQo4zuoGQ+IYjw6C9a/YILr2SXoEZA9jM0COrSwvwVbfTiFegT8qYBSBgOwLMWGL8sY137tOmFXGnQ==",
5204 "dev": true,
5205 "requires": {
5206 "consola": "^2.15.3",
5207 "globby": "^11.1.0",
5208 "js-yaml": "^4.1.0",
5209 "nconf": "^0.12.0"
5210 }
5211 },
5212 "yargs": {
5213 "version": "16.2.0",
5214 "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
5215 "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
5216 "dev": true,
5217 "requires": {
5218 "cliui": "^7.0.2",
5219 "escalade": "^3.1.1",
5220 "get-caller-file": "^2.0.5",
5221 "require-directory": "^2.1.1",
5222 "string-width": "^4.2.0",
5223 "y18n": "^5.0.5",
5224 "yargs-parser": "^20.2.2"
5225 }
5226 },
5227 "yargs-parser": {
5228 "version": "20.2.9",
5229 "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
5230 "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
5231 "dev": true
5232 },
5233 "yarn": {
5234 "version": "1.22.19",
5235 "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.19.tgz",
5236 "integrity": "sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ==",
5237 "dev": true
5238 },
5239 "yocto-queue": {
5240 "version": "0.1.0",
5241 "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
5242 "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
5243 "dev": true
5244 }
5245 2802 }
5246 2803 }
modified package.json
+7 −17
@@ -13,29 +13,19 @@
13 13 "yamllint": "yamllint .github/workflows/**.yml && yamllint .*.yml && yamllint *.yml",
14 14 "build-dist": "npm install && npm run build && npm run format && npm run markdownlint && npm run shellcheck && npm run yamllint && npm run jslint"
15 15 },
16 "husky": {
17 "hooks": {
18 "pre-commit": "npm run format -- --check && npm run build && git add dist/"
19 }
20 },
21 16 "dependencies": {
22 17 "@actions/core": "1.10.0",
23 18 "@actions/exec": "1.1.1",
24 19 "@actions/http-client": "2.1.0",
25 "@actions/tool-cache": "^2.0.1",
26 "semver": "7.5.2"
20 + "@actions/tool-cache": "2.0.1",
21 + "semver": "7.5.3"
27 22 },
28 23 "devDependencies": {
29 "@vercel/ncc": "0.34.0",
30 "eslint": "8.25.0",
31 "eslint-config-airbnb": "19.0.4",
32 "eslint-plugin-import": "2.26.0",
33 "eslint-plugin-jsx-a11y": "6.6.1",
34 "eslint-plugin-react": "7.31.10",
35 "husky": "8.0.1",
36 "markdownlint": "0.26.2",
37 "prettier": "2.7.1",
38 "shellcheck": "1.1.0",
24 + "@vercel/ncc": "0.36.1",
25 + "eslint": "8.43.0",
26 + "markdownlint-cli": "0.35.0",
27 + "prettier": "2.8.8",
28 + "shellcheck": "2.2.0",
39 29 "yaml-lint": "1.7.0",
40 30 "yarn": "1.22.19"
41 31 },
modified src/setup-beam.js
+143 −83
@@ -35,15 +35,16 @@ async function main() {
35 35
36 36 if (otpSpec !== 'false') {
37 37 await installOTP(otpSpec, osVersion, hexMirrors)
38 +
38 39 const elixirInstalled = await maybeInstallElixir(
39 40 elixirSpec,
40 41 otpSpec,
41 42 hexMirrors,
42 43 )
43
44 44 if (elixirInstalled === true) {
45 45 const shouldMixRebar = getInput('install-rebar', false)
46 46 await mix(shouldMixRebar, 'rebar', hexMirrors)
47 +
47 48 const shouldMixHex = getInput('install-hex', false)
48 49 await mix(shouldMixHex, 'hex', hexMirrors)
49 50 }
@@ -67,7 +68,6 @@ async function installOTP(otpSpec, osVersion, hexMirrors) {
67 68
68 69 async function maybeInstallElixir(elixirSpec, otpSpec, hexMirrors) {
69 70 let installed = false
70
71 71 if (elixirSpec) {
72 72 const elixirVersion = await getElixirVersion(
73 73 elixirSpec,
@@ -77,6 +77,7 @@ async function maybeInstallElixir(elixirSpec, otpSpec, hexMirrors) {
77 77 core.startGroup(`Installing Elixir ${elixirVersion}`)
78 78 await installer.installElixir(elixirVersion, hexMirrors)
79 79 core.setOutput('elixir-version', elixirVersion)
80 +
80 81 const disableProblemMatchers = getInput('disable_problem_matchers', false)
81 82 if (disableProblemMatchers === 'false') {
82 83 const elixirMatchers = path.join(
@@ -99,6 +100,7 @@ async function mixWithMirrors(cmd, args, hexMirrors) {
99 100 if (hexMirrors.length === 0) {
100 101 throw new Error('mix failed with every mirror')
101 102 }
103 +
102 104 const [hexMirror, ...hexMirrorsT] = hexMirrors
103 105 process.env.HEX_MIRROR = hexMirror
104 106 try {
@@ -108,6 +110,7 @@ async function mixWithMirrors(cmd, args, hexMirrors) {
108 110 `mix failed with mirror ${process.env.HEX_MIRROR} with message ${err.message})`,
109 111 )
110 112 }
113 +
111 114 return mixWithMirrors(cmd, args, hexMirrorsT)
112 115 }
113 116
@@ -123,7 +126,6 @@ async function mix(shouldMix, what, hexMirrors) {
123 126
124 127 async function maybeInstallGleam(gleamSpec) {
125 128 let installed = false
126
127 129 if (gleamSpec) {
128 130 const gleamVersion = await getGleamVersion(gleamSpec)
129 131 core.startGroup(`Installing Gleam ${gleamVersion}`)
@@ -141,7 +143,6 @@ async function maybeInstallGleam(gleamSpec) {
141 143 async function maybeInstallRebar3(rebar3Spec) {
142 144 let installed = false
143 145 let rebar3Version
144
145 146 if (rebar3Spec) {
146 147 if (rebar3Spec === 'nightly') {
147 148 rebar3Version = 'nightly'
@@ -162,14 +163,9 @@ async function maybeInstallRebar3(rebar3Spec) {
162 163
163 164 async function getOTPVersion(otpSpec0, osVersion, hexMirrors) {
164 165 const otpVersions = await getOTPVersions(osVersion, hexMirrors)
165 let otpSpec = otpSpec0 // might be a branch (?)
166 const otpVersion = getVersionFromSpec(
167 otpSpec,
168 Array.from(otpVersions.keys()).sort(),
169 )
170 if (isVersion(otpSpec0)) {
171 otpSpec = `OTP-${otpSpec0}` // ... it's a version!
172 }
166 + const spec = otpSpec0.replace(/^OTP-/, '')
167 + const versions = otpVersions
168 + const otpVersion = getVersionFromSpec(spec, versions)
173 169 if (otpVersion === null) {
174 170 throw new Error(
175 171 `Requested Erlang/OTP version (${otpSpec0}) not found in version list ` +
@@ -177,20 +173,18 @@ async function getOTPVersion(otpSpec0, osVersion, hexMirrors) {
177 173 )
178 174 }
179 175
180 return otpVersions.get(otpVersion) // from the reference, for download
176 + return otpVersion // from the reference, for download
181 177 }
182 178
183 179 async function getElixirVersion(exSpec0, otpVersion0, hexMirrors) {
184 180 const otpVersion = otpVersion0.match(/^([^-]+-)?(.+)$/)[2]
185 181 const otpVersionMajor = otpVersion.match(/^([^.]+).*$/)[1]
186 const elixirVersions = await getElixirVersions(hexMirrors)
187 const semverVersions = Array.from(elixirVersions.keys()).sort()
188 const exSpec = exSpec0.replace(/-otp-.*$/, '')
189 const elixirVersionFromSpec = getVersionFromSpec(exSpec, semverVersions, true)
190 let elixirVersionForDownload = elixirVersionFromSpec
191 if (isVersion(otpVersionMajor)) {
192 elixirVersionForDownload = `${elixirVersionFromSpec}-otp-${otpVersionMajor}`
193 }
182 + const [otpVersionsForElixirMap, elixirVersions] = await getElixirVersions(
183 + hexMirrors,
184 + )
185 + const spec = exSpec0.replace(/-otp-.*$/, '')
186 + const versions = elixirVersions
187 + const elixirVersionFromSpec = getVersionFromSpec(spec, versions)
194 188 if (elixirVersionFromSpec === null) {
195 189 throw new Error(
196 190 `Requested Elixir version (${exSpec0}) not found in version list ` +
@@ -198,7 +192,7 @@ async function getElixirVersion(exSpec0, otpVersion0, hexMirrors) {
198 192 )
199 193 }
200 194
201 const elixirVersionComp = elixirVersions.get(elixirVersionFromSpec)
195 + const elixirVersionComp = otpVersionsForElixirMap[elixirVersionFromSpec]
202 196 if (
203 197 (elixirVersionComp && elixirVersionComp.includes(otpVersionMajor)) ||
204 198 !isVersion(otpVersionMajor)
@@ -215,13 +209,20 @@ async function getElixirVersion(exSpec0, otpVersion0, hexMirrors) {
215 209 )
216 210 }
217 211
212 + let elixirVersionForDownload = elixirVersionFromSpec
213 +
214 + if (isVersion(otpVersionMajor)) {
215 + elixirVersionForDownload = `${elixirVersionFromSpec}-otp-${otpVersionMajor}`
216 + }
217 +
218 218 return maybePrependWithV(elixirVersionForDownload)
219 219 }
220 220
221 221 async function getGleamVersion(gleamSpec0) {
222 const gleamSpec = gleamSpec0.match(/^v?(.+)$/)
223 222 const gleamVersions = await getGleamVersions()
224 const gleamVersion = getVersionFromSpec(gleamSpec[1], gleamVersions, true)
223 + const spec = gleamSpec0
224 + const versions = gleamVersions
225 + const gleamVersion = getVersionFromSpec(spec, versions)
225 226 if (gleamVersion === null) {
226 227 throw new Error(
227 228 `Requested Gleam version (${gleamSpec0}) not found in version list ` +
@@ -229,12 +230,14 @@ async function getGleamVersion(gleamSpec0) {
229 230 )
230 231 }
231 232
232 return maybePrependWithV(gleamVersion, gleamVersion)
233 + return maybePrependWithV(gleamVersion)
233 234 }
234 235
235 236 async function getRebar3Version(r3Spec) {
236 237 const rebar3Versions = await getRebar3Versions()
237 const rebar3Version = getVersionFromSpec(r3Spec, rebar3Versions)
238 + const spec = r3Spec
239 + const versions = rebar3Versions
240 + const rebar3Version = getVersionFromSpec(spec, versions)
238 241 if (rebar3Version === null) {
239 242 throw new Error(
240 243 `Requested rebar3 version (${r3Spec}) not found in version list ` +
@@ -257,8 +260,9 @@ async function getOTPVersions(osVersion, hexMirrors) {
257 260 otpVersionsListings = await get(originListing, [1, 2, 3])
258 261 }
259 262
260 const otpVersions = new Map()
263 + debugLog(`OTP versions listings from ${originListing}`, otpVersionsListings)
261 264
265 + const otpVersions = {}
262 266 if (process.platform === 'linux') {
263 267 otpVersionsListings
264 268 .trim()
@@ -268,8 +272,9 @@ async function getOTPVersions(osVersion, hexMirrors) {
268 272 .match(/^([^ ]+)?( .+)/)[1]
269 273 .match(/^([^-]+-)?(.+)$/)
270 274 const otpVersion = otpMatch[2]
275 + const otpVersionOrig = otpMatch[0]
271 276 debugLog('OTP line and parsing', [line, otpVersion, otpMatch])
272 otpVersions.set(otpVersion, otpMatch[0]) // we keep the original for later reference
277 + otpVersions[otpVersion] = otpVersionOrig // we keep the original for later reference
273 278 })
274 279 } else if (process.platform === 'win32') {
275 280 otpVersionsListings.forEach((otpVersionsListing) => {
@@ -281,15 +286,12 @@ async function getOTPVersions(osVersion, hexMirrors) {
281 286 const otpMatch = x.name.match(/^otp_win64_(.*).exe$/)
282 287 const otpVersion = otpMatch[1]
283 288 debugLog('OTP line and parsing', [otpMatch, otpVersion])
284 otpVersions.set(otpVersion, otpVersion)
289 + otpVersions[otpVersion] = otpVersion
285 290 })
286 291 })
287 292 }
288 293
289 debugLog(
290 `OTP versions from ${originListing}`,
291 JSON.stringify([...otpVersions.entries()]),
292 )
294 + debugLog(`OTP versions from ${originListing}`, JSON.stringify(otpVersions))
293 295
294 296 return otpVersions
295 297 }
@@ -299,7 +301,8 @@ async function getElixirVersions(hexMirrors) {
299 301 '/builds/elixir/builds.txt',
300 302 hexMirrors,
301 303 )
302 const otpVersionsForElixirMap = new Map()
304 + const otpVersionsForElixirMap = {}
305 + const elixirVersions = {}
303 306
304 307 elixirVersionsListings
305 308 .trim()
@@ -307,17 +310,18 @@ async function getElixirVersions(hexMirrors) {
307 310 .forEach((line) => {
308 311 const elixirMatch =
309 312 line.match(/^v?(.+)-otp-([^ ]+)/) || line.match(/^v?([^ ]+)/)
310 const elixirVersion = maybePrependWithV(elixirMatch[1])
313 + const elixirVersion = elixirMatch[1]
311 314 const otpVersion = elixirMatch[2]
312 const otpVersions = otpVersionsForElixirMap.get(elixirVersion) || []
315 + const otpVersions = otpVersionsForElixirMap[elixirVersion] || []
313 316 if (otpVersion) {
314 317 // -otp- present (special case)
315 318 otpVersions.push(otpVersion)
316 319 }
317 otpVersionsForElixirMap.set(elixirVersion, otpVersions)
320 + otpVersionsForElixirMap[elixirVersion] = otpVersions
321 + elixirVersions[elixirVersion] = elixirVersion
318 322 })
319 323
320 return otpVersionsForElixirMap
324 + return [otpVersionsForElixirMap, elixirVersions]
321 325 }
322 326
323 327 async function getGleamVersions() {
@@ -325,13 +329,17 @@ async function getGleamVersions() {
325 329 'https://api.github.com/repos/gleam-lang/gleam/releases?per_page=100',
326 330 [1, 2, 3],
327 331 )
328 const gleamVersionsListing = []
332 + const gleamVersionsListing = {}
329 333 resultJSONs.forEach((resultJSON) => {
330 334 jsonParseAsList(resultJSON)
331 335 .map((x) => x.tag_name)
332 .sort()
333 .forEach((v) => gleamVersionsListing.push(v))
336 + .forEach((ver) => {
337 + const gleamMatch = ver.match(/^v?([^ ]+)/)
338 + const gleamVersion = gleamMatch[1]
339 + gleamVersionsListing[gleamVersion] = gleamVersion
340 + })
334 341 })
342 +
335 343 return gleamVersionsListing
336 344 }
337 345
@@ -340,13 +348,15 @@ async function getRebar3Versions() {
340 348 'https://api.github.com/repos/erlang/rebar3/releases?per_page=100',
341 349 [1, 2, 3],
342 350 )
343 const rebar3VersionsListing = []
351 + const rebar3VersionsListing = {}
344 352 resultJSONs.forEach((resultJSON) => {
345 353 jsonParseAsList(resultJSON)
346 354 .map((x) => x.tag_name)
347 .sort()
348 .forEach((v) => rebar3VersionsListing.push(v))
355 + .forEach((ver) => {
356 + rebar3VersionsListing[ver] = ver
357 + })
349 358 })
359 +
350 360 return rebar3VersionsListing
351 361 }
352 362
@@ -354,48 +364,68 @@ function isStrictVersion() {
354 364 return getInput('version-type', false) === 'strict'
355 365 }
356 366
357 function getVersionFromSpec(spec, versions, maybePrependWithV0) {
358 let version = null
359
360 if (spec.match(/rc/) || isStrictVersion()) {
361 version = spec
362 }
367 +function getVersionFromSpec(spec0, versions0) {
368 + const spec = maybeRemoveVPrefix(spec0)
363 369
364 if (version === null) {
365 // We keep a map of semver => "spec" in order to use semver ranges to find appropriate versions
366 const versionsMap = versions.sort(sortVersions).reduce((acc, v) => {
367 if (!v.match(/rc/)) {
368 // release candidates are opt-in
369 acc[maybeCoerced(v)] = v
370 }
371 return acc
372 }, {})
373 const rangeForMax = semver.validRange(spec)
374 if (rangeForMax) {
375 version =
376 versionsMap[semver.maxSatisfying(Object.keys(versionsMap), rangeForMax)]
370 + const altVersions = {}
371 + Object.entries(versions0).forEach(([version, altVersion]) => {
372 + let coerced
373 + if (isStrictVersion() || isRC(version)) {
374 + // If `version-type: strict` or version is RC, we just try to remove a potential initial v
375 + coerced = maybeRemoveVPrefix(version)
377 376 } else {
378 version = versionsMap[maybeCoerced(spec)]
377 + // Otherwise, we place the version into a version bucket
378 + coerced = maybeCoerced(version)
379 379 }
380 }
380 + const alt = (altVersions[coerced] || []).concat(altVersion)
381 + alt.sort(sortVersions)
382 + altVersions[coerced] = alt
383 + })
381 384
382 let v = version === null || version === undefined ? null : version
383 if (maybePrependWithV0 && v != null) {
384 v = maybePrependWithV(v)
385 }
385 + let versions = Object.keys(altVersions)
386 386
387 if (!versions.includes(v)) {
388 v = null
387 + const rangeForMax = semver.validRange(spec0) || maybeCoerced(spec)
388 + const rangeMax = semver.maxSatisfying(versions, rangeForMax)
389 + let version = null
390 +
391 + if (isStrictVersion() || isRC(spec0)) {
392 + if (versions0[spec]) {
393 + // If `version-type: strict` or version is RC, we obtain it directly
394 + version = versions0[spec]
395 + }
396 + } else if (rangeMax !== null) {
397 + // Otherwise, we compare alt. versions' semver ranges to this version, from highest to lowest
398 + const thatVersion = spec
399 + const thatVersionAbc = versionAbc(thatVersion)
400 + const thatVersionAbcRange = semver.validRange(thatVersionAbc)
401 +
402 + versions = altVersions[rangeMax]
403 + for (let i = versions.length - 1; i >= 0; i -= 1) {
404 + const thisVersion = versions[i]
405 + const thisVersionAbc = versionAbc(thisVersion)
406 + const thisVersionAbcRange = semver.validRange(thisVersionAbc)
407 +
408 + if (
409 + thatVersionAbcRange &&
410 + semver.intersects(thatVersionAbcRange, thisVersionAbcRange)
411 + ) {
412 + version = thisVersion
413 + break
414 + }
415 + }
389 416 }
390 417
391 return v
418 + return version || null
392 419 }
393 420
394 421 function maybeCoerced(v) {
395 let ret
396
422 + let ret = null
397 423 try {
398 ret = semver.coerce(v).version
424 + if (!isRC(v)) {
425 + ret = semver.coerce(v).version
426 + } else {
427 + ret = maybeRemoveVPrefix(v)
428 + }
399 429 } catch {
400 430 // some stuff can't be coerced, like 'main'
401 431 ret = v
@@ -408,11 +438,11 @@ function sortVersions(left, right) {
408 438 let ret = 0
409 439 const newL = verAsComparableStr(left)
410 440 const newR = verAsComparableStr(right)
411
412 441 function verAsComparableStr(ver) {
413 const matchGroups = 5
414 const verSpec = /([^.]+)?\.?([^.]+)?\.?([^.]+)?\.?([^.]+)?\.?([^.]+)?/
442 + const matchGroups = 6
443 + const verSpec = xyzAbcVersion('', '')
415 444 const matches = ver.match(verSpec).splice(1, matchGroups)
445 +
416 446 return matches.reduce((acc, v) => acc + (v || '0').padStart(3, '0'), '')
417 447 }
418 448
@@ -425,6 +455,10 @@ function sortVersions(left, right) {
425 455 return ret
426 456 }
427 457
458 +function isRC(ver) {
459 + return ver.match(xyzAbcVersion('^', '(?:-rc\\.?\\d+)'))
460 +}
461 +
428 462 function getRunnerOSVersion() {
429 463 const ImageOSToContainer = {
430 464 ubuntu18: 'ubuntu-18.04',
@@ -434,7 +468,6 @@ function getRunnerOSVersion() {
434 468 win22: 'windows-2022',
435 469 }
436 470 const containerFromEnvImageOS = ImageOSToContainer[process.env.ImageOS]
437
438 471 if (!containerFromEnvImageOS) {
439 472 throw new Error(
440 473 "Tried to map a target OS from env. variable 'ImageOS' (got " +
@@ -455,7 +488,6 @@ async function get(url0, pageIdxs) {
455 488 const url = new URL(url0)
456 489 const headers = {}
457 490 const GithubToken = getInput('github-token', false)
458
459 491 if (GithubToken && url.host === 'api.github.com') {
460 492 headers.authorization = `Bearer ${GithubToken}`
461 493 }
@@ -468,9 +500,7 @@ async function get(url0, pageIdxs) {
468 500 allowRetries: true,
469 501 maxRetries: 3,
470 502 })
471
472 503 const response = await httpClient.get(url, headers)
473
474 504 if (response.statusCode >= 400 && response.statusCode <= 599) {
475 505 throw new Error(
476 506 `Got ${response.statusCode} from ${url}. Exiting with error`,
@@ -483,6 +513,7 @@ async function get(url0, pageIdxs) {
483 513 if (pageIdxs[0] === null) {
484 514 return getPage(null)
485 515 }
516 +
486 517 return Promise.all(pageIdxs.map(getPage))
487 518 }
488 519
@@ -490,12 +521,14 @@ async function getWithMirrors(resourcePath, hexMirrors) {
490 521 if (hexMirrors.length === 0) {
491 522 throw new Error(`Could not fetch ${resourcePath} from any hex.pm mirror`)
492 523 }
524 +
493 525 const [hexMirror, ...hexMirrorsT] = hexMirrors
494 526 try {
495 527 return await get(`${hexMirror}${resourcePath}`, [null])
496 528 } catch (err) {
497 529 core.info(`get failed for URL ${hexMirror}${resourcePath}`)
498 530 }
531 +
499 532 return getWithMirrors(resourcePath, hexMirrorsT)
500 533 }
501 534
@@ -503,11 +536,35 @@ function maybePrependWithV(v) {
503 536 if (isVersion(v)) {
504 537 return `v${v.replace('v', '')}`
505 538 }
539 +
506 540 return v
507 541 }
508 542
543 +function maybeRemoveVPrefix(ver) {
544 + let ret = ver
545 + if (isVersion(ver)) {
546 + ret = ver.replace('v', '')
547 + }
548 +
549 + return ret
550 +}
551 +
552 +function xyzAbcVersion(pref, suf) {
553 + // This accounts for stuff like 6.0.2.0.1.0, as proposed by Erlang's
554 + // https://www.erlang.org/doc/system_principles/versions.html
555 + const dd = '\\.?(\\d+)?'
556 + return new RegExp(
557 + `${pref}v?(\\d+)${dd}${dd}${dd}${dd}${dd}(?:-rc\\.?\\d+)?(?:-otp-\\d+)?${suf}`,
558 + )
559 +}
560 +
561 +function versionAbc(ver) {
562 + // For a version like 6.0.2.0.1.0, return 0.1.0
563 + return ver.match(/\d+(?:\.[^.]+)?(?:\.[^.]+)?(?:\.)?(.*)/)[1]
564 +}
565 +
509 566 function isVersion(v) {
510 return /^v?\d+/.test(v)
567 + return v.match(xyzAbcVersion('^', '$')) !== null
511 568 }
512 569
513 570 function getInput(inputName, required, alternativeName, alternatives) {
@@ -525,6 +582,7 @@ alongside ${alternativeName}=${alternativeValue} \
525 582 } else if (!input) {
526 583 input = alternativeValue
527 584 }
585 +
528 586 return input
529 587 }
530 588
@@ -538,6 +596,7 @@ function parseVersionFile(versionFilePath0) {
538 596 `The specified version file, ${versionFilePath0}, does not exist`,
539 597 )
540 598 }
599 +
541 600 core.startGroup(`Parsing version file at ${versionFilePath0}`)
542 601 const appVersions = new Map()
543 602 const versions = fs.readFileSync(versionFilePath, 'utf8')
@@ -571,6 +630,7 @@ function jsonParseAsList(maybeJson) {
571 630 if (!Array.isArray(obj)) {
572 631 throw new Error('expected a list!')
573 632 }
633 +
574 634 return obj
575 635 } catch (exc) {
576 636 throw new Error(
modified test/setup-beam.test.js
+52 −2
@@ -104,9 +104,18 @@ async function testOTPVersions() {
104 104 let expected
105 105 let spec
106 106 let osVersion
107 + let before
107 108 const hexMirrors = ['https://repo.hex.pm', 'https://cdn.jsdelivr.net/hex']
108 109
109 110 if (process.platform === 'linux') {
111 + before = simulateInput('version-type', 'strict')
112 + spec = '25.3.2.1'
113 + osVersion = 'ubuntu-20.04'
114 + expected = 'OTP-25.3.2.1'
115 + got = await setupBeam.getOTPVersion(spec, osVersion, hexMirrors)
116 + assert.deepStrictEqual(got, expected)
117 + simulateInput('version-type', before)
118 +
110 119 spec = '19.3.x'
111 120 osVersion = 'ubuntu-16.04'
112 121 expected = 'OTP-19.3.6.13'
@@ -131,6 +140,12 @@ async function testOTPVersions() {
131 140 got = await setupBeam.getOTPVersion(spec, osVersion, hexMirrors)
132 141 assert.deepStrictEqual(got, expected)
133 142
143 + spec = '20.3.8.26'
144 + osVersion = 'ubuntu-20.04'
145 + expected = 'OTP-20.3.8.26'
146 + got = await setupBeam.getOTPVersion(spec, osVersion, hexMirrors)
147 + assert.deepStrictEqual(got, expected)
148 +
134 149 spec = '20.x'
135 150 osVersion = 'ubuntu-20.04'
136 151 expected = 'OTP-20.3.8.26'
@@ -291,7 +306,7 @@ async function testGetVersionFromSpec() {
291 306 let expected
292 307 let spec
293 308 let before
294 const versions = [
309 + const versions0 = [
295 310 '3.2.30.5',
296 311 '3.2.3.5',
297 312 '1',
@@ -317,10 +332,20 @@ async function testGetVersionFromSpec() {
317 332 '22.3.4.9.1',
318 333 '22.3.4.12.1',
319 334 '22.3.4.10.1',
335 + '22.3.4.2',
320 336 'main',
321 337 'v11.11.0-rc.0-otp-23',
322 '22.3.4.2',
338 + '22.3.4.2.1.0',
339 + '12.1.2.2',
340 + '12.1.2.4',
341 + '12.1.2.0',
342 + '12.1.2.3',
343 + '12.1.2.3.0',
323 344 ]
345 + const versions = {}
346 + versions0.forEach((version) => {
347 + versions[version] = version
348 + })
324 349
325 350 spec = '1'
326 351 expected = '1.1.0'
@@ -417,6 +442,31 @@ async function testGetVersionFromSpec() {
417 442 assert.deepStrictEqual(got, expected)
418 443 simulateInput('version-type', before)
419 444
445 + spec = '22.3.4.2'
446 + expected = '22.3.4.2.1.0'
447 + got = setupBeam.getVersionFromSpec(spec, versions)
448 + assert.deepStrictEqual(got, expected)
449 +
450 + spec = '22.3.4.2.1'
451 + expected = '22.3.4.2.1.0'
452 + got = setupBeam.getVersionFromSpec(spec, versions)
453 + assert.deepStrictEqual(got, expected)
454 +
455 + spec = '22.3.4.2.1.0'
456 + expected = '22.3.4.2.1.0'
457 + got = setupBeam.getVersionFromSpec(spec, versions)
458 + assert.deepStrictEqual(got, expected)
459 +
460 + spec = '12.1.2.3'
461 + expected = '12.1.2.3.0'
462 + got = setupBeam.getVersionFromSpec(spec, versions)
463 + assert.deepStrictEqual(got, expected)
464 +
465 + spec = '22.3.4.2.1.0.1'
466 + expected = null
467 + got = setupBeam.getVersionFromSpec(spec, versions)
468 + assert.deepStrictEqual(got, expected)
469 +
420 470 before = simulateInput('version-type', 'strict')
421 471 spec = '22.3.4.3'
422 472 expected = null

Parents: efc884a